• Ребят а что нынче с форумами, как лучше сделать?

    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 они по-прежнему упорото упорно держатся за отображаемые на память файлы, поведение как у вас вполне ожидаемо. Это же торренты, а не файловая СУБД.
    Ответ написан
    6 комментариев
  • Как настроить CMake на установку пакетов?

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

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

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

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

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

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

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Плохо начинается уже в реализации getVideos

    Потому что массив объектов ≠ массив интерфейсов. При присвоении одиночного объекта переменной-интерфейсу компилятор вставляет свою магию с QueryInterface и всем остальным, и всё работает прозрачно для программиста. А тут надо создавать всё вручную, если требуется возвращать именно массив интерфейсов. Либо же забить на объекты и в массиве держать сразу интерфейсы, предварительно убедившись, что при уничтожении массива они должным образом финализируются.
    Ответ написан
    2 комментария
  • А что делать, когда автор удалит свой репозиторий?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Но если вендоров много?

    Вам шашечки или ехать? Количество форков как-то ограничено? Лень кнопки нажимать? Места на винте не хватает?Или это для вас развлечение, а не бизнес? Если бизнес — относиться надо как к бизнесу и работать, а не ныть.

    Я, вот, не поленился своим репам даже зеркалирование на TvoyGit.ru настроить (у него регистрация простая и паспорт для публичных реп не нужен, в отличие от GitFlic). Кстати, популярные проекты вполне могут быть уже там склонированы, кто-то постоянно добавляет новые репы. Можно поискать.
    Ответ написан
    Комментировать
  • Как настроить автоматическое подключение облака mail.ru, yandex.ru по протоколу WebDAV, при перезагрузке?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    А при создании подключения разве не было галочки типа «Постоянное соединение»?
    Ответ написан
    Комментировать
  • Как на windows server 2022, подключить облако mail.ru по протоколу WebDAV, без ошибки 0x80070043?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Комментировать
  • Слетает кодировка Outlook 2019. Как поправить?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Это не кодировка, а скорее отрисовка шрифта слетает. Щас пошла мода в приложениях делать отрисовку через DirectX, MS Office как раз с 2019 вроде решил ей следовать. А там какой-то баг в библиотеке Skia (предположительно), из-за чего отрисовка периодически разваливается. Похожее поведение может быть в некоторых сборках хромоподобных браузеров при принудительном включении режима Raw Draw.

    Притягивание Skia к данному случаю — чисто предположение, ни на чем не настаиваю, могу жестко ошибаться.

    Теория: как по виду символов определить источник проблемы

    • ? — текущая (однобайтовая) кодировка в принципе не поддерживает данные символы ← это проблема с кодировкой
    • � — символы были неверно раскодированы/перекодированы при отправке, получении, передаче, чтении... ← это может быть как проблемой с кодировкой (неверно выставленной или определенной), так и багом в ПО
    • □ — с кодировкой всё в порядке, но в шрифте нет нужных символов для отрисовки ← вы находитесь здесь

    Ответ написан
    Комментировать
  • И снова WEBDAV, прошу подсказать клиенты под WINDOWS 10?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Far Manager + NetBox (встроен). Правда, не уверен, как у него с заливкой обратно на сервер отредактированного внешним редактором. Внутренний берет только простой текст.
    Ответ написан
    Комментировать
  • Существует ли аналог robocopy для применения вне домена?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Потыкался сейчас по-быстрому — похоже, да, сервера для rsync сплошь платные. Видимо, это и остановило меня в свое время.

    Зато вовремя вспомнил про BitTorrent Sync. Про него даже на Хабре было написано, как оказалось. Сейчас он поменял название и хочет регистрацию, но сама лицензия вроде бы бесплатна. Сам не щупал, не до этого пока. Но уже задумался.
    Ответ написан
    Комментировать
  • Как устроиться в начинающую компанию?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Начинающей компании или стартапу на ранних этапах нужны высококвалифицированные сотрудники широкого профиля с большим опытом. Основатели, как правило, начинают искать их по знакомым, потом по рекомендациям знакомых... Если вы задаете такой вопрос — вы точно не ни основатель, ни высококвалифицированный сотрудник. Забудьте.

    И, да, не нужно путать начинающую компанию и начинающего работника. В начинающей компании — люди с опытом, начинающие работники — в компании с отлаженными процессами.
    Ответ написан
    6 комментариев
  • Каков должен быть sys.path у чистого Python 3.1x под Windows?

    Vapaamies
    @Vapaamies Автор вопроса
    Психанул и снес свои ответы козлам, не отмечающим…
    Скопировав Python 3.12 из предложенной в комменте сборки для Windows 7, забыл выключить VxKex и получил ту же ошибку! То есть баг в VxKex подтвержден. Но сам он оказался не нужен, раз есть рабочие неофициальные сборки.
    Ответ написан
    Комментировать
  • Можно ли использовать dll в Ubuntu?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Если для разных платформ совпадают и API, и ABI, исполняемые файлы можно переносить на эти платформы без изменений. Если API или ABI платформ различаются, исходный текст требует изменений и повторной компиляции. API не обеспечивает совместимости среды выполнения программы — это задача двоичного интерфейса.

    Двоичный интерфейс приложений (TL;DR: у Linux и Windows они разные).
    Ответ написан
    Комментировать