Как я три года пилю свой музыкальный сервер: часть первая

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

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

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

Когда лет 10 назад требовалось создать информационный сайт, выбор CMS был очевиден: WordPress проще устанавливался, а многочисленные варианты шаблонов дизайна можно было приспособить к любым потребностям. Плюс легкость в размещении и редактировании материалов, возможность добавлять опросы, видео, делать фотогалереи, используя расширения и виджеты. Надо ли удивляться, что при таких вводных WordPress сейчас управляет 43% сайтов в мире? Сегодняшний разговор о системе и о том, как WordPress используется в патентовании.

Команда VK Cloud перевела заключительную часть цикла Cilium про защиту цепочки поставок. Часть 1 была про контроль доступа, часть 2 — про укрепление зависимостей. Эта же часть о том, как изолировать секреты CI и продакшена за разными окружениями GitHub, подписывать каждый релиз без долгоживущих ключей через Sigstore Cosign, и какие пробелы безопасности остаются открытыми. Отдельно — разбор дорожной карты безопасности GitHub Actions на 2026 год и того, как платформенные изменения соотносятся с уже выстроенными контролями. Полезно DevOps- и SRE-инженерам, специалистам по безопасности и мейнтейнерам OSS-проектов.

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

Если вы Java-разработчик, которому в личных целях нужно поднять TLS 1.3 на ГОСТ, создать ГОСТ-сертификаты, подписать документ CAdES, создать свой тестовый УЦ, сделать шифрование и подпись на своем Android — эта статья для вас. Все примеры в этой статье одинаково работают что на JVM 21, что на Android 12+.
crypto-gost — криптографическая библиотека алгоритмов ГОСТ на Java 21+ и Android 12+, а также сопутствующая обвязка вокруг них, позволяющая использовать в личных целях алгоритмы и стандарты ГОСТ в инфраструктуре Java. Статья написана в академических целях.

Ornith‑1.0‑35B обошла Qwen3.5‑397B в Terminal‑Bench, а на нашем локальном срезе хорошо показала себя в агентном кодинге. Мы решили проверить, насколько быстрее она сможет работать на AMD Strix Halo с пропускной способностью памяти до 256 ГБ/с.
В статье — результаты экспериментов с Vulkan, MTP, селективной квантизацией и n‑gram reuse: что не дало прироста, как удалось получить 99 ток/с без потери качества и каким способом 35B‑модель запустилась на Windows‑ноутбуке с 8 ГБ VRAM.

Примерно в 23 году, когда LLM с историей ChatGPT полноценно вошли в жизнь, я стал задумываться - а что будет с Open Source? Уже тогда было понятно, что что-то точно поменяется.
Мысль у меня была простая.
LLM меняет игру => стоимость софта будет падать все сильнее => Софт перестает что-либо стоить => А это заставит рынок сильно меняться.
Через какое-то время я встретился с представителем одного очень крупного зеленого банка :)
Из-за моего Open Source стартапа мы долго рассуждали на эту тему, и после разговора я понял - перед нами два стула. На какой сядет реальность, а на какой фантазия - пока непонятно :D
Первый стул - Open Source вымрет как явление. Зачем качать библиотеку, если можно сгенерировать полностью схожую и не связываться с лицензиями и прочими сложными вопросами? Тебе это все становится не нужно.
Мысль интересная, но пока она бьется об одну важную стену. Стена называется "LLM генерит говнокод". Говнокод не в плане, красивый он или некрасивый, а в плане, что он неработоспособный. А скажешь агенту "вот бага, подправь" - он часто сделает еще хуже. И что бы ни говорили про рост когнитивки, без должным образом поставленной цели и объяснения проблемы агенты качественный софт не выдают. Сталкиваюсь с этим прямо сейчас - пилю очередной open source продукт.
Есть второй стул, и пока я больше верю в него. Раз стоимость софта падает, рынок будет меняться в сторону того, что софт скорее должен быть open source. Не open source - меньше доверия. Модель "community edition + платный тариф" - Enterprise, Team, неважно. Тем более что так софт элементарно проще продвигать даже через агентоцентричную экономику. Потому что, будем объективны, ближайший рост экономики в мире обеспечат агенты, а не люди.
Простите, но я сделал еще один продукт, который уведомляет, если есть обновления. Многие следят за обновлениями своего зоопарка docker-контейнеров, и я не исключение. На рынке есть несколько готовых решений, и я честно попробовал самые популярные.
Watchtower на тот момент показался мне заброшенным (про живые форки я тогда не знал) и что-то с ним не задалось, что именно, если честно, уже не помню. Это был первый кандидат, когда активно начал использовать docker.
С Diun не сложилось из-за темплейтов уведомлений - я не осилил их настолько, чтобы получить читаемое сообщение, точнее позже осилил, но из коробки - это мрак.
WUD оказался ближе всего к тому, что я хотел, и честно, будь в нём прокси для уведомлений в телегу, я бы, скорее всего, на нём и остался. Но прокси не было, а напрямую до Telegram некоторые мои серверы не достают. Плюс особенность зашивать имя хоста в имя переменной конфига - это что-то с чем-то. Первым делом форкнул WUD, сделал патч и PR, чтобы добавить прокси для телеги. Посмотрел, как часто там выпускаются релизы, всплакнул и пошел пилить свое. Самое смешное, что PR в итоге приняли за неделю (спустя полгода от предыдущего релиза), но к тому времени я уже переехал полностью на свою поделку.
Всё началось не с мечты про «поисковик нового поколения». Мне понадобился быстрый self-hosted Tavily-compatible API для собственных рабочих и личных AI-решений: без оплаты за каждый запрос, без внешнего сервиса в обязательной цепочке и с индексом, содержимое которого контролирую я сам.
Тут я вспомнил про YaCy. Когда-то я уже поднимал его ноду. Идея мне нравилась, а реализация — заметно меньше: Java, тяжёлая машина и примерно шесть секунд ожидания ответа на моей тогдашней установке. Для человека, который один раз нажал Enter, это ещё можно пережить. Для агента, делающего несколько поисков, уточнений и extract подряд, это превращает один шаг в минутный перекур.
Поэтому вместо ещё одной обёртки над чужим поиском я оставил от YaCy сетевой протокол и начал собирать поисковую ноду заново: на Go, с отдельным краулером, embedded storage, нормальным API и ranking pipeline из современных работ по information retrieval.
Под катом — немного сетевой археологии, Bleve, bbolt, gRPC, BM25, LambdaMART и рассказ о том, как задача «дайте локальный endpoint для AI-агентов» постепенно превратилась в реинкарнацию YaCy.

В прошлой статье я писал как перенести свою музыку себе домой, а это руководство для того, кто решил забрать свой фотоархив домой. От пустого LXC-контейнера до работающего Immich: свой «Google Photos» с умным поиском и лицами на встроенном GPU, доступ с телефона из любой точки мира — и перенос семнадцати тысяч фотографий из Google без потери единого кадра и с восстановлением геолокации.
Хотя многие считают Linux современной операционной системой, она воплощает в себе идеи, которым уже более 50 лет. Рассмотрим некоторые из этих давних концепций и причины, по которым они сохраняются в современных дистрибутивах Linux.

Один Beelink GTR9 Pro на Ryzen AI Max+ 395 выдал 236 tok/s суммарной генерации на 32 одновременных запросах в коротких прогонах и удержал в среднем 226 tok/s за 30 минут непрерывной нагрузки без тротлинга. По дороге к этим числам я нашёл воспроизводимый провал пропускной способности, который сначала выглядел свойством одной модели, увидел, как спекулятивный декодинг на моём стеке превращается из ускорителя в налог, и трижды чуть не опубликовал неверные выводы. Каждый раз спасали контрольные замеры, все три истории здесь, в статье.
Харнессы, конфиги, полные таблицы, значения по каждому ключевому и финальному прогону, поминутные ряды выносливости и телеметрия лежат в открытом репозитории. Логи отдельных запросов харнесс не вёл, поэтому пересчитать можно всё до уровня прогона, но не глубже. Числа сняты на одном конкретном стенде; что из этого переносится на другие стеки, а что нет, оговорено по ходу текста.

Исторически лучший Gpick в KDE на Wayland остался без пипетки, а штатные kcolorpicker-ы повергают в печаль и уныние. Что делать? Велосипедить! Написал лёгкий Python-скрипт, дёргающий родной XDG-портал.
UPD: Прокачал утилиту до полноценного комбайна — теперь она выдаёт чистые данные без префиксов, умеет копировать конкретные форматы (HEX, RGB, HSL) в буфер и идеально встаёт в любые shell-конвейеры и хоткеи. Больше велосипедов богу СПО!

SSB — «мы стояли на „плоскости“»
Предлагаемый текст представляет опыт ознакомления автора с тестом SSB в свете обычных прикладных вопросов BI‑проекта умеренного размаха. Автор пытается бросить пытливый взгляд на спектр перспективных возможностей, обеспечиваемых доступностью и масштабируемостью теста SSB.

Я собираю своего кодинг‑агента поверх моделей OpenAI. Базовый агентный цикл написал сам на Pydantic AI, и он быстро заработал. А потом начались сложные узлы: как сжимать распухший контекст, как не дать агенту делать заново уже сделанное, как понять, что он правда закончил, а не выдохся. На каждом таком узле я застревал и шёл смотреть, как это решают взрослые. Благо исходники Codex, OpenCode и Pi лежат открыто, а архитектуру Claude Code Anthropic описывает сама.
Оказалось, кодинг‑агенты различаются не моделью внутри и не списком фич на лендинге. Они различаются архитектурными ставками обвязки, и эти ставки видны прямо в коде. Дальше — разбор по ставкам, с примерами кода, и попытка понять, какие из этих ставок стоит закладывать всерьёз, а какие проживут до следующего сильного релиза модели.

7 июля стартовал недельный онлайн-хакатон Built with Claude: Life Sciences. Его провели Anthropic вместе с институтом Гладстона и площадкой Cerebral Valley, участники со всего мира собирали проекты на стыке ИИ и биомедицины, используя Claude Code и научный доступ к Claude. Вчера - 17 июля объявили победителей. Ниже, разбор пяти призовых проектов и общий инженерный приём, который их объединяет.

Я хотел исполнить свою давнюю мечту — запустить DOOM на собственных наушниках.
В итоге вместе с портом я создал проект для полной модификации их софтверной части. Это первая часть статьи — она рассказывает о создании патчера стоковой прошивки.

Приветствую, Хабравчане.
Предлагаю вам, окунуться в ретро программирование на С++ 23 и модулях. Да вы не ослышались. Это вполне возможно и я готов вам рассказать это и показать на практике.
Но сначала мы напишем движок для моей любимой игры Arcanum. Но мы не остановимся на спрайтах и старой графике, я добавлю 3D.
Если хотите узнать как. Заходите. Я рад всем.
Настоящая проблема — не отсутствие одной платформы, а разнородность сред, в которые нужно доставить одно и то же приложение. Каждая среда тянет доставку к своему механизму, а инфраструктурный код — тот самый «второй API» с сотнями параметров установки — форкается под каждую цель.
Цель принести Kube-way туда, где Kubernetes под запретом!

В статье рассматривается планирование ребаланса кластера Greengage DB (open-source fork Greenplum) после shrink, декомиссии и добавления хостов: формальная модель размещения primary- и mirror-сегментов, минимизация числа перемещений, сравнение точных и эвристических алгоритмов и реализация планировщика в ggrebalance