1 787
订阅者
+224 小时
+987 天
+13230 天
正在加载数据
吸引订阅者
十月 '2610月 '26
十月 '26
+110
在7个频道中
九月 '26
+43
在4个频道中
Get PRO
八月 '26
+55
在1个频道中
Get PRO
七月 '26
+50
在5个频道中
Get PRO
六月 '26
+42
在0个频道中
Get PRO
五月 '26
+63
在1个频道中
Get PRO
四月 '26
+42
在3个频道中
Get PRO
三月 '26
+79
在4个频道中
Get PRO
二月 '26
+23
在0个频道中
Get PRO
一月 '26
+38
在1个频道中
Get PRO
十二月 '25
+52
在0个频道中
Get PRO
十一月 '25
+40
在2个频道中
Get PRO
十月 '25
+18
在0个频道中
Get PRO
九月 '25
+21
在0个频道中
Get PRO
八月 '25
+79
在1个频道中
Get PRO
七月 '25
+53
在1个频道中
Get PRO
六月 '25
+28
在0个频道中
Get PRO
五月 '25
+13
在0个频道中
Get PRO
四月 '25
+19
在1个频道中
Get PRO
三月 '25
+26
在0个频道中
Get PRO
二月 '25
+12
在0个频道中
Get PRO
一月 '25
+13
在0个频道中
Get PRO
十二月 '24
+42
在1个频道中
Get PRO
十一月 '24
+39
在1个频道中
Get PRO
十月 '24
+22
在0个频道中
Get PRO
九月 '24
+22
在0个频道中
Get PRO
八月 '24
+53
在2个频道中
Get PRO
七月 '24
+42
在3个频道中
Get PRO
六月 '24
+25
在0个频道中
Get PRO
五月 '24
+49
在2个频道中
Get PRO
四月 '24
+32
在1个频道中
Get PRO
三月 '24
+34
在2个频道中
Get PRO
二月 '24
+44
在0个频道中
Get PRO
一月 '24
+75
在1个频道中
Get PRO
十二月 '23
+57
在0个频道中
Get PRO
十一月 '23
+39
在3个频道中
Get PRO
十月 '23
+38
在4个频道中
Get PRO
九月 '23
+27
在0个频道中
Get PRO
八月 '23
+107
在0个频道中
Get PRO
七月 '23
+23
在0个频道中
Get PRO
六月 '23
+9
在0个频道中
Get PRO
五月 '23
+10
在0个频道中
Get PRO
四月 '23
+2
在0个频道中
Get PRO
三月 '23
+3
在0个频道中
Get PRO
二月 '23
+4
在0个频道中
Get PRO
一月 '23
+5
在0个频道中
Get PRO
十二月 '22
+8
在0个频道中
Get PRO
十一月 '22
+1
在0个频道中
Get PRO
十月 '22
+2
在0个频道中
Get PRO
九月 '22
+5
在0个频道中
Get PRO
八月 '22
+9
在0个频道中
Get PRO
七月 '22
+6
在0个频道中
Get PRO
六月 '22
+3
在0个频道中
Get PRO
五月 '22
+20
在0个频道中
Get PRO
四月 '22
+2
在0个频道中
Get PRO
三月 '22
+3
在0个频道中
Get PRO
二月 '220
在0个频道中
Get PRO
一月 '22
+7
在0个频道中
Get PRO
十二月 '21
+11
在0个频道中
Get PRO
十一月 '21
+8
在0个频道中
Get PRO
十月 '21
+5
在0个频道中
Get PRO
九月 '21
+11
在0个频道中
Get PRO
八月 '21
+15
在0个频道中
Get PRO
七月 '21
+4
在0个频道中
Get PRO
六月 '21
+6
在0个频道中
Get PRO
五月 '21
+27
在0个频道中
Get PRO
四月 '21
+81
在0个频道中
Get PRO
三月 '21
+357
在0个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 17 十月 | +1 | |||
| 16 十月 | +2 | |||
| 15 十月 | +8 | |||
| 14 十月 | +88 | |||
| 13 十月 | 0 | |||
| 12 十月 | +2 | |||
| 11 十月 | +1 | |||
| 10 十月 | +1 | |||
| 09 十月 | +1 | |||
| 08 十月 | 0 | |||
| 07 十月 | +1 | |||
| 06 十月 | 0 | |||
| 05 十月 | +1 | |||
| 04 十月 | +2 | |||
| 03 十月 | +1 | |||
| 02 十月 | +1 | |||
| 01 十月 | 0 |
频道帖子
Repost from N/a
| 2 | В связи с развитием AI'шки количество пулреквестов в GitHub возрасло в разы.
А недостаток сопровождающих и сильная расфокусировка на ревью всего этого нейрослопа постоянно вызывает споры по запрещению AI и ограничению количества открытых пулреквестов на человека.
Так например поступают в cilium: @lexfrei подготовил пачку полезных PR решающих реальные проблемы, но на ревью можно отправить только два. При попытке войти в мемберы проекта чтобы снять это ограничение, запрос отклоняют в формате: "у тебя за последнюю неделю и так 145 открытых пулреквестов по всему GitHub, ты не сможешь уделять достаточно внимания нашему проекту"
В других проектах, например Kamaji есть проблема что патчи в их основной репо могут закрывать энтерпрайз фичи и прямым образом влиять на монетизацию проекта. Как например поддержка не самой последней версии Kubernetes.
Приходится болезненно тащить патчи и поддерживать в downstream. Проблема не только с внешними проектами, но так же и с внутренними. При цепочке зависимостей от 2 и больше время доставки конкретной фичи замедляется кратно, всё как всегда стакается на простом человеческом ревью. А ревьювить никто не хочет, т.к. и так своих забот хватает.
Сегодня пытался протащить очередную фичу, которая зависит от внешнего проекта и не смог, потому что мейнтейнер ушел спать.
Ну ладно, я могу сделать форк и накатить из него. Но всё это наводит меня на мысли, что модель пулреквестов устарела и модель стоит развернуть в сторону пушреквестов.
Итак встречайте концепция PushRequest:
- У каждого репозитория может быть сколько угодно форков.
- Каждый форк является домом для конкретного изменения или множества таковых.
- Каждый, кому не хватает какой-либо функциональности, может реализовать это изменение у себя в форке и сделать PushRequest.
- PushRequest не таргетится в основной репозиторий проекта, а заводится и публикуется глобально для всего домена форков этого репозитория.
- Адоптеры выстраивают свои зависимости таким образом чтобы деплоить из своего форка.
- Мейнтейнеры основного проекта могут просматривать все PushRequest'ы в домене форков, видеть как много людей ими пользуются, как давно они существуют и забирать себе те изменения и фиксы, которые считают нужными.
- Пользователи своих форков тоже могут смотреть список всех PushRequest'ов в домене и забирать к себе в форк те которые им хочется.
Как думаете, решит ли это проблему? | 848 |
| 3 | Кстати, в пятницу буду выступать на DevOpsDays Almaty, напишите если вы неподалеку, встретимся
https://t.me/devopsdayskz/192 | 1 128 |
| 4 | Безумие продолжается. За последние сутки релизнули эксплоит гипервизора 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 | 10 138 |
| 5 | В моей жизни снова появилось место хобби
И как у любого линуксойда оно заключается в том чтобы запускать игрушки. Как показывает практика запускать или вернее заставить работать - это куда интереснее чем в них играть.
Ну так вот, за последнее время на сцене 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 сидя за джойстиком на диване 🎮 | 1 609 |
| 6 | От bare metal до managed Kubernetes: разбираем архитектуру Cozystack. Расшифровка митапа в Дубае
Во время поездки в ОАЭ я случайно попал в дубайское IT-комьюнити. Там мы внезапно скоординировались и собрали незапланированный митап. 3 октября встретились в небольшой переговорке в Дубае — получилось душевно, и мы успели обсудить много интересных тем: от Talos и хранилища до сетей и устройства managed Kubernetes.
https://habr.com/ru/companies/aenix/articles/1090064/ | 65 |
| 7 | Второй репликатор, или Как идеи обрели форму
Что, если идеи — такой же репликатор, как гены? Миллиарды лет эволюция совершенствовала носитель для генов, а человеческий разум стал носителем для идей. Возможно, искусственный интеллект — не появление совершенно новой формы жизни, а момент, когда идеи впервые получили возможность существовать и эволюционировать независимо от человека.
https://habr.com/ru/articles/1088340/ | 1 969 |
| 8 | TL;DR. Мы выкатили Татарнетес — национальную обёртку над Kubernetes, где команды, сообщения, ошибки и даже перерывы на чай с чак-чаком и т.п. на татарском. Рядом — TatarOS Linux (обёртка над Talos, которая поднимает кластер с Татарнетесом) и Татарнетес UI (панель на фоне татарского келәма). Всё под собственной лицензией Tatarch 2.0.
https://habr.com/ru/articles/1084230/ | 18 639 |
| 9 | Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor
Многие просили меня рассказать каким образом я в одиночку навайбкодил аналог LINSTOR для Kubernetes.
Получилась довольно интересная история.
В процессе разработки я выработал несколько полезных паттернов при работе с агентами и хочу поделиться выводами, которые теперь активно применяю и в своей повседневной деятельности.
https://habr.com/ru/companies/aenix/articles/1068652/ | 1 907 |
| 10 | Кстати, вчера собрал образ 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 без пароля. Он предназначен только для диагностики, для постоянной эксплуатации его использовать не стоит. | 4 653 |
| 11 | Наконец-то выехал перевод в официальный блог Kubernetes
В ходе публикации пришли мейнтейнеры controller-runtime, и сказали: всё неверно, выкидывайте. В статье действительно нашлось несколько неточностей из-за чего в #sig-docs-blog разрослась целая драма.
Мы с @lllamnyp оперативно готовим правки, а пока можете за нас порадоваться. Я очень рад фидбеку со стороны мейнтейнеров, пусть и негативному, считаю что в спорах рождается истина.
Урок на будущее: всегда звать мейнтейнеров на ревью :)
https://kubernetes.io/blog/2026/07/29/controller-runtime-cache-explained/ | 1 282 |
| 12 | Опенсорснули aeman — инструмент для краткосрочного планирования который мы используем в Ænix.
Это такой командный Todoist на стеройдах или opinionated вариант доски, со списком задач и краткосроными спринтами, нацеленный в первую очередь на инженерные команды.
В качестве бэкенда используется GitHub Projects, UI работает поверх write-behind-кэша и отвечает мгновенно, а запись в GitHub уходит асинхронно.
У самой доски Kubernetes подобный API и MCP-сервер для работы с AI-агентами
Подробнее про сам инструмент и наши процессы можно почтитать тут:
https://habr.com/ru/companies/aenix/articles/1062562/ | 1 592 |
| 13 | Заопенсорсили ещё один наш инструмент — 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 переподключается к нему без дополнительной настройки. | 2 214 |
| 14 | Марафон 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. | 1 199 |
| 15 | Прямо сейчас @lllampyr показывает свой новый CNI драйвер для KubeVirt на eBPF, кому интересно подлючайтесь
https://zoom-lfx.platform.linuxfoundation.org/meeting/93845795591?password=a263fc60-ea72-41c8-84c8-a00d683ecee5 | 1 272 |
| 16 | Хороша та 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
Одно хорошо – нужен локальный рут. | 1 181 |
| 17 | Я всё ждал какого-то 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 по умолчанию.
Но и конечно же читайте правила проекта, как оформлять свои коммиты для контрибьюта во внешние проекты. | 8 275 |
| 18 | Следующая мысль - это агенты, 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
Теперь клод может самостоятельно работать с сессиями, а я могу оперативно подключиться к ним и проконтроллировать его работу | 1 444 |
| 19 | Итак находка первая - это 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, клод автоматом подхватывает директорию проекта, в которой я сейчас нахожусь, но в то же время я в любой момент могу нажать ← и увидеть список всех других сессий запущенных таким же образом в других проектах. Я могу быстро переключиться меду ними или даже закрыть окно, и вернуться к нему позже. Сессии продолжат работать в бэкграунде.
В итоге все мои сессии живут долго, переживают перезапуск компа, а я оперативно вижу все статусы и если агент требует моего внимания. | 1 136 |
| 20 | /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-агентов сейчас ещё достаточно молодая, проверенных решений и готовых концепций практически нет и из-за этого легко уйти не туда.
Прежде чем полностью погрузиться в готовое решение я решил пройти тот же путь и выработать подходы самостоятельно.
Следующие несколько постов будут именно про это. | 1 064 |
