Простой CDC на Debezim+NATS+Docker


Возникла задача получать реалтайм события из одной проприетарной штуки, которая использует бд MySQL. Де-факто стандарт для CDC-решений (Change Data Capture) на сегодня – Debezim. Под капотом используется Kafka и все что идет в комплекте для создания кластеров. Хотелось обойтись без технологий, состоящих из множества сложных компонентов. Обнаружилось, что есть легковесная версия – Debezium Server, которая даёт возможность использовать альтернативные брокеры. Взял NATS в качестве очереди. В конце концов всё завелось. Выкладываю конфиги.…
Read more ⟶

Раскладка клавиатур в vim


В vim есть свой input method и раскладка. Добавим небольшой конфиг: set keymap=russian-jcukenwin set iminsert=0 " Английская раскладка по упочанию при активации режима input. set imsearch=0 " Английская раскладка по уполчанию при активации режима search. set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz Теперь можно переключать раскладку с помощью комбинации i_CTRL-^. Удобно вводить только один символ, доступный в английской раскладке, не переключая раскладку туда-обратно. Для этого жмём комбинацию i_CTRL-V или i_CTRL-Q, вводим символ из английской раскладки, продолжаем вводить текст на русском.…
Read more ⟶

Улучшаем работу с консолью в Ruby on Rails


На практике возникают случаи, когда приходится запускать rails console на удаленной машине и переопределять методы на время сессии. Неудобства: задержки при наборе неудобно набирать многострочный код неудобно редактировать выполненный ранее многострочный код Можно, конечно, набрать необходимый код локально в любимом редакторе, копировать и вставить этот код в консоль. Но при таком подходе могут возникнуть проблемы с интерпретацией команд irb или pry. Решение: Создаем локально файл /tmp/my_patch_name.rb class MyClassWithBug # создаем алиас для изначального метода alias old_my_method my_method unless defined?…
Read more ⟶