От HTML‑таймера к TypeScript. Как менялась Kapsula
У меня Kapsula началась с таймера рабочего дня. Один HTML‑файл, который написал ИИ. Открываешь, нажимаешь кнопку, он отсчитывает время. Потом гаснет экран телефона — и выясняется, что с напоминанием всё сложнее, чем казалось в браузере.Про будильники и устройство оболочки я уже рассказывал. С тех пор приложение дошло до версии 0.5, и задача немного сдвинулась. Теперь в нём можно запускать отдельные JavaScript‑ и TypeScript‑файлы, редактировать сохранённый код и возвращаться к своим данным после изменений.
PVS-Studio 8.01: OWASP Benchmark, поддержка JDK 25, Go 1.27 и многое другое
Вышел новый релиз PVS-Studio — 8.01. В нём: расширение поддержки OWASP, поддержка новых версий Java и Go и многое другое.OWASP Benchmark for JavaВ этом релизе мы проверили соответствие SAST-правил анализатора Java бенчмарку OWASP Benchmark for Java.
Пять стадий принятия ИИ: история болезни одного разработчика
В 1969 году психиатр Элизабет Кюблер-Росс выпустила книгу «О смерти и умирании». В ней она описала, как человек переживает неизбежное: отрицание, гнев, торг, депрессия, принятие. Писала она о неизлечимо больных пациентах, но модель оказалась настолько универсальной, что её теперь примеряют на что угодно: от расставания до повышения ставки по ипотеке.Сама Кюблер-Росс оговаривалась, что стадии не обязаны идти строго по порядку: их можно проскочить, к ним можно вернуться, на них можно застрять. Особенно застрять.Стадия 1. Отрицание: «Это просто T9 на стероидах»
Как сделать RAG-чат для сайта, который не выдумывает цены: пять решений из моего бота
С июня я делаю AI-чат для сайтов, который не выдумывает цены и не соглашается с клиентом во всём подряд. К пяти решениям из статьи я пришёл через ошибки.Зачем вообще ещё один чат-ботПо
Как посчитать статистику переписки на 500 тысяч сообщений в браузере и не увидеть ни одного
Переписка с близким человеком — одна из самых личных вещей на телефоне. А я делаю сервис, которому нужно её прочитать. Из файла экспорта получаются карточки: кто чаще пишет первым, как быстро отвечает, в какие часы вы на связи, какие словечки появились у пары и кто из вас их придумал. Просьба «загрузите переписку к нам на сервер» убила бы такой проект в день запуска, и правильно.Поэтому у «Чатограммы» одно жёсткое правило: всё считается в браузере, и по умолчанию сервер не видит ни одного сообщения
Каждый LLM-фреймворк описывает инструмент по-своему
Чтобы дать LLM доступ к своему коду, пишут инструменты (tools). Инструмент — это функция и всё, что модели нужно знать, чтобы её вызвать: имя, описание и схема аргументов.Потом те же инструменты приходится писать ещё раз. Первая версия сделана на tool() из AI SDK. В проекте появляется MCP-сервер, и инструменты переписывают под registerTool. Соседняя команда использует Genkit, и те же инструменты пишут в третий раз, через defineTool. Функции остаются прежними, меняется только обёртка.К тому же каждая обёртка привязана к своему фреймворку. tool() берётся из пакета ai, defineTool — метод экземпляра Genkit, registerTool
Когда разработчиков больше нуля, но меньше двух: как я держу планку продакшна в одиночку
Личный проект, ставший единственной работой: скрипты, которые умеют говорить "нет", ночные прогоны, которым запрещено чинить, и люди, которые смотрят туда, куда тесты не умеют.

