❌

Normal view

Как Go выбирает механизм defer: open-coded, stack и heap

Про defer в Go до сих пор говорят, что он медленный и в горячем коде ему не место. Когда-то так и было: до Go 1.13 каждый defer означал аллокацию в куче. Но с тех пор компилятор научился реализовывать его тремя способами: open-coded, stack и heap. Первые два почти ничего не стоят, а в кучу defer попадает совсем не там, где обычно думают. Разбираемся, как компилятор выбирает между ними, почему defer в цикле всегда дорогой, а рекурсия, горутины и замыкания с захватом переменных на самом деле не страшны, и как посмотреть решение компилятора одной командой.

Читать далее

Не давайте агенту docker.sock: как я сделал для ИИ отдельный вход в свой Docker-менеджер

Я пишу d9c, терминальный менеджер Docker для удалённых серверов, и однажды заметил, что через него к моим серверам ходит уже не только я, но и Claude Code. Таблицы для людей агенту не подходят. Ему нужен JSON, ограничение на объём вывода, чёткая граница между «посмотреть» и «сломать» и человек, который подтверждает удаление. Рассказываю, как сделал для агентов CLI-режим, MCP-сервер и десять skills, почему инструментов двенадцать, а не сорок, и как агент всё-таки удалил стейджинг, не спросив меня, хотя задумано было ровно наоборот.

Читать далее

Остатки нельзя обороты

IT драма с элементами комедии

Фриланс манит свободой — к черту офис! Теперь ты сам себе начальник! Однако свобода эта обманчива. Вот вроде сидишь ты, работаешь дома, тебе тепло и сухо, и начальства над тобой нет, и никто не мешает, ты один... совсем один. И отвечаешь за все ты. А время уже далеко за полночь, А код выкидывает исключения, а Django ORM отказывается вывозить нагрузку, а все варианты архитектуры сулят скорее минусы, а таймер биржи неумолимо тикает. Тик‑тик‑тик... И нужно уже что‑то решать, но помочь некому — психов нет.

Читать далее

Пишу разбор демок CS2 на вахтах: Go‑парсер, ИИ без фантазий и грабли Laravel

Я работаю в авиации, езжу на вахты, у меня ипотека и семья — и по вечерам после смены пишу платформу для тренировок в CS2. Внутри: Go-парсер, который разбирает демку на 350 МБ за 4 секунды, ИИ-разбор, где факты считает код, а модель только объясняет, тактическая доска на Reverb и пачка граблей Laravel, которые стоили мне вечеров.

Читать далее

UN condemns U.S. economic embargo of Cuba though more nations sit out amid Trump push

The U.N. General Assembly condemned the U.S. economic embargo of Cuba for the 34th year on Wednesday, even as Washington's campaign to influence the outcome led to a number of countries voting against the resolution or sitting out the decision for the first time.

Как я устал от VPN‑клиентов на 300 МБ ОЗУ и написал свой TUN‑клиент на чистом Rust (Unbihex)

Всем привет! Последние пару лет экосистема обхода блокировок развивалась по принципу «больше фич — жирнее обертка». Большинство популярных десктопных и мобильных клиентов сегодня — это либо тяжелые комбайны на Electron/Flutter, либо графические обертки над ядром Xray или sing‑box через gomobile и C‑FFI, которые тянут за собой рантайм Go, сборщик мусора и жрут от 200 до 400 МБ оперативки просто в фоне.

Когда у тебя слабый ноутбук, офисная машина или телефон, на котором открыта пара тяжелых приложений, лишние 300 МБ под один только VPN начинают ощутимо бить по системе. А если речь идет об iOS, где системный лимит на сетевые расширения (PacketTunnelProvider) составляет жесткие 50 МБ, такие клиенты регулярно падают по OOM (Out Of Memory) при попытке загрузить крупные гео‑базы.

В один прекрасный день мне это надоело. Я решил взять всё в свои руки и написал с нуля собственный кроссплатформенный TUN‑клиент и сетевое ядро на чистом Rust без единой сторонней прослойки. Встречайте — Unbihex (названный в честь гипотетического 126-го элемента унбигексия). Сейчас он потребляет 18 МБ ОЗУ в режиме TUN (и 12 МБ в прокси), поддерживает полный стек современных протоколов и уже готов к продакшену.

Под катом — как это устроено под капотом, какие грабли пришлось собрать при работе с TUN под Windows и как удалось подружить ядро с популярными панелями.

Читать далее

ymcp, или как подружить агентов с YouTrack, если ты не админ

Всё началось с того, что я в очередной раз копировал описание задачи из YouTrack в Claude Code. Потом комментарии к ней. Потом ещё один комментарий, который кто‑то оставил, пока я копировал первые. Потом ждал, пока агент напишет код, открывал PR, возвращался в задачу, вставлял ссылку, менял статус на Fixed — и шёл за следующей.

В какой‑то момент я понял, что из всей этой цепочки самая бесполезная её часть — это я. Агент умеет писать код, YouTrack умеет хранить задачи, а я работаю буфером обмена с ногами.

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

Читать далее

Новинка «Высокопроизводительный Go. Руководство по оптимизации»

Привет, Хабр!

Сегодня мы рады представить вам нашу очередную новинку, которая украсит полку профессионального бэкенд-разработчика: «Высокопроизводительный Go. Руководство по оптимизации». Она продолжает сразу два направления нашей работы и ориентирована как на современных бэкендеров, всё активнее переходящих на Go, так и просто на ответственных разработчиков, желающих систематизировать проверенные практики повышения производительности. Книга сложилась из заметок и кода, над которыми много лет работал Александр Ставонин – выдающийся специалист по Go, C++, IoT и высокопроизводительным вычислениям. В своё время Александр давал на Хабре подробное интервью для компании Getmatch, в котором рассказывал о личном опыте обустройства в Сингапуре. Англоязычные черновики книги, которые легли в основу русского издания, выложены на сайте goperf.dev.

Читать далее

Africa’s ‘unprecedented’ Ebola outbreak could reach UK, says top health official

28 October 2026 at 12:37

Jean Kaseya, of the Africa CDC, warns of the illness spreading like Covid unless more funding is secured to increase preparedness and possible treatment

The “unprecedented” spread of the Ebola outbreak means it could reach the UK and other countries, according to one of Africa’s top health officials.

As the current outbreak reached 10,000 cases, with almost 5,000 deaths, Dr Jean Kaseya, director general of the Africa Centres for Disease Control and Prevention (CDC), compared the outbreak to the Covid pandemic, which first took hold in China before spreading to countries across the world, claiming millions of lives, and ravaging health systems and economies.

Continue reading...

© Photograph: Sodiq Adelakun/Reuters

© Photograph: Sodiq Adelakun/Reuters

© Photograph: Sodiq Adelakun/Reuters

Africa’s ‘unprecedented’ Ebola outbreak could reach UK, says top health official

28 October 2026 at 12:37

Jean Kaseya, of the Africa CDC, warns of the illness spreading like Covid unless more funding is secured to increase preparedness and possible treatment

The “unprecedented” spread of the Ebola outbreak means it could reach the UK and other countries, according to one of Africa’s top health officials.

As the current outbreak reached 10,000 cases, with almost 5,000 deaths, Dr Jean Kaseya, director general of the Africa Centres for Disease Control and Prevention (CDC), compared the outbreak to the Covid pandemic, which first took hold in China before spreading to countries across the world, claiming millions of lives, and ravaging health systems and economies.

Continue reading...

© Photograph: Sodiq Adelakun/Reuters

© Photograph: Sodiq Adelakun/Reuters

© Photograph: Sodiq Adelakun/Reuters

Go в продакшене 2026: как язык вырос из микросервисов

Привет, Хабр! На связи Илья Данилкин, тимлид в Авито Авто. В этом материале я собрал подборку важных новостей из мира Go. Разберём, откуда берутся типичные утечки горутин и чем встроенный в рантайм детектор принципиально отличается от uber-go/goleak. Посмотрим, как устроен механизм GOEXPERIMENT и какие эксперименты стоит попробовать. Измерим, сколько реально даёт флаг GOAMD64 на современном железе. А также расскажу, почему языковые модели перестали быть просто предметом обсуждения и стали участниками самого процесса разработки — от поиска уязвимостей до профилирования сборщика мусора.

Читать далее

Как мы перестали хардкодить модели: effort-маршрутизация, авто-выбор сложности, фолбэки и лимиты расходов

Самая дорогая строчка в микросервисе с LLM — model="gpt-4o". За ней тянутся свой ключ вендора, свои ретраи и счёт, который потом некому разобрать.

Расскажу об одной идее, которая это убирает: сервис не должен знать, какая модель ему отвечает. Вокруг неё четыре механизма: правила маршрутизации, автоматический выбор сложности, поведение при сбоях вендоров и контроль денег. Примеры — из нашего open-source шлюза Keystone (KTMS) на Go, но схему можно повторить в любом шлюзе.

Читать далее

Семь с половиной часов: как Go закрывал дыру в ключах eMudhra и что сделать у себя

17 октября Mozilla заблокировала восемь промежуточных CA eMudhra: их приватные ключи были меньше 256 и восстанавливались из сертификата за микросекунды. Команда Go выпустила 1.27.3 и 1.26.10 меньше чем за семь с половиной часов, и это первый релиз по новому треку URGENT.

Разбираем хронологию из поста Go Security и дополняем её: восстанавливаем слабый ECDSA-ключ на Go, объясняем, почему из-за кросс-подписей не помогает удалить корень, собираем deny-list по SPKI через VerifyConnection и разбираемся, что не так с отзывом сертификатов в Linux.

Читать далее
❌