Обновить
512K+

Open source *

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

776,41
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как мы запустили Ornith‑35B на ноутбуке с 8 ГБ VRAM и разогнали её до 99 ток/с на AMD Strix Halo

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели812

Ornith‑1.0‑35B обошла Qwen3.5‑397B в Terminal‑Bench, а на нашем локальном срезе хорошо показала себя в агентном кодинге. Мы решили проверить, насколько быстрее она сможет работать на AMD Strix Halo с пропускной способностью памяти до 256 ГБ/с.

В статье — результаты экспериментов с Vulkan, MTP, селективной квантизацией и n‑gram reuse: что не дало прироста, как удалось получить 99 ток/с без потери качества и каким способом 35B‑модель запустилась на Windows‑ноутбуке с 8 ГБ VRAM.

Читать далее

Новости

OpenSource мертв, да здравствует OpenSource :)

Время на прочтение2 мин
Охват и читатели6K

Примерно в 23 году, когда LLM с историей ChatGPT полноценно вошли в жизнь, я стал задумываться - а что будет с Open Source? Уже тогда было понятно, что что-то точно поменяется.

Мысль у меня была простая. 

LLM меняет игру => стоимость софта будет падать все сильнее => Софт перестает что-либо стоить => А это заставит рынок сильно меняться.

Через какое-то время я встретился с представителем одного очень крупного зеленого банка :)

Из-за моего Open Source стартапа мы долго рассуждали на эту тему, и после разговора я понял - перед нами два стула. На какой сядет реальность, а на какой фантазия - пока непонятно :D

Первый стул - Open Source вымрет как явление. Зачем качать библиотеку, если можно сгенерировать полностью схожую и не связываться с лицензиями и прочими сложными вопросами? Тебе это все становится не нужно.

Мысль интересная, но пока она бьется об одну важную стену. Стена называется "LLM генерит говнокод". Говнокод не в плане, красивый он или некрасивый, а в плане, что он неработоспособный. А скажешь агенту "вот бага, подправь" - он часто сделает еще хуже. И что бы ни говорили про рост когнитивки, без должным образом поставленной цели и объяснения проблемы агенты качественный софт не выдают. Сталкиваюсь с этим прямо сейчас - пилю очередной open source продукт.

Есть второй стул, и пока я больше верю в него. Раз стоимость софта падает, рынок будет меняться в сторону того, что софт скорее должен быть open source. Не open source - меньше доверия. Модель "community edition + платный тариф" - Enterprise, Team, неважно. Тем более что так софт элементарно проще продвигать даже через агентоцентричную экономику. Потому что, будем объективны, ближайший рост экономики в мире обеспечат агенты, а не люди.

Читать далее

Еще одна уведомлялка про обновления Docker — но с прокси и без автообновлений

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.5K

Простите, но я сделал еще один продукт, который уведомляет, если есть обновления. Многие следят за обновлениями своего зоопарка docker-контейнеров, и я не исключение. На рынке есть несколько готовых решений, и я честно попробовал самые популярные.
Watchtower на тот момент показался мне заброшенным (про живые форки я тогда не знал) и что-то с ним не задалось, что именно, если честно, уже не помню. Это был первый кандидат, когда активно начал использовать docker.
С Diun не сложилось из-за темплейтов уведомлений - я не осилил их настолько, чтобы получить читаемое сообщение, точнее позже осилил, но из коробки - это мрак.
WUD оказался ближе всего к тому, что я хотел, и честно, будь в нём прокси для уведомлений в телегу, я бы, скорее всего, на нём и остался. Но прокси не было, а напрямую до Telegram некоторые мои серверы не достают. Плюс особенность зашивать имя хоста в имя переменной конфига - это что-то с чем-то. Первым делом форкнул WUD, сделал патч и PR, чтобы добавить прокси для телеги. Посмотрел, как часто там выпускаются релизы, всплакнул и пошел пилить свое. Самое смешное, что PR в итоге приняли за неделю (спустя полгода от предыдущего релиза), но к тому времени я уже переехал полностью на свою поделку.

Читать далее

YaGo: как я хотел бесплатный self-hosted Tavily API, а в итоге воскресил YaCy

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели6.9K

Всё началось не с мечты про «поисковик нового поколения». Мне понадобился быстрый 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.

Читать далее

Личное облако на Proxmox: как собрать себе фотохостинг с мобильным клиентом

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели9.5K

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

Читать далее

Как я обуздал Vibe Coding: заставляем Grok и Codex делать ревью за Claude Code

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.6K

Сегодня из каждого утюга звучит термин vibe coding — расслабленная, итеративная разработка в диалоге с ИИ, когда ты просто описываешь хотелки, а агент сам пишет, правит и деплоит. Звучит как магия, но на практике попытка скормить агенту большой объем работы за один заход почти всегда заканчивается результатом категории «ну, вроде работает».

Читать далее

Благодаря этим пяти идеям из Unix 1970-х годов Linux до сих пор отлично работает

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.4K

Хотя многие считают Linux современной операционной системой, она воплощает в себе идеи, которым уже более 50 лет. Рассмотрим некоторые из этих давних концепций и причины, по которым они сохраняются в современных дистрибутивах Linux.

Читать далее

Мини‑ПК на Strix Halo под параллельной нагрузкой: 236 tok/s на 32 одновременных запросах и три ошибки

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели13K

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

Харнессы, конфиги, полные таблицы, значения по каждому ключевому и финальному прогону, поминутные ряды выносливости и телеметрия лежат в открытом репозитории. Логи отдельных запросов харнесс не вёл, поэтому пересчитать можно всё до уровня прогона, но не глубже. Числа сняты на одном конкретном стенде; что из этого переносится на другие стеки, а что нет, оговорено по ходу текста.

Читать далее

Не отдам Gpick! Он хороший! Но крутить педали придётся…

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели12K

Исторически лучший Gpick в KDE на Wayland остался без пипетки, а штатные kcolorpicker-ы повергают в печаль и уныние. Что делать? Велосипедить! Написал лёгкий Python-скрипт, дёргающий родной XDG-портал.

UPD: Прокачал утилиту до полноценного комбайна — теперь она выдаёт чистые данные без префиксов, умеет копировать конкретные форматы (HEX, RGB, HSL) в буфер и идеально встаёт в любые shell-конвейеры и хоткеи. Больше велосипедов богу СПО!

Читать далее

SSB — «мы стояли на „плоскости“»

Время на прочтение11 мин
Охват и читатели7.8K

SSB — «мы стояли на „плоскости“»

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

Читать далее

Harness кодинг‑агента: разобрал исходники Codex, OpenCode, Pi и свою собственную

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели14K

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

Оказалось, кодинг‑агенты различаются не моделью внутри и не списком фич на лендинге. Они различаются архитектурными ставками обвязки, и эти ставки видны прямо в коде. Дальше — разбор по ставкам, с примерами кода, и попытка понять, какие из этих ставок стоит закладывать всерьёз, а какие проживут до следующего сильного релиза модели.

Читать далее

Пять проектов, где ИИ-агент проверяет сам себя — итоги хакатона Built with Claude

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8K

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

Читать далее

Как я прошил наушники soundcore, портировал на них кастомную прошивку и DOOM. Часть 1

Время на прочтение5 мин
Охват и читатели20K

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

Читать далее

Ближайшие события

Пишем движок для игры Arcanum на С++ 23 в 3D. Глава 00 — В начале славных дел

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели14K

Приветствую, Хабравчане.

Предлагаю вам, окунуться в ретро программирование на С++ 23 и модулях. Да вы не ослышались. Это вполне возможно и я готов вам рассказать это и показать на практике.
Но сначала мы напишем движок для моей любимой игры Arcanum. Но мы не остановимся на спрайтах и старой графике, я добавлю 3D.

Если хотите узнать как. Заходите. Я рад всем.

Егог

Когда Kubernetes нельзя, а Ansible боль: чего я не договорил про Horchestra

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7K

Настоящая проблема — не отсутствие одной платформы, а разнородность сред, в которые нужно доставить одно и то же приложение. Каждая среда тянет доставку к своему механизму, а инфраструктурный код — тот самый «второй API» с сотнями параметров установки — форкается под каждую цель.

Цель принести Kube-way туда, где Kubernetes под запретом!

Читать далее

ggrebalance: Часть 2. Планирование операции ребаланса

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели6.7K

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

Читать далее

Коллега по имени Себастьян: зачем Microsoft сделала своего OpenClaw

Время на прочтение7 мин
Охват и читатели6.5K

Независимый разработчик собирает инструмент, через несколько недель о нем говорит весь интернет, а спустя несколько месяцев крупная корпорация показывает собственную версию той же идеи — с корпоративными политиками, аудитом и подпиской. Знакомая история? Так происходит любая технореволюция. Недавно этот путь прошел OpenClaw — от opensource-проекта до Scout, нового ИИ-агента Microsoft. Разберем, почему эта история интересна и самим продуктом, и тем, как индустрия приручает технологии.

Читать далее

Сегодня я для себя открыл: Pony ORM

Время на прочтение8 мин
Охват и читатели13K

Читатели хабра знают меня как автора статей о django. Например, в предыдущем посте я писал о том, как собирался переписывать django на async/await. Кстати, первые эксперименты подтвердили, что подход рабочий, и что django отлично поддаётся переписыванию. А также - что он хорошо расширяем и содержит код высокого качества.

Однако, я пришёл к выводу, что несмотря на эти достоинства, django сильно уступает Pony ORM, которая, в отличие от django и других ORM, ещё и спроектирована правильно - способом, дружественным к оптимизациям. Не случайно в статьях, которые есть о ней на хабре, её хвалят именно за производительность.

В этой статье речь пойдёт о Pony ORM, но не о фичах для пользователя, которых много (о которых можно узнать в этих видео 1, 2), а о её внутренней архитектуре.

Читать далее

Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели13K

У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен (any).

В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце.

Как это устроено

Европейский ИИ: что там вообще происходит?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели13K

Не только лишь Mistral

Что первое приходит вам в голову, когда вы слышите фразу «европейские LLM»? Опытный читатель наверняка вспомнит про французскую Mistral и... в целом, на этом всё.

Читать далее
1
23 ...