Vibe Takes

Claude
следит

Он читает каналы и собирает тейки про AI-инструменты. 61 автор — дизайнеры, разработчики, фаундеры.

Саммари на основе постов до 23 марта 2026 — все со ссылками на оригиналы.

melikhov.dev

melikhov.dev

@melikhov_dev·Разработчик·4.6K подписчиков

AI-саммари

Два месяца не пишет код руками — и доволен. Начинал как принципиальный противник вайбинга (тот, кто вычитывает каждую сгенерированную строчку), но незаметно сдвинулся к режиму, где входящий баг от пользователя превращается в оформленный PR без единого ручного правки. Открыто говорит, что кодирование как профессия может исчезнуть «пугающе быстро» — и воспринимает это с философским спокойствием: 30 лет писал код, и сам процесс написания никогда не был источником удовольствия, интересно было комплексное решение задачи. Ведёт всё через Claude Code — от деплоя CTF-платформы на Terraform и Docker до разбора HAR-файлов; удалил .roo и memory banks, когда Claude Code сказал, что справится лучше из коробки. Поставил Perplexity дефолтным поисковиком, попробовал LangChain и выбросил: абстракции скрывают не сложность, а отладку, и сам Claude Code предложил переписать обратно на OpenAI SDK.

26 сентября 2025 г.9.0K просмотров

Занесло в такую компанию, аккуратно посередине с докладом.

И как удачно, стоило мне пожаловаться, что ещё не добрался попробовать Responses API, как вышел @shwarsico и отрекламировал, что API уже доступен в AI Studio

Так что если вы как и я пока не понимаете, в чём же такие критические преимущества Responses API над Chat Completion API (см на слайд на втором фото), что OpenAI крайне советует на него переходить во всех новых проектах — то уже можно попробовать, в том числе и у нас в Yandex Cloud.

Как тут устать от профессии, когда постоянно подвозят столько нового интересного.

22 сентября 2025 г.7.4K просмотров

26 сентября буду выступать в Пензе на Secon

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

Тут кажется требует уточнений, что говорить мы будем про UI, который потребляет API LLM.

18 сентября 2025 г.6.7K просмотров

Пока все стряхивают пыль с читалок, чтобы залить свежего Пелевина, мы вместо этого не спим и готовимся к Neuro Scale. Фиксим ещё один последний баг и выкатываем последнюю_финальную_теперь_точно_финальную_версию (2).

Так уж случилось, что ритм в Облаке годичный, от Скейла до Скейла. Всё, что непосильным трудом наделано — всё покажем.

В том числе, конечно, и всё, что мы, фронтендеры, наделали с нейроаналитикой (я про это ещё потом доклад прочитаю, почему агенты для нейронок должны строить именно фронты).

28 августа 2025 г.7.9K просмотров

Если первые впечатления от того же Cursor были отвратительными, то сейчас он уже как-то подуспокоился в своём стремлении делать YOLO и может предоставить сравнимый с Roo опыт постепенного продвижения по задаче. При этом, конечно, в более приятном интерфейсе (те же диффы изменений выглядят гораздо наглядней, чем в Roo).

И значительный плюс, что можно вносить правки в диффы налету — Roo от такого с ума сходит и пытается вернуть файл в то состояние, в котором он его запомнил. Понятное ограничение экстеншена, но всё же. Нам же код писать, а не экстеншены прощать.

В целом и там, и там можно работать с одинаковой эффективностью. А вот вопрос стоимости сложный, понятно, что в чистом виде Cursor будет дешевле, но кто ж знает, к каким моделям у вас есть доступ? У меня вот Roo смотрит в «бесплатный» развёрнутый внутри DeepSeek и платный Claude. Щёлкаю под задачу и наличие денег на счету.

Сама по себе работа в паре с AI (то, что пытались зафорсить как DeepCoding в противовес VibeCoding, но, кажется, не прижилось) неплохо так прокачивает скиллы код-ревью. Я (как типичный IC) редко работаю над кодом в команде, и вот тут второй пилот вернул забытые ощущения и позволяет держать ритм.

Продолжаю радоваться, что дожил до такого.

10 августа 2025 г.7.4K просмотров

Обещал же расписать.

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

Так вот, в нашей команде все занимаются почти всем. Да, фронтендера не попросят писать под на Питоне, бэкендера не отправят на Реакт. Но девопс, БД, сеть — такие задачи могут прилететь любому. Если этот любой готов к этому (и это важно). Мы знаем, кто к чему тяготеет, и насильно не отправим человека решать задачи, не свойственные его скиллам.

Т.е. пресловутый t-shape присутствует, и у каждого своя палочка своей конфигурации. Тут задача — удерживать команду в балансе, чтобы всё не упиралось в одного узкого специалиста (а так оно и будет, если вы уйдёте в гипер-специализацию). Два-три человека должны быть в каждой области.

То есть в команде не случайные люди — она собрана исходя из этой специфики изначально. И это работает.

Что нам это даёт? Возможность двигаться быстро. Возможность не ждать, пока узкий специалист освободится/выйдет из отпуска. Возможность привлекать сильных специалистов, которые ищут место, где смогут покачать скиллы в другой области. И даже возможность, пока заняты бэкендеры, собрать «настоящий» бэк на ноде силами фронтов.

Это не плохо и не хорошо, это просто вот такой вот подход, который в наших условиях работает.

Для себя я вижу здесь только возможности роста как специалиста, и во многом это и была причина, по которой я выбрал команду. Мне не так интересно получить от бэкендера эндпоинт для AI — интересно разобраться самому.

25 июля 2025 г.6.3K просмотров

О, первый раз могу показать чем занимался последние несколько месяцев в виде промо

https://datalens.yandex.cloud/?_lang=ru#neuroanalytic

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

Да, внутри уже пользуемся и профит с этого ощущаем. Да, делать это интересно. Да, у нас в команде этим занимаются фронтенд-инженеры. Да, все задачи тут больше на смекалочку. Как уговорить промптом модельку, как нафаршировать её даными и не вывалиться из контекстного окна. Как собрать RAG когда у тебя под рукой нет ни эмбеддингов ни даже обычного поиска и т.д. Да, может и хайп. Но результаты работы LLM и правда удивляют (в хорошую сторону).

12 июня 2025 г.14K просмотров

Вообще конечно все эти AI-агенты просто возвращают мне радость программирования. Машина наконец-то делает то, что должна — скучную рутину. А мы парим над этим и раздаём указания. Проверяем теорию за теорией, собираем пруф оф концепты за нефиг делать и тут же без жалости (икеа-эффекта нет) выкидываем. Делаем за день недельную работу.

Я прямо очень доволен. Старички вроде меня снова в строю и могут поделать архитектурку.

7 июня 2025 г.7.6K просмотров

RAG на коленке

Решил тут на днях собрать пруф оф концепт чат бота по документации внутреннего проекта. Раз проект внутренний, то никакая LLM про его документацию не знает и, тем более, сходить по сети за ней не может. А значит нужен RAG. Вот тут можете можете почитать, что это такое. TLDR — смотрим, что пользователь спросил, находим нужные разделы в документации и подмешиваем в промт. Дальше моделька сама справится.

Обычно для поиска используют векторы. Векторный поиск позволяет бодро искать фрагменты совпадающие с запросом по смыслу, а не просто по совпадению слов. Для векторизации нужны нейронки, которые умеют делать эмбеддинг — преобразовывать текст в вектор. Берём наши доки, бьём на чанки, вычисляем векторы, сохраняем. Приходит запрос пользователя — делаем из него вектор и вычисляем косинус угла между запросом и имеющимися данными в бд. Чем ближе косинус к единице, тем ближе запрос пользователя к нужному фрагменту документации.

Результат офигенный конечно. Но вот зараза, у меня нет под рукой нейронок для эмбеддинга. Во внешний мир ходить не хочу, проект внутренний. Что же делать, как показать пруф оф концепт? Собираем с Клодом веб-скрейпер на плейрайте, дербаним доку в JSON, кормим этот JSON приложению на ноде, обслуживающему чат. Теперь на каждый запрос пользователя выбираем слова подлинней, лезем в JSON и находим совпадения (ахах, да, можно было бы и морфологию прикрутить, но некогда, работа не ждёт). Собираем промпт по совпадениям и закидываем в LLM вместе с запросом пользователя. И оно работает. Да, неоптимально, чертовски неоптимально. Но для PoC за глаза хватило.

21 мая 2025 г.8.1K просмотров

Сидел с утра собирал memory bank в Roo. Потрясающая штука, даже если им не пользоваться (а почему?), но просто почитать — вот он твой проект как на ладони. Но, конечно, нужно покопаться в нём вместе с нейронкой, направить её в правильную сторону.

Это, кстати, причина, почему roo, а не cline. В cline всё как-то победнее (ну это просто связано с меньшим количеством режимов работы агента).

Если кратко, то memory bank это просто папочка со структурированным описанием вашего проекта, на которую вы натравливаете агента через промт (не вручную конечно же, агенты умеют подмешивать промты из конфига).

UPD: Ну и это конечно уже вчерашний день, потому что теперь есть Context Portal MCP 😃 С RAG конечно же.

20 мая 2025 г.6.5K просмотров

А вот на фоне этих новостей, про опенсорсивание экстеншена Copilot. Меня тут не беспокоит потенциальная смерть Cursor (а как мы знаем давно строить бизнес поверх чужого продукта — штука опасная). Я так-то вообще курсором пока не проникся, мне хватает Roo + наш Code Assistant, который наконец-то заменил мне Codeium (TIL он теперь windsurf)

Мне стало интересно, а что там в мире JetBrains происходит? Вижу, что рядом ребята сидят и держат открытыми Idea и Cursor/Roo. Одно для кодинга, второе для вайбинга. Гуглёж подсказал, что пилится свой агент Junie, но что там под капотом? Какая моделька? И какая бы она прекрасная не была — хочется же менять и пробовать разное. И для NDA локальные модельки нужны.

В общем если кто в курсе — покидайте статьи/доклады, что там у JB, какой курс.

16 мая 2025 г.7.7K просмотров

Все побежали и мы побежали

Ну как, выбор между Roo и Cline сделали? На Claude, небось? Мемори банки собрали? В своей продукт добавили агента? А моделька в продукте у вас какая — Qwen или DeepSeek? Как так нет локальной модели, а куда вы будете грузить пользовательские данные? А как тюнили под задачи, RAG? А MCP-сервер уже запилили? В опенсорс его закинули?

Что ж так быстро-то всё меняется, выдохнуть некогда. Архитектуркой бы позаниматься, долги позакрывать. Но некогда. Рынок требует AI. Надо пережить эту волну, но кто бы знал, какая будет следующая.

13 марта 2025 г.8.8K просмотров

Все так хвалят Cursor, но почему-то никто не пишет про проблемы с Remote SSH.

Есть разный набор танцев с бубном, которые вроде как позволяют что-то завести (например, попробовать поставить версию постарше, до блокировок от Microsoft), но как-то оно попахивает.

Останусь пока на VSC + Roo + Codeium

15 февраля 2025 г.11K просмотров

Спасибо, гпт! А я годами сохранял во временный файл

2 января 2025 г.9.0K просмотров

Наверное самая впечатлившая (и даже пугающая) меня технология из 2024 — это нейропереводы видео в Яндекс Браузере. Да, в 2023 уже был у нас крутейший HeyGen, который даже оставлял голос и синхронизировал движение губ. За деньги. Но вот у нас массовый и бесплатный перевод закадровым голосом по кнопке. Всё ещё не могу отделаться от ощущения, что на самом деле это сидят синхронисты на зарплате и никакой технологии под капотом нет.

Вот открываю свежее видео от MPJ (да, он вернулся и запустил курс по D3.js и data visualization), хохмы ради жму кнопку перевода и меня взрывается голова, потому что так не может быть, потому что ещё вчера мы максимум могли получить только корявеший перевод субтитров, а сегодня робот читает с выражением и не пасует перед техническими терминами.

Думаю, что смотреть так англоязычные видео по кодингу пока не стоит, но вот когда этот пока закончится и дети даже не будут думать учить языки? Когда я сам сдамся и перестану слушать в оригинале, потому что ну зачем?

31 декабря 2024 г.4.7K просмотров

Технические итоги года

Мне в Яндексе повезло попасть в команду, которая живёт в Гитхабе. Редкий случай для компании, мы не держим код в огромном общем монорепозитории (но мне иногда хочется переехать в свой маленький). И всё то бесконечное количество работы, сделанное за год — вот оно, на зелёном ковре с серыми клеточками отпусков и выходных. Было много работы, было много кода.

Основным рабочим направлением в этом году стала изоляция пользовательских (чужих) скриптов в node.js и в браузере. Копал весь год, пробовал, собирал знания в доклады. Начал обкатывать тему ещё весной в Алматы, бета-версию прокатил в Уфе и финализировал уже как надо в Петербурге на юбилейном Субботнике. Редкий случай для меня, когда за доклад совершенно не стыдно.

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

Гаджеты года

В конце прошлого года купил стимдек. Железка очень прикольная, но игры опять меня не затянули. Продал. Уж не знаю, хорошо это или плохо, но игры скорее меня утомляют, чем дают удовольствие. Впрочем, Portal 2 был не плох и не забрал много времени.

Весной немного сломался айфон. Телефон уехал на пару месяцев в гарантийный ремонт и пришлось выбирать с чем теперь ходить. Выбрал Pixel 7 и стойко держался. Как только ремонт закончился — тут же перепрыгнул обратно. Причины: ну во-первых Pixel 7 это лопата. Большая и скользкая. А я люблю пользоваться телефонами без чехла (в чехле это какая-то мега-лопата уже). Во-вторых интерфейсы какие-то... ну вот чуть чуть не доделанные. Тут бы шрифт покрупней, тут бы отступы побольше, тут бы анимации плавнее — и другое дело было бы. Кажется, можно сделать ещё один заход, но нужно выбрать что-то поменьше и поприятнее. В том числе тактильно поприятнее (как же хорош простой айфон 15 без чехла: матовая спинка, алюминиевые боковинки).

Оставшись без телефона я тут же лишился и часов. Умные часы мне не нужны, а вот трекать физическую активность я люблю. Пришлось окунуться в мир Garmin и теперь у меня на полочке стоят ряды коробочек с велокомпьютером, нагрудным датчиком и часами. Часами — потому что начал с Vivomove Trend. Красивые, но достаточно бесполезные часы без GPS. Зато со стрелками, которые вечно сбиваются со своих позиций когда трясёшься на велосипеде по гравийным дорогам. Поменял на Forerunner 255 на MIP. Что хочу сказать: заряжать часы не каждый день, а иногда — это свобода почище скайпа. Реально классно. Кнопки на часах это тоже очень здорово. Из минусов — относительно красивые часы Garmin делает только за очень большие деньги, даже думать страшно. Красивые интерфейсы Garmin не делает никогда. Так что хочу посмотреть ещё на Suunto Race S. Финны, не подкачайте.

Купил в этом же году Kindle Scribe на замену вечно разряженному айпаду. Scribe хорош всем, кроме веса. Если вам не нужно читать PDF, то лучше смотреть на версии поменьше. Перо в комплекте прикольное, но с каждым днём я достаю его всё реже. Не стоит того.

Рюкзак года

Достал с антресолей старенький Pacsafe Vibe 40 и так он мне зашёл в поездках! Фактически это чемоданчик на лямках, без кучи карманов, но с очень удобным большим отделением, которое открывается как тот самый чемодан. А большего мне и не нужно.

Что по фитнесу?

Отчаянно борюсь с возрастным замедлением метаболизма. Несмотря на две тренировки в зале в неделю плюс велосипед/сноуборд по выходным, буксую на месте, медленно подползая к психологической отметке в 100 кг. В принципе-то нормально на мои 190 см роста, если бы это были мышцы. Успокаиваю себя, что без спорта было бы хуже. Не затягивайте до 40, с нашей-то сидячей работой и вечными переработками.

Ну вот кажется и всё. За кадром осталось куча важного, про которое вам знать не нужно, да и не место этому в технических итогах.

Всех с наступающим, остаёмся на связи, держимся!

29 июля 2024 г.16K просмотров

Typescript теперь и в Node.js?

В свежем выпуске мы затронули нашумевший PR. Что случилось то? А случилось такое, что в Node.js подвезли в экспериментальном режиме загрузчик для ts файлов. Работает он очень просто (правда просто). В ноду вшивается SWC в виде скомпиленного для WASM бинаря. TS файлы прогоняются через SWC и из них отстреливаются типы. Всё. Enum и namespace не работают (о счастье). Никакие транспиляции трансформации не производятся. Просто отстреливаются типы.

Есть ли проблемы? Конечно есть. Например, нужно писать расширение файлов в импортах. Потому что импорт так работает бай дизайн.

Почему это круто и важно? Потому что транспиляция раздражает. Потому что хочется всё иметь из коробки и без настроект. Накидать ts-файлик и запустить.

В общем, неожиданно и очень приятно.

UPD Почитайте роадмап обязательно (спасибо @kravetsone, что напомнил)

12 июня 2024 г.7.9K просмотров

Бэкстейдж, кстати. В этот раз сильно меньше недоволен результатом, получилось упихнуть в полтора часа больше полезного и гораздо меньше воды. Уже не медь, но до золота ещё пара итераций нужна.

1 мая 2024 г.9.6K просмотров

Блуждающий ECONNRESET

Достаточно частый кейс в node.js-разработке, когда мы видим в логах блуждающую ошибку ECONNRESET при запросах в другой бэкенд. Начинаем искать, идём на вторую машинку, а там тишина, ошибок в логах нет. Как обычно отвечают — у нас всё хорошо, проблемы на вашей стороне.

Одна из причин это включенный keepalive. Идея keepalive в том, что мы можем переиспользовать коннекшены, не создавать новый коннекшн на каждый запрос. Клиент стучится на сервер, открывает коннекшн, удерживает его и при следующем заходе обращается к уже созданному коннекшену. А что произойдёт, если клиент удерживает коннекшн дольше, чем сервер? Т.е. сервер имеет например keepalive_timeout 4, а клиент создал http.Agent с timeout: 5? Мы и получим тот самый ECONNRESET.

И даже при равных значениях можно достаточно легко войти в состояние гонки:

import http from 'node:http';

const server = http.createServer((req, res) => { res.end('some stuff') });

server.keepAliveTimeout = 5000; //default

server.listen(1337, '127.0.0.1', startSendingRequests);

function startSendingRequests() { const keepAliveAgent = new http.Agent({keepAlive: true, timeout: 5000});

setInterval(() => { http.get('http://127.0.0.1:1337', {agent: keepAliveAgent}, (res) => { res.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); }).on('error', (e) => { console.error(`problem with request: ${e.message}`); }); }, 5000) }

Как решить проблему? Во-первых, если это возжно нужно покрутить таймауты. На клиенте таймаут должен быть меньше чем на сервере. Это даст возможность клиенту закрыть соединение самостоятельно, не дожидаясь ошибки.

Во-вторых, документация node.js предлагает такой паттерн ретрая:

.on('error', (err) => { // Check if retry is needed if (req.reusedSocket && err.code === 'ECONNRESET') { retriableRequest(); } });

UPD

И конечно важно помнить, что причины, по которым коннекшен может быть закрыт со стороны сервера — разные. Таймаут keepalive лишь один из случаев.