Заметки о программировании
Игорь Коновалов — fullstack-разработчик из Белграда. Эксперименты и заметки о разработке, AI-агентах и генеративном искусстве.
- after-the-team
Чего это стоит
Последний из четырёх постов о том, как моя работа изменилась с ИИ-агентами: страх потерять работу, лестница, которая привела меня в программирование и теперь лишилась нижних ступенек, скорость, которую долго не выдержать, и одиночество.
Читать → - after-the-team
Двое — золотая середина
Третий из четырёх постов о том, как моя работа изменилась с ИИ-агентами: почему обычная скрам-команда не получит такой скорости даже с теми же агентами, что осталось от церемоний и почему я думаю, что будущее за маленькими бригадами.
Читать → - after-the-team
Полгода работы за полторы недели
Второй из четырёх постов о том, как моя работа изменилась с ИИ-агентами: бенч, пет-проекты, которые вернули радость, первый месяц в продакшене и то, как сейчас выглядит день двух разработчиков с агентами.
Читать → - after-the-team
Десять лет кода руками
Первый из четырёх постов о том, как моя работа изменилась с ИИ-агентами: путь от промышленного альпинизма и гипсовой лепнины в программирование, скрам-команды, выгорание и люди — годы, когда я ещё писал код сам.
Читать → - d2-recon
Diablo II, дни с двенадцатого по семнадцатый
Шесть дней проекта по сохранению игры d2-recon, из них три рабочих: спецификации ядра одной цепочкой прошли свою планку, фаза навыков прошла ревью, все 310 функций навыков прогнаны в эмуляторе, тайминг анимации сверен с 61 утверждением сообщества, план по ИИ монстров одобрен, за ним добавлена шестая фаза, ревизия подняла 158 утверждений, а гейт коммитов, как выяснилось, давно пропускал всё подряд.
Читать → - voxel-engine
Воксельный движок, дни с седьмого по двенадцатый
Воксельный движок от версии 0.24 до 0.32: прямой свет от светящейся породы с шумоподавлением; свет, который отражается через объём зондов; вторая половина упакованного кирпича — для зеркала, — с которой вернулась полная детализация до 100 м; планка правки, взятая с двукратным запасом; собственный апскейлер и порт FSR 2 бок о бок; сгенерированный готический замок; смена компилятора шейдеров, после которой Windows тратит 2,5 секунды вместо 76.
Читать → - voxel-engine
Воксельный движок, дни со второго по шестой
Пять дней воксельного движка, от версии 0.3 до 0.24: вид поверхности выбран на глаз, ночь, за которую закрылись девять планов, пока я спал, коллизии, звук, журнал операций и хост WebAssembly, новый формат кирпича, уменьшивший память в четыре раза, бюджет первичных лучей выполнен, бюджет правки поднят, реверберация пещеры настроена на слух, и мир, на который можно посмотреть снаружи.
Читать → - d2-recon
Diablo II, дни с седьмого по одиннадцатый
Пять дней проекта по сохранению игры d2-recon: запуск по бою и ещё две фазы симуляции, квесты, перемещения и экономика вошли в рамки проекта, два настоящих клиента в одной игре, 99 450 эмулированных случаев навыков, первый запуск спецификаций ядра одной цепочкой, и три ночи, когда машина спала или ей не хватало памяти, пока линии работали.
Читать → - voxel-engine
Воксельный движок, день первый
Новый проект: воксельный движок на Rust, не привязанный к игре, с ray marching в compute-шейдерах. За первый день он прошёл путь от пустого репозитория до пещеры с подгрузкой, по которой можно летать и копать; все бюджеты, до которых дотянулся код, измерены, три не выполнены.
Читать → - d2-recon
Diablo II, дни пятый и шестой
Пятый и шестой дни проекта по сохранению игры d2-recon: агенты две ночи подряд гнали очередь планов без меня, все строки карты исследования, кроме самой новой, стали спецификациями после ревью, пути создания, которые ждали ядро, закрыты, в проект вошла симуляция боя, а семь сессий, которые агентам не давались, сыграл я.
Читать → - d2-recon
Diablo II, день четвёртый
Четвёртый день проекта по сохранению игры d2-recon, на этот раз с картинками: карта исследования в виде сетки, особые монстры, у которых всего 256 возможных имён, цель по уникальным и сетовым предметам, до которой пришлось бы играть около 450 сессий, карта Blood Moor, построенная по одному числу, и харнесс, на котором теперь можно запускать несколько копий игры сразу.
Читать → - d2-recon
Diablo II, дни второй и третий
Второй и третий дни проекта по сохранению игры d2-recon: числа, которые берёт сид комнаты, воспроизведены точно, пулы монстров получаются из одного числа, правило про группу проверено на двух копиях игры, magic find до 10 включительно линейный, а ветка для чемпионов оказалась мёртвым кодом. И играл теперь уже не только агент.
Читать → - d2-recon
Diablo II, день первый
Первый день проекта по сохранению игры: описать Diablo II 1.14d так точно, чтобы её можно было собрать заново. Генератор случайных чисел с числом 666 внутри, дерево сидов, сверенное с 5 954 значениями из живой игры, три миллиона отрисованных спрайтов и формат файла, который агент вспомнил непонятно откуда.
Читать → - agents
Из чего состоят 207 коммитов
Один день, два дирижёра, два репозитория: шестнадцать влитых планов, четырнадцать релизов и восемь выкладок в прод. Что на самом деле было в этих коммитах, кто их сделал, во что упёрлась скорость и чем за неё пришлось платить.
Читать → - agents
Одобрение — это и есть «поехали»
Дирижёр, который без присмотра доводит одобренные планы до слияния в main: почему ручные швы оказались лишними, headless-режим, проверенный опытом, а не документацией, репозиторий, которому верят больше, чем сессии, парковка как ответ по умолчанию и во что обошлись двенадцать дней прогонов.
Читать → - agents
Окно — это лобовое стекло, а не кабина пилота
Десктопное рабочее место для анализа рынка, где нечего нажимать: один локальный сайдкар, отдающий один набор возможностей дважды, агент в роли управляющей поверхности, окно, которое только рисует, и разворот, принятый на следующий день после отменённого им решения.
Читать → - agents
Бюджет, рядом с которым стоит измерение
Что заставляет нефункциональное требование работать: названная единица, выведенное число, область действия по границам своего процесса, честное признание непокрытого — и умение заметить, что прибор показал ноль, потому что ничего не измерил.
Читать → - agents
Каждая проверка называет своё слепое пятно
Что именно даёт право утверждать зелёный прогон тестов, записанное словами: пять визуальных проверок, вопросы, на которые каждая ответить не может, доказательство невозможности, оставленное вечно отключённым тестом, и слепое пятно, порождённое тем самым решением, которое делает эталон хорошим.
Читать → - agents
Что удерживает 315 markdown-файлов от вранья
В репозитории, который пишут агенты, соглашения о документации разрушаются незаметно. Восемь проверок, делающих правила о тексте запускаемыми, порча, против которой написана каждая, и более сильный ход: генерировать справочник вместо того, чтобы его проверять.
Читать → - agents
Обвязка: что изменилось
Пять изменений в обвязке агентной разработки с июля: у пофазной проверки появился свой уровень, навыки заводятся решением, worktree переезжают внутрь репозитория, чужой навык получает хеш, и пересадка на новый проект за один день.
Читать → - rust
Ritmolux: одно ядро, два фронтенда
Музыкальный визуализатор реального времени на Rust: одно общее ядро питает отдельное приложение и компонент foobar2000, всё управляется текстовыми пресетами, а документация опубликована отдельным сайтом-справочником.
Читать → - agents
Как я веду реальный проект командой агентов
Рабочий процесс агентной разработки, отточенный на одном реальном проекте: вынесенные наружу планы, специализированные навыки, ревью со свежим контекстом и ограничения, закреплённые в коде.
Читать → - javascript
Подключение Arduino к веб-странице через Node.js и Socket.IO
Руководство по подключению Arduino к веб-странице через Node.js и Socket.IO
Читать → - generative-art
Генератор L-систем
Генератор фракталов на L-системах с более чем 40 готовыми фигурами и полной настройкой
Читать → - generative-art
Математическая роза: новая версия
Новая, улучшенная версия генератора математической розы с автоанимацией, рандомайзером и экспортом в PNG
Читать → - generative-art
Филлотаксис
Воссоздание узора филлотаксиса на canvas
Читать → - generative-art
Блуждание по математической розе
Простой блуждатель, повторяющий траекторию математической розы
Читать → - generative-art
Исламские звёздные узоры в SVG
Исламские звёздные узоры на чистом JavaScript и SVG
Читать → - generative-art
Роза Маурера
Реализация математической розы и кривых розы Маурера на JavaScript
Читать → - generative-art
Случайные линии в SVG-фигурах
Случайные линии внутри SVG-фигур — шестиугольники, квадраты и треугольники
Читать → - generative-art
Случайное блуждание с векторным объектом (полёт Леви)
Реализация случайного блуждания с использованием векторных объектов и полёта Леви
Читать → - generative-art
Простое случайное блуждание
Простое случайное блуждание на canvas на чистом JavaScript
Читать → - generative-art
Элементарный клеточный автомат
Реализация элементарного клеточного автомата на JavaScript
Читать → - generative-art
Игра «Жизнь»
Реализация игры «Жизнь» Конвея на JavaScript
Читать → - personal
Hello World!
Первый пост в блоге — Hello World!
Читать →