Feed aggregator

Приложение течёт, а утечки нет: как оптимизатор картинок Next.js съел 4-гигабайтный VPS

Habr.com - Thu, 08/13/2026 - 23:11

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

Читать далее

У nginx сжатие заголовков одностороннее

Habr.com - Thu, 08/13/2026 - 23:02

Стенд: один 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.

Читать далее

Я заменил разработчиков нейронкой — и не пожалел. Простите

Habr.com - Thu, 08/13/2026 - 22:55

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

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

Читать далее

IQ и его термиты. Сотни тысяч умных детей и один неудобный вопрос

Habr.com - Thu, 08/13/2026 - 22:00

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

Одна небольшая статья его вскользь упоминает — и, разумеется, проходит мимо самого интересного.

Сейчас исправим. Но сначала честно расставим гирьки на весах, иначе финал не сработает.

Читать далее

Что такое Harness и с какими моделями его едят?

Habr.com - Thu, 08/13/2026 - 21:58

Сегодня, 13 августа DeepSeek выложил DeepSeek Harness v0.1 в Developer Preview. Открытый код, MIT, пакет @deepseek-ai/dsh в npm, запуск в одну строку.

Нюхаем, что вообще такое harness, какие виды его бывают и пытаемся разобраться зачем он нужен.

Выбрать свой молоток

Выбор платформы виртуализации для малых инсталляций

Habr.com - Thu, 08/13/2026 - 21:42

Сегодня даже для небольшого бизнеса или образовательного учреждения «сервер» редко представляет собой одну физическую машину. Чаще в эту сущность упаковывают понятийно сразу несколько сервисов: файловое хранилище, веб‑сервер, базу данных и пр. Потому что запускать каждую службу на отдельном «железе» дорого, неэффективно и сложно в обслуживании. В этом случае на помощь приходит виртуализация — технология, позволяющая создать несколько изолированных виртуальных машин (ВМ) на одном физическом сервере.

Как выбрать правильную платформу, особенно когда у вас нет отдельного штата ИТ‑инженеров и огромного бюджета?

В нашей статье мы разберём ключевые критерии, на которые стоит обратить внимание при выборе системы виртуализации.

Читать далее

Почему кросс-постинг в соцсети оказался задачей про state, idempotency и битую кириллицу

Habr.com - Thu, 08/13/2026 - 21:37

В какой-то момент у меня появилась задача от маркетинга автоматизировать кросс-постинг статей в соц.сети и, в принципе, задача довольно понятная и здравая.

Запрос был такой - сделать короткий анонс из готовой статьи в блоге для размещения в соц.сети, подготовить рерайты для площадок, прикрепить картинку, поставить UTM-метки и опубликовать все по каналам. 

Т.к. задача рутинная, сразу возникла идея отдать ее агенту.
То есть, на входе статья в блоге, а на выходе Google Doc с короткими анонсами, рерайтами для Дзена и Spark, а далее публикация в Telegram и отложенные посты для остальных социальных сетей.

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

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

Читать далее

Один DNS‑запрос породил 329 запросов. Я полез разбираться, куда они все ушли

Habr.com - Thu, 08/13/2026 - 21:36

Один DNS‑запрос. Пустой кеш. И 329 исходящих запросов вслед за ним.

Сначала я решил, что где‑то неправильно понял цифры. Потом полез разбираться и выяснил, что recursive resolver внутри делает намного больше работы, чем видно по обычному dig.

Разбираю, откуда берутся эти сотни запросов, при чём здесь CNAME, glue, DNSSEC, IPv6 PTR и почему разные версии BIND на одном и том же запросе могут отличаться почти в три раза.

Читать далее

От десктопа к Android и в роутеры

Habr.com - Thu, 08/13/2026 - 21:28

MASQUE — туннель, неотличимый от обычного HTTPS-трафика к Cloudflare, постквантовый VLESS, AmneziaWG, дотянутый до эталона. Всё это теперь не только в телефоне, но и прямо на роутере: отдельный Wi-Fi, весь трафик которого уходит в туннель. Рассказываю, как мое ядро sing-box-lx до этого доросло

Читать далее

Пенсия всё позже, а карьерный потолок всё раньше. Где работать человеку после 45?

Habr.com - Thu, 08/13/2026 - 21:19

Давайте представим 45-летнего специалиста: обычный спец, не руководитель. Если это будет мужчина, то в текущих реалиях до пенсионного возраста ему ещё 20 лет. Если женщина, то 15. А с 2028 года общий пенсионный возраст составит 65 и 60 лет соответственно.

Много еще работы впереди, но именно где-то в этом возрасте сменить работодателя или профессию становится заметно сложнее.

Читать далее

От спанов к сценарию агента: зачем мы добавили GenAI-представление трейса

Habr.com - Thu, 08/13/2026 - 21:04

Трейс ИИ-агента можно открыть в обычном "дереве" и найти медленный вызов или спан с ошибкой. Но по дереву трудно восстановить логику запуска: сколько раз агент обращался к модели, какие инструменты вызывал, где повторил шаг и какой ответ в итоге увидел пользователь.

В Proto Observability Platform уже были дерево, граф, флейм-граф и другие представления трейса. Они продолжали решать инфраструктурные задачи, но ответы о поведении агента приходилось собирать вручную из десятков спанов, транспортных вызовов и повторяющихся тел сообщений. Мы увидели это сначала на OpenTelemetry Demo 3.0, затем при отладке собственного «AI-аналитика» в связке с нашим MCP-сервером.

В результате мы добавили отдельное GenAI-представление с четырьмя режимами: лентой, графом шагов, графом вызовов и чатом. Дальше покажем, на какой вопрос отвечает каждый режим, почему одного универсального графа оказалось недостаточно и какие дефекты реальной GenAI-инструментации пришлось учитывать.

Читать далее

Красное не мёржим: как мы внедрили e2e тесты в разработку

Habr.com - Thu, 08/13/2026 - 20:59

Можно ли сделать e2e тесты мощным инструментом раннего отлова багов, не потопив при этом CI и не всем не разругавшись?

Рассказываю, через что пришлось пройти, чтобы релизы были спокойные, пайплайны — зеленые, разработчики — довольные.

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

Читать далее

SOLID в реальном мире: LSP без квадратов и прямоугольников

Habr.com - Thu, 08/13/2026 - 20:52

SOLID в реальном мире: LSP без квадратов и прямоугольников Дисклеймер: статья для разработчиков уровня junior и middle, которые знакомятся с принципами чистого кода и SOLID. Примеры кода — PHP 8.1+.

Читать далее

ПЛК перестает быть закрытой коробкой. Зачем контроллеру Linux?

Habr.com - Thu, 08/13/2026 - 20:50

Когда мы говорим про ПЛК, обычно представляем достаточно закрытое устройство: подключили модули ввода-вывода, написали программу на ST или LD, загрузили проект - и контроллер годами выполняет один и тот же цикл.

Но современные контроллеры все чаще совмещают PLC-runtime и Linux-среду, в которой можно запускать базы данных, MQTT, VPN, приложения на Python и C++, web-сервисы и даже контейнеры. Разберемся, зачем производители идут в эту сторону, что такая архитектура дает пользователю и какие новые риски создает.

Читать далее

Как я ускорил деплой контента в Nuxt: с 12 минут до 21 секунды

Habr.com - Thu, 08/13/2026 - 20:39

Исправить слово или запятую в статье можно за несколько секунд. Но на моём сайте после такой правки запускался полный выпуск: установка зависимостей, сборка Nuxt и админки, генерация страниц, перезапуск приложения и итоговые проверки.

Последний успешный полный workflow перед запуском новой схемы шёл 12 минут 53 секунды. Для изменений в коде это нормально. Для исправленной запятой — слишком долго.

Я разделил два разных выпуска

Читать далее

Роботы сожрали интернет, пока мы спали. И это вообще не метафора

Habr.com - Thu, 08/13/2026 - 20:33

99% посетителей сайта — НЕ ЛЮДИ.

И это не «подозрительный трафик», а буквально: из 1,28 миллиона отданных страниц живые люди посмотрели меньше шести тысяч. Чувак, который это заметил (разработчик благотворительной базы PatronView) — вывел формулу: на каждую страницу, увиденную человеком, приходится ещё ≋214 загрузок, которые никто никогда не увидит. Ну то есть вообще никто. Новая норма, просто не все ещё заметили что декорации сменились.

Дальше будет куча цифр, немного паранойи и шрифт, который врёт роботам в лицо.

Читать далее

Пирамида тестирования Avalonia-приложений на практике: 10 380 тестов на четырёх ОС перед каждым релизом

Habr.com - Thu, 08/13/2026 - 20:25

Интуитивно любой разработчик понимает: чтобы выпуски проходили спокойно, нужно написать автоматизированные тесты. Чем больше тестов, тем спокойнее проходят выпуски. Или нет?)) В этой статье я поделюсь нашим опытом построения пирамиды тестирования. Надеюсь, что она понравится читателям и станет первой из цикла статей об автоматизированном тестировании. Нам есть что рассказать!

Читать далее

В процессорах Loongson для Linux-систем обнаружили аппаратную утечку данных из L1-кеша

Linux.org.ru - Thu, 08/13/2026 - 20:23

Исследователи из немецкого Центра информационной безопасности имени Гельмгольца CISPA представили на конференции USENIX Security 2026 аппаратную уязвимость LoongLeak, обнаруженную в китайских процессорах Loongson 3A5000 и Loongson 3A6000. Непривилегированная программа может использовать её для извлечения оставшихся в кеше первого уровня данных других процессов, ядра операционной системы и гипервизора. Атака также возможна из контейнера или гостевой виртуальной машины.

Практическое значение уязвимости связано прежде всего с Linux и другим свободным ПО. Для LoongArch существует отдельный порт в основном ядре Linux, а Debian уже включил loong64 в число официальных архитектур с планом выпуска в составе Debian 14. Поддержку архитектуры также развивают другие Linux-дистрибутивы и проекты открытого системного ПО.

( читать дальше... )

 , ,

Как выбор двух мониторов превратился в собственный RDP/SSH‑клиент для macOS

Habr.com - Thu, 08/13/2026 - 20:09

Когда я перешёл на Mac, мне казалось, что с удалённой работой проблем не будет. RDP существует много лет, клиентов для macOS хватает, а подключение к Windows — давно решённая задача.

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

Мне хотелось самостоятельно указать, на каких физических дисплеях должна открываться удалённая Windows‑сессия. Например, отдать под неё один или два внешних монитора, а экран ноутбука оставить macOS. Или, наоборот, запустить Windows только на встроенном дисплее. Я перебрал доступные варианты, но не нашёл приложения, в котором можно было бы нормально настроить такую схему: не просто включить режим «использовать все мониторы», а сопоставить физические дисплеи macOS с виртуальной раскладкой Windows.

Так появился первый прототип будущего Selective Remote.

Читать далее

AI слушает звонки, сверяет CRM и ничего не меняет: как я собрал QA-агента через MCP

Habr.com - Thu, 08/13/2026 - 20:00

Сколько бы правил валидации я ни закладывал в CRM, они всегда упираются в один тупик: классическая логика умеет проверять процесс, но не умеет понимать контекст.

Обязательные поля заполнены, SLA соблюдён, формальный порядок сохранён — для детерминированных правил CRM всё идеально. Но что на самом деле произошло в коммуникации и почему лид оказался в «корзине», жесткие if/else увидеть не способны. Свести сложный человеческий диалог к SQL-условию без ложных срабатываний невозможно.

Появление LLM и стандартов вроде MCP дало инструмент, который наконец-то умеет работать с неструктурированным смыслом. В ESM-CRM я добавил второй слой контроля: AI QA разбирает контекст, сверяет его с реальным статусом и передает подозрительные кейсы руководителю.

При этом я сразу зафиксировал жесткое архитектурное ограничение: AI только подсвечивает аномалии, но принципиально не имеет права менять данные в CRM.

В статье пошагово разбираю всю цепочку: от сборки MCP-сервера и подключения к Yandex AI Studio до асинхронных воркеров, валидации JSON-схем и логики event-driven запуска.

Читать далее

Who's online

There are currently 0 users and 13 guests online.
Syndicate content