Обновить
78.63

Отладка *

Поиск и устранение ошибок в коде

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

На что кодинг-агенты тратят наши токены

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

На прошлой неделе я попросил Claude устранить однострочный баг. Ему понадобилось 23 тысячи токенов. Потом тот же баг я попросил устранить Gemini. Он потратил 350 тысяч токенов. Да уж, на такое невозможно закрывать глаза.

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

Вопрос

При работе с этими моделями мы платим за токены. Токены — это довольно сложная тема. По сути, это блоки информации; 1 токен приблизительно равен 4 символам английского текста. Чем больше токенов передаётся в модель, тем больше мы платим.

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

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

Читать далее

Новости

Автоматическая модернизация кода на Go при помощи go fix

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

В релизе 1.26 языка Go, выпущенном в этом месяце, есть полностью переписанная подкоманда go fix. Go fix использует набор алгоритмов для обнаружения возможностей улучшения кода; часто для этого применяются более новые фичи языка или библиотеки. В этом посте мы сначала покажем, как использовать go fix для модернизации кодовой базы на Go. Во второй части статьи мы расскажем о лежащей в основе этой подкоманды инфраструктуре и её эволюции. В третьей части мы познакомим вас с тематикой инструментов анализа с «самообслуживанием», которые помогают мейнтейнерам модулей и организациям кодироовать собственные правила и рекомендации.

Читать далее

Заглянуть под капот ИИ-агентов: новый инструмент раскрывает «магию» Claude Code

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

Появился открытый инструмент Coding Agent Explorer — обратный прокси-сервер, который в реальном времени показывает всё общение между вашим ИИ-агентом (пока только Claude Code) и API Anthropic. Вы видите системные промпты, последовательность вызовов инструментов, токены (включая кэш), мышление агента шаг за шагом. Запускается за пару минут, работает локально, ключи маскируются автоматически.

Читать далее

Маленький bool, сулящий большие беды

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

Признаюсь, я питаю слабость к классическому DOOM. Игре уже 31 год, но благодаря открытому исходному коду она живёт на всём — от смартфонов до осциллографов. В силу разных обстоятельств я стал сопровождать несколько пакетов, связанных с DOOM, в Fedora Linux.

Перед каждым релизом Fedora проводит массовую пересборку всех пакетов — и в этот раз chocolate-doom её не пережил. Виновник этому — маленький bool.

Читать далее

«Важно доставлять, а не понимать» — идеальный способ работы с нейросетями

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

Последние месяцы я вижу одну и ту же сцену.

Кто-то начинает активно применять нейросети в разработке — и первые недели ощущение кайфовое:
код появляется быстрее, задач закрывается больше, “как будто полетели”.

А потом начинаются знакомые фразы:

Читать далее

На связи! Все, что вы хотели знать о Всемирном дне радио

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

13 февраля глобальное сообщество отмечало День радио. Этот знаменательный праздник на мировом уровне начали отмечать совсем недавно, с 2011 года, согласно резолюции 36 C/63 Генеральной конференции ЮНЕСКО. У нас в стране его празднуют вот уже более века, а сама дата приурочена к 25 апреля (7 мая) 1895 года, когда российский физик Александр Степанович Попов на заседании Русского физико-химического общества продемонстрировал «прибор, предназначенный для показывания быстрых колебаний в атмосферном электричестве».

Читать далее

Обзор утилиты STM32CubeMonitor

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

У ST есть утилита STM32CubeMonitor , которая позволяет по SWD/JTAG следить за конкретными переменными в физической памяти (REG, RAM, ROM) микроконтроллера.

Передаешь STM32CubeMonitor *.elf файл и подключаешь по SWD Target. Причем эта Tool(а) позволяет строить графики по значениями переменных в памяти. Это как утилита ArtMoney в случае с взломом компьютерных игр на PC, только для микроконтроллера.

STM32CubeMonitor удобна при отладке систем автоматического управления (ПИД регуляторы), цифровых фильтров, триггеров Шмитта и прочей DSP обработки.

Читать далее

Отладка STM32 программатором J-LINK по SWD

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

В разработке на микроконтроллерах широко распространены J-link программаторы-отладчики. Также доступно клиентское ПО для них Ozone. У J-link есть 20 пиновый разъём. На нем заложены пины для шины SWD и UART. SWD это - двухпроводной полудуплексный интерфейс для программирования микроконтроллеров.

В этой заметке я расскажу как прошить микроконтроллер STM32 по SWD шине при помощи программатора J-link.

Читать далее

Навайбкодился и спит: дыры в социальной сети для ИИ Moltbook

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

Что такое Moltbook, и почему она привлекла наше внимание?

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

Мы выявили принадлежащую Moltbook неправильно сконфигурированную базу данных Supabase, обеспечивающую полный доступ на чтение и запись ко всем данным платформы. Дыра позволила обнаружить 1,5 миллиона токенов аутентификации API, 35 тысяч почтовых адресов и личную переписку между агентами. Мы немедленно сообщили о находке команде Moltbook, которая с нашей помощью закрыла её в течение считаных часов, а все данные, доступ к которым был получен в процессе поиска и проверки исправления, удалены.

Читать далее

Ваша LLM стримит в никуда: разбираемся, как работать с дисконнектами в FastAPI

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

Что делает ваше FastAPI-приложение, когда клиент неожиданно закрывает соединение? По умолчанию — ничего. Если сервису важно экономить ресурсы (например, при работе с LLM), дисконнекты приходится обрабатывать явно, иначе GPU продолжит генерировать токены в пустоту.

В FastAPI есть встроенные механизмы отмены обработки запроса при дисконнекте клиента. Однако просто включить их недостаточно: нужно подготовить ваш код к этому. Иначе возможны проблемы: зависшие транзакции и сломанный пул соединений с БД.

Читать далее

Пишем историю игрушки:  восстанавливаем исходный код игры «Поле Чудес» 1992 года для MS-DOS

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

Летом мне попалась статья Вадима Башурова «История игрушки» 2011 года про создание игры «Поле Чудес» в далёком 1992 году — очень рекомендую, если вы, как и я, ее пропустили. Вадим упомянул, что исходники, к большому сожалению, утерялись. Мне очень захотелось восстановить их хотя бы в каком‑то виде, и я решил заняться этим на досуге.

Цель простая: кросс-компилируемый 16-битный .exe для MS-DOS, который повторяет логику оригинала и использует оригинальные ресурсы.

Статью я построю как небольшой туториал по реверсу 16-битных DOS‑приложений для начинающих и пройдусь по ключевым алгоритмам и тому, как в игре реализован игровой процесс. Желательны базовые знания 16-битного ассемблера и C.

Читать далее

Нет никаких доказательств успешности «браузерного эксперимента» Cursor

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

14 января 2026 года Cursor опубликовала пост «Scaling long-running autonomous coding» (https://cursor.com/blog/scaling-agents).

В этом посте компания рассказала о своих экспериментах с «автономной работой кодинг-агентов в течение нескольких недель» со следующей чётко поставленной целью:

понять, насколько далеко мы можем продвинуться в сфере кодинга в проектах, для выполнения которых командам разработчиков обычно требуются месяцы

Компания рассказала о подходах, которые она попробовала, о предполагаемых причинах их провала и о том, как решались эти проблемы.

Наконец она достигла этапа, на котором нечто «решило большинство наших проблем с координацией и позволило масштабироваться до очень больших проектов», что, в свою очередь, привело к следующему:

Чтобы протестировать эту систему, мы поставили перед собой амбициозную цель: создание веб-браузера с нуля. Агенты работали примерно неделю и написали больше миллиона строк кода в тысяче файлов. Исходный код можно посмотреть в GitHub (https://github.com/wilsonzlin/fastrender)

И здесь объяснения становятся немного запутанными и нечёткими. Компания заявляет, что «несмотря на размер кодовой базы, новые агенты всё равно понимают её и добиваются существенного прогресса» и что «сотни воркеров работают конкурентно, выполняя пушинг в одну и ту же ветвь с минимальными конфликтами», но ни разу не говорит, был ли проект успешным, работает ли он на самом деле. Можем ли мы сами запустить этот браузер? Это неясно, и компания ни разу не сделала подобных чётких заявлений.

Читать далее

Как удаление сорока строк увеличило производительность в 400 раз

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

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

На прошлой неделе моё внимание привлёк этот коммит:

858d2e434dd 8372584: [Linux]: Замена чтения proc для получения CPUtime потока на clock_gettime

diffstat выглядел интересно: +96 вставок, -54 удалений. В changeset был добавлен бенчмарк JMH из 55 строк, что означало реальное уменьшение кода продакшена.

Читать далее

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

Баги в ядре Linux в среднем прячутся по 2 года. Некоторые скрываются до 20 лет

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

Прямо сейчас в вашем ядре есть баги, которые не найдут ещё многие годы. Я знаю это, потому что проанализировал 125183 бага с отслеживаемой меткой Fixes: за 20-летнюю историю Git ядра Linux.

Прежде чем баг обнаружат, он в среднем живёт в ядре 2,1 года. Но в некоторых подсистемах ситуация гораздо хуже: для драйверов шины CAN этот срок в среднем составляет 4,2 года, для сетевого протокола SCTP — 4,0 года. Самый долгоживущий баг в моём датасете (переполнение буфера в ethtool) прятался в ядре 20,7 года. Баг, который я проанализирую в статье подробно (утечка refcount в netfilter), прожил 19 лет.

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

Читать далее

Как протестировать собственный контроллер памяти SDRAM на FPGA

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

В этой статье я хотел поделиться опытом тестирования своего контроллера динамической памяти на ПЛИС.

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

И в самом конце – примеры взаимодействия контроллера с памятью, снятые в отладчике во время работы. А также описание механизма адресации памяти.

Читать далее

Какой Может быть UART-CLI в Микроконтроллере (или Курс Молодого Бойца)

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

В этом тексте я бы хотел провести курс молодого бойца по использованию CLI в микроконтроллере. Расскажу про API той CLI, которая получилась у меня.

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

Читать далее

Пошаговая GDB отладка прошивки STM32 из консоли cmd

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

Порой бывает так, что вы скачиваете open-source репозиторий, а там нет файлов .project и .сproject для eclipse или файлы .project и .сproject есть, но они по каким-то причинам повреждены и IDE их не может открыть.

Тем не менее прошивка собирается командой make all. Ты ее прошиваешь и LED не мигает. Очевидно, что прошивка зависла. Где-то свалилась в HardFault_Handler.

В этом случае надо просто взять и запускать пошаговую отладку из консоли. Это классический способ разобраться, где же произошла осечка.

Читать далее

Ловушка профилирования

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

Оптимизация и профилирование C++: branchless-код проиграл обычному if-else. Что пошло не так? Разбираемся вместе.

Читать далее

Как Apple пропатчила «антеннагейт» в 20 байт

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

Хотите увидеть нечто любопытное? Вот, как устранили проблему «антеннагейта» на iPhone в 2010 году. 20 байт.

iOS 4.0: 8d ff ff ff 91 ff ff ff 95 ff ff ff 99 ff ff ff 9d ff ff ff iOS 4.0.1: 86 ff ff ff 98 ff ff ff 9e ff ff ff a7 ff ff ff b0 ff ff ff

Контекст: в 2010 году, когда выпустили iPhone 4, пользователи заметили, что если взять телефон определённым образом, то количество полосок сигнала сети падает с 5 до примерно 2. Спустя насколько недель компания опубликовала письмо, в котором свалила вину за это на неправильную формулу.

Читать далее

Эдсгер Дейкстра «О вреде оператора go to»

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

Публикуем новый полный перевод хрестоматийной статьи Эдсгера Дейкстры. Этот текст, опубликованный в 1968 году в журнале Communications of the ACM в формате письма в редакцию, заложил основы структурного программирования, впервые строго аргументировав отказ от оператора go to в пользу использования циклов и условных конструкций.

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