Архив за месяц: Ноябрь 2026

Продолжаю играть с ИИ и «вайбкодингом»

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

Делаю некую железячку. Взял готовый проект, и дал его ИИ подправить. Ну, там, допустим, есть стриминговый плеер, но в оригинальном проекте он имеет либо только аналоговый выход, либо только цифровой. А хочу чтобы было и то и то. Для этого, если коротко, нужно сделать «разветвитель» цифрового потока внутри ESP32. Задачка тривиальная, в принципе, и оно с этим легко справилось.

Потом я сделал на отдельной устройстве «VU-метр», индикатор уровня сигнала, я писал о нем ранее. А потом захотел слить вместе. Ну, казалось бы, задача тривиальная. Два устройства на одной и той же платформе. Памяти и флэша хватает с избытком. Пусть играет, и на экранчике показывает обложку и название трека, а нажмешь на кнопочку — полосочки прыгают. Хорошо же? Хорошо. Индикатор надо было перенести с экранчика, который был, на экранчик, который есть. Казалось бы, ну, контроллер изменился, ну разрешение экрана чуть поменялось. Берем работающий плеер, и добавляем на него работающий индикатор. Чего проще? Логика вся прежняя. Ан нет. Собрали на новый экранчик — плеер работает, индикатор тормозит.

Начинаем бодаться с Deepseek. — Проблема. Тормозит. — Понял, дай логи. — Вот — (шуршит 5 минут) Все поправил. — Все равно тормозит. — А, понял, это оттого, что контроллер поменялся. Был ST7789, а тут 8-битный параллельный аппаратный i80, он поддерживается нативным mipi_spi, и я для него пишу кастомный драйвер. — Но погоди, вот есть ранее сделанный на claude такой же индикатор, на таком же экране и контроллере, и он не тормозит. Можешь просто без изменений сделать также — Нет, там нужная нам библиотека не работает. — А почему она не работает? — (молчит) Хороший вопрос. На самом деле я сейчас проверил, она работает — Блин. Ну делай тогда — (шуршит).

В общем типичный «вкатун». «Надо кидать! Не долетает! Значит надо сильнее кидать!» — Погоди, вот тут у тебя прямо ведро на веревке висит, почему бы не взять его? — А? Да, Ты абсолютно прав.

Claude кажется получше deepseek, что в общем, ожидаемо. Но тем не менее. Очень старательный, но если уткнется, недайбох, в какую-то сложную ситуацию, будет как робот пылесос первых поколений, долбить в стену, пока батарейка не сядет.

В итоге он мне допереписывал проект до полной запутанной неработоспособности. Пришлось развернуть задачу, начав с начала, но с другой стороны. «Возьми индикатор, и добавь к нему плеер, вот отсюда. Индикатор, сука, не трожь! Он работает! Вообще не трожь его код! Добавь плеер и остановись!»

Сегодня докручу, и, наверное, выдам Клоду на проверку за этимм китайским вундеркиндом, посмотрим что тот скажет.