posted on 2025-11-09

Иногда меня спрашивают, Саша, как ты все успеваешь? Но обычно эти люди не подозревают, что успеваю я очень малую часть того, что задумано. У меня постоянно, есть куча каких-то проектов и идей, над которыми хочется поработать. Снаружи может казаться, что я успеваю многое, но на самом деле я делаю лишь небольшую часть из того, что запланировал. А все остальные планы копятся и копятся.
Причем свойство характера у меня такое, что когда возникает какая-то новая идея, я ею загораюсь и начинаю работать над ней, отбросив всё остальное. Иногда это мешает доводить дела до конца. Например, уже в начале сентября я доделал свой проект по созданию статических сайтов из телеграм-каналов до того состояния, когда его можно давать пробовать другим людям. Но вместо того, чтобы заняться раскруткой этого проекта маркетингом, писать статьи для Хабра, я переключился на другой проект, потому что начался осенний хакатон "Лидеры цифровой трансформации 2025".
Над ЛЦТ проектом я поработал несколько недель, но, к сожалению, в финал мы так и не вышли. Поэтому данный проект был оставлен в стороне, хотя получился, безусловно, прикольный продукт - мы сделали HR-систему для привлечения кандидатов в игровой форме.
Далее я увлекся следующей идеей - переключился на хакатон, который устраивал МТС. Этот хакатон был ориентирован на создание ПО для автономного управления роботами.
МТС второй год уже проводит такой хакатон. Называется он "МТС True Tech". Наверное, в серии следующих нескольких постов я расскажу, как и что делал в рамках этого хакатона. С начала октября по начало ноября я учился программировать роботов. В том году я не стал ввязываться в этот хакатон, потому что казалось, что у меня вообще же нет опыта, как я буду делать что-то, связанное с робототехникой? А в этом году я просто загорелся этой идеей, махнул рукой на то, что опыта ровно ноль и решил как-нибудь поучаствовать.
Удивительно, что даже при отсутствии опыта мне удалось пройти в полуфинал. Но детали подробности расскажу в следующих постах.
Но какой же ответ на заголовок этого поста? Каково быть многоруким Шивой и браться за всё, что хочется?
Как по мне, это очень прикольно, потому что разнообразит кругозор, позволяет попробовать много разного и не закиснуть в рутине. Так что, ребята, не бойтесь и пробуйте себя во всём!
posted on 2025-07-20
Все выходные я провозился с созданием своего собственного Code Assistant. Очень интересно было разобраться в том, как вообще все это работает. К сожалению, статей именно про устройство кодовых ассистантов не так уж много.
В основном попадаются восторженные статьи про то, как круто работает вайб-кодинг, как с его помощью написали первый Hello World и тому подобное говно. Но мне повезло найти одну очень интересную статью, где автор анализирует работу IDE Cursor и устройство его промпта.
Я начал писать своего кода-ассистента, ориентируясь на исходники проекта Aider, но посматриваю и на другие проекты с открытым кодом, типа RooCode, Cline и прочих.
Сегодня случился замечательный момент — мой ассистент смог отредактировать файл. Он самостоятельно нашел место для правки, составил патч, наложил его с помощью инструментов и внес изменения. На демо прикрепленном к этому посту, видно, что сначала ассистент попытался найти упоминание функции по кодовой базе, затем прочитал часть найденного файла с помощью инструмента read_file, а затем сгенерировал и наложил на него патч.
Я изучил, как устроено редактирование файлов в Aider и Cursor. Там правки происходят через вызовы к LLM — формируется небольшой патч в кастомном формате, где указаны старые и новые исходники, затем эти инструкции скармливаются более быстрой LLM, которая уже и меняет исходник.
Я пошел другим путем — для редактирования использую CLI команду patch, научив LLM формировать правильный diff. Пока работает неидеально: иногда дифф получается некорректным, и команда патч ломается. Но если показать LLM ошибку, она делает следующую попытку с исправленным патчем. Обычно ко второй-третьей попытке всё получается.
Я планирую дальше развивать код-ассистент. Теперь нужно добавить цикл проверки изменений через тестирование.
Особенно интересно работать с таким проектом в Common Lisp — можно быстро экспериментировать: смотреть внутренний стейт, править функции, добавлять новые инструменты и сразу тестировать изменения. Такой режим работы очень удобен. Даже для интерфейса я пока использую CL REPL, но планирую добавить веб-интерфейс и может быть консольный, как у Aider. Пока, это площадка для экспериментов!
Обсудить пост в Telegram канале.This blog covers learning, ai, automation, voice, holism, ideas, zerocoder, python, codeassistant, aider, cursor, llm, project, i18n, commonlisp, poftheday, projects, closed, tips, seo, telegram, bot, прототип, smarthome, yandexcloud, logging, software, thoughts, programming, salebot, bots, notes, emacs, lisp, infrastructure, news, lispworks, life, mcp, hackathon, sql, yandex, cloud