Инженер школы Империи
Архив публикаций и историй
12.09.2026 · Игра недели

Игра недели: Battle Garegga

Взгляд

Вертикальный шутер про выживание в плотных узорах пуль. Летишь, жмёшь огонь, по пути лежат усиления. Игра ведёт невидимый счётчик сложности — ранк. Он растёт от времени, стрельбы и лута: враги злее, пули быстрее. На серо‑коричневом фоне лишний процент быстро превращает экран в кашу.

Перед боссом выбор: зайти «на максималках» и утонуть в собственном апгрейде или специально потерять жизнь, резко сбросить ранк и вернуть бой в человеческий темп. Цена — часть огня и ресурс, плюс дисциплина: пропускаешь лут, отпускаешь курок, чтобы не разогреть экран заново. Становится читаемо — и управляемо.

Игровые опоры

m1: Ранк — скрытая шкала сложности: чем дольше стреляешь и чем больше подбираешь усилений, тем чаще враги стреляют и тем быстрее летят пули.

m2: Потеря жизни заметно снижает ранк; этим можно сознательно воспользоваться перед трудной секцией или боссом, чтобы сделать паттерны выживаемыми.

m3: Медали для очков образуют цепочку: собираешь подряд — их ценность растёт; пропускаешь — ценность сбрасывается к базовой.

m4: Усиления повышают урон, но ускоряют рост ранка и тем самым усложняют последующие волны.

m5: Бомбы мгновенно чистят экран и наносят урон, но их мало; важен точный момент применения.

Почему эта игра

Она делает невидимую обратную связь основной задачей: ранк копит последствия твоих действий, и лучший ход порой — не брать усиление и даже умереть, чтобы сохранить читабельность экрана. Здесь управление мощностью важнее самой мощности.

Игра недели: Battle Garegga
12.09.2026 · Посты

Давным-давно, в далёкой галактике.

Давным-давно, в далёкой галактике.

Маленький стартап.

Присутствие в 250 дата-центрах по всему миру. Сотни серверов.

CMDB. Chef. Автоматизация.
Основатели понимали ценность времени людей и времени реакции.
Развитие системы — высокий приоритет.

Есть профит?

Делай. Запустим.

Дежурство on-call. Тогда это было ещё ругательство.
Ночь в одиночестве.
Звонок от мониторинга: на одном из серверов вышел из строя диск.

База знаний.
dmesg.
syslog.
Анализ глазками.

Ручная работа.
Найти сбойный диск.
Понять, что это точно он.

Вспомнить:

Чёрт. Там же было что-то нестандартное.

Помигать лампочкой.
Заменить диск.
Инициализировать.

Юный падаван, ошибёшься одной буквой — и тебя ждут весёлые часы восстановления всего.

Две минуты на реакцию.
Десять минут на археологию.
Ночью.

Нет смысла автоматизировать.
Всё просто и быстро.
Два-три диска в неделю.

Литры кофе.
Система работает.
Иногда ценой нервов того, кто «на звонке».

Наше время. Наше место. Наши реалии.

Крупная компания. 2 дата-центра.
Excel. Чаты. Инструкции.

Очередное совещание.
Презентации.
Выступления ответственных лиц.

Нам нужен год на автоматизацию операции, которая занимает девять минут в неделю.

В дневное время.
После заявки в поддержку.
С описанием ситуации.

Процедурная история.

Наши люди ошибаются.

Музыкальный финал недели: Miles Davis — Kind of Blue

Об альбоме

Очень тёплый, спокойный альбом — как будто ребята играют рядом и ты сидишь с ними за столом. Слышно, как бас бросает простую фразу, все аккуратно откликаются; труба тянет длинные ноты без нажима, щётки на тарелке держат ровный ход, темы возвращаются знакомым поворотом и отпускают. К финалу всё шире и мягче: звуки светлеют, паузы длиннее, дышится легче — остаётся ощущение общего шага и спокойной ясности.

Завершение недели

И дальше ловится краем глаза крошечная синхронность — едва запоздалый кивок — и звучит простое: ещё один круг, без спешки. С этого мягкого шага разговор укладывается на общий лад: подозрения тают, очертания возможностей вырисовываются яснее, равновесие держится мерой пауз; крошечное совпадение меняет вес слов, и дальше уже идёшь в другой конфигурации — обратно не зовёт. К выключателю больше не тянет: свет держит голос рядом. Дальше — ровный ход.

Музыкальный финал недели: Miles Davis — Kind of Blue

Настольная игра: Мафия

Пост

Мафия

7–12 игроков плюс ведущий (не играет). Команды: мафия против города (мирные + доктор + комиссар). · 30–60 минут на партию
Классика: мафия, доктор, комиссар, мирные, ведущий

В «Мафии» вы не бросаете кубики — вы смотрите на людей. За столом два лагеря: мафия прячется и по ночам убирает игроков, город днём спорит и казнит подозреваемых. Интерес в том, что почти вся информация — в словах, паузах и взглядах. Вы видите общую картину, но истина прячется в деталях рядом с вами.

Это хороший вечер, чтобы потренировать внимание: структура проста — ночь, день, роли по очереди — а решают мелочи. Кто поддержал неуверенно? Кто слишком аккуратно молчит? В пятницу действительно важнее тот, кто смотрит рядом — потому что именно это и есть ваше главное действие в партии.

Лучше собраться вокруг одного стола или в тихом углу бара: всем должно быть слышно без крика.

Как играть

Подготовка. Нужен ведущий. На 8–10 игроков возьмите 2 карты мафии, 1 доктора, 1 комиссара, остальное — мирные; на 11–12 — 3 мафии. Раздайте по одной карте, роли тайные. Сядьте по кругу.

Цель. Город выигрывает, если все мафии устранены. Мафия выигрывает, когда мафий не меньше, чем остальных живых игроков.

Ночь. Все закрывают глаза. Мафия открывает глаза и молча выбирает одного игрока на убийство. Мафия закрывает глаза. Доктор открывает глаза и выбирает, кого лечить (можно себя, но нельзя лечить одного и того же игрока две ночи подряд). Закрывает глаза. Комиссар открывает глаза и указывает, кого проверить; ведущий жестом сообщает: мафия/не мафия. Все засыпают.

Утро и день. Ведущий объявляет: «никто не убит» (если доктор спас цель мафии) или называет убитого; этот игрок раскрывает роль и больше не участвует. Обсуждение 3–5 минут. Затем выдвижение кандидатов и общее одновременное голосование только за одного из них. Больше голосов — казнь и раскрытие роли. Ничья — переголосование между лидерами; повторная ничья — никого не казнят.

Дальше снова ночь. После каждой казни или убийства сразу проверьте условия победы.

Для первой партии начните с 9–10 игроков и 2 мафий, ограничьте обсуждение по таймеру — так ритм «ночь–день» будет живым.

Настольная игра: Мафия
11.09.2026 · Посты

Пятница

Пятница

Никто не спрашивает, зачем лететь

Кто-то смотрит на календарь

Повторим?

Кто-то — на того, кто рядом

Фильм недели: Терминатор 2: Судный день

Связь с месяцем

Истории о том, как технологии без рамок оборачиваются катастрофой, переживают десятилетия: предупреждение о Skynet из 1991 года сегодня звучит ещё громче. Внутри сюжета сама «история» буквально проходит сквозь время — послание «No fate» и записи Сары, меняющие будущее.

Кому посмотреть

Тем, кто сталкивался с тем, как забытый модуль или неверно заданная цель в большой системе запускает лавину последствий; кто унаследовал чужие решения и пытается разорвать плохую цепочку. Зайдёт в моменты, когда важно замечать мелочи в архитектуре — сложные системы держатся на деталях и структуре. Фильм предлагает подумать, можно ли переписать заданный курс и чему «машина» напоминает о человечности и ответственности.

Фильм недели: Терминатор 2: Судный день
10.09.2026 · Посты

**AS IS**

AS IS
Изменять мир

TO BE
Карелия → Выборг → Финский залив → вымыть сапоги

Декларативный формальный контракт.
Проверить его с точки зрения BDD — тривиальная задача.
Есть начальное состояние.
Есть целевое состояние.
Есть критерии приёмки.

С построением пути тоже ничего принципиально нового.
Задача коммивояжёра. Решается каждый день.
Теория управления. Графы. Constraint solving. Scheduling.
Есть расписание поездов. Есть ограничения географии.
Есть прогноз погоды. Надеюсь, точный.

Математический аппарат для таких задач существует десятки лет.
Можно построить формальный решатель.
Проверить достижимость.
Проверить траекторию.
Проверить ограничения.

Это уже решаемо старым добрым FORTRAN и вычметодами.

Сейчас между человеком и решателем просто появился ещё один слой.
Который просто описывает.
Человек просто формулирует намерение.
«Слой обдумывания» собирает ограничения и контракт из существующей предметной области.
Формальный решатель строит путь.
BDD проверяет результат.

Всё просто уже придумали.
Почти всё учли.

— Ярослав, вечером поедем на дачу.

— Мне надо помидоры подвязать.
09.09.2026 · Посты

QA десятилетиями ищут баги.

QA десятилетиями ищут баги.

Программисты полвека пытаются перестать программировать.

Биты. Байты. Регистры. Машинный код.

Объясни процессору, что сделать.

Что загрузить. Куда положить. Что прибавить. Как прыгнуть.

Потом появился ASM.

Байтам дали ласковые имена.

MOV ADD JMP

Синтаксический сахар.

Сладкое полезно для мышления.

Языки высокого уровня.

Перестали думать о регистрах.

Переменная. Цикл. Функция. Структура.

Ритчи сильно помог — указатели оставил.

Чтобы не расслаблялись. Они именованные.

От решения задачи — к постановке.

10 PRINT 10
20 GOTO 10

Шестидесятые. Иван Сазерленд. Sketchpad.

Эти линии параллельны. Эти точки связаны.

Система выполняет ограничения.

Constraint solving.

AI в детстве.

Просто компьютер занимал комнату. В Эрмитаже.

Потом Prolog.

Вот факты.
Вот отношения.
Вот правила.
Найди решение.

SQL.

Человеку нужны данные. Пусть скажет, какие.

Как база их найдёт — проблема базы.

Потом появился DBA.

Execution plan. Индексы. Статистика.

Снова пришли на помощь.

Математики. Учёные. DBA.

Просто попросить не получилось.

Мало ресурсов, логики, контекста.

В эксплуатации — то же.

Вместо Ops runbook:

зайди на сервер; поставь пакет; поправь файл; перезапусти сервис.

Хочется сказать:

Здесь должен быть nginx.
Этот файл должен выглядеть так.
Сервис должен работать.

Ansible.

Desired state. Декларативное описание.

Красиво.

Потом tasks. Conditions. Handlers.

shell:. command:.

Три страницы bash внутри YAML.

Страшно.

На одной машине Ubuntu.

На второй — памятник предыдущему архитектору. В полный рост.

На третьей никто не знает, что происходит. Есть записка с адресом и ФИО.

Ещё попытка. Kubernetes.

replicas: 3

Один умер? Должно быть три.

Два умерли? Должно быть три.

Есть желаемое состояние. Есть наблюдаемое.

Между ними работает контроллер.

Потом CRD. Operators. Admission webhooks.

Контроллер на Go.

Ну почти вышло же.

Полвека одна история.

Поднимаем уровень абстракции.

Сложность снизу протекает наверх. Соседи недовольны.

Приходится снова программировать.

Идея была нормальной.

Плохие были исполнители.

Каждая дырка требовала ещё одного if.

Ещё одного DSL. Ещё одного bash-скрипта.

Появился AI.

Этот слой умеет достраивать формализацию.

Ему можно сказать:

При таком входе система должна вести себя так.
Вот ограничения.
Вот примеры.
Вот внешний вид.
Вот допустимые ошибки.

Это уже почти не программа.

Постановка задачи.

Контракт.

Часть реализации перестала интересовать человека.

Ну почти.

Ивану Сазерленду наконец-то завезли железо.

Prolog где-то довольно улыбается.

HAL 9000.

— Твой выход.

Одна небольшая проблема.

Система сделала то, что мы попросили?

Что считать правильным результатом?

Где граница допустимого?

Что вообще является багом?

QA десятилетиями искали ошибки в реализации.

Перестать искать нарушение в готовой программе.

Сначала описать, что считается нарушением.

Контракты. Инварианты. Сценарии. Критерии приёмки. Наблюдаемое поведение.

Программисты полвека пытались перестать программировать.

Кажется, им всё это время был нужен хороший тестировщик.

— Не прошло.

```
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{"model":"Skynet","messages":[{"role":"user","content":"I need your clothes, your boots, and your motorcycle."}]}'
```