ITTales :(){ :|:& };:
رفتن به کانال در Telegram
1 688
مشترکین
-124 ساعت
+17 روز
+3730 روز
آرشیو پست ها
В моей жизни снова появилось место хобби
И как у любого линуксойда оно заключается в том чтобы запускать игрушки. Как показывает практика запускать или вернее заставить работать - это куда интереснее чем в них играть.
Ну так вот, за последнее время на сцене PS5 прошел огромный сдвиг.
Sony официально объявили что прекращают продажу физических дисков и переходят полностью на цифровой формат, что вызвало огромное бурление говн среди любителей по дешёвке покупать/продавать игры с рук.
If buying isn't owning, then piracy isn't stealing - кричали они
Паралельно с этим, в эру AI кодинг агентов, шансы найти джейлбрейк у рядовых пользователей повысился кратно. Любой кто знает базу может запрячь клодика сделать что-то прикольное с его игровой приставкой. А благодаря тому что FreeBSD открыто публикует все репорты по безопасности нейронки сразу знают куда копать.
Так и получилось что новый джейлбрейк был найден независимо сразу несколькими людьми и выложен в комьюнити едва Sony успела закрыть доступ в PSN для уязвимых прошивок. Но было уже поздно.
Большая часть людей уже отказалась обновляться на новую прошивку и ждали джейлбрейка. Ждали они не год и полтора как это обычно происходит, а всего два месяца, после релиза 13.60.
Одновременно с этим появилось огромное количество эмуляторов позволяющие играть в игры от других приставок Xbox, Nintendo Switch, PSP нативно и без лагов, как будто это игры для Sony Playstation.
Один из таких эмуляторов - prospero-win, который эмулирует, внезапно, WINDOWS
Под капотом там Wine. Пришлось подготовить пару патчей, но по сути да, сбылась мечта идиота, теперь я смогу поиграть с сыном в Atomic Bomberman сидя за джойстиком на диване 🎮
От bare metal до managed Kubernetes: разбираем архитектуру Cozystack. Расшифровка митапа в Дубае
Во время поездки в ОАЭ я случайно попал в дубайское IT-комьюнити. Там мы внезапно скоординировались и собрали незапланированный митап. 3 октября встретились в небольшой переговорке в Дубае — получилось душевно, и мы успели обсудить много интересных тем: от Talos и хранилища до сетей и устройства managed Kubernetes.
https://habr.com/ru/companies/aenix/articles/1090064/
Второй репликатор, или Как идеи обрели форму
Что, если идеи — такой же репликатор, как гены? Миллиарды лет эволюция совершенствовала носитель для генов, а человеческий разум стал носителем для идей. Возможно, искусственный интеллект — не появление совершенно новой формы жизни, а момент, когда идеи впервые получили возможность существовать и эволюционировать независимо от человека.
https://habr.com/ru/articles/1088340/
TL;DR. Мы выкатили Татарнетес — национальную обёртку над Kubernetes, где команды, сообщения, ошибки и даже перерывы на чай с чак-чаком и т.п. на татарском. Рядом — TatarOS Linux (обёртка над Talos, которая поднимает кластер с Татарнетесом) и Татарнетес UI (панель на фоне татарского келәма). Всё под собственной лицензией Tatarch 2.0.
https://habr.com/ru/articles/1084230/
Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor
Многие просили меня рассказать каким образом я в одиночку навайбкодил аналог LINSTOR для Kubernetes.
Получилась довольно интересная история.
В процессе разработки я выработал несколько полезных паттернов при работе с агентами и хочу поделиться выводами, которые теперь активно применяю и в своей повседневной деятельности.
https://habr.com/ru/companies/aenix/articles/1068652/
Кстати, вчера собрал образ Talos с shell на консоли — чтобы видеть, что происходит на ноде, когда сеть недоступна и talosctl до неё не достучаться.
Что внутри:
— прошивки Broadcom bnx2/bnx2x и микрокод Intel;
— busybox и iproute2;
— вывод на serial-консоль включён (console=ttyS0,115200n8), автоперезагрузка при панике ядра выключена.
Как пользоваться:
1. Загрузиться с ISO — на консоли откроется дашборд Talos.
2. F9 или Ctrl+] — переключение в shell (root). exit или Ctrl+D — обратно в дашборд.
3. Переключаться можно и напрямую: Alt+F1 — логи ядра, Alt+F2 — дашборд, Alt+F3 — shell.
Важно про установку на диск. Если будете ставить, укажите в machine-config тот же самый образ:
machine:
install:
image: ghcr.io/aenix-io/talos:v1.12.1-debug-shell
Иначе при установке возьмётся стандартный installer без прошивок — они пропадут вместе с сетью уже после установки на диск. Это частая причина ситуации «на загрузке сеть была, после установки нет».
Важно про безопасность. Образ отладочный: доступ к консоли, в том числе через iLO, даёт root без пароля. Он предназначен только для диагностики, для постоянной эксплуатации его использовать не стоит.Наконец-то выехал перевод в официальный блог Kubernetes
В ходе публикации пришли мейнтейнеры controller-runtime, и сказали: всё неверно, выкидывайте. В статье действительно нашлось несколько неточностей из-за чего в
#sig-docs-blog разрослась целая драма.
Мы с @lllamnyp оперативно готовим правки, а пока можете за нас порадоваться. Я очень рад фидбеку со стороны мейнтейнеров, пусть и негативному, считаю что в спорах рождается истина.
Урок на будущее: всегда звать мейнтейнеров на ревью :)
https://kubernetes.io/blog/2026/07/29/controller-runtime-cache-explained/Опенсорснули aeman — инструмент для краткосрочного планирования который мы используем в Ænix.
Это такой командный Todoist на стеройдах или opinionated вариант доски, со списком задач и краткосроными спринтами, нацеленный в первую очередь на инженерные команды.
В качестве бэкенда используется GitHub Projects, UI работает поверх write-behind-кэша и отвечает мгновенно, а запись в GitHub уходит асинхронно.
У самой доски Kubernetes подобный API и MCP-сервер для работы с AI-агентами
Подробнее про сам инструмент и наши процессы можно почтитать тут:
https://habr.com/ru/companies/aenix/articles/1062562/
Заопенсорсили ещё один наш инструмент — keycloak-kms-proxy.
Начну с проблемы. Keycloak хранит PII пользователей — email, имя, фамилию, атрибуты и т.д. — в своей базе открытым текстом. Согласно GDPR эти данные считаются персональными и должны быть защищены в состоянии покоя. Обычное storage encryption или шифрование на стороне PostgreSQL помогают лишь частично: ключ всё равно живёт рядом с данными, внутри Postgres, а ещё такой подход не позволяет нормально ротировать ключи без остановки сервиса.
Есть несколько неофициальных плагинов, решающих эту задачу, например Keycloak-PII-Data-Encryption-Provider. Но и у них хватает ограничений: жёсткая привязка к версии Keycloak, интеграция на уровне Java и статический ключ, передаваемый через переменную окружения.
Мы пошли другим путём и сделали прозрачный прокси на уровне wire-протокола PostgreSQL. Он встаёт между Keycloak и его Postgres-базой: Keycloak думает, что работает с обычным Postgres, а прокси на лету шифрует нужные колонки при записи и расшифровывает их при чтении.
Само решение построено по тем же принципам, что и механизм KMSv2 в Kubernetes.
Каждое зашифрованное значение самоописываемое (
$KKP$...), поэтому прокси спокойно работает с частично зашифрованной базой, пока backfill-утилита постепенно шифрует оставшиеся записи. Ротация KEK в Vault полностью прозрачна: версия ключа хранится вместе с каждым завёрнутым DEK, поэтому старые данные продолжают расшифровываться без каких-либо миграций.
В Cozystack это уже встроено в системный пакет Keycloak как опциональная возможность. Достаточно включить флаг шифрования в Helm-чарте — прокси автоматически разворачивается, а Keycloak переподключается к нему без дополнительной настройки.Repost from k8s (in)security
Марафон
LPE уязвимостей в Linux продолжается. Команда Nebula Security раскрыла GhostLock (CVE-2026-43499), stack-use-after-free в подсистеме rtmutex ядра, который был внесён ещё в Linux 2.6.39 и просуществовал более 15 лет. Корень бага в том, что на proxy-пути функция remove_waiter() очищает pi_blocked_on не у той задачи, оставляя висячий указатель на освобождённый фрейм стека ядра. Затронуты практически все дистрибутивы без патча (диапазон от v2.6.39-rc1 до v7.1-rc1), причём триггер не требует ни привилегий, ни user namespaces, ни специальной конфигурации ядра.
Ключевая опасность в том, что уязвимость превращается в container escape, локальный непривилегированный атакующий из контейнера может подняться до root на хосте. Авторы довели эксплойт до 97% стабильности через forge поддельного rt_mutex_waiter, перезапись inet6_protos[IPPROTO_UDP] и трюк с CPU entry area, за что получили 92 337 долларов в Google kernelCTF.
Полностью рабочий эксплойт и PoC уже открыто выложены в репозитории CyberMeowfia на GitHub.Прямо сейчас @lllampyr показывает свой новый CNI драйвер для KubeVirt на eBPF, кому интересно подлючайтесь
https://zoom-lfx.platform.linuxfoundation.org/meeting/93845795591?password=a263fc60-ea72-41c8-84c8-a00d683ecee5
Repost from linkmeup
Хороша та CVE https://nvd.nist.gov/vuln/detail/CVE-2026-53359 , для которой уже POC есть https://github.com/V4bel/Januscape
Опять или слили, или раскопали уязвимость с о-о-о-о-очень долгой историей, которую вдруг внезапно заметили и все такие «Ой-ой-ой, что же это делается».
В общем, в KVM есть метод, как выйти за пределы виртуалочки на уровень хоста из-за ошибки 16 лет назад. То есть, буквально, коммит https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2032a93d66fa, где всё сломалось, был сделан в августе 2010.
А пофиксили всё 19 июня в этом году. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81ccda30b4e8
Одно хорошо – нужен локальный рут.
Я всё ждал какого-то RFC или общепринятого стандарта на трейлеры описывающие использование AI-агентов в ваших коммитах.
Из практики нескольких крупных проктов:
- Linux Kernel
- Fedora
- LLVM
Популярность получил
Assisted-By: <your AI agent>
В Kubernetes однако же есть строгий запрет на любые трейлеры, включая этот. А при создании пулреквестов вас обязывают расскрыть использование AI в явной форме.
И теперь я понял почему. Согласно правовой системе США, под которую попадают и все проекты CNCF, ваш код помеченный трейлером
Co-Authored-By: Claude <noreply@anthropic.com>который Claude Code так заботливо штампует во все ваши коммиты, автоматически распространяет права на этот код и Антропику. То есть, согласно законодательству, он может реально на него претендовать. По данной проблеме заведён issue, предлагающий заменить
Co-Authored-By на Assisted-By, но антропики кажется не торопятся.
Факт остаётся фактом, единого стандарта до сих пор нет, но Co-Authored-By им точно не станет. А пока что предлагаю поддержать инициативу и перестать использовать Co-Authored-By для AI-агентов в своём коде.
Лично я переключаюсь на Assisted-By по умолчанию.
Но и конечно же читайте правила проекта, как оформлять свои коммиты для контрибьюта во внешние проекты.Следующая мысль - это агенты, visibility это хорошо, но я не хочу следить за агентами, я хочу чтобы агенты работали сами и приходили ко мне с вопросами.
К чему я хочу стремиться? - Мне нужен условный Meeseeks Box 🗳 с красной кнопкой. Я нажимаю на кнопку появляется Mr. Meeseeks, говорю что оно мне нужно и дальше он бежит и делает задачу пока не выполнит.
Каждый Mr. Meeseeks живёт только для того чтобы выполнить задачу, он чуствует себя плохо если не может завершить её в срок. При необходимости Mr. Meeseeks может сам вызвать других Mr. Meeseeks чтобы они помогли ему с решением проблемы.
(отсылка к Рик и Морти)
Забавно но кто-то по мотивам мульт-сериала уже создал агента и скилл для Claude Code.
Применять в продакшене я это, конечно, не стал, но я пошёл дальше и начал работать над созданием оркестратора над claude agents.
Что я понял для себя: мне нужен mcp-сервер для claude-agents и набор инструкций как с этим работать.
Мне нужна одна управляющая сессия которая будет меня менеджерить и дать возможность ей работать с агентами, запускать, общаться, переименовывать точно так же как это делаю я.
В качестве интерфейса с человеком - это по прежнему чат, здесь ограничение вызвано в первую очередь мной (человеком) и моей пропускной способностью.
Я не смогу следить за 20 агентами и при этом сохранять контекст, мне нужен менеджер, который будет этим управлять.
В итоге родился
https://github.com/kvaps/claude-agents-mcp
Теперь клод может самостоятельно работать с сессиями, а я могу оперативно подключиться к ним и проконтроллировать его работу
Итак находка первая - это claude agents
https://code.claude.com/docs/en/agent-view
Как оказалось в официальном claude code есть так называемый agent view.
Его изначальное предназначение - это менеджер долгоживущих background-сессий.
Так получилось что именно такие я и использую. Абсурд ситуации дошёл до того что мне проще переиспользовать существующую сессию чем заново объяснять контекст в новой. Но таких постоянных сессий у меня около 10 штук.
Так вот что бы в этом всём этом бардаке не теряться claude agents позволяет выводить их все на одном экране, переименовывать, видеть статусы и переключаться между ними.
Я даже перестал использовать свой плагин для tmux который выводит статусы в таб, и настроил себе алиас:
alias ca='claude agents'
Сейчас я запускаю клод только таким образом. Что удобно, в случае запуска новой сессии через claude agents, клод автоматом подхватывает директорию проекта, в которой я сейчас нахожусь, но в то же время я в любой момент могу нажать ← и увидеть список всех других сессий запущенных таким же образом в других проектах. Я могу быстро переключиться меду ними или даже закрыть окно, и вернуться к нему позже. Сессии продолжат работать в бэкграунде.
В итоге все мои сессии живут долго, переживают перезапуск компа, а я оперативно вижу все статусы и если агент требует моего внимания./me в очередной раз взглянув на свою колонку In Progress на рабочей доске (задачи на сегодня) взргустнул и подумал нужно эвулюционировать и продолжать оркестрировать свою работу дальше.
Всё сводится к тому что нужно строить свой собственный meta-harness над claude code.
Все предпосылки к этому уже выполнены:
- уже давнее время мы собираем транскрипты всех встреч в компании, они дают отличный артефакт для постановки задачи и начала работы.
- пачка MCP-серверов уже настроены во всевозможные каналы (google workspace, github, telegram, slack, read.ai) и прочее, могут постить от моего имени, забирать и отправлять документы.
- как жить с 4+ сессиями и не сойти с ума? И вот тут поподробнее
Когда эта проблема возникла, я начал ресёрчить, первым же делом я обратился к коллегам, в частности к @xor_dev (тимлиду нашей reliability команды по Cozystack)
У которого, в виду загруженности и разрозненности задач такая проблема была испокон веков.
Ваня постоянно поддерживает контекст с десятками клиентов и контроллирует работу команды.
Для того чтобы контекст не разъезжался, в первую очередь у него в голове, он сделал свой тул - Grimoire, который содержит в себе базу данных по каждому проекту и клиенту, и позволяет запускать сессии Claude Code прямо в браузере. Через стартовый промпт он сразу инструктирует их куда и как складывать контекст, откуда его вычитывать и как работать с этой системой.
В отличие от Obsidian вся история чуть-более интерактивная и крутится вокруг заметок. Каждая заметка - это своего рода entrypoint для входа в интерактивную сессию.
В интерфейсе можно выбрать заметку и запустить из неё нового агента, который уже будет знать весь необходимый контекст и обогощать общую базу знаний.
Исходники Grimoire пока недоступны публично. Ваня планирует опубликовать их в ближайшем будущем.
Сфера мета-оркестрации AI-агентов сейчас ещё достаточно молодая, проверенных решений и готовых концепций практически нет и из-за этого легко уйти не туда.
Прежде чем полностью погрузиться в готовое решение я решил пройти тот же путь и выработать подходы самостоятельно.
Следующие несколько постов будут именно про это.
А вот и предпосылки, с чего начался весь этот сыр-бор
https://habr.com/ru/news/1046756
Ну все, доигрались, теперь доступ к определенным AI-моделям - это вопрос нац.безопасности США.
https://habr.com/ru/companies/aenix/articles/1047018/
Vibe Coding: как внедрять ИИ в инженерные процессы без магии и самообмана
В этом выпуске я рассказываю, как мы используем Claude Code и AI-агентов в повседневной работе инженерной команды Ænix.
За последний год AI для нас перестал быть просто помощником для генерации кода. Сегодня он участвует практически во всех процессах: разработке, отладке, код-ревью, исследованиях, документации, поддержке клиентов и даже подготовке архитектурных решений.
0:00 Почему мы считаем себя AI-first компанией
2:29 Какие модели и инструменты используем на практике
5:11 Как организовать работу команды вокруг Claude Code
12:00 CLAUDE.md, AGENTS.md и правила для агента
14:55 Как работать с контекстом, планами и памятью агента
21:02 Скиллы: как шарить знания внутри команды
26:07 MCP, хуки и автоматизация внешних систем
30:15 Как писать промты и общаться с нейронкой
33:24 Реальные кейсы: презентации, сайт и фронтенд
38:09 Когда агентный подход работает, а когда превращается в самообман
46:06 Линтеры, параллельные агенты и код-ревью
55:03 Spec-driven разработка: где граница между инженером и AI
58:31 Дебаг Kubernetes и инфраструктуры через AI
1:02:34 Постмортемы и артефакты сессий
1:05:55 RTFS: читаем исходники open-source вместо документации
Ralph Wiggum простыми словами: цикл в Claude Code, который не останавливается
https://habr.com/ru/companies/aenix/articles/1041372/
