Обновить
128K+

Ненормальное программирование *

Извращения с кодом

258,38
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

89% моих трат на AI‑агентов — это кэш, а не генерация. Написал CLI, чтобы увидеть

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.4K

Я много работаю с кодинг‑агентами в Claude Code. В какой‑то момент поймал себя на том, что не представляю, на что уходят токены. Счёт в конце месяца есть, а из чего он складывается, непонятно.

Написал небольшую утилиту: она читает то, что Claude Code и так пишет на диск, и раскладывает расходы по статьям. То, что она показала, мне не понравилось.

Читать далее

Новости

Битва: Яндекс.Музыка vs Marshall или как лайкать треки с помощью кнопок наушников

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели14K

На повестке дня — сервис Яндекс.Музыки. Я меломан, у меня куча лайкнутых треков, и знаете что? Я устала. Устала их лайкать. На телефоне-то всё удобно: сверху висит плашка с названием трека и сердечком, и всё делается за секунду.

А вот десктопное приложение — это просто до свидания. Я амбассадор мака (это слово нынче тренд), и меня дико бесит, что для лайка трека мне приходится сворачивать вкладку или уводить фокус со страницы, на которой я работаю.

Но мы упрямые. (и немного наивные)

Идеальная постановка задачи: нажатием кнопки на наушниках ставить лайк на играющий трек Яндекс.Музыки, если он ещё не лайкнут, и показывать overlay с его названием. А если уже лайкнут — просто написать, что вы его уже лайкнули.

Реалии, к которым я пришла: слёзы, куча матов, экзистенциальный кризис от невозможности переопределить кнопку M на Marshall и, конечно же, гора костылей.

Если интересно — читайте дальше.

Читать далее

Конвейер из 10 агентов без строчки кода: три промпта, 40 минут и прогон при зале

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели12K

Недавно я вёл урок по прототипированию сервисов в Cursor. На рабочую часть ушло максимум 40 минут: 15–20 минут я рассказывал, 20–25 минут мы работали. Из этого времени сам Cursor чистыми отработал минут десять, остальное я говорил, копировал промпты и показывал на экране. На выходе получился репозиторий с прототипом редакционного конвейера для новостного сайта: оркестратор на 10 шагов, 10 ролей‑субагентов, 8 файлов правил, канон артефактов прогона. И тут же, при зале, мы прогнали цепочку целиком: от сырых источников до готового черновика новости и вердикта авто‑судьи. Прикладного кода: ноль строк. Каталога src/ в проекте нет вообще.

Сразу сниму ожидание магии. Мы не собирали работающий сервис: ни бэкенда, ни планировщика, ни деплоя. Прогон исполнили агенты Cursor по правилам, а не какая‑то запущенная система. Целью было показать практику: алгоритм будущей системы можно целиком проработать на уровне правил, до того как написана первая строка кода.

Читать далее

Мне было лень учиться, и я навайбкодил себе платформу для обучения

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.9K

Всё началось с прокрастинации. Готовился к собеседованиям: SQL, git, брокеры сообщений, Django, алгоритмы. Открывал статьи, читал полтора абзаца и через десять минут обнаруживал себя где угодно, только не за материалом. К третьему заходу стало ясно: в формате «читать и запоминать» это в меня не лезет.

Дальше сработала классика прокрастинации: не хочется решать задачу, строй инструмент для неё. Не хочется зубрить SQL, значит нужен тренажёр для SQL. Короткая теория, задачи прямо в браузере, повторение по расписанию. Вместо подготовки к собеседованиям я строил платформу для подготовки к собеседованиям.

Спойлер: план провалился, учиться всё равно пришлось. Но по дороге вышло кое-что интереснее самого тренажёра, про это и статья.

Смотреть, что вышло

Обфусцированный bash-скрипт CDN Akamai продаётся потребителям в розничных магазинах

Время на прочтение5 мин
Охват и читатели8K

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

Я не любитель кликбейтных заголовков, но понимаю, почему редакторам они так нравятся. Заголовок статьи, строго говоря, совершенно правдив, но, наверно, не в том смысле, в котором вы бы ожидали. Обфусцированный код на самом деле оказался пасхалкой, он распространяется в магазинах Uniqlo в рамках кампании Peace for All на замечательных футболках, дизайн которых разработала Akamai.

Читать далее

Почему у тебя не получится завайбкодить игру за час? Рассказываю на своем опыте

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

Всем привет! Меня зовут Саша, и я ML‑инженер. Современная разработка ML‑пайплайнов это уже давно не только обучение моделей. Хороший ML‑инженер, помимо всего прочего, пишет backend‑сервисы, настраивает Docker, занимается деплоем моделей, и иногда даже пишет автотесты для своих решений.

Поэтому за время своей работы я успел в той или иной степени столкнуться с задачами разных направлений разработки в айтишке. В связи с этим у меня возник резонный вопрос:

Узнать, что же там такое...

Две недели я делал народную карту заправок. Написать код оказалось самой скучной частью работы

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

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

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

Расскажу с самого начала, заодно покажу цифры и то, что получилось собрать.


Читать далее

От Triton Inference Server к NVIDIA Dynamo: как изменился inference для агентов в 2026

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели9.8K

Привет, Хабр! Меня зовут Александра, я Data Scientist в компании Рафт. В этой статье я разберу NVIDIA Dynamo — новый open‑source фреймворк для инференса и проверю, действительно ли его KV‑маршрутизация ускоряет агентные сценарии.

С появлением агентных систем требования к инференсу современных ML‑моделей существенно изменились. Если раньше типичная нагрузка была предсказуемой — один запрос, один ответ и фиксированная цепочка шагов, — то в 2025–2026 годах всё стало по‑другому. Агентные системы теперь выполняют множество последовательных и параллельных вызовов моделей и инструментов в рамках одной задачи.

Triton Inference server, ставший стандартом для инференса различных моделей от компьютерного зрения до LLM, появился ещё до массового распространения агентных систем, поэтому его архитектура проектировалась под классический сценарий. В ответ NVIDIA представила новый open‑source инференс фреймворк Dynamo, заточенный под LLM, рассуждающие модели и агентов.

Читать далее

Гео-аналитическая платформа вдвоём за 2,5 месяца, или история одной spec-driven разработки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.8K

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

Сначала я не верил, что это выдержит реальный масштаб. Опыт подсказывал: чем больше проект, тем быстрее AI путается в контексте и упирается в лимиты. Но через 2,5 месяца мы вдвоём запустили гео-аналитическую платформу, которую в до-AI эпоху строили бы годами. Это поменяло моё представление о разработке.

Как это устроено и что нужно, чтобы повторить, — под катом.

Читать далее

Ваш API-ключ утечёт. Как сделать так, чтобы это ничего не стоило

Время на прочтение4 мин
Охват и читатели8.1K

По данным GitGuardian (State of Secrets Sprawl), только за 2024 год в публичный GitHub утекло около 23,7 млн секретов — ключей API, токенов, паролей. Подавляющее большинство — не результат взлома, а обычные коммиты, логи и клиентские бандлы. Свежий ключ, попавший в публичный репозиторий, боты начинают пробовать меньше чем через минуту.

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

Читать далее

Продакшн на Laravel руками ИИ‑агента: честный отчёт о том, что работает, а что чуть не уронило прод

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.5K

Я аналитик, а не разработчик. Весь код для созданной нами платформы написал Claude Opus через Claude Code. Рассказываю без хайпа: как выглядит реальный workflow, где нейросеть незаменима, где она бесполезна, и какая инженерная дисциплина обязательна, чтобы это не превратилось в тыкву на боевом.

Сразу обозначу рамку, чтобы снять половину вопросов из комментариев.

Я не умею писать продакшн‑код. Я аналитик: читаю код, рассуждаю о системах, проектирую поведение — но профессионально не кодю. Тем не менее у нас в проде работает нетривиальное веб‑приложение, и каждую строчку кода написала нейросеть (Claude Opus, агент Claude Code). Моя роль — архитектор, продакт и QA. Второй ключевой специалист по разработке — дизайнер вебинтерфейсов, также освоивший Claude.

Это не пост «ИИ сам всё сделал, программисты не нужны». Скорее наоборот: я хочу показать, что инженерия никуда не делась — просто из неё вынули операцию «набирать код руками». Всё остальное (проектирование, компромиссы, ловля прод‑онли багов, дисциплина релизов) осталось на человеке. И вот об этом «остальном» — интереснее всего.

Читать далее

История одного зелёного теста: 97,8% mutation score и баг, который месяцами жил в проде

Время на прочтение4 мин
Охват и читатели6.7K

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

У меня есть внутренний дашборд, который собирает список рабочих копий проекта (git worktree) и показывает по каждой последнюю активность. В какой-то момент пришло сообщение: «разные ветки, а последнее сообщение и время везде одинаковые». Я открыл дашборд — и правда: каждая копия отображалась пять раз подряд, с идентичными данными. При этом тесты были зелёные, строчное покрытие — сто процентов, а мутационный прогон по этому куску показывал 97,8%. То есть все три метрики, которым принято доверять, дружно сказали «всё хорошо».

Читать далее

Паттерны доступа к данным, которые выбесят ваш процессор

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели14K

Представим, что у нас есть массив целых чисел. Какой будет самый медленный способ их просуммировать? Будет ли это складывание слева направо, в случайном порядке или как-то иначе? Чтобы ответить на этот вопрос, мы воспользуемся слабыми местами системы управления памятью и с нуля разработаем такой паттерн обращения к данным, по которому сложение будет происходить максимально долго.

Читать далее

Ближайшие события

PowerHTML

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели14K

Свой PowerPoint в одном файле: редактор презентаций на HTML, который делает презентации-HTML с работающими HTML-интерактивами. Один файл, офлайн, без аккаунтов. Вайбкодил учитель физики.

Ссылка в тексте.

Читать далее

Худший язык программирования всех времён /s

Уровень сложностиПростой
Время на прочтение28 мин
Охват и читатели52K

Есть на ютубе видео на пятьдесят минут с хвостиком, с гордым названием «худший язык программирования всех времён». Не удивлюсь, если вы подумаете, что оно про C++. Оно действительно про плюсы и я его смотрел где-то с полгода назад, ну как смотрел... пробежался на x2 с перемотками, мало ли что обиженный джун там наговорил, но добрый @alyokhin опять про него напомнил, и теперь я его посмотрел полностью. И знаете что самое неприятное? Если убрать интонацию обиженного джуна и оставить только аргументы, то процентов семьдесят там будет правды. Не «спорно», не «зависит от контекста», а буквально правда, которую любой разработчик, проведший с языком пару лет, подтвердит вам не задумываясь.

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

Жанр «почему C++ ужасен» на Хабре выжжен дотла и про Init-зоопарк, перегруженный static, vector названный неправильно, std::move который не move, супер медленный regex, медленный unordered_map вы всё читали раз по двадцать. Сам по себе список этих болей давно не новость, от себя добавлю, что все жалобы и примеры ниже - это следствия одного решения, и я к нему приду. Или открывайте спойлеры, там скрыта история, почему каждая часть языка получалась так, как получалась.

С++ is the best ever programming language

Как я научил ИИ-агента писать мой код, пока я не за компьютером

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.3K

Telegram-бот, который дёргает кодинг-агента на моей машине: ставлю задачу из метро — получаю готовый коммит в git.

Читать далее

Как вайбкодинг довел меня до депрессии, а потом привел к вайб‑инжинирингу

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели20K

Начнём с того, что по-настоящему «вайблю» я где-то с ноября 25 года. До этого моё общение с LLM строилось на копипасте в ChatGPT, DeepSeek, Gemini и обратно. Рука наловчилась, и я в целом не замечала, сколько времени это всё-таки сжирает. Казалось бы, лишнее действие.

Не сказать что я злоупотребляла общением, но когда ты начинаешь кодить, ты очень уверен в себе и думаешь, что всё делаешь правильно. А как только погружаешься в процесс, начинается это… синдром самозванца, выгорание и тревога. Не сочтите меня пессимистом, но всё так и было))

Пока я училась в университете, слава богу, ChatGPT был отсталой жабой, которая через раз выдавала код с ошибкой. Поэтому я морщила нос и старалась всё делать сама — и аминь, спасибо вселенной, что всё так и было. Иначе, мне кажется, сейчас я была бы не разработчиком, а унылым вайбером, который при слове «конструктор» или «указатели» просто представляет лего и какой-нибудь г. Санкт-Петербург.

А потом случилась революция. И моя компания решила не тормозить.

El pueblo unido jamás será vencido!

Делюсь опытом: ИИ-агент на Claude без LangChain и RAG — разбор архитектуры и развилок

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели7.1K

Делюсь опытом: собрал прод-агента на Claude для небольшой студии дизайна интерьера. Чат отвечает на Haiku 4.5, генератор концепций — на Sonnet 4.6, фото из Pexels вместо DALL-E. Без LangChain, без векторной базы, без RAG-фреймворка. Один файл main.py на 712 строк, два промпта. В статье разбираю развилки: почему именно так, на каких граблях постоял (порог кэша 4096 у Haiku, парсинг JSON-обёртки от Sonnet), где этот подход начнёт ломаться. Не «гайд от эксперта» — скорее дневник развилок.

Читать далее

Как уместить 26 типов виджетов, RTL и веб‑сокет в килобайты флеша ESP32 — и при чём тут ИИ

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Каждый мой проект на ESP32 заканчивался одинаково: микроконтроллер готов, датчики читаются, реле щёлкают — а дальше надо руками писать HTML, CSS, JS и протокол поверх веб‑сокета, чтобы увидеть пару графиков в браузере. На третий раз я решил, что хватит, и сделал библиотеку RisalDash: интерфейс описывается на C++ в несколько строк, а весь фронтенд и протокол генерируются сами и отдаются самим контроллером.

Читать далее

Четыре релиза без единой новой функции. Почему иногда архитектура важнее новых возможностей

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели6.7K

Четыре последних релиза моего проекта почти ничего не изменили для пользователя. Не появилось новых экранов, кнопок или возможностей. Зато именно за эти восемь дней проект пережил, пожалуй, самую большую архитектурную перестройку с момента своего появления. Рассказываю, почему иногда отказ от новых функций оказывается самым правильным решением. Статья большая и представлена как ретроспектива. Рассказывает о взрослении как в самом написании кода и подходу к разработке, так и о архитектурном.

Читать далее
1
23 ...