Экспериментариум
Логирование в Jenkins
21 July 2019
В Jenkins очень забавно сделано логирование: через WEB UI можно добавить логирование нужных логгеров в кольцевой буффер.
Но для логирования в файл нужно немного поплясать с бубном.
... Read More
Что не так с MySQL?
19 November 2016
Несколько раз на разных проектах мне приходилось объяснять, почему MySQL является далеко не лучшим выбором.
Мне несколько надоело каждый раз воспроизводить список проблем MySQL по памяти и я решил написать этот пост.
... Read More
Что не так с Perforce?
18 November 2016
Когда более 2-х лет назад был презентован Git as Subversion, некоторые люди активно предлагали попробовать Perforce.
И вот, волей судеб, последние полгода на работе проект живёт в Perforce. И у меня сложилось о нём своё мнение.
... Read More
CryEngine и шейдера
17 October 2016
Я скажут вам наперёд:
Как вы яхту назовёте,
Так она и поплывёт!
— м/ф “Приключения капитана Врунгеля”
- Cry
- плакать, рыдать, заплакать, поплакать, расплакаться
- Engine
- двигатель, мотор, движок
Небольшие истории про шейдера в CryEngine. Данные истории произошли с интервалом в два месяца на одном игровом проекте. К сожалению, они являются достаточно показательными в мире CryEngine.
Морали не будет. Каждый может сделать выводы для себя сам.
... Read More
Миграция с LAMP на Hugo
24 September 2016
Сегодня у меня наконец-то от LAMP-стека осталась только буква L.
Теперь вместо связки Linux+Apache+MySQL+PHP у меня используется Linux+Nginx.
Далее будет небольшая хронология событий.
... Read More
Работа с клавиатурой в играх
9 August 2016
Волей случая мне пришлось познать работу с клавиатурой в игровом проекте. Надо отметить, что тема эта оказалась сложее, чем ожидалось. И, к примеру, в Unreal Engine и Cry Engine с клавиатурой есть проблемы. Обычно их не видно, но в процессе интернационализации они проявляются очень сильно.
Далее будут использоваться термины Windows, но общая идея справедлива для всех операционных систем.
Беда в том, что для клавиатуры существует не только несколько понятий “нажатости” клавиши:
- клавиша физически нажата на клавиатуре (состояние клавиши по данным DirectInput);
- пришло событие о нажатии клавиши (события WM_KEYDOWN/WM_KEYUP из операционной системы).
Но и несколько способов идентификации клавиши:
- по физической позиции на клавиатуре (сканкод);
- по символу, который соответствует данной клавише.
Маленький .exe-файл без зависимостей
1 August 2016
Некоторое время назад для диагностики проблем с антивирусом мне понадобился .exe
файл без каких-либо внешних зависимостей.
Достаточно длительное время я работал с UnrealEngine.
Основным моим занятием было решение проблем связанных непосредственно с движком, которых там, как и в любом крупном продукте хватает.
Для работы мы использовали изрядно подлатанную локальную сборку UnrealEngine. При этом по возможности отправляли изменения в исходный репозиторий к EpicGames в качестве Pull Requests-ов.
Недавно я решил почесать своё чсв удовлетворить свое любопытство и собрать
статистику по контрибьюторам.
Некоторое время назад добавили в проект на UnrealEngine виджет WebBrowser.
Достаточно быстро выяснилось, что этот виджет отсутствует под Linux. Из-за этого развалился кукинг, в том числе и серверной части.
Путем наворачивания костылей удалось восстановить сборку проекта без WebBrowser-а под Linux, но так же было решено сделать это чуть позже по-человечески. То есть научиться собирать WebBrowser под Linux.
... Read More
Сборка .msi-пакетов под Linux
19 April 2016
Одно из моих поделий (https://github.com/bozaro/octobuild) для установки под Windows упаковывается в .msi-пакеты. И чтобы не держать для сборки Windows, я заморочился и разобрался, как собираться из под Windows.
... Read More