uk
Feedback
ITTales :(){ :|:& };:

ITTales :(){ :|:& };:

Відкрити в Telegram

Этот чудесный мир IT Contact: @kvaps

Показати більше
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. Расшифровка митапа в Дубае Во время поездки в ОАЭ я слу
От 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, где команды, сообщения, ошибки и даже перерывы на чай с
TL;DR. Мы выкатили Татарнетес — национальную обёртку над Kubernetes, где команды, сообщения, ошибки и даже перерывы на чай с чак-чаком и т.п. на татарском. Рядом — TatarOS Linux (обёртка над Talos, которая поднимает кластер с Татарнетесом) и Татарнетес UI (панель на фоне татарского келәма). Всё под собственной лицензией Tatarch 2.0. https://habr.com/ru/articles/1084230/

Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor Многие просили меня рассказат
Чему меня научили десятки 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-fr
Марафон 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-агентов в ваших коммитах. Из пр
Я всё ждал какого-то 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 это хорошо, но я не хочу следить за агентами, я хочу чтобы агенты работали сами и пр
Следующая мысль - это агенты, 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 ес
Итак находка первая - это 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 на рабочей доске (задачи на сегодня) взргустнул и подумал нужно эвул
/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/10
Ralph Wiggum простыми словами: цикл в Claude Code, который не останавливается https://habr.com/ru/companies/aenix/articles/1041372/

ITTales :(){ :|:& };: - Статистика та аналітика Telegram каналу @ittales