Итак находка первая - это claude agents
https://code.claude.com/docs/en/agent-view
Как оказалось в официальном claude code есть так называемый agent view.
Его изначальное предназначение - это менеджер долгоживущих background-сессий.
Так получилось что именно такие я и использую. Абсурд ситуации дошёл до того что мне проще переиспользовать существующую сессию чем заново объяснять контекст в новой. Но таких постоянных сессий у меня около 10 штук.
Так вот что бы в этом всём этом бардаке не теряться claude agents позволяет выводить их все на одном экране, переименовывать, видеть статусы и переключаться между ними.
Я даже перестал использовать свой плагин для tmux который выводит статусы в таб, и настроил себе алиас:
Сейчас я запускаю клод только таким образом. Что удобно, в случае запуска новой сессии через 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, клод автоматом подхватывает директорию проекта, в которой я сейчас нахожусь, но в то же время я в любой момент могу нажать ← и увидеть список всех других сессий запущенных таким же образом в других проектах. Я могу быстро переключиться меду ними или даже закрыть окно, и вернуться к нему позже. Сессии продолжат работать в бэкграунде.
В итоге все мои сессии живут долго, переживают перезапуск компа, а я оперативно вижу все статусы и если агент требует моего внимания.
💩12👍2❤1
Следующая мысль - это агенты, visibility это хорошо, но я не хочу следить за агентами, я хочу чтобы агенты работали сами и приходили ко мне с вопросами.
К чему я хочу стремиться? - Мне нужен условный Meeseeks Box 🗳 с красной кнопкой. Я нажимаю на кнопку появляется Mr. Meeseeks, говорю что оно мне нужно и дальше он бежит и делает задачу пока не выполнит.
Каждый Mr. Meeseeks живёт только для того чтобы выполнить задачу, он чуствует себя плохо если не может завершить её в срок. При необходимости Mr. Meeseeks может сам вызвать других Mr. Meeseeks чтобы они помогли ему с решением проблемы.
(отсылка к Рик и Морти)
Забавно но кто-то по мотивам мульт-сериала уже создал агента и скилл для Claude Code.
Применять в продакшене я это, конечно, не стал, но я пошёл дальше и начал работать над созданием оркестратора над claude agents.
Что я понял для себя: мне нужен mcp-сервер для claude-agents и набор инструкций как с этим работать.
Мне нужна одна управляющая сессия которая будет меня менеджерить и дать возможность ей работать с агентами, запускать, общаться, переименовывать точно так же как это делаю я.
Другими словами меняем push модель на pull
В качестве интерфейса с человеком - это по прежнему чат, здесь ограничение вызвано в первую очередь мной (человеком) и моей пропускной способностью.
Я не смогу следить за 20 агентами и при этом сохранять контекст, мне нужен менеджер, который будет этим управлять.
В итоге родился
https://github.com/kvaps/claude-agents-mcp
Теперь клод может самостоятельно работать с сессиями, а я могу оперативно подключиться к ним и проконтроллировать его работу
К чему я хочу стремиться? - Мне нужен условный Meeseeks Box 🗳 с красной кнопкой. Я нажимаю на кнопку появляется Mr. Meeseeks, говорю что оно мне нужно и дальше он бежит и делает задачу пока не выполнит.
Каждый Mr. Meeseeks живёт только для того чтобы выполнить задачу, он чуствует себя плохо если не может завершить её в срок. При необходимости Mr. Meeseeks может сам вызвать других Mr. Meeseeks чтобы они помогли ему с решением проблемы.
(отсылка к Рик и Морти)
Забавно но кто-то по мотивам мульт-сериала уже создал агента и скилл для Claude Code.
Применять в продакшене я это, конечно, не стал, но я пошёл дальше и начал работать над созданием оркестратора над claude agents.
Что я понял для себя: мне нужен mcp-сервер для claude-agents и набор инструкций как с этим работать.
Мне нужна одна управляющая сессия которая будет меня менеджерить и дать возможность ей работать с агентами, запускать, общаться, переименовывать точно так же как это делаю я.
Другими словами меняем push модель на pull
В качестве интерфейса с человеком - это по прежнему чат, здесь ограничение вызвано в первую очередь мной (человеком) и моей пропускной способностью.
Я не смогу следить за 20 агентами и при этом сохранять контекст, мне нужен менеджер, который будет этим управлять.
В итоге родился
https://github.com/kvaps/claude-agents-mcp
Теперь клод может самостоятельно работать с сессиями, а я могу оперативно подключиться к ним и проконтроллировать его работу
💩18👍4🤯1🙏1🤡1
Я всё ждал какого-то RFC или общепринятого стандарта на трейлеры описывающие использование AI-агентов в ваших коммитах.
Из практики нескольких крупных проктов:
- Linux Kernel
- Fedora
- LLVM
Популярность получил
В Kubernetes однако же есть строгий запрет на любые трейлеры, включая этот. А при создании пулреквестов вас обязывают расскрыть использование AI в явной форме.
И теперь я понял почему. Согласно правовой системе США, под которую попадают и все проекты CNCF, ваш код помеченный трейлером
который Claude Code так заботливо штампует во все ваши коммиты, автоматически распространяет права на этот код и Антропику. То есть, согласно законодательству, он может реально на него претендовать.
По данной проблеме заведён issue, предлагающий заменить
Факт остаётся фактом, единого стандарта до сих пор нет, но
Лично я переключаюсь на
Но и конечно же читайте правила проекта, как оформлять свои коммиты для контрибьюта во внешние проекты.
Из практики нескольких крупных проктов:
- 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 по умолчанию.Но и конечно же читайте правила проекта, как оформлять свои коммиты для контрибьюта во внешние проекты.
👍9🗿5🥱1🖕1
Forwarded from
Хороша та 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
Одно хорошо – нужен локальный рут.
Опять или слили, или раскопали уязвимость с о-о-о-о-очень долгой историей, которую вдруг внезапно заметили и все такие «Ой-ой-ой, что же это делается».
В общем, в 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
Одно хорошо – нужен локальный рут.
GitHub
GitHub - V4bel/Januscape
Contribute to V4bel/Januscape development by creating an account on GitHub.
🔥10😁3💩3
Прямо сейчас @lllamnyp показывает свой новый CNI драйвер для KubeVirt на eBPF, кому интересно подлючайтесь
https://zoom-lfx.platform.linuxfoundation.org/meeting/93845795591?password=a263fc60-ea72-41c8-84c8-a00d683ecee5
https://zoom-lfx.platform.linuxfoundation.org/meeting/93845795591?password=a263fc60-ea72-41c8-84c8-a00d683ecee5
🔥10🤔1
Forwarded from (r0binak)
Марафон
Ключевая опасность в том, что уязвимость превращается в
Полностью рабочий эксплойт и
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.❤6👍2👏2😱2😁1
Заопенсорсили ещё один наш инструмент — 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.
Каждое зашифрованное значение самоописываемое (
В Cozystack это уже встроено в системный пакет Keycloak как опциональная возможность. Достаточно включить флаг шифрования в Helm-чарте — прокси автоматически разворачивается, а Keycloak переподключается к нему без дополнительной настройки.
Начну с проблемы. 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 переподключается к нему без дополнительной настройки.
GitHub
GitHub - cozystack/keycloak-kms-proxy: Transparent PostgreSQL wire-protocol proxy that encrypts Keycloak PII columns at the database…
Transparent PostgreSQL wire-protocol proxy that encrypts Keycloak PII columns at the database boundary, keeping the data key in a KMS outside PostgreSQL. - cozystack/keycloak-kms-proxy
🔥32👍5🤔5⚡1
Опенсорснули aeman — инструмент для краткосрочного планирования, который мы используем в Ænix.
Это такой командный Todoist на стеройдах или opinionated вариант доски, со списком задач и краткосрочными спринтами, нацеленный в первую очередь на инженерные команды.
В качестве бэкенда используется GitHub Projects, UI работает поверх write-behind-кэша и отвечает мгновенно, а запись в GitHub уходит асинхронно.
У самой доски Kubernetes подобный API и MCP-сервер для работы с AI-агентами
Подробнее про сам инструмент и наши процессы можно почтитать тут:
https://habr.com/ru/companies/aenix/articles/1062562/
Это такой командный Todoist на стеройдах или opinionated вариант доски, со списком задач и краткосрочными спринтами, нацеленный в первую очередь на инженерные команды.
В качестве бэкенда используется GitHub Projects, UI работает поверх write-behind-кэша и отвечает мгновенно, а запись в GitHub уходит асинхронно.
У самой доски Kubernetes подобный API и MCP-сервер для работы с AI-агентами
Подробнее про сам инструмент и наши процессы можно почтитать тут:
https://habr.com/ru/companies/aenix/articles/1062562/
👍12❤1🔥1
ITTales :(){ :|:& };:
Магия кэша в controller-runtime: почему ваши контроллеры быстрые, стабильные и не убивают apiserver Если вы когда-нибудь писали Kubernetes-контроллер на Go, то почти наверняка использовали controller-runtime. А если использовали — значит, пользовались одной…
Наконец-то выехал перевод в официальный блог Kubernetes
В ходе публикации пришли мейнтейнеры controller-runtime, и сказали:всё неверно, выкидывайте. В статье действительно нашлось несколько неточностей из-за чего в
Мы с @lllamnyp оперативно готовим правки, а пока можете за нас порадоваться. Я очень рад фидбеку, пусть и негативному, считаю что в спорах рождается истина.
Урок на будущее: всегда звать мейнтейнеров на ревью :)
https://kubernetes.io/blog/2026/07/29/controller-runtime-cache-explained/
В ходе публикации пришли мейнтейнеры controller-runtime, и сказали:
#sig-docs-blog разыгралась целая драма.Мы с @lllamnyp оперативно готовим правки, а пока можете за нас порадоваться. Я очень рад фидбеку, пусть и негативному, считаю что в спорах рождается истина.
Урок на будущее: всегда звать мейнтейнеров на ревью :)
https://kubernetes.io/blog/2026/07/29/controller-runtime-cache-explained/
Kubernetes
How the controller-runtime Cache Actually Works, and Why Your Controller Does Not Crash the API Server
This article has been revised since it was first published, to correct several significant technical inaccuracies in the original text.
Kubernetes has long been the default platform for distributed workloads, and writing your own controller for it is now…
Kubernetes has long been the default platform for distributed workloads, and writing your own controller for it is now…
🔥17❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Кстати, вчера собрал образ 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 тот же самый образ:
Иначе при установке возьмётся стандартный installer без прошивок — они пропадут вместе с сетью уже после установки на диск. Это частая причина ситуации «на загрузке сеть была, после установки нет».
Важно про безопасность. Образ отладочный: доступ к консоли, в том числе через iLO, даёт root без пароля. Он предназначен только для диагностики, для постоянной эксплуатации его использовать не стоит.
Что внутри:
— прошивки 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 без пароля. Он предназначен только для диагностики, для постоянной эксплуатации его использовать не стоит.
🔥14❤🔥5💊5❤1
Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor
Многие просили меня рассказать каким образом я в одиночку навайбкодил аналог LINSTOR для Kubernetes. Получилась довольно интересная история.
В процессе разработки я выработал несколько полезных паттернов при работе с агентами и хочу поделиться выводами, которые теперь активно применяю и в своей повседневной деятельности.
https://habr.com/ru/companies/aenix/articles/1068652/
Многие просили меня рассказать каким образом я в одиночку навайбкодил аналог LINSTOR для Kubernetes. Получилась довольно интересная история.
В процессе разработки я выработал несколько полезных паттернов при работе с агентами и хочу поделиться выводами, которые теперь активно применяю и в своей повседневной деятельности.
https://habr.com/ru/companies/aenix/articles/1068652/
👍11🔥6❤🔥3💩2⚡1
TL;DR. Мы выкатили Татарнетес — национальную обёртку над Kubernetes, где команды, сообщения, ошибки и даже перерывы на чай с чак-чаком и т.п. на татарском. Рядом — TatarOS Linux (обёртка над Talos, которая поднимает кластер с Татарнетесом) и Татарнетес UI (панель на фоне татарского келәма). Всё под собственной лицензией Tatarch 2.0.
https://habr.com/ru/articles/1084230/
https://habr.com/ru/articles/1084230/
🤣45🤮15🔥8😁8❤2🤡2🐳2💅2👍1💯1
Второй репликатор, или Как идеи обрели форму
Что, если идеи — такой же репликатор, как гены? Миллиарды лет эволюция совершенствовала носитель для генов, а человеческий разум стал носителем для идей. Возможно, искусственный интеллект — не появление совершенно новой формы жизни, а момент, когда идеи впервые получили возможность существовать и эволюционировать независимо от человека.
https://habr.com/ru/articles/1088340/
Что, если идеи — такой же репликатор, как гены? Миллиарды лет эволюция совершенствовала носитель для генов, а человеческий разум стал носителем для идей. Возможно, искусственный интеллект — не появление совершенно новой формы жизни, а момент, когда идеи впервые получили возможность существовать и эволюционировать независимо от человека.
https://habr.com/ru/articles/1088340/
❤2🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
В моей жизни снова появилось место хобби
И как у любого линуксойда оно заключается в том чтобы запускать игрушки. Как показывает практика запускать или вернее заставить работать - это куда интереснее чем в них играть.
Ну так вот, за последнее время на сцене 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 сидя за джойстиком на диване🎮
И как у любого линуксойда оно заключается в том чтобы запускать игрушки. Как показывает практика запускать или вернее заставить работать - это куда интереснее чем в них играть.
Ну так вот, за последнее время на сцене 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 сидя за джойстиком на диване
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍7❤2
ITTales :(){ :|:& };:
В моей жизни снова появилось место хобби И как у любого линуксойда оно заключается в том чтобы запускать игрушки. Как показывает практика запускать или вернее заставить работать - это куда интереснее чем в них играть. Ну так вот, за последнее время на сцене…
Безумие продолжается. За последние сутки релизнули эксплоит гипервизора PS5. Взлом высшего оплота безопасности.
Для понимания прошивка ps5 построена на ядре FreeBSD, а запускается и работает она внутри гипервизора. Сейчас цепочка эксплойтов позволяет выйти из юзерспейса (WebKit) --> потом обойти ядро --> потом гипервизор.
Получив доступ к гипервизору можно получить низкоуровневый доступ к системе. Появляется возможность запускать Linux и компрометировать ключи для подписи устанавливаемых пакетов.
Сейчас вся цепочка оказалась подконтрольной энтузиастам, которое то и дело запускают на плойке что-нибудь необычное.
Playden-ps5 - позволяет нативно запустить Steam и превратить PS5 в настоящую StreamMachine.
rpcs3-PS5 - эмуляция PS3 на PS5, пока что нужно собирать из исходников, проверил работает.
pLinux5-NG - буквально только что портировали Linux на PS5
PS5LM - нативные LLM и QWEN на PS5 со скоростью 20 токенов в секунду
PS5 становится очень интересной коробкой для запуска всего и вся.
Как минимум буду использовать ее как docker-хост для сборки чего мой старенький MacBook на M1 не вытягивает. Как максимум запустить на ней полноценный кубер и Cozystack.
Начал с малого, в качестве эксперимента портировал SyobonAction под PS5
Для понимания прошивка ps5 построена на ядре FreeBSD, а запускается и работает она внутри гипервизора. Сейчас цепочка эксплойтов позволяет выйти из юзерспейса (WebKit) --> потом обойти ядро --> потом гипервизор.
Получив доступ к гипервизору можно получить низкоуровневый доступ к системе. Появляется возможность запускать Linux и компрометировать ключи для подписи устанавливаемых пакетов.
Сейчас вся цепочка оказалась подконтрольной энтузиастам, которое то и дело запускают на плойке что-нибудь необычное.
Playden-ps5 - позволяет нативно запустить Steam и превратить PS5 в настоящую StreamMachine.
rpcs3-PS5 - эмуляция PS3 на PS5, пока что нужно собирать из исходников, проверил работает.
pLinux5-NG - буквально только что портировали Linux на PS5
PS5LM - нативные LLM и QWEN на PS5 со скоростью 20 токенов в секунду
PS5 становится очень интересной коробкой для запуска всего и вся.
Как минимум буду использовать ее как docker-хост для сборки чего мой старенький MacBook на M1 не вытягивает. Как максимум запустить на ней полноценный кубер и Cozystack.
Начал с малого, в качестве эксперимента портировал SyobonAction под PS5
❤9👍7🔥6❤🔥3
Кстати, в пятницу буду выступать на DevOpsDays Almaty, напишите если вы неподалеку, встретимся
https://xn--r1a.website/devopsdayskz/192
https://xn--r1a.website/devopsdayskz/192
Telegram
DevOpsDays Almaty 2026
🔥 Спикер №5 DevOpsDays Almaty'26 — Андрей Квапил, Founder & CEO, Ænix
Андрей — создатель и мейнтейнер open source-платформы Cozystack, которая передана и развивается под эгидой CNCF. А также архитектор облачных решений с 10+ годами работы с highload-инфраструктурой.…
Андрей — создатель и мейнтейнер open source-платформы Cozystack, которая передана и развивается под эгидой CNCF. А также архитектор облачных решений с 10+ годами работы с highload-инфраструктурой.…
🔥15
В связи с развитием AI'шки количество пулреквестов в GitHub возрасло в разы.
А недостаток сопровождающих и сильная расфокусировка на ревью всего этого нейрослопа постоянно вызывает споры по запрещению AI и ограничению количества открытых пулреквестов на человека.
Так например поступают в cilium: @lexfrei подготовил пачку полезных PR решающих реальные проблемы, но на ревью можно отправить только два. При попытке войти в мемберы проекта чтобы снять это ограничение, запрос отклоняют в формате: "у тебя за последнюю неделю и так 145 открытых пулреквестов по всему GitHub, ты не сможешь уделять достаточно внимания нашему проекту"
В других проектах, например Kamaji есть проблема что патчи в их основной репо могут закрывать энтерпрайз фичи и прямым образом влиять на монетизацию проекта. Как например поддержка не самой последней версии Kubernetes.
Приходится болезненно тащить патчи и поддерживать в downstream. Проблема не только с внешними проектами, но так же и с внутренними. При цепочке зависимостей от 2 и больше время доставки конкретной фичи замедляется кратно, всё как всегда стакается на простом человеческом ревью. А ревьювить никто не хочет, т.к. и так своих забот хватает.
Сегодня пытался протащить очередную фичу, которая зависит от внешнего проекта и не смог, потому что мейнтейнер ушел спать.
Ну ладно, я могу сделать форк и накатить из него. Но всё это наводит меня на мысли, что модель пулреквестов устарела и модель стоит развернуть в сторону пушреквестов.
Итак встречайте концепция PushRequest:
- У каждого репозитория может быть сколько угодно форков.
- Каждый форк является домом для конкретного изменения или множества таковых.
- Каждый, кому не хватает какой-либо функциональности, может реализовать это изменение у себя в форке и сделать PushRequest.
- PushRequest не таргетится в основной репозиторий проекта, а заводится и публикуется глобально для всего домена форков этого репозитория.
- Адоптеры выстраивают свои зависимости таким образом чтобы деплоить из своего форка.
- Мейнтейнеры основного проекта могут просматривать все PushRequest'ы в домене форков, видеть как много людей ими пользуются, как давно они существуют и забирать себе те изменения и фиксы, которые считают нужными.
- Пользователи своих форков тоже могут смотреть список всех PushRequest'ов в домене и забирать к себе в форк те которые им хочется.
Как думаете, решит ли это проблему?
А недостаток сопровождающих и сильная расфокусировка на ревью всего этого нейрослопа постоянно вызывает споры по запрещению AI и ограничению количества открытых пулреквестов на человека.
Так например поступают в cilium: @lexfrei подготовил пачку полезных PR решающих реальные проблемы, но на ревью можно отправить только два. При попытке войти в мемберы проекта чтобы снять это ограничение, запрос отклоняют в формате: "у тебя за последнюю неделю и так 145 открытых пулреквестов по всему GitHub, ты не сможешь уделять достаточно внимания нашему проекту"
В других проектах, например Kamaji есть проблема что патчи в их основной репо могут закрывать энтерпрайз фичи и прямым образом влиять на монетизацию проекта. Как например поддержка не самой последней версии Kubernetes.
Приходится болезненно тащить патчи и поддерживать в downstream. Проблема не только с внешними проектами, но так же и с внутренними. При цепочке зависимостей от 2 и больше время доставки конкретной фичи замедляется кратно, всё как всегда стакается на простом человеческом ревью. А ревьювить никто не хочет, т.к. и так своих забот хватает.
Сегодня пытался протащить очередную фичу, которая зависит от внешнего проекта и не смог, потому что мейнтейнер ушел спать.
Ну ладно, я могу сделать форк и накатить из него. Но всё это наводит меня на мысли, что модель пулреквестов устарела и модель стоит развернуть в сторону пушреквестов.
Итак встречайте концепция PushRequest:
- У каждого репозитория может быть сколько угодно форков.
- Каждый форк является домом для конкретного изменения или множества таковых.
- Каждый, кому не хватает какой-либо функциональности, может реализовать это изменение у себя в форке и сделать PushRequest.
- PushRequest не таргетится в основной репозиторий проекта, а заводится и публикуется глобально для всего домена форков этого репозитория.
- Адоптеры выстраивают свои зависимости таким образом чтобы деплоить из своего форка.
- Мейнтейнеры основного проекта могут просматривать все PushRequest'ы в домене форков, видеть как много людей ими пользуются, как давно они существуют и забирать себе те изменения и фиксы, которые считают нужными.
- Пользователи своих форков тоже могут смотреть список всех PushRequest'ов в домене и забирать к себе в форк те которые им хочется.
Как думаете, решит ли это проблему?
👏9🙈9⚡3🔥2❤1👍1
Оказалось, что у etcd не всё так хорошо с отказоустойчивостью, как хотелось бы. Механизм Raft отлично переживает потерю целой площадки, но не частичный разрыв. Возьмём три площадки: связь между двумя рвётся, а третья видит обе. Мембер за разрывом остаётся без лидера навсегда: он просит выборы, а третья площадка отказывает, т.к. всё ещё слышит живого лидера. При этом все поды Ready, а клиенты в этой зоне не могут ни писать, ни нормально читать.
threek это чинит. Агент рядом с каждым мембером проверяет пиров и пишет, кого видит, в запись в самом etcd. Если лидер кого-то не видит, а другой мембер видит всех, лидер отдаёт ему лидерство штатным MoveLeader. Без форка etcd и без новых портов, лидер переезжает примерно через 20 секунд после разрыва.
twok вырос из вопроса: а можно-ли вообще запустить отказоустойчивый etcd всего на двух площадках, без третьей? Пока у кластера есть лидер, агенты ничего не делают. Пропал лидер, и оба пытаются через compare-and-swap в арбитре забрать право работать одному. Арбитром может служить S3-бакет, другой etcd, Kubernetes или любой HTTP с If-Match. Победитель сам дописывает в WAL удаление второго мембера. Проигравший возвращается learner'ом и догоняет лог, без потери данных.
https://github.com/aenix-io/threek
https://github.com/aenix-io/twok
threek это чинит. Агент рядом с каждым мембером проверяет пиров и пишет, кого видит, в запись в самом etcd. Если лидер кого-то не видит, а другой мембер видит всех, лидер отдаёт ему лидерство штатным MoveLeader. Без форка etcd и без новых портов, лидер переезжает примерно через 20 секунд после разрыва.
twok вырос из вопроса: а можно-ли вообще запустить отказоустойчивый etcd всего на двух площадках, без третьей? Пока у кластера есть лидер, агенты ничего не делают. Пропал лидер, и оба пытаются через compare-and-swap в арбитре забрать право работать одному. Арбитром может служить S3-бакет, другой etcd, Kubernetes или любой HTTP с If-Match. Победитель сам дописывает в WAL удаление второго мембера. Проигравший возвращается learner'ом и догоняет лог, без потери данных.
https://github.com/aenix-io/threek
https://github.com/aenix-io/twok
👍12🔥6
ITTales :(){ :|:& };:
Оказалось, что у etcd не всё так хорошо с отказоустойчивостью, как хотелось бы. Механизм Raft отлично переживает потерю целой площадки, но не частичный разрыв. Возьмём три площадки: связь между двумя рвётся, а третья видит обе. Мембер за разрывом остаётся…
А вот и подробное описание наших похождений подъехало
Всё Ready, а ничего не работает: как мы учили Kubernetes переживать потерю датацентра
https://habr.com/ru/companies/aenix/articles/1098254/
Всё Ready, а ничего не работает: как мы учили Kubernetes переживать потерю датацентра
https://habr.com/ru/companies/aenix/articles/1098254/
🤔2🔥1