Задать вопрос
  • Можно ли качать такой браузер?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Для флеша в современных браузерах есть Ruffle.
    Ответ написан
    Комментировать
  • Git: ошибка "cannot lock ref" при создании ветки с "/" в имени?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Вопрос ведь в том, останется ли после переименования какой-либо мусор в Git, и куда денутся коммиты?
    • Мусора не останется.
    • Коммиты полностью перейдут в переименованную ветку (что может быть для вас нежелательно, если их потом нужно растащить по подзадачам; тут всё зависит от вашего рабочего процесса).

    Этот способ можно вполне использовать и в будущем, если на момент создания ветки задачи непонятно, насколько она будет сложной.

    Со стороны GitLab не знаю как. Если в нем есть какая-то настройка, что-то вроде маски, «цепляющей» ветки из Git к задачам, ее потребуется подправить. Или не потребуется. Смотрите уже по месту.
    Ответ написан
    Комментировать
  • Почему Торрент опять грузит диск на 100%?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Профессионал торрентов в чате. Будут глупости от интернет-всезнаек в комментах — снесу ответ к чертовой матери. Не впервой.

    Сразу вопрос: тормоза не во время первичного распределения места под файлы, а именно сильно потом?

    Проблема распределения места под файлы решается не лошадиными размерами кэшей, а назначением себе прав на обслуживание тома или запуском клиента от администратора. Если права есть, в свойствах процесса в Process Explorer должна быть привилегия SEManageVolume.

    Есть еще параметры coalesce reads writes и piece extent affinity.

    Да, обязательно поставить. Еще выставить адекватный размер очереди записи диска (по сути это кэш записи, так криво названный). По умолчанию там вроде бы жалкие 1024 КБ (1 МБ). Поставить 32768, 655536 или даже 131072 КБ (32, 64 и 128 МБ).

    При этом галочка Предвыделять место на диске для всех файлов обязательно должна стоять, чтобы qBittorrent не создавал разреженные файлы. По этой же причине нежелательно использовать выборочное скачивание: в этом случае qBittorrent может начать шлепать разреженные файлы вне зависимости от любых галочек.

    Для справки: разреженные файлы — фишка NTFS и некоторых продвинутых ФС на *NIX. На нижнем уровне работает путем создания мини-ФС для каждого файла (где пишется, какой блок реально хранится, а какой виртуален), что логично разбрасывает файл на сотни, тысячи или даже сотни тысяч кластеров NTFS в зависимости от размера файла. Тут-то диск с черепичной записью и задыхается.

    При выполнении всех этих условий (т. е. при правильной настройке) здоровый SMR-диск должен вполне справляться с нагрузкой торрент-клиента, что бы там не писали. В случае гигабитного интернета, возможно, в некоторых случаях потребуется снижение скорости скачивания, но не уверен. При адекватном кэше записи qBittorrent должен сам вставлять задержки при заполнении кэша.

    К слову, тот кэш, который вы увеличиваете до непотребных размеров — это кэш чтения, он работает при раздаче файлов, а на запись никак не влияет.
    Ответ написан
  • Как прочитать данные из пайпа в C++ не перепутав с TTY stdin?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Под Виндой есть функция GetFileType().
    Ответ написан
    1 комментарий
  • Как исправить ошибку связанную с клиентом Oracle?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    А эта версия сертифицирована для Windows Server 2019? Раз ошибки пошли после переноса c 2008-го, чую, проблема именно в версии.

    Attempt to load Oracle client libraries threw BadImageFormatException

    Вот это тоже похоже. Раньше в заголовке PE бывала версия 6.x, а потом внезапно стала 10. Или даже не знаю, сколько там у Server 2019.
    Ответ написан
  • Почему неудается открыть файл about.xml?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Файл битый, видно же.
    Ответ написан
  • Почему падает скорость при скачивании торрента через qBittorrent?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Если потом скорость всё же восстанавливается, вангую, что файл тупо прописывается нулями. Проблема та же, что и «Диск перегружен» в µTorrent. Лечится назначением прав на обслуживание тома (вроде бы) пользователю, от которого запускается qBittorrent, либо запуском от администратора.
    Ответ написан
    Комментировать
  • Почему не перекодируется rtsp H265 в rtsp H264?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Нагуглил наяндексил:
    $FFMPEG -i $VIDEO_IN -an -c:v ffv1 \
      -vf setrange=limited \
      -pix_fmt yuv420p \
      -color_range jpeg \
      -colorspace smpte170m \
      -color_primaries bt709 \
      -color_trc bt709 \
    out.mkv

    Не оно?

    Мне даже казалось, что буквально недавно был вопрос по FFMPEG как раз про цветовые пространства, но что-то не нашел.
    Ответ написан
    Комментировать
  • Как восстановить HDD (ошибка в данных CRC)?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    А не неплотное ли прилегание кабеля к разъему это? Или что вместо него в носимых дисках? Так что да, придется открывать коробку, если это диск в коробке, а не с распайкой USB прямо на плате контроллера.
    Ответ написан
    Комментировать
  • Как из одного сегмента вызвать функцию другого сегмента?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Если запустить игру, то, с учетом dll библиотек, будут заняты адреса от 0x00010000 до +- 0x7FFE0500.

    Странно видеть подобное утверждение в 2024-м. Что, ASLR в системе глобально отключено?

    У библиотек непременно есть перемещаемые символы («релоки»), и если вы модифицируете exe-шник, они спокойно перелезут на другие адреса при запуске. Так что, это вообще не повод париться.

    Зато мне, вот, странно, что сформированный подобным образом «с дыркой» PE-файл в принципе запустился. Адресное пространство разве не должно быть непрерывным? Всегда казалось, что именно так.
    Ответ написан
    Комментировать
  • Ребят а что нынче с форумами, как лучше сделать?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    мигрировать на последнюю версию phpbb почистить и закрутить гайки, и опять перепиливать шаблон

    Вот, похоже, что да. По моим оценкам, в 2024-м году любой форум придется как-то допиливать под себя, и миграция на новую версию движка выйдет дешевле и/или менее трудозатратней, нежели полная замена форумного стека, если его так назвать.

    Сам я по жизни PunBB-шник со стажем
    Для своих проектов и под свои хотелки движок подпиливал сам, но в 2024 году дошел до уровня, когда придется заказывать уж слишком специальную доработку. За PunBB буду держаться до последнего именно из-за сложности полной замены форумного стека.

    В будущем, вполне возможно, основанная мной компания разработает собственный форумный движок в рамках внутреннего проекта, и тогда я буду стремиться передать его в открытые исходники, либо хотя бы просто сделать доступным всем желающим. Но это будет не скоро.

    Может, кто-то что-то более веселое сможет посоветовать, не знаю. Новый-то форум начать сильно проще, чем со старым барахлом переехать, ничего не потеряв и не деградировав по функциональности.
    Ответ написан
  • Почему при статической линковке DLL к консольной программе на Delphi исключения вызывают ошибки access violation?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    STDAPI AmsiInitialize(
        _In_  LPCWSTR appName,
        _Outptr_ HAMSICONTEXT* amsiContext);

    В Delphi это разве не stdcall будет?
    DECLARE_HANDLE(HAMSICONTEXT);
    DECLARE_HANDLE(HAMSISESSION);

    По-хорошему нужно бы узнать, как объявлена DECLARE_HANDLE, но с высокой вероятностью на Delphi это объявление должно идти так:
    type
      HAMSICONTEXT = type THandle;
      HAMSISESSION = type THandle;

    Если я прав, последующие объявления типов не нужны — это чисто сишные заморочки. В Delphi возвращаемый описатель логично объявить через var:
    function AmsiInitialize(appName: LPCWSTR; var amsiContext: HAMSICONTEXT): HRESULT; stdcall;
      external 'amsi.dll' name 'AmsiInitialize';
    procedure AmsiUninitialize(amsiContext: HAMSICONTEXT); stdcall;
      external 'amsi.dll' name 'AmsiUninitialize';
    Ответ написан
    1 комментарий
  • Как исправить проблему с mail php и заголовками для gmail?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    $body .= "Content-Type: text/html; charset=UTF-8\r\n";
    $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $body .= chunk_split($htmlContent, 998) . "\r\n";

    Меня вот это еще напрягает. Должно быть 8bit. Плюс, возможно, по строгому стандарту строка не должна превышать 76 символов.
    Ответ написан
    1 комментарий
  • Как добавить свой тип группировки в проводнике?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    На пару с chatgpt писал dll

    Ну, теперь отлаживайте на пару с ChatGPT. Или, может, запускать DLL надо уже не под Windows, а под ChatGPT? Вперед и с песней!

    Могу предположить, что эти колонки — те же строчки, что показываются на вкладке «Дополнительно» в свойствах файла. Я бы нагуглил какое-нибудь расширение «Проводника» с открытыми исходниками, показывающее, скажем данные из тегов MP3-файлов (или что-то такое похожее) и посмотрел бы, как оно сделано. Заодно поставил бы и проверил, появляются ли его строчки в списке для сортировки.
    Ответ написан
    Комментировать
  • Ejabberd dns lookup failed resource temporarily unavailable?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    "А" записи для домена сменил 3 дня назад.

    Для Jabber вроде же нужны SRV-записи особого вида, не? Например, Яндекс при хосте домена у него добавляет так:
    SRV  _xmpp-server._tcp.conference  21600 IN SRV 20 0 5269 domain-xmpp.yandex.net.  21600
    SRV  _xmpp-server._tcp             21600 IN SRV 20 0 5269 domain-xmpp.yandex.net.  21600
    SRV  _xmpp-client._tcp.conference  21600 IN SRV 20 0 5222 domain-xmpp.yandex.net.  21600
    SRV  _xmpp-client._tcp             21600 IN SRV 20 0 5222 domain-xmpp.yandex.net.  21600
    Ответ написан
    Комментировать
  • Не приходят письма на мэйл. Что делать?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Все пишут комменты, а я решил ответ.

    SPF, DKIM mailer1.amocrmmail.com, а From подписан моим доменом. Но поддержка не поддержала и как это исправить не говорит)

    Это явная недоработка amoCRM, трясти надо их. Если, конечно, в настройках отправки почты внутри CRM стоит ваш сервер, а не их.
    Ответ написан
    Комментировать
  • Почему в данном случае не работает обращение к элементам массива по индексу?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    сразу после первого элемента получаю out of range

    На самом деле, конкретно здесь, скорее всего, поведение отладочной сборки, в которой наверняка {$R+}. Гуглить, читать. Нужно или обернуть данный участок в {$R-}, или пользовать адресную арифметику в виде PMIB_IPNETROW(@ifTable.table)[i].

    Но в си, повторюсь, разницы с массивами нет, поэтому оно там вполне работает и через table[i]

    В Си нет понятия {$R+}, поэтому там сплошь уязвимости, ибо людям свойственно ошибаться.
    Ответ написан
    Комментировать
  • Как расширить том на диске С на виртуальном сервере?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Интересно, китайский NIUBI Partition Editor тоже платный?

    В свое время он оказался единственной программой, умеющей расширять раздел за счет свободного места до раздела простым пересчетом NTFS, без перемещения файлов. Не ваш случай, но всё же.
    Ответ написан
    Комментировать
  • Накапливаются задачи ввода-вывода в очереди Qbittorrent, активное время SSD 100%, как исправить?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    По идее, в расширенных настройках должны стоять галочки:
    • Coalesce reads & writes
    • Use piece extent affinity

    Не помню, включены ли они по умолчанию, но маловероятно, что отключены.

    Еще конкретно для SSD число асинхронных потоков ввода-вывода может как-то влиять, его вроде бы рекомендуют как-то сильно увеличить. Не знаю, никогда не пользовал торренты на SSD.

    А версия libtorrent какая? А то может оказаться, что наилучшее лекарство — перейти на сборку на основе libtorrent 1.x. Если в 2.x они по-прежнему упорото упорно держатся за отображаемые на память файлы, поведение как у вас вполне ожидаемо. Это же торренты, а не файловая СУБД.
    Ответ написан
    7 комментариев
  • Как настроить CMake на установку пакетов?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Решил дать дополняющий ответ и оформить его в виде ответа, а не комментария.

    Или "взрослое" решение пишется без пакетного менеджера?

    С точки зрения ведения проектов у пользователя вашего кода должно быть целостное лицо:
    • Или он совсем ничего не понимает и хочет собрать только ваш проект и забыть.
    • Или у него свое настроенное окружение, в котором собираются разные проекты, и ваш будет одним из многих.

    В реальных проектах первый случай обычно бывает на внедрении, когда по каким-то причинам конечному пользователю поставляется исходный код, собираемый затем на месте. Пользователь кода — не программист, своего окружения у него нет и не будет, и ему вполне нормально иметь костыльные по сути зависимости через ваш проект. На внедрении под эти пляски наверняка выделен отдельный комп (или виртуальный сервер), и такой подход ничего не сломает, а жизнь пользователю-непрофессионалу упростит (в теории). На внедрении всякое бывает, короче.

    Во втором же случае подразумевается пользователь-программист, и он как от огня будет бежать от чужих костылей, своими грязными ручонками портящих с трудом и любовью настроенную его собственную среду. И если по каким-то причинам ему всё же потребуется собрать ваш код, вашей маме я бы не позавидовал.

    Мораль в том, что с точки зрения ведения проектов тоже надо уметь смотреть, не только кодить.
    Ответ написан
    Комментировать