Экспериментариум

Картинка для привлечения внимания :) Мы собираем зависимости для нашего тестового окружения в Docker-образ, что оказалось очень удобно. Но недавно у нас появился разработчик с MacBook M1, и резко встал вопрос о возможности поддержки двух платформ. ... Read More
Картинка для привлечения внимания :) Мы столкнулись с достаточно занятным поведением при работе с Headless-сервисом в Kubernetes. В нашем случае проблема возникла с mongos, но она актуальна для любого Headless-сервиса.

Приглашаю вас почитать нашу историю и самим попробовать поиграться с этой проблемой локально.

На одном из проектов мы используем MongoDB и Kubernetes. У MongoDB есть компонент: mongos. Через него выполняются запросы в шардированном MongoDB кластере (можно считать, что это просто хитрый proxy). До переезда в Kubernetes сервисы mongos устанавливались непосредственно на каждый хост.

При переезде сервисов в Kubernetes мы поселили пул mongos в Headless-сервис с автоматическим масштабированием Deployment через HPA (Horizontal Pod Autoscaler).

Через некоторое время выяснилось, что приложению при уменьшении количества Pod с mongos становится не очень хорошо.

... Read More

В Jenkins очень забавно сделано логирование: через WEB UI можно добавить логирование нужных логгеров в кольцевой буффер.

Но для логирования в файл нужно немного поплясать с бубном.

... Read More

Что не так с MySQL?
19 November 2016

Двуликий сервер Несколько раз на разных проектах мне приходилось объяснять, почему MySQL является далеко не лучшим выбором.

Мне несколько надоело каждый раз воспроизводить список проблем MySQL по памяти и я решил написать этот пост.

... Read More

Когда более 2-х лет назад был презентован Git as Subversion, некоторые люди активно предлагали попробовать Perforce.

И вот, волей судеб, последние полгода на работе проект живёт в Perforce. И у меня сложилось о нём своё мнение.

... Read More

CryEngine и шейдера
17 October 2016

*Имя вы не зря даёте,
Я скажут вам наперёд:
Как вы яхту назовёте,
Так она и поплывёт!*

— м/ф “Приключения капитана Врунгеля”

Cry
плакать, рыдать, заплакать, поплакать, расплакаться
Engine
двигатель, мотор, движок

Небольшие истории про шейдера в CryEngine. Данные истории произошли с интервалом в два месяца на одном игровом проекте. К сожалению, они являются достаточно показательными в мире CryEngine.

Морали не будет. Каждый может сделать выводы для себя сам.

... Read More

Сегодня у меня наконец-то от LAMP-стека осталась только буква L.

Теперь вместо связки Linux+Apache+MySQL+PHP у меня используется Linux+Nginx.

Далее будет небольшая хронология событий.

... Read More
QWERY+AZERTY клавиатура Волей случая мне пришлось познать работу с клавиатурой в игровом проекте. Надо отметить, что тема эта оказалась сложее, чем ожидалось. И, к примеру, в Unreal Engine и Cry Engine с клавиатурой есть проблемы. Обычно их не видно, но в процессе интернационализации они проявляются очень сильно.

Далее будут использоваться термины Windows, но общая идея справедлива для всех операционных систем.

Беда в том, что для клавиатуры существует не только несколько понятий “нажатости” клавиши:

  1. клавиша физически нажата на клавиатуре (состояние клавиши по данным DirectInput);
  2. пришло событие о нажатии клавиши (события WM_KEYDOWN/WM_KEYUP из операционной системы).

Но и несколько способов идентификации клавиши:

  1. по физической позиции на клавиатуре (сканкод);
  2. по символу, который соответствует данной клавише.
... Read More

Некоторое время назад для диагностики проблем с антивирусом мне понадобился .exe файл без каких-либо внешних зависимостей.

... Read More

Достаточно длительное время я работал с UnrealEngine.

Основным моим занятием было решение проблем связанных непосредственно с движком, которых там, как и в любом крупном продукте хватает.

Для работы мы использовали изрядно подлатанную локальную сборку UnrealEngine. При этом по возможности отправляли изменения в исходный репозиторий к EpicGames в качестве Pull Requests-ов.

Недавно я решил почесать своё чсв удовлетворить свое любопытство и собрать статистику по контрибьюторам.

... Read More