Обновить
512K+

Open source *

Открытое программное обеспечение

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

Разрушители мИИфов – тестируем Headroom. Правда ли умная прокся может сэкономить вам токены?

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

Признаю: в прошлой статье про тестирование Caveman я в конце написал, что такие инструменты, как RTK, действительно, могут помочь сэкономить токены. Я доверял самому принципу возможности экономии токенов, но не доверял конкретным цифрам эффективности, которые заявляет Headroom. Был уверен, что, садясь за тесты, скорее всего, увижу, не 60–95% экономии токенов, а типа 10% — или что-то такое. Но результат меня удивил в худшую сторону. Итак, тестируем Headroom вместе:

Читать далее

Claude Code умеет всё, кроме одного — слушаться вашу программу. Чиним это протоколом ACP

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

Claude Code, Codex, Gemini CLI — мощные штуки. Но живут они в терминале: вы открываете окно, печатаете задачу, смотрите, как агент думает, лезет в файлы, гоняет тесты. Для человека — отлично. А теперь представьте, что в это кресло перед терминалом нужно посадить не человека, а вашу программу: чтобы она сама ставила агенту задачу, видела каждый его шаг и могла остановить опасное действие до того, как оно случится.

Вот тут и начинается ACP — протокол, который позволяет любому коду управлять CLI-агентом.

Смотреть, кто за рулём

EVRTCK: тайловый дельта-кодек для удалённого рабочего стола — как мы убили H.264 для UI-контента

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

Я Артур Валиев, разработчик EVRT

Когда мы форкнули RustDesk и начали строить EvertyDesk — корпоративный удалённый рабочий стол с поддержкой Hyper-V, Proxmox, VirtualBox и умным агентом — первое, во что упёрлись, было видео.

H.264 — стандарт де-факто. TeamViewer, AnyDesk, Windows App — все используют H.264. Он работает. Но он lossy. И вот здесь начинается проблема, о которой в статьях про remote desktop обычно не говорят.

Когда оператор смотрит на терминал с git diff или читает трейс в VSCode — один размытый пиксель в букве это уже другой символ. H.264 при любом разумном битрейте вносит артефакты в области с резким контрастом. Точно туда, где у нас весь текст. Это неприемлемо.

H.264 в lossless режиме (QP=0, lossless profile) существует, но поддержка в декодерах — через пень-колоду, а для mostly-static контента предикторы рассчитанные под видео с движением дают нулевой выигрыш над тривиальным delta-кодером.

Нам не нужен motion estimation. Нам нужно: вот предыдущий кадр, вот текущий, вот список изменившихся тайлов, сожми только их.

Мы написали EVRTCK.

Читать далее

Rust 1.97.0: манглинг символов, вывод линкера и поддержка запрета предупреждений в Cargo

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

Команда Rust рада объявить о новом выпуске Rust 1.97.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.97.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску 1.97.0 на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что вошло в стабильный 1.97.0

redb.Identity: OAuth 2.1 / OpenID сервер на .NET, где протокол отделён от транспорта, по шине или вообще без сети

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

Есть три привычных способа сделать OAuth/OIDC в .NET, и каждый чем-то неудобен.

Первый — ASP.NET-привязанные решения (Duende IdentityServer, ASP.NET Identity, сэмплы OpenIddict). Мощно, но каждый эндпоинт — это HTTP-middleware. Захотелось дёрнуть token из воркера или из консьюмера шины? Поднимай HTTP-листенер и ходи через loopback. Хочешь протестировать конвейер выдачи токена в изоляции? Готовь WebApplicationFactory.

Второй — готовые IAM-платформы (Keycloak, Auth0, Okta). Богато по фичам, но это отдельный сервис со своим рантаймом, своей админкой, своей базой, своей моделью конфигурации и своим деплоем. Мультиарендно — да, встраиваемо — нет.

Третий — написать своё. И в третий раз за десятилетие переизобрести Code+PKCE, ротацию refresh-токенов, хранение согласий, отзыв сессий, защиту от replay в MFA, ротацию JWKS, шаринг ключей между репликами и backchannel-logout по RFC 8417.

Читать далее

Kadr: видеоредактор, в котором Claude Code монтирует рядом с тобой

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

Kadr: видеоредактор, в котором Claude Code монтирует рядом с тобой

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

Читать далее

Attack Replay: новый инструмент для воспроизведения и модификации трафика при тестировании СЗИ

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

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

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

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

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

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

Мы много раз сталкивались с этой проблемой, поэтому решили разработать Attack Replay — открытую утилиту для воспроизведения и модификации сетевого трафика при тестировании СЗИ. Она объединяет в одном интерфейсе функции нескольких популярных инструментов и автоматизирует рутинные операции, связанные с подготовкой и запуском тестов.

В статье покажем, какие задачи решает Attack Replay, как устроен инструмент и какие результаты он уже дал в реальных проектах. А в конце поделимся ссылкой на GitHub с исходным кодом проекта и набором готовых pcap-файлов.

Читать далее

89% моих трат на AI‑агентов — это кэш, а не генерация. Написал CLI, чтобы увидеть

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

Я много работаю с кодинг‑агентами в Claude Code. В какой‑то момент поймал себя на том, что не представляю, на что уходят токены. Счёт в конце месяца есть, а из чего он складывается, непонятно.

Написал небольшую утилиту: она читает то, что Claude Code и так пишет на диск, и раскладывает расходы по статьям. То, что она показала, мне не понравилось.

Читать далее

«dap-18» это не dap-18: номер версии протокола не фиксирует формат на проводе

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

Эта статья про один баг совместимости, который меня озадачил. Обе стороны честно объявляют версию протокола «dap-18», а байты на проводе не сходятся. Это не туториал по крипте и не показ репозитория - история про то, что строка версии - это не контракт совместимости, и про то, как это чинить, когда наткнулся.

Читать далее

Парсер C++ на своем DSL: попытка обогнать компилятор

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

Проекты растут. Кодовая база растёт. Время компиляции растёт вместе с ними и переходит все границы разумного.

В какой-то момент я решил: а что если попробовать написать свой компилятор? Пока только для разработки, не для прода. На замену Clang++/G++/CL.EXE.

Эта статья — о первом шаге на этом пути. О парсере C++, который я написал на своём DSL специально сделанном для этого изначально.

Матчинг запущен? Кооперация предложена?

Digital Points — программный осциллограф, так и не ставший стартапом

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

История о том, как внутренний программный инструмент для отладки вырос в проект, так и не ставший коммерческим, и почему в итоге мы выложили его в open‑source в надежде вдохнуть в него вторую жизнь. Заодно расскажу, что умеет этот инструмент.

TL;DR Digital Points — «программный осциллограф», инструмент для отладки систем реального времени. Может считывать переменные микроконтроллеров в реальном времени и по триггеру, математически обрабатывать их, измерять частотные характеристики, рассчитывать программные регуляторы. Пытались его коммерциализировать, не вышло, и теперь выкладываем в open‑source.

Читать далее

redb.Route — коннектор RabbitMQ: RPC, конкурирующие консьюмеры и dead-letter. Уходим от MassTransit

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

Про Kafka в этой серии уже было. Теперь — RabbitMQ, и с упором на то, как им пользоваться. Коннектор redb.Route.RabbitMQ — поверх официального RabbitMQ.Client 7.x, но писать вам придётся не «клиент», а маршруты, где весь брокер задаётся одной строкой-URI:

Читать далее

Take - минимальная система сборки на C++ с конфигом на TOML вместо Makefile

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

Я создал свою небольшую систему сборки проектов использующая TOML для конфигурации процесса сборки, на C++ 17

Читать далее

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

Вышел открытый игровой движок Godot 4.7 — подробный обзор нововведений

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

Godot — это 2D/3D игровой движок с открытым исходным кодом по лицензии MIT и большим сообществом, поддерживающий основные настольные и мобильные ОС, VR и веб (приставки с помощью сторонних компаний), ядро написано на C++, для скриптов поддерживается GDScript и C#, возможно подключение модулей практически на любом языке вплоть до Rust через GDExtension. Примеры игр — видеообзор 2025 года, 2024 года, 2023 года. Версия 4.7 вышла 18 июня 2026 года. Основные нововведения: поддержка HDR, магазин ассетов Asset Store, предпросмотр текстовых операций с шейдерами, новая нода для прямоугольных источников света, смещение трансформации нод Control, простой способ рисовать на текстурах, возможность создавать игры полностью на Android. Далее сделанный человеком (весь жирный шрифт проставлен вручную) перевод официального обзора нововведений с доступными объяснениями для новичков и ссылками на PR с исходным кодом на C++ для профессионалов.

Добро пожаловать в магазин ассетов. Библиотека ассетов была полезна, но отслужила свое. Пришло время уступить место новому Asset Store. Обновление привносит некоторые изменения, делающие просмотр ассетов более простым и приятным. Мы улучшили отображение ассетов и теперь вы можете увеличивать картинки из описания. Возможно вы не заметили, но что, если вы теперь можете видеть оценки ассетов? Потерялись в толпе бесконечных плагинов? Не уверены, как ориентироваться в свойствах объемных ассетов? Ответ уже здесь, прямо в магазине. За кулисами мы реализовали многопоточность. Теперь магазин ассетов может проводить определенные операции в фоновом режиме, не блокируя основной интерфейс редактора. Пока вы изучаете свой набор ассетов, кто-то расчищает путь и убирает помехи, чтобы вам было проще разобраться в происходящем. Загляните в магазин ассетов. Подробнее в PR. Авторы: Michael Alexsander

Читать далее

От сложности к простоте: как я переписал систему логирования Discord-серверов и сделал её в 10 раз проще

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

История о том, как сервис логирования Discord-серверов прошёл путь от сложной связки MySQL + PHP + Python до простого решения на Python + SQLite в одном Docker-контейнере — и почему упрощение стека того стоило.

Читать далее

Два AMD Strix Halo в AI‑инфраструктуре: 34 контейнера на одном, ~70 tok/s Qwen3.6 на другом

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

На узле моей AI‑платформы крутятся 34 контейнера: Dify, RAGFlow, векторные базы, мониторинг и SSO. Большой языковой модели среди них нет: основную генерацию стек получает по LAN с DGX Spark. На втором таком же мини‑ПК я отдельно поднял локальную Qwen3.6–35B‑A3B и прогнал серию замеров от 1K до 64K при контекстном окне 256K.

Обе машины — Beelink GTR9 Pro на Ryzen AI Max+ 395 (Strix Halo). Ниже — что эти коробки реально умеют: 117,4 ГиБ GTT после настройки ttm.pages_limit, p50/p95 локальных эмбеддингов и реранка, около 70 tok/s генерации через Vulkan/RADV и три грабли gfx1151.

Читать далее

Ошибка вендора. Фирменный Гамбит

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

Я немножко медиум. И меня часто посещают видения будущего. Их несколько. Я ясно вижу их во всех деталях и одно из них точно произойдет. Даже не сомневайтесь!

Начинаются они одинаково: однажды утром мы все просыпаемся, открываем глаза ...

Читать далее

Как мы внедрили модель зрелости QA в 200 командах: от оценки до автоматизации

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

Доброго времени, Хабр! Меня зовут Эдвард Аджей, я QA Head в Т-Банке. Год назад в одном из управлений было 17 команд с нулевым уровнем зрелости QA. Возникали сложности с автоматизацией, не велась работа с метриками качества и не было роадмапа развития процессов, накапливался техдолг по тестированию. Бесконтрольно формировался бэклог дефектов. 

За три квартала мы внедрили внутреннюю модель зрелости QMM — живой инструмент, который помог снизить количество пропущенных дефектов в проде в разы, поднять автоматизацию на 30—40% и сэкономить до 15% времени QA-инженеров. Работа функции по обеспечению качества стала управляемой и прозрачной.

Но самое неожиданное — не метрики. А то, как модель изменила культуру: команды перестали ждать указаний и сами начали проводить оценку по QMM, активно формировать планы развития.

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

Читать далее

Я запретил Claude говорить «всё работает» без пруфов. Это изменило всё

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

Пару месяцев назад я попросил агента проверить форму обратной связи после рефакторинга. Через несколько минут получил отчёт: все проверки пройдены, форма работает корректно. Зелёные галочки, уверенный тон.

Я тогда только начинал отдавать тестирование агенту, поэтому работал по схеме «доверяй, но проверяй»: следом прошёл форму руками, с открытой вкладкой Network. Снаружи всё честно: валидация зелёная, кнопка активная, тост «Спасибо!» показывается, сервер отвечает 200. А в payload вместо темы обращения уходит строка [object Object]. Агент проверил всё, кроме того, что реально уходит на сервер.

Я QA‑инженер, тестирую web (десктоп + мобильный адаптив), совмещаю ручное тестирование и автоматизацию на Playwright. Моя цель — максимум автоматизации и минимум ручной работы, поэтому полгода я перекладываю рутинную часть тестирования на Claude Code. Схема всё та же: агент прогоняет, я параллельно проверяю руками, и каждый его пропуск превращаю в правило — через скиллы и замечания, как дообучают стажёра. Из этих правил вырос пак скиллов, который я выложил в открытый доступ: ссылка в конце статьи. Расскажу, что внутри, и покажу демо на настоящем баге. В конце — честный список того, где это всё не работает.

Читать далее

Поддерживая pyfenn: первые впечатления

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

Наверное, как и многие обитатели Хабра, весной я попал под волну сокращений. Погрустив над текущей ситуацией на рынке, решил попробовать себя в open‑source. В конце концов, есть запас денег, отсутствуют (тьфу‑тьфу‑тьфу) ипотеки/кредиты, да и всегда хотелось почувствовать себя частью чего‑то большего, что ли. Спустя пару месяцев у меня получилось стать мейнтейнером в небольшой ML‑библиотеке, о чём и хочу сегодня рассказать.

Читать далее