• Почему при восстановлении резервной копии PostgreSQL возникают ошибки, хотя база работает корректно?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    pg_restore пытается дропнуть таблицы, которых нет. Скорее всего, вызывается с ключом -c/--clean. Надо попробовать без него
    Ответ написан
    Комментировать
  • Почему не получается подрубиться к удаленному PostgreSQL из DBeaver?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Скорее всего это файрвол.
    Учитывая, что не на локальном ПК это все дело работает, то вполне возможно что сетевики настроили правила и трафик не проходит. При этом сервак сам может определяться и пинговаться.
    Ответ написан
    Комментировать
  • Можно ли гарантировать надежность снапшота?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если мы говорим про утилиты постгреса для бэкапа, то они будут согласованными, т.к. влияют на работу сервера. Например, заставляют все страницы сброситься, выполнить чек-поинт и т.д.
    Например, pg_basebackup:

    pg_basebackup is used to take a base backup of a running PostgreSQL database cluster


    Но если речь идет об утилитах, работающих с фс напрямую (dd, cp и т.д.), то нет - гарантировать ничего нельзя. Как уже было сказано, некоторые буферы могут быть не сброшены, записана только часть страницы и т.д.
    Ответ написан
  • Как собрать проект с GitHub?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Думаю, только его собрать не получится, т.к. есть зависимости от рута проекта (сборка сверху вниз идет).

    Для сборки надо использовать Makefile - это файл, в котором описано то как надо собирать. В твоем случае, надо только запустить make miyoomini из корня репозитория. Можешь заметить, что в той директории, что ты указал, он (Makefile) тоже есть, но зависит от верхнеуровневых.

    Так как ты под виндой, то единственный совет - используй WSL. Тебе надо использовать линуксовские утилиты, это делать проще на линуксе (хотя бы таком). Дополнительно, в процессе установки используется докер - это тоже учитывай.

    Как прошить Miyoo Mini не подскажу, не занимался таким
    Ответ написан
    4 комментария
  • Почему clang выдает такой ассемблерный код?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Зависит от окружения/флагов/версии
    Но я здесь вижу:
    1. Именованная константа со своим адресом (PIC)
    2. Простое число

    В первом случае необходимо использовать регистр (временное хранилище), т.к. нельзя копировать из памяти в память - надо оперировать регистрами
    Ответ написан
  • Почему не удается получить адрес функции?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Уже подсказали про проблему с экспортом, но не в ту сторону.
    Ты хочешь получить адрес функции из исполняемого файла с помощью дин. либы. То есть тебе надо экспортировать символ не из dll, а из исполняемого файла. Грубо говоря, из main.c. В шиндоузе, если не указывать видимость символа, то по умолчанию он не импортируется, т.е. надо добавить __declspec(dllexport) вручную.

    Также, проблема может быть из-за манглинга - ты используешь c++ и функция не в extern "C". В результате, ее имя не auth, а какое-нибудь B4__authV
    Ответ написан
    Комментировать
  • Почему нельзя выставлять десятичную дробь?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Скорее всего это из-за типа переменной - она целочисленная и не принимает дробные значения.
    Это изменить нельзя
    Ответ написан
    Комментировать
  • Как переключаться между разными версиями Postgres?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    На Debian-based дистрибутивах (Ubuntu, Debian, etc) есть утилита pg_ctlcluster - с помощью нее можно управлять несколькими инсталляциями postgres одновременно, учитывая версии/название кластера.
    Например, так можно
    # Запуск кластера 15 версии
    pg_ctlcluster start 15 main


    Для того, чтобы они запускались одновременно, то можно использовать разные порты - чтобы запускались на разных портах. Например, 15 версия на 5432 порту, а 13 - на 5433.
    Это сделать можно либо через postgresql.conf - конфигфайл, ищи port. Изначально он такой:
    #port = 5342                      # (change requires restart)


    раскоментируй и выстави свое значение. Подсказка - он скорее всего в директории /var/lib/postgresql//, например, /var/lib/postgresql/13/main/postgresql.conf

    Для подключения просто передай psql нужный порт:
    psql -p 5432 # 15 версия
    psql -p 5433 # 13 версия
    Ответ написан
    2 комментария
  • Размещение видео из платного курса себе в тг канал?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Запрещено
    Ответ написан
    Комментировать
  • Как перенести из sqlite3 в Postgresql?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Экспортируй данные из sqlite в формате CSV, и импортируй в postgresql.
    Но перед этим в postgresql надо создать схему вручную - инструментов для миграции не знаю (разве что liquibase, но это уже оверхед на мой взгляд)
    Ответ написан
    1 комментарий
  • Почему функцияVideoCaptrure не определяется?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Учитывая, что это C++, то скорее всего не указал нужный неймспейс. Попробуй так:
    cv::VideoCapture cap("video\\file");

    Замечание: VideoCapture - это класс, а не функция
    Ответ написан
  • Как сделать возможность добавления картинки товара, загружая её перед этим в БД?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Можно ее хранить в виде байтового массива
    Ответ написан
  • Что отвечает за предотвращение нежелательной записи в text секцию?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Я вижу тут 2 варианта:

    1. Адрес функции не выровнен, это и вызывает SIGBUS
    2. Тут баг с назначением номеров сигналов и на самом деле тебе поступает SIGSEGV, т.к. адрес неверный

    Второе прямо описывается в man'е man 7 signals


    BUGS
    For example, an invalid memory access that causes delivery of SIGSEGV
    on one CPU architecture may cause delivery of SIGBUS on another archi‐
    tecture, or vice versa.


    Отвечая на твой вопрос, что предотвращает запись в секцию .text - флаги секций. У каждой секции есть свои флаги, которые отвечают за возможности работы с этими секциями.
    Для этого можно использовать objdump -h <executable>. В частности, я запустил и вот такой вывод появился для бинарника

    14 .plt.sec      00000020  0000000000001060  0000000000001060  00001060  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
     15 .text         00000118  0000000000001080  0000000000001080  00001080  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
     16 .fini         0000000d  0000000000001198  0000000000001198  00001198  2**2
                      CONTENTS, ALLOC, LOAD, READONLY, CODE


    Можешь заметить, что .text помечен как READONLY

    Все-таки можно изменить

    Есть системный вызов ptrace, который вообще-то может изменить секцию кода, но проблема в том, что он работает с инструкциями и работать можно только с дочерним процессом. Грубо говоря, выступешь в роли отладчика.
    Поэтому можешь считать, что .text не изменить
    Ответ написан
  • Docker только для развертывания?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как нормально разрабатывать если каждый раз следует обновлять контейнер?

    Мне не совсем понятен вопрос - к чему это относится?

    Если вопрос про hot update, когда ты поменял пару строчек и сразу увидел изменения. То тут у каждого инструмента (ЯП, IDE, фреймворки) есть свои особенности, надо искать под каждый свое решение. Например, в Rider есть возможность обновления уже запущенного кода в контейнерах. Это реализуется как раз за счет создания таких вольюмов (больше сказать особенно не могу - не изучал)

    Если вопрос про то, что добавил эндпоинт/функцию и т.д. и надо все заново собирать с новой версией - это правильный подход. Называется заморозка версии. Это необходимо для того, чтобы та функциональность которую ты предоставляешь корректно работала у всех и обновления не сломали уже работающий код других. Например, у тебя версия sample-image:1.0.0 в которой есть функциональность подсчета времени - она возвращает время в мс, а потом ты сделал так, что эта функциональность возвращает время в нс. Если не создать для этого новую версию, то старые приложения в лучшем случае аварйино завершатся.

    PS Вообще, вольюмы - это универсальный инструмент и годится не только для прокидывания настроек.
    Ответ написан
    Комментировать
  • Регулярка для удаление текста через строку?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Мне кажется тут проще реализовать удаление строк, длина которых 42 символа.
    Учитывая, что ни ЯП, ни IDE не указаны, то просто даю регулярку

    ^[\d\w]{42}\n

    На regex101 она работает как надо (во вкладке Substitution попробуй)
    Ответ написан
    3 комментария
  • Connect не принемает 4 аргумента хотя все правильно?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Проверь, что нет наложения неймспейсов - connect это также и функция сокетов, которая принимает 3 аргумента.
    Попробуй явно указать неймспейс для connect:
    QObject::connect(&button, &QPushButton::clicked, this, &Clock_me::handleButton);
    Ответ написан
  • Как заставить PyCharm заменять генерики на конкретные типы?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Пока нет. В будущих релизах может исправят
    Ответ написан
    Комментировать
  • Как в configure.ac определить макрос-функцию?

    AshBlade
    @AshBlade Автор вопроса
    Просто хочу быть счастливым
    Разобрался - он определяется так же как и обычный макрос, буквально так как я и описал во 2 случае.
    Единственный момент - в результирующем файле все новые строки удаляются (определяемые обратным слешем). Как с этим быть не знаю, но на данный момент это роли не играет.
    Ответ написан
    Комментировать
  • Как сделать свой эквалайзер звука на c# с помощью библиотеки NAudio?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Или хотя бы гайды по библиотеке NAudio.

    Достаточно просто заглянуть в README - там куча туториалов и примеров использования - https://github.com/naudio/NAudio/blob/master/READM...
    Ответ написан
    Комментировать