14 апреля 2024 г.

Система самонаведения ракет

Как-то, году этак в 11-м, делал на Flash простенькую систему самонаведения ракет. Конечно для игры, а вы что подумали? 😀

Переписал её на Javascript с использованием рендер-фреймверка pixi.js. Как оказалось, в этом фреймверке система координат повернута на π и отражена по оси абсцисс, поэтому векторные вычисления немного отличаются от вычислений для системы координат под Flash. Пришлось создать специальный класс вектора под pixi.js.

14 сентября 2023 г.

Один из способов синхронизации KeePass

У тех, кто еще только планирует пользоваться KeePass для хранения паролей, часто возникает вопрос: можно ли сделать, чтобы была синхронизация между различными устройствами. В общем, ответ «да».

25 августа 2023 г.

Sciter – фреймверк для создания десктопного GUI максимально бытро

После небольшого исследования на предмет того как быстро создавать GUI для десктопа на C++ на сегодняшний день, помимо давно зарекомендовавших себя решений, таких как Qt или wxWidgets, набрел на довольно интересный фреймверк Sciter. В его подходе интересно то, что виджеты создаются веб-технологиями (HTML, CSS, Javascript) и при этом есть возможность вызывать функции, написанные на C++, собранные в бинарнике. Размер же собранного дистрибутива меньше 10 мегабайт! А в распоряжении программиста остается почти вся функциональность WebView. Всяким Электронам такое не светит в принципе. Поэтому решил попробовать собрать.

13 августа 2023 г.

Пошаговая инструкция по подключению библиотеки Boost к Unreal Engine 4 в виде модуля

Следует оговориться, что это лишь один из вариантов.

Например, ваш проект называется QuickStart, библиотека собрана компилятором vc под платформу win64.

  • Предварительно собрать либы для используемой архитектуры и компилятора
  • Создать папки QuickStart\Source\Boost\Private и QuickStart\Source\Boost\Public
  • Создать файл QuickStart\Source\Boost\Boost.Build.cs (листинг 1)
  • Разместить хедеры в QuickStart\Source\Boost\Public\boost
  • Разместить бинарники либ в QuickStart\Source\Boost\Private
  • В этой же папке создать файл BoostModule.cpp (листинг 2)
  • В QuickStart.uproject изменить код для ключа Modules (листинг 3)
  • В QuickStart\Source\QuickStart\QuickStart.Build.cs в PublicDependencyModuleNames добавить имя модуля Boost
  • В QuickStart\Source\QuickStart\QuickStart.Build.cs в конструктор обязательно добавить код (листинг 4)

14 апреля 2023 г.

Делегирование задачи деплоя другому проекту в Gitlab

Иногда требуется, чтобы разворачивание проекта в Gitlab осуществлял другой проект. Решение довольно тривиально. Для этого в проекте который делегирует в файле .gitlab-ci.yml пишем:

delegate-task:
  trigger:
    project: groups-path/project-slug

А в проекте которому делегируют в файле .gitlab-ci.yml добавляем проверку:

  rules:
    - if: $CI_PIPELINE_SOURCE == "pipeline"