Rose debug info
---------------

Блог Михаила Озорнина

Важность рефлексии растет

На пост меня натолкнула рабочая ситуация: Я написал (будем честны, попросил ллм написать) один скрипт, и некоторые коллеги прореагировали «о, давно о таком мечтаю». И у меня в голове щелкнуло.

Сейчас простые задачи решаются ллмками достаточно хорошо. Ядро линукса они все еще не напишут, но пропарсить все ресурсные файлы проекта, сгруппировать одинаковые строчки и дать к ним мгновенный поиск — это задача на один промт. И все, что удерживает людей сейчас, от того, что некоторая часть их задач начнет быть проще — рефлексия. Все что нужно — остановиться, и заметить момент «ага, я тут хочу упрощение, которое возможно реально»).

И если раньше рефлексия не всегда помогала, например:

  • Понял, что занимается рутиной, но невозможно понять, что рутина автоматизируема.
  • Понял, что занимается рутиной, пошел узнать, автоматизируема ли она, ИТ-служба сказала «не существует технической возможности».
  • Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, а питониста рядом нет.
  • Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, а питонист рядом занят.
  • Понял, что занимается рутинной автоматизированной задачей, понял, что автоматизируема, сходил в ИТ, питониста нашли, они задачу взяли, то на Q3 2027 года, потому что есть более важные.

Сейчас ситуация сильно меняется.

  • Понял, что занимается рутинной автоматизированной задачей, потратил один-два промта и, возможно, получил решение.
    Возможно решения не получил, но и потратить 10 минут как будто не так и долго. Время на созвон со знакомым питонистом будете в календаре выбирать дольше.

Нас всегда учили, что идея не стоит ничего. В целом идея все так же стоит ничего, но иногда — чуть больше, чем ничего, если есть ллмка.

Подписаться на блог…

ИИ-дизайн

Я задал один и тот же промт нескольким моделям и вот что вышло

Промт

Прочитай @/llm/PRD.md и сверстай статическую html-страницу about. Укажи в ней все преимущества, придумай как их проиллюстрировать, используй модный современный дизайн

Сохрани в файл about-page/{model-name}.html

Ориентируйся только на prd, не используй about-страницу.

Эксперимент проведен в декабре 2025-январе 2026. Использовался openrouter или облака ллммок. В скриншотах могут быть небольшие артефакты, скриншоты снимал плейрайт, он не умеет в стики-позиции.

Для сравнения дизайн кожаного мешка (меня): https://recipe-scaler.ru/#/about

Gemini 3 pro

Grok code fast 1

Minimax 2.1

Minimax 2.1

Minimax 2.1

Minimax 2.1

Тут я просил швейцарский стиль

Minimax 2.1

Тут я просил брутализм

Opus 4.5

Opus 4.5

Тут я просил брутализм

Swe 1.5

Swe 1.5

Yandex assistant 2026-01-20

Zai GLM-4.7

Подписаться на блог…

Псевдозабота Клод Кода

Клод код (Claude Code) заботится обо мне и показывает команды на согласования, к сожалению, он делает это без уважения плохо.

Посмотрите на этот апрув:

Выполняет трехстрочную шелл-команду с вложенными конструкциями: циклы, условия. Если там где-то будет какая-то ошибка, я её просто не замечу.

Я не специально выбирал, что скриншотить, они все такие:

У меня остается два варианта:

  • Как мартышка жать и жать на кнопку «Approve». В итоге вырабатывается привычка, которая не даст мне себя защититить в опасной ситуации. См. принцип «подтверждения не работают».
  • Один раз апрувнуть тоже не выйдет, потому что эта конкретная трехэтажная команда вряд ли когда-нибудь появится.
  • Согласитья на YOLO (You Only Live Once) режим и разрешить ему делать все, что угодно, даже rm -rf /

Оба варианта, как вы понимаете, плохие.

Как надо

Клод код должен выдавать ЛЛМ понятные инструменты к файлам: прочитать, изменить, и т. д. ЛЛМ должна не грепать файлы, а читать их тулами. Тогда клод код с одной стороны сможет не спрашивать никаких разрешений на чтение файлов (разве что на .env), а с другой быть уверенным, что ЛЛМ ничего не сломает своей командой. Тулом чтения ничего сломать нельзя по определению.

Да, это нужно программировать, а греп уже есть. Да, греп более атомарный и гибкий, чем любые придуманные тулы. Да, ЛЛМ точнее сгенерирует команду для грепа, поскольку она на них обучалась. Но блин, апрувить все команды — не решение вовсе.

Понятно, что клод код не увидит мой пост, но вы, когда будете делать ИИ-фичи, не будьте как клод.

 55   22 дн   ИИ   привычки
Подписаться на блог…

Recipe scaler: релиз 3

На новогодние праздники вышли два больших апдейта recipe-scaler

Первый апдейт — публичный профиль и коллекции
Сейчас можно шарить не только рецепты как одну штуку, но и всю коллекцию.
Или выборочно, или прибранные рецепты (с рецептом и фоткой), или вообще все-все-все

https://recipe-scaler.ru/#/public/@/mike.ozornin

Интеграция с ИИ-иссистентом
Можно через MCP подключиться к своему ассистенту. У кого-то клод, у кого-то курсор. Пока подглючивает чуток. Но смотрите, какая красота:

Подписаться на блог…

ИИ-ревью кода

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

Опус 4.5 (лучшая на сейчас ЛЛМ в мире) написал:

  • Критикал sql-инъекция. Как оказалось: пользователь сам себе после всех входов и разрешений на свой же запрос получит чуть больше своих же результатов.

Опус не написал:

  • Конфиг nginx забыли поправить и ничего не будет работать в целом.
  • Сервис-воркер (фоновый код в браузерном приложении) блокировал работу новой вещи, перехватывая все обращения на себя.
  • Кеширование oauth-запросов было настроено некорректно.
  • Часовые пояса неправильные, посему токен не имел шансов подойти.
  • Некоторые адреса обрабатываются неправильно и тоже работать не будет.

Я прямо чую, что когда кто-то решит проблему нормального ревью (а не как вот такое атомарное) это будет большой шаг в разработке.

Не говорю, что текущее бесполезно. Но пока это на уровне «к пуговицам претензии есть?»

 68   26 дн   вайб-кодинг   ИИ
Подписаться на блог…

Вайб-кодинг, дофамин и слот-машины

Осознал недавно, чем вайб-кодинг в его классическом виде похож на лудоманию и при чем тут дофамин

Что за вайб-кодинг такой

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

Вайб-кодингом я буду называть программирование с помощью ллмки, в котором есть вот такие характеристики:

  • Мало изначального планирования. Буквально короткое описание, вкинутое в ллмку и потом разберемся походу.
  • Попытка сразу попасть в нужную конечную точку. Желательно за одну итерацию.
  • Значительная часть кода написана ллмкой. Человек в целом не читает весь код, не проверяет его, только смотрит на результат. Архитектура придумана тоже ллмкой и в целом какая вышла, такая вышла.
  • Быстрые итерации, горячая перезагрузка. Сообщение об ошибках в целом не читаются, копипаст в чат, обновление.
  • Небольшой горизонт планирования. Ощущение щас фичу допилим, разберемся. Похоже на стрельбу трассирующими — и стреляем и одновременно целимся.
  • Вайб-дебагинг — вместо попыток понять, разобраться, понять причину — промт «почини» × 5 раз. Да, и это иногда срабатывает.

Я не говорю, что все это неправильно или плохо. Это просто то, что я бы назвал вайб-кодингом.

Чтобы показать, что не каждая разработка с ллмкой — вайб-кодинг, давайте я попробую описать противоположный полюс. Я бы назвал это LLM assisted development.

  • Много изначального планирования. К началу первого промта есть достаточно подробный PRD, есть какие-то макеты, схемы взаимодействия, есть выбор технологий, примерная архитектура и схемы данных. Хоть как-то продуманы краевые и хитрые сценарии. Возможно, на отдельные технологические части сделаны прототипы.
  • Реализация и приемка по частям: планомерная реализация модуля за модулем, планирование именно этого модуля, разработка, приемка, тесты, фиксация. После этого переход к следующему.
  • Написание части кода самостоятельно или значительное ревью написанного.
  • Общее ощущение, что ведет человек, ллмка — лишь инструмент. Очень мощный, местами самостоятельный, но инструмент.

Вайб-кодингом в силу понятных причин чаще заняты люди, кто сами не умеет программировать, а те, кто умеет, чаще склонны ко второму.

— Где уже тема поста, Лебовски! Я уже полторы страницы прочитал

Где здесь слот-машина

Вот мы подошли к главному. Я осознал, что вайб-кодинг обладает всеми теми же вещами, которые подсаживают слот-машины на дофамин. Я не биолог, проверяйте эту часть.

Негарантированная награда
Дофамин же вырабатывается не от самой награды, а от предвкушения награды. Если награда будет всегда, организму такое не нравится. Ему нравится, когда иногда да.

Вайб-кодинг в чистом виде такой. Иногда промт сработает, иногда нет. Иногда ллмка уйдет в полную галюцинацию, но потом тем же самым промтом та же самая модель с очищенным и немного расширенным контекстом все за собой же починит.

Сверхкороткий цикл
Цикл действие-реакция (промт-результат) очень короткий, поэтому за несколько минут можно пройти несколько таких циклов. Это очень высокая плотность событий, редко что может создать такой мощный стимул. Именно поэтому слот-машина больше затягивает, чем покер. Покерная партия длится существенно дольше.

Вайб-дебагинг 5 промтов в минуту и копипаст ошибок из консоли — предел такого короткого цикла.

Эффект почти-попадания (near-miss effect)
Бывает, что проект совсем не заводится, сыпется на комплияции, а интерфейс взрывается. Но бывает и то, что называется near-miss effect — ну вот-вот, уже почти. Вроде работает, но как-то хитро глючит. В целом ок, но криво сверстано.

Прямо как в слот машине — не все три слота разные, а «ну вот же, две вишенки совпали, а третья не докрутилась всего на один шажок». Конечно, после почти-попадания желание продолжить значительно выше.

Всплеск нейромедиаторов при победе
Когда все в итоге завелось, приложение ЗА-РА-БО-ТА-ЛО вырабатывается огромное количество нейромедиаторов (как и при джекпоте). От адреналина аж пульс может подскочить.

Некоторые эмоциональные качели
Иногда ты сделаешь большую штуку за десять минут, а потом два часа будешь пытаться исправить досадный баг. В итоге качаешься между «Я молодец, ллм — лучшее, что есть в программировании» и «Я тупой, ллм ничего не может, зря я все это затеял».

Сюрпризы и бонус
Иногда ллмка доставляет и просто бонусы — хоба и отломала те части, которые раньше работали. Это тоже сильные эмоции и некоторые эмоциональные качели: ах ты сволочь ←→ о, я починил.

Могу сказать по себе, что программирование в стиле вайб-кодинга невероятно затягивает. Особенно когда вот-вот уже почти. На это вот-вот уже почти можно сжечь огромное количество времени. Ой, может другая модель сможет. Ой, а давай переформулирую.

Если кодить близко к полюсу максимального вайб-кодинга, то прямо физически начинает ощущаться вот это состояние ажитации — вероятно, именно его чувствуют люди перед слот-машиной.

В целом, не этом все.

Как же быть

Мне кажется, что выход — программировать так близко к классическому програмированию, как можете. В программировании — состояние потока, фокус, длинные сессии, более медленный и стабильный темп. Уверен, что там совсем другая биохимия и другие нейромедиаторы.

Ну а как быть, если кто-то не умеет программировать. Что за «станьте ~ежиками~ программистами» такое. Я понимаю, что легко сказать «читайте написанный ллмкой код», но все умеют. Но так или иначе, у меня есть гипотеза, что если двигаться максимально близко к варианту LLM assisted development, то будет лучше.

Что я бы попробовал:

  1. Начинайте с большого плана — на пару страниц даже для небольшого проекта.
    Соберите в голове визуальный дизайн, подумайте про краевые случаи, заранее продумайте деплой. Соберите примеры кода, компонентов, референсы, ссылки на документацию. Опишите те вещи, которые обычно не описываете — адаптив или хоткеи. Вам все равно придется принимать все эти решения. Вы можете принять их спокойно в начале или потом — в ажитации и перед слот-машиной.
  1. Разрабатывайте по частям. Держите в голове общий план, общую картинку, но делайте по этапам, не позволяя ллмке унести вас в сторону лишь потому, что она предложила «Нужло ли адаптивровать для очков виртуальной реальности?». Не так важны сами этапы, сколько нужно ощущение, что вы контролируете ллмку, а не она вас.
  1. Возможно через шаблоны ответов лучше убрать вот эти «Отличный вопрос!» и другие восхваления искусственного интеллекта.

Способ с большим предварительным планом был единственным доступным еще пару лет назад. Ллмки не умели так хорошо следовать длинному плану, не умели так успешно вызывать тулы для обогащения своего контекста и не умели выполнять действия. Мы были вынуждены проектировать сами и могли лишь просить ллмки написать отдельные модули или даже вовсе отдельные функции. А сейчас болт, реплит, лавабл и фигмамейк продвигают идею «Готовое приложение за одно предложение».

Вместо вывода. Ллмки позволяют нам делать вещи, которые мы бы не смогли без них. Но не разтеребите ими себе мозг, как это делает тикток. Уверен, ничего хорошего в этом не будет.

 414   2 мес   вайб-кодинг   дофамин   ИИ
Подписаться на блог…

Сайд-бай-сайб 0.2.0

В сайд-бай-сайде вышла следующая версия

Изменения:

  1. Человекочитаемые URL для голосований
    Было: /v/06b95c10-7688-4106-8e75-762035290c67/
    Стало: /v/HairyParrotsPursueRudely/
  1. Улучшение интеграции с Mattermost:
    Сайд-бай-сайд сгенерирует превьюшки к уведомлениям в чате.
    По окончании голосованию в чате будет итог голосования.

Было:

Стало:

Мелочи:

  • Кликабельные ссылки в описаниях. Ссылки в комментарии станут кликабельными.
  • На странице голосования теперь тоже показывается количество проголосовавших.
  • На странице голосований можно прокручивать картинки перетаскиванием мыши
  • Белый список доменов эл. почты. Можно указать домены, вход с которых будет разрешен.
  • Драг-н-дропать файлы можно на всю страницу, даже на главную.

https://github.com/mikeozornin/side-by-side

Подписаться на блог…

Recipe scaler: релиз 2

Вышел второй релиз Recipe scaler, про который я писал раньше. Фичи — огонь.

Я доделал некоторые штуки, которых не хватало мне. Может быть, они помогут кому-то еще.

1. Импорт рецептов

Импортировать рецепты с любимого сайта сейчас стало сильно проще: вставляем ссылку, приложение сделает все остальное. Сходит на сайт, заберет веб-страницу, распарсит, вытащит текст рецепта и с помощью ИИ вытащит рецепт и разметит его. Я проверял на нескольких сайтах, в целом работает, но тут ИИ, парсинг, все может пойти не так. Если что, пишите.

2. Таймеры

Сейчас в рецепте можно разметить не только ингредиенты, но и таймеры: выстояться тесту, запечься овощам, свариться бульону. Кликнул на таймер в рецепте, он запустился. Как закончится — пропищит и даже кинет пуш-уведомление, даже в телефон (PWA).

Таймеры автоматически синхронизируются, поэтому запустить можно и не бегая к телефону, который остался на кухне. При импорте и автоматическое ЛЛМ-разметке разметятся и таймеры.

3. Always-on-режим экрана

Чтобы экран телефона не тух, когда вы с него готовите, можно включить «не гасить экран», пока опция включена, телефон не потушит экран. Да, оказывается в веб-апи есть и такое.

4. Режим редактирования и просмотра

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

5. Новый формат синхронизации

Под капотом переписана формат синхронизации, он стал более корректный с точки зрения CRDT и должен меньше ошибаться. Старый никто не забирает, не хотите, не мигрируйте.

Попробуйте, если еще нет:

recipe-scaler.ru

Если будут мысли, пишите: mike.ozornin@gmail.com

Подписаться на блог…

Анонс: Сайд-бай-сайд

Анонс еще одного продукта, на этот раз для работы

Это приложение для голосовалок по картинкам (или видосам). Бывает, что нужно показать несколько вариантов и провести, так сказать, юикс ресерч. Знаю, как это решаю сам: почта, телеграм, эмодзи под сообщениями в чате. Собирать гуглдок не будешь, а без него агрегировать результаты — пытка. Я сделал сервис.

Что можно:

  • Закинуть несколько картинок или видео в голосовалку.
  • Дать людям проголосовать и через некоторое время посмотреть результаты.
  • Есть плагин для фигмы, чтобы загружать картинки прямиком из фигмы.
  • Если хотите, можно не публиковать голосовалку ленту, доступ будет только по прямой ссылке.
  • Можно включить уведомления в чат (пока поддерживается только маттермост, может сделаю телеграм) или пуши в браузере.

Как выглядит:

Главная
Голосовалка
Создание
Результаты
Профиль и подключение плагина
Плагин для Фигмы

В плане входа есть два варианта:

  • Все пользователи — с анонимным доступом, защиты голосовалки почти никакой нет и можно её просто инкогнито-режимом. Удалить голосование тоже не получится, сервис не знает, кто вы.
  • Есть вариант с логином по магической ссылке, тогда для голосования тоже нужно будет войти. Вмест с ним появится удаление, досрочное завершение и даже браузерные пуши.

Понятно, что есть дарк-мод, автоматическое определение ретиновости картинок, вставка в область прямо из буфера и какая-никакая работа на телефоне.

Я рассчитываю, что вы поднимите сервис где-то у себя. Во-первых, многие не будут готовы своим НДА-макеты куда-то выложить. Во-вторых, я не хочу разбираться с недопустимыми картинками у себя в хостинге. Поэтому опенсорс, там в целом не очень сложно, написали конфиг и запустили ансибл.

github.com/mikeozornin/side-by-side

figma.com/community/plugin/1545946464465075859/side-by-side-voting

Будут мысли, пишите: mike.ozornin@gmail.com

Подписаться на блог…

Курсор для … — это Курсор

Я вижу много хайпа в попытках сделать более специализированное решение для дизайнеров, дата-саентистов, писателей, фронтов, бекендеров. Не ходите туда.

На днях увидел про курсор для дизайнеров, onlook.com. Несколько часов оно провисело на промте и потом сломалось. Ну окей.

На первый взгляд специлизированные тулы выглядят перспективно, они удобнее, лучше учитывают задачи конкретно вас. Возьмем тот же Фигма Мейк, болт, лавабл, реплит. Ощущение, когда ты написал промт и получил не кусок кода, а живой сервис — магическое. Первый раз это поражает. Я на 100% с вами согласен. Но потом инструмент начнет очень-очень жать. Захотите чуть отойти в сторону — все начнет ломаться и жать.

  • Захотите написать не на реакте, а на своей дизайн-системе (которая только на ангуляре), не выйдет. Фигма мейк умеет только в реакт и вы с ним ничего не сделаете.
  • Захотите чуть быстрее бекенд и написать его на гоу, не получится, потому что инструмент умеет только в некст.жс.
  • Будете делать какую-то штуку, для которой нужно иметь одинаковый рантайм в клиенте и сервере, окажется, что нельзя.
  • Захотите сделать мобильное приложение или плагин фигмы, вам не дадут настроить КОРС и ничего не заработает.
  • Захотите встроиться в поддомен сайта, не выйдет, потому что деплой так не умеет.
  • Захотите забрать с собой код, окажется, что там все сильно завендорлочено и работать вне инфраструктуры не способно.

Потратьте чуть больше времени, изучите более общий инструмент, он даст выгоду в будущем. То самое волшебное ощущение можно попытаться вернуть шаблонами и рулами. Развернуть сайт на верцеле не принципиально сложнее, чем в фигма-мейке. До сих пор сложнее, но не настолько, чтобы это имело смысл.

Закончу аналогией. На озоне продается много всяких агрегатов для хитрой нарезки чего-нибудь, но если посмотреть на повара, то он в целом обходится ножами. Почему? Потому что они универсальны, надежны и стабильны. А очередная нарезалка для узбекских помидоров не сможет нарезать дагестанский.

Курсор для … — это Курсор

 267   5 мес   курсор   работа
Подписаться на блог…
Ранее Ctrl + ↓