Ошибки в аналитических витринах часто скрываются за корректным числом строк и успешно выполненным SQL‑запросом. Разберём, как неправильные JOIN и разный уровень детализации данных искажают суммы, почему DISTINCT не всегда помогает и какие проверки позволяют находить такие проблемы.
Испанец Энрик Бернат Фонтладоса был кондитером в третьем поколении. На его долгий век (а он прожил 80 лет) пришлась Гражданская война и режим Франко. Но именно он стал знаменитым создателем шарообразных карамельных конфет на палочке, озолотивших и прославивших его на весь мир. Речь идет о Chupa Chups.
NBER в недавнем исследовании оценил накопительный эффект AI-инструментов: до 240% больше коммитов, но лишь 30% больше релизов. LinkedIn тем временем пришлось строить отдельную платформу для AI code review, а исследования разработчиков фиксируют сдвиг от написания кода к проверке результата.
В статье разбираемся, почему скорость генерации перестаёт быть главным ограничением и какая инженерная система нужна вокруг агентов: спецификации, общий контекст, ограничения, проверки и метрики до самого релиза.
Во время выпуска стали из конвертера в сталеразливочный ковш температура — 1600–1650°C. В зоне слива жара такая, что металл светится ярко-белым, и любое незащищённое оборудование обгорает мгновенно. Первые попытки сделать систему визуализации контроля наполнения стальковша в прямом смысле сгорели. А задача внести присадки ферросплавов вовремя, чтобы получить нужную марку стали, — никуда не делась.
Нам пришлось делать новую систему, которая бы справлялась с реальными температурами конвертерного цеха. Несгораемую систему. Которая должна была учитывать, как именно идёт выпуск стали.
Если коротко: сначала в конвертер загружают лом, заливают чугун и продувают его кислородом — так снижают содержание углерода и убирают примеси вроде фосфора и кремния. Затем полученный расплав переливают в ковш и добавляют ферросплавы, чтобы довести состав до нужной марки стали. Это по технологической схеме — в идеальных условиях.
В реальных условиях вносить все присадки разом — рискованно. Они могут сплавиться, покрыться шлаковой коркой и всплыть массивом. Когда корка разрушится и пойдут газы, расплав начнёт бурлить. В такой момент возможно выплёскивание металла из ковша. А рядом — люди и оборудование.
Что может быть сложного в электрокарнизе: купил, дождался доставки, отрезал лишнее, прикрутил, воткнул в розетку — готово. Мы тоже так думали, пока не побывали на производстве электрокарнизов. Оказалось, нужно учитывать, где встречаются шторы и где сходятся каретки, а уровень шума зачастую важнее остальных характеристик.
Мы проследили путь одного изделия — от конфигуратора на сайте до упаковки готового карниза. Рассказываем, как все устроено.
Бэкап запускается каждую ночь, отчеты приходят со статусом «успешно», а восстановиться после сбоя все равно может не получиться. Потому что резервная копия — это еще не готовность бизнеса к аварии.
В материале — как за один рабочий день, не трогая рабочую инфраструктуру, сделать тест восстановления, который вскрывает разрыв между «копия есть» и «бизнес снова работает», и показывает, сколько на самом деле займет возврат в строй.
Я инженер. Работаю с достаточно сложными проектами в нефтянке в роли СТО да проектного менеджера с упором на технические вопросы. Всякое там ТОиР, стройка, проектирование, производство, КиП и тому подобное
Как частный личный проект с год назад с товарищами задумали и начали делать 3–4 осевые ЧПУ станки небольших форматов. Итогом добрались до церковнославянского сайта‑справочника и нейросеток. Грабли банальные, если оглядываться назад и, видимо, для многих «в теме» очевидные. Но мы по ним оттоптались знатно. Думаю — будет еще много
Логика странная, но есть. 1. Для отработки конструкционных решений — нужно делать тесты. Для наших ЧПУ — что‑то с большим количеством мелких элементов, достаточно объемное и сложное. При этом недорогое и, чтоб не в мусор, если получается что‑то приятное. Ибо обидно выкидывать. Случайно наткнулись на православные иконы из дерева. Подходит. Пробуем. Для отработки нюансов с ЧПУ оказалось шикарно.
2. Проект нежданно расширился в сторону производства икон. Ибо интересно. Наловили кучу факапов и тонкостей с материалами, фрезами, химией. Будучи агностиками по сути, реально получаем удовольствие. Факт. Выяснилось, что тут свой большой объемный и непростой мир. Забавно. Кардинально пересмотрели некоторые инженерные решения по станкам. Cool
3. Проект расширился в сторону 3D моделирования. Выяснили, что 3D моделей хороших мало. При том количестве разного, что «в интернетах есть» — реально качественного и достойного очень немного. Есть свои тесные сообщества со своими правилами и ценами, репутацией, рейтингами и «чужим входа нет». Нейросетки не катят, как оказалось. Увы. «Все ручками». Поэтому жесткая и очень ресурсная наработка опыта работы с моделированием трехмерного разного.
4. Проект расширился снова, теперь в програминг для станков. Оказалось, что есть глобальная разница в G‑code для станка по разному сделанного. Одна и та‑же модель на одном железе дает кратно разные результаты. Итогом курсы, обучение, тесты, бессонные ночи и в 2 раза меньше машинного времени при сильно лучшем результате на той‑же «базе» Ибо 28 часов работы станка на одно изделие, и 15 таки существенная разница по всем понятиям.
5. И снова проект расширился. Теперь в сторону информационную. При всей «банальности» иконы как объекта, нашлась уйма нюансов. Оказалось, что все сильно непросто в части надписей, шрифтов, расположений элементов и тому подобных «мелочей». И даже в епархиях часто спорят и не знают, как «правильно» и «нужно». Итогом — сайт‑справочник, с надписями, словарем, шрифтами, написанием и кучей новых (для нас) знаний о старославянском.
6. И снова расширение. Потому что моделей уже сотни, вариантов куча, программы разные, фото‑видео копятся. Нужно это все каким‑то образом хранить, холить и лееять. Да и показывать надо порой выбранные вещи, что уже сложно в части оперативного поиска да выборки. Банальные каталоги где‑то на облаке не рабочее решение. Увы. И снова в помощь codex да grok, и снова очередной проект, теперь хранилища.
Палата представителей США одобрила законопроект H.R. 979, который обяжет автопроизводителей оснащать машины AM‑радиоприёмниками без дополнительной платы со стороны потребителей. В соответствии с положением под названием AM Radio for Every Vehicle Act of 2025 Национальное управление безопасностью движения на трассах США будет требовать от производителей включать AM‑радиоприёмники в новые автомобили в качестве стандартного оборудования. Теперь этот документ направят в Сенат США.
У каждого движения есть день, когда оно начинает становиться заметным в публичном поле. Для sheet-native computing этот день настал сегодня. Sheet-Native Computing Foundation опубликовал первый эпизод Sheet-Native Podcast — разобрали экономические аспекты переезда с традиционных облаков на Sheet-Native архитектуру.
В IT я больше двадцати пяти лет, в Android — почти пятнадцать. Оказалось, что этого мало.
Опыт никуда не делся. Я по‑прежнему знаю, чем интерфейс отличается от абстрактного класса и в чём разница между val и var. Но работать по‑старому стало тяжело. В требованиях всё чаще стояло не знание Kotlin и Compose, а умение вести разработку с ИИ. Не «пробовал Copilot», а именно вести: ставить задачу, разбирать результат, замечать, где инструмент уверенно врёт.
Вместо привычных TDD, BDD, DDD и FDD вокруг всё чаще звучали AIDD и SDD. Дошло до того, что на работе в карточках JIRA появилось обязательное поле «уровень использования ИИ» со значениями «полностью выполнено агентом» и «частично выполнено агентом». Варианта «выполнено самостоятельно» там нет. Намёк понятен.
Назад пути не было, пришло время меняться.
Учиться по статьям смысла нет — там всё получается. Нужен был настоящий проект, достаточно большой, чтобы в нём было где ошибиться.
Тему выбрал не случайно. Хотел разобраться не только в том, как пользоваться ИИ‑агентами, но и в том, как их делать. Так и вышло: агента я писал с помощью агента.
Получилось приложение. Через полгода оно лежит в Google Play, я пользуюсь им каждый день, и это уже давно не учебная работа. Дальше — как оно из неё выросло: через три смены курса (учебный проект стал продуктом, Gemini CLI сменился на Claude Code, маршрутизатор на два выхода стал графом), одну стену, в которую я въехал на полном ходу, и запуск, который не сработал.
Вот вам еще одна из самых полезных команд в Claude Code для продвинутых И одна из причин, почему я не фанат Codex Harness -- там такого нет
Это команда /rewind или esc + esc в Claude Code CLI
Эту команду можно воспринимать ее как Ctrl+Z для агента
Сначала вот вам короткое описание из документации Claude Code
Что делает /rewind в Claude Code
Claude Code автоматически создаёт checkpoint перед каждым новым ходом и сохраняет снимки файлов перед своими правками. Команда /rewind или двойное нажатие Esc открывает меню, где можно выбрать прошлое сообщение и:
восстановить только разговор;
восстановить только изменённые файлы;
восстановить и разговор, и файлы;
свернуть выбранную часть истории в summary.
Checkpoints сохраняются вместе с сессией, поэтому вернуться к ним можно даже после перезапуска Claude Code. Но если в гит намусорили уже другие сессии, то при измении файлов могут вылезать конфликты
Теперь про юзкейсы и объяснение уже от меня
В основе этой команды лежат две независимые переменные
Состояние git файлов в вашем репозитории
и Conversation — история текущего диалога в context window
При вызове команды /rewind вам предложат выбрать конкретное сообщение и затем выбор из 3-5 вариантов
Restore code and conversation Возвращает и файлы, и диалог к выбранной точке Полезно, когда агент долго шёл не туда и оставил после себя плохие изменения. Продолжать поверх такого состояния смысла нет: контекст и файлы уже заполнены ошибочными попытками
Restore conversation Диалог откатывается, но код при этом остаётся Сценарий: баг уже исправлен за несколько шагов, но обсуждение бага больше не нужно. Возвращаем разговор до него — следующая итерация видит чистую историю и при этом сохраняет исправленные файлы Полезно и при параллельной работе над одним main
Restore code Откатываются только файлы, а разговор остаётся Так можно признать решение неудачным, стереть его из репозитория и продолжить обсуждение в том же контексте Это чище, чем заставлять агента по памяти выискивать и удалять свои изменения
Summarize
Summarize from here Сжать сообщения после выбранной точки
Summarize up to here — сжать всё до точки, оставив последние сообщения дословно /compact подводит итог всей сессии В этих сценариях Claude Code делает форк диалога
И ещё есть просто Fork Как и в случаях с саммари — старая ветка не стирается: restore code and conversation и restore conversation создают форк
В прошлых статьях я тезисно рассказывал о своих роботах для сбора клубники. Теперь хотелось бы показать их подробнее и постепенно разобрать программную часть проекта — от относительно простых вещей до технического зрения, работы манипулятора и непосредственно поиска и сбора ягоды.
В этой статье начну с мобильной платформы и довольно простой задачи: заставим робота самостоятельно пройти заданный маршрут.
11 сентября 2026 года вышла стабильная версия браузера Microsoft Edge 153 для Windows 10/11, macOS и Linux. Последнее обновление содержит исправления ошибок, новые политики, патчи безопасности. Предыдущая версия проекта браузера была представлена 27 августа 2026 года. Согласно официальному трекеру проблем Microsoft Edge, в версии Edge 153 обнаружена ошибка, из-за которой некоторые веб-приложения могут зависать.
Добрый день, уважаемый читатель. Как и в других моих статьях, я решил в чем-то разобраться полностью с нуля.
В далеком 2017 году мне передали SD-карту памяти с диагнозом «сломана пополам, вдруг получится что-то с нее считать». Я честно пробовал: восстановил все оборванные дорожки, досконально проверил все соединения и на целостность линий, и на отсутствие замыканий. Положительного результата не получил – карта определялась, но с нулевым объемом. По этой причине она отправилась в ящик ждать «лучших времен».
Прошло 9 лет. В результате очередной уборки-инвентаризации, в ящике нашел эту старую карточку. Вот и настали «лучшие времена», подумал я.
В статье расскажу про микросхему памяти, как определял её адресное пространство, снимал полный дамп подручными средствами (STM32), как определял комбинацию блоков для построения образа, а также про поля Галуа, помехоустойчивое кодирование, вычисление синдромов и локаторов ошибок.
Однако почти сразу я столкнулся с тем, что встроенной оперативки моего роутера (256 МБ) перестало хватать. Запустил AdGuard Home, telemt‑форк под OpenWRT, далее попробовал поднять v2ray со списками разрешенных серверов — и тут же OOM безжалостно начал убивать процессы.
Кажется, что можно было купить новый роутер, с большим количеством оперативки — но роутеры с 1Гб или более RAM сейчас стоят недешево. И тут меня посетила идея: «А что если взять старый смартфон в качестве сервера?».
В этом гайде я расскажу, как пройти путь от выбора и покупки б/у телефона на торговой площадке до рабочего мини-сервера под управлением PostmarketOS с Podman и запущенным на нём AdGuard Home. А также как я облажался в процессе этого пути, прилично ограничив возможности моего сервера.
Классическая ситуация: Go-сервис падает с panic: runtime error: invalid memory address or nil pointer dereference, Nuxt-фронтенд логирует NUXT_UNHANDLED: unhandled rejection. Клиент видит лишь общее «что-то сломалось» — точный текст ошибки остаётся только в логах.
Решение — алертинг по логам. Связка VictoriaLogs + Vector + vmalert + Alertmanager следит за потоком, и как только приложение пишет panic, log.Fatal или NUXT_UNHANDLED, в Telegram уходит алерт. Ниже — как поднять эту связку в Kubernetes без лишней нагрузки на хранилище.
Представлен бесплатный аналог Photoshop — проект Photon, включая сборки под Windows 11, macOS и Linux. Энтузиаст создал это решение за $2000 с помощью GPT-6 Astra в режиме Extra High.
Приложение Photon Studio поддерживает слои, группы, маски, корректирующие слои, смарт-объекты, кривые и эффекты, умеет выделять объекты и удалять фон, а также предлагает инструмент «Пластика». PSD-файлы редактор открывает вместе со слоями и умеет сохранять обратно. Для удобства есть привычные горячие клавиши из Photoshop и поиск по командам.
Когда инженер проектирует распределённую систему, возникает естественное желание обеспечить сложную и хрупкую архитектуру максимально сильными гарантиями отказоустойчивости и согласованности данных. На первый взгляд кажется, что чем строже модель отказов, тем надёжнее система. Но отказоустойчивость – это не ручка громкости, которую можно выкрутить на максимум. Разные модели отказов решают разные задачи: в одном случае система должна пережить падение узла, потерю связи или зависание реплики, в другом – договориться о едином порядке событий, даже если часть участников ведёт себя так, что их сообщениям уже нельзя доверять.