История про то, как я три дня искал утечку памяти в Node-приложении, не нашёл — и был прав, что не нашёл. А ещё про то, что у каждого починенного пункта тут оказывался свой счёт: фикс памяти через месяц вернулся жалобой на скорость, а разбор скорости вскрыл третью проблему, о которой я не думал вовсе.
Читать далееСтенд: один nginx, одно HTTP/3-соединение, четыре одинаковых запроса подряд. Меряем размер сжатого блока заголовков в обе стороны.
Ответ (nginx → клиент): 131, 131, 131, 131 байт. Запрос (клиент → nginx): 246, 8, 8, 8.
Ответ — константа: сколько запросов ни повтори, столько же байт. Запрос со второго раза схлопывается в тридцать раз. В HTTP/2 к тому же серверу — та же константа.
Между тем динамическая таблица HPACK и QPACK и есть половина смысла обоих протоколов: повторяющийся заголовок отправляется один раз, дальше идут ссылки на номер. Клиент ей пользуется. Сервер не пользуется ни в одном из двух — в HTTP/2 выставляет её размер в ноль, в HTTP/3 не открывает encoder-поток вовсе.
Разбор по фиксированным тегам: nginx 1.31.3, quic-go, Cloudflare quiche, ls-qpack, Google QUICHE. Две реализации из пяти таблицу всё-таки ведут. И приёмная половина — та, которой сервер сам не пользуется, но обязан обслуживать, — в мае принесла nginx use-after-free с оценкой 9.2.
Читать далееРискую этой статьей обрушить свою карму в непроглядную бездну, но считаю, что тема важная, и ее надо обсуждать.
Во-первых, потому что мир меняется, нейронки с каждым годом становятся все умнее — намечается некий тренд на изменение самой сути работы многих специалистов. Во-вторых, это несправедливо, что на Хабре есть тысячи статей о тупости ИИ и превосходстве людей над машинами, но так мало статей с противоположным мнением.
Читать далееIQ — штука, которой принято либо хвастаться, либо доказывать, что это полная ерунда. Причём и то, и другое обычно делают люди, не открывавшие ни одной работы по теме. И вот что странно: про самый крупный и самый долгий эксперимент по изучению интеллекта на Хабре почти ничего нет.
Одна небольшая статья его вскользь упоминает — и, разумеется, проходит мимо самого интересного.
Сейчас исправим. Но сначала честно расставим гирьки на весах, иначе финал не сработает.
Читать далееСегодня, 13 августа DeepSeek выложил DeepSeek Harness v0.1 в Developer Preview. Открытый код, MIT, пакет @deepseek-ai/dsh в npm, запуск в одну строку.
Нюхаем, что вообще такое harness, какие виды его бывают и пытаемся разобраться зачем он нужен.
Выбрать свой молотокСегодня даже для небольшого бизнеса или образовательного учреждения «сервер» редко представляет собой одну физическую машину. Чаще в эту сущность упаковывают понятийно сразу несколько сервисов: файловое хранилище, веб‑сервер, базу данных и пр. Потому что запускать каждую службу на отдельном «железе» дорого, неэффективно и сложно в обслуживании. В этом случае на помощь приходит виртуализация — технология, позволяющая создать несколько изолированных виртуальных машин (ВМ) на одном физическом сервере.
Как выбрать правильную платформу, особенно когда у вас нет отдельного штата ИТ‑инженеров и огромного бюджета?
В нашей статье мы разберём ключевые критерии, на которые стоит обратить внимание при выборе системы виртуализации.
Читать далееВ какой-то момент у меня появилась задача от маркетинга автоматизировать кросс-постинг статей в соц.сети и, в принципе, задача довольно понятная и здравая.
Запрос был такой - сделать короткий анонс из готовой статьи в блоге для размещения в соц.сети, подготовить рерайты для площадок, прикрепить картинку, поставить UTM-метки и опубликовать все по каналам.
Т.к. задача рутинная, сразу возникла идея отдать ее агенту.
То есть, на входе статья в блоге, а на выходе Google Doc с короткими анонсами, рерайтами для Дзена и Spark, а далее публикация в Telegram и отложенные посты для остальных социальных сетей.
При первом же нормальном прогоне стало ясно что в этой задаче много подводных камней и заработало это все только когда накопившиеся ошибки начали превращаться в инварианты, проверки и стоп-факторы.
Короче, распишу все эти проблемы, может кому пригодится в работе, учитывая что маркетинг сейчас очень сильно хочет в ИИ.
Один DNS‑запрос. Пустой кеш. И 329 исходящих запросов вслед за ним.
Сначала я решил, что где‑то неправильно понял цифры. Потом полез разбираться и выяснил, что recursive resolver внутри делает намного больше работы, чем видно по обычному dig.
Разбираю, откуда берутся эти сотни запросов, при чём здесь CNAME, glue, DNSSEC, IPv6 PTR и почему разные версии BIND на одном и том же запросе могут отличаться почти в три раза.
Читать далееMASQUE — туннель, неотличимый от обычного HTTPS-трафика к Cloudflare, постквантовый VLESS, AmneziaWG, дотянутый до эталона. Всё это теперь не только в телефоне, но и прямо на роутере: отдельный Wi-Fi, весь трафик которого уходит в туннель. Рассказываю, как мое ядро sing-box-lx до этого доросло
Читать далееДавайте представим 45-летнего специалиста: обычный спец, не руководитель. Если это будет мужчина, то в текущих реалиях до пенсионного возраста ему ещё 20 лет. Если женщина, то 15. А с 2028 года общий пенсионный возраст составит 65 и 60 лет соответственно.
Много еще работы впереди, но именно где-то в этом возрасте сменить работодателя или профессию становится заметно сложнее.
Читать далееТрейс ИИ-агента можно открыть в обычном "дереве" и найти медленный вызов или спан с ошибкой. Но по дереву трудно восстановить логику запуска: сколько раз агент обращался к модели, какие инструменты вызывал, где повторил шаг и какой ответ в итоге увидел пользователь.
В Proto Observability Platform уже были дерево, граф, флейм-граф и другие представления трейса. Они продолжали решать инфраструктурные задачи, но ответы о поведении агента приходилось собирать вручную из десятков спанов, транспортных вызовов и повторяющихся тел сообщений. Мы увидели это сначала на OpenTelemetry Demo 3.0, затем при отладке собственного «AI-аналитика» в связке с нашим MCP-сервером.
В результате мы добавили отдельное GenAI-представление с четырьмя режимами: лентой, графом шагов, графом вызовов и чатом. Дальше покажем, на какой вопрос отвечает каждый режим, почему одного универсального графа оказалось недостаточно и какие дефекты реальной GenAI-инструментации пришлось учитывать.
Читать далееМожно ли сделать e2e тесты мощным инструментом раннего отлова багов, не потопив при этом CI и не всем не разругавшись?
Рассказываю, через что пришлось пройти, чтобы релизы были спокойные, пайплайны — зеленые, разработчики — довольные.
Как мы это внедряли, сколько сопротивления получили и что из этого выжило спустя четыре месяца.
Читать далееSOLID в реальном мире: LSP без квадратов и прямоугольников Дисклеймер: статья для разработчиков уровня junior и middle, которые знакомятся с принципами чистого кода и SOLID. Примеры кода — PHP 8.1+.
Читать далееКогда мы говорим про ПЛК, обычно представляем достаточно закрытое устройство: подключили модули ввода-вывода, написали программу на ST или LD, загрузили проект - и контроллер годами выполняет один и тот же цикл.
Но современные контроллеры все чаще совмещают PLC-runtime и Linux-среду, в которой можно запускать базы данных, MQTT, VPN, приложения на Python и C++, web-сервисы и даже контейнеры. Разберемся, зачем производители идут в эту сторону, что такая архитектура дает пользователю и какие новые риски создает.
Читать далееИсправить слово или запятую в статье можно за несколько секунд. Но на моём сайте после такой правки запускался полный выпуск: установка зависимостей, сборка Nuxt и админки, генерация страниц, перезапуск приложения и итоговые проверки.
Последний успешный полный workflow перед запуском новой схемы шёл 12 минут 53 секунды. Для изменений в коде это нормально. Для исправленной запятой — слишком долго.
Я разделил два разных выпуска
Читать далее99% посетителей сайта — НЕ ЛЮДИ.
И это не «подозрительный трафик», а буквально: из 1,28 миллиона отданных страниц живые люди посмотрели меньше шести тысяч. Чувак, который это заметил (разработчик благотворительной базы PatronView) — вывел формулу: на каждую страницу, увиденную человеком, приходится ещё ≋214 загрузок, которые никто никогда не увидит. Ну то есть вообще никто. Новая норма, просто не все ещё заметили что декорации сменились.
Дальше будет куча цифр, немного паранойи и шрифт, который врёт роботам в лицо.
Читать далееИнтуитивно любой разработчик понимает: чтобы выпуски проходили спокойно, нужно написать автоматизированные тесты. Чем больше тестов, тем спокойнее проходят выпуски. Или нет?)) В этой статье я поделюсь нашим опытом построения пирамиды тестирования. Надеюсь, что она понравится читателям и станет первой из цикла статей об автоматизированном тестировании. Нам есть что рассказать!
Читать далееИсследователи из немецкого Центра информационной безопасности имени Гельмгольца CISPA представили на конференции USENIX Security 2026 аппаратную уязвимость LoongLeak, обнаруженную в китайских процессорах Loongson 3A5000 и Loongson 3A6000. Непривилегированная программа может использовать её для извлечения оставшихся в кеше первого уровня данных других процессов, ядра операционной системы и гипервизора. Атака также возможна из контейнера или гостевой виртуальной машины.
Практическое значение уязвимости связано прежде всего с Linux и другим свободным ПО. Для LoongArch существует отдельный порт в основном ядре Linux, а Debian уже включил loong64 в число официальных архитектур с планом выпуска в составе Debian 14. Поддержку архитектуры также развивают другие Linux-дистрибутивы и проекты открытого системного ПО.
( читать дальше... )
Когда я перешёл на Mac, мне казалось, что с удалённой работой проблем не будет. RDP существует много лет, клиентов для macOS хватает, а подключение к Windows — давно решённая задача.
Проблема обнаружилась в тот момент, когда я подключил к MacBook внешний монитор.
Мне хотелось самостоятельно указать, на каких физических дисплеях должна открываться удалённая Windows‑сессия. Например, отдать под неё один или два внешних монитора, а экран ноутбука оставить macOS. Или, наоборот, запустить Windows только на встроенном дисплее. Я перебрал доступные варианты, но не нашёл приложения, в котором можно было бы нормально настроить такую схему: не просто включить режим «использовать все мониторы», а сопоставить физические дисплеи macOS с виртуальной раскладкой Windows.
Так появился первый прототип будущего Selective Remote.
Читать далееСколько бы правил валидации я ни закладывал в CRM, они всегда упираются в один тупик: классическая логика умеет проверять процесс, но не умеет понимать контекст.
Обязательные поля заполнены, SLA соблюдён, формальный порядок сохранён — для детерминированных правил CRM всё идеально. Но что на самом деле произошло в коммуникации и почему лид оказался в «корзине», жесткие if/else увидеть не способны. Свести сложный человеческий диалог к SQL-условию без ложных срабатываний невозможно.
Появление LLM и стандартов вроде MCP дало инструмент, который наконец-то умеет работать с неструктурированным смыслом. В ESM-CRM я добавил второй слой контроля: AI QA разбирает контекст, сверяет его с реальным статусом и передает подозрительные кейсы руководителю.
При этом я сразу зафиксировал жесткое архитектурное ограничение: AI только подсвечивает аномалии, но принципиально не имеет права менять данные в CRM.
В статье пошагово разбираю всю цепочку: от сборки MCP-сервера и подключения к Yandex AI Studio до асинхронных воркеров, валидации JSON-схем и логики event-driven запуска.
Читать далее