Как я доставал больничные из PostgreSQL, не имея PostgreSQL
История одного воскресенья: три дампа, три кластера, разбор бинарных страниц PostgreSQL без единого работающего сервера - и 729 электронных больничных, вернувшихся на место.
То, обо что споткнулся сам и разобрался. В основном Linux, виртуализация и сети.
История одного воскресенья: три дампа, три кластера, разбор бинарных страниц PostgreSQL без единого работающего сервера - и 729 электронных больничных, вернувшихся на место.
Онлайн-касса РИТЕЙЛ-01ФМ подключена к Raspberry Pi по USB. Задача звучала как пятиминутная: печатать на ней что угодно. На деле пришлось разобрать протокол ШТРИХ-М и вылечить аппаратную ошибку.
Личный AI-агент в Telegram на домашней ВМ за NAT: как вывести её в интернет через VPS за границей на GRE+IPsec, где платить за модели рублями и как не спалить токены за ночь.
Сенсор активных сеансов 1С для PRTG: зачем нужен Remote Probe, почему RAS не видел кластер, как разобрать вывод rac.exe и три отдельные истории про кодировки.
Переезд рабочего Nextcloud на новый сервер: замена Apache на nginx, тюнинг PHP-FPM, Collabora в Docker, TURN-сервер для звонков и полтора десятка граблей по дороге.
Что ломается при переходе на NetBox 4.5, почему тип кастомного поля нельзя сменить ни через интерфейс, ни через API, и как аккуратно мигрировать значения в jsonb.
Power Query на Mac нет, WEBSERVICE не работает. Рабочее решение: скрипт с curl и разбором XML, launchd по расписанию и обычный CSV в Excel.
Почему mdadm не зеркалирует загрузчик, куда ставить GRUB в Legacy/BIOS-режиме и как заранее убедиться, что сервер поднимется с оставшегося диска.
Разбор двух поломок iRedAPD 4.3 на Debian 12 — отсутствующий web.py и удалённый диалект SQLAlchemy — и рассуждение о том, почему тихие отказы опаснее громких.
Разбор subscription bombing: как устроена атака, почему SpamAssassin начисляет ей отрицательный балл и что с этим делать на Postfix.