Обновить
512K+

Open source *

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

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

Как я добавил HEIF, HEIC и AVIF в Android-ImageMagick7

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

HEIF, HEIC и AVIF на Android через ImageMagick: хроника внедрения в два этапа. Без лишней воды — только проблемы и их решения.

Читать далее

Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий

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

Сразу дисклеймер: это рассказ про инструмент, который мы написали для себя и используем каждый день. Ссылку дам в конце, продавать не буду — расскажу про проблему и как её решали, потому что упираемся в неё, возможно, не только мы.

За последний год мы переписали почти всю проектную документацию в markdown и положили в тот же git, где лежит код. Причина простая: после перехода на Cursor и Claude Code так было удобнее работать. Модели нормально обрабатывают markdown и не лопатят десятистраничный google-док, диффы видно в PR, доки лежат рядом с кодом, который описывают. Всегда можно обратиться к инфе по проекту, внести обновления - короче пользоваться документом, а не хранить его для красоты.

И тут вылезла проблема, о которой лично мы заранее не подумали: документацию читает не только тот, кто её пишет. Её читают клиенты, менеджеры, дизайнеры, эйчары. А они в репозиторий не полезут никогда.

Дать клиенту доступ в GitHub/GitLab — так себе затея сразу по нескольким причинам: там лежит то, что ему видеть не надо, это лишний разговор про безопасность, да и сам интерфейс гитхаба человека не из айтишки отпугивает. Плюс требуется регистрация. В итоге мы делали то же, что, по-моему, делают все: копировали markdown в google docs, чтобы клиент мог прочитать и покомментировать, а потом при каждом изменении заново выгружали и сводили комментарии руками. Год так жили.

Что смотрели, прежде чем пилить своё:

GitBook и Mintlify хотят, чтобы ты писал в их редакторе. Ради шеринга пришлось бы бросить тот самый workflow, ради которого мы в git и переехали. Плюс ценник.

Читать далее

Теперь вы можете защититься от утечки данных при работе с любыми языковыми моделями

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

Пару дней назад Cloud.ru выложил исходный код Guardrails Filter в открытый доступ. Это прозрачный обратный прокси между клиентом и LLM-провайдерами, он убирает чувствительные данные из запросов к модели и восстанавливает их в ответах. Я один из разработчиков этого инструмента и хотел бы рассказать подробнее, зачем вам вообще может быть нужно опенсорс-решение, как его можно внедрить в свою инфраструктуру, ну и ответить на вопрос: зачем облаку бесплатно делиться своими наработками с рынком?

Читать далее

Кому на самом деле принадлежат Unix и Linux: история самого долгого судебного спора в IT

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

Спор вокруг Unix и его возможного следа в Linux уже пережил банкротства, смену владельцев, несколько переименований компаний и даже смерть одного из главных участников. В последние годы могло показаться, что он утих, но нет. В июне 2026 года в Апелляционном суде второго округа США прошли слушания по делу Xinuos против IBM. Компания, которая когда-то купила остатки бизнеса SCO, пытается доказать, что у нее есть основания требовать компенсации. И хотя перспективы выглядят скромно, сам факт возвращения спора показывает, насколько запутанной оказалась история прав на одну из важнейших операционных систем прошлого.

Читать далее

Написал локального ИИ-ассистента для зумов: диаризация, граф знаний и ноль облаков

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

Собрал ассистента встреч, который работает целиком на моём маке: локальный STT, живая диаризация голосов, мгновенные ответы на вопросы собеседника и самообновляемый граф знаний в Obsidian. Внутри — грабли: ловушка обращений при расстановке имён, 23 «голоса» из-за осколков кластеризации, num_ctx и бюджет RAM в Ollama. Код открыт, Apache 2.0.

Читать далее

Выпущена версия Jmix 3.0

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

Выпущен Jmix 3.0, и это самый значительный шаг, который фреймворк сделал за последние годы. Этот релиз перестраивает основу на современном технологическом стеке, оставаясь полностью совместимым с предыдущими версиями, что делает миграцию гладкой и простой. Наряду с обновлением платформы, 3.0 представляет набор функций, которые активно используют ИИ и предоставляют гибкость в рантайм.

Ниже приведён краткий обзор основных новых возможностей. Полный список изменений, включая все критические изменения, доступен в разделе Что нового документации.

Читать далее

С телефона в Альпах в Microsoft Store за две недели: нативный GUI для PostgreSQL через облачный Claude Code

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

10 лет в .NET, отпуск в Альпах и pgAdmin, который меня достал.

Начало июля, горный воздух, а в голове рабочая фрустрация. Ну сколько можно ждать по 30 секунд, пока pgAdmin разродится ради одного короткого запроса? Из инструментов с собой только смартфон и лимиты Claude Code. Challenge accepted.

За выходные, целиком с телефона, не написав руками ни единой строчки кода, я собрал первую рабочую версию нативного GUI для PostgreSQL. Дальше две недели вечернего кодинга, 17 релизов, и проект уже в Microsoft Store.

Встречайте: NativeAOT, взлетает за ~100 мс, весит всего 19 МБ, ноль трекеров, лицензия MIT.

Написал об этом подробный пост. Без лишней воды и успешного успеха рассказываю: как агент тащил разработку (от кода до дебага в песочнице) и где ему всё-таки нужна была менторская рука, какие грабли подкинул NativeAOT и как бесплатно выкатиться в Microsoft Store без покупки дорогого Authenticode-сертификата.

Заходите почитать, а в конце проголосуйте в опросе, какую фичу пилить следующей: ER-диаграммы, визуальный дифф EXPLAIN, UI для бэкапов или локальный AI?

Читать далее

Как я автоматизировал превращение вайбкодерского PoC в production-ready MVP

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

Как я автоматизировал превращение вайбкодерского PoC в production-ready MVP

За несколько часов с помощью AI можно собрать работающий PoC: интерфейс открывается, кнопки нажимаются, основной сценарий проходит.

Потом кто-нибудь спрашивает:

А это уже можно выкатывать в прод?

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

Мне регулярно приходится заниматься именно второй половиной этой работы — превращать быстро собранные прототипы в поддерживаемые MVP.

В какой-то момент я понял, что каждый раз повторяю примерно один и тот же инженерный процесс. Так появился Pre2Prod — CLI на базе Codex, который последовательно проверяет репозиторий, составляет план исправлений, выполняет его и независимо перепроверяет результат.

Под капотом — один постоянный Reviewer, временные Workers, 41 специализированное ревью и простой цикл:

Review → Plan → Implement → Re-review

Читать далее

Разработка TypeScript-библиотеки для построения реактивных графов распространения и обработки данных

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

Как построить гибкий реактивный граф обработки данных, где узлы изолированы друг от друга, а связи между ними строятся автоматически на основе их возможностей? Рассказываю о разработке Transferum — легковесной TypeScript-библиотеки для реактивных потоков. Внутри: разбор системы вычислимых типов для проверки контрактов в compile-time, управление маршрутизацией данных в графе и примеры построения динамических пайплайнов для IoT-датчиков и панелей управления.

Читать далее

QuotaRadar — уведомления о сбросах лимитов Codex и Claude Code

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

Всем привет!

У вас было такое, когда заканчиваются недельные или часовые лимиты в Codex или Claude Code, а потом вы внезапно обнаруживаете, что лимиты уже сбросили?

Приятно, да? Особенно Codex этим часто радует :)

Так вот, я хотел получать уведомления о таких сбросах. Но при этом не хотел самостоятельно мониторить X — бывший Twitter — или постоянно проверять другие источники.

Читать далее

Как я писал Лицензию для «Свободного ИИ»

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

Приветсвую всех читателей Хабра. В этой статье я хочу рассказать о том, как я пытаюсь сделать современный ИИ свободнее, через свою copyleft Лицензию. Она носит имя FMLL (Free Machine Learning License). Ее цель — сделать copyleft не только код LLM, датасеты, RAG и другие инструменты. Лицензия первой версии уже доступна на GitHub.

Читать далее

Бесшовный роуминг (Mesh) без переплаты: Xiaomi AX6S с OpenWrt и Mercusys — Wi‑Fi 7, 6 ГГц и шириной канала в 320 МГц

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

Как получить три точки доступа с каскадным проводным бесшовным роумингом WiFi7 и общей LAN задёшево? Готовые Mesh-комплекты с Wi‑Fi 7 и диапазоном 6 ГГц начинаются примерно от 100 тысяч рублей, поэтому я собрал сеть из трёх самых дешёвых устройств в своём классе: Xiaomi Redmi AX6S на OpenWrt в роли маршрутизатора и Mesh-контроллера, Mercusys MR60X для покрытия Wi‑Fi 6 и Mercusys MR47BE ради Wi‑Fi 7, 6 ГГц, WPA3-SAE и канала 320 МГц.

Что получилось:

один SSID на трёх устройствах, обе точки Mercusys подключены по Ethernet EasyMesh-контроллером;

контроллер — собранный мной пакет prplmesh для OpenWrt 25.12 (APK и патчи опубликованы);

около 900 Мбит/с на проводном участке и столько же по воздуху;

после перезагрузок сеть восстанавливается сама.

возможность реализации горячего резерва двух провайдеров, SPLIT VPN и прочие прелести открытого кода

Как это собрано и сколько стоит →

Ночной джоб, который сам нарезает партиции: cron, SQL-функция и сплиттер

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

Есть таблица GPS-точек. Транспорт шлёт координаты каждые несколько секунд, за сутки набегают миллионы строк, и таблица секционирована по времени. Значит, кто-то должен заранее создавать партицию на завтра и отцеплять партиции старше девяноста дней. Иначе в одну прекрасную ночь вставка упадёт с no partition of relation "gps_points" found for row, и это будет ровно в тот момент, когда никто не смотрит.

Читать далее

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

Шесть часов на один рендер: как я собрал нативную студию Ideogram 4 на Swift и MLX

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

Я запустил Ideogram 4 локально на Mac, а затем собрал для него нативное приложение на Swift и MLX — без отдельного Python-процесса во время рендера. Сразу честно: «6 часов против 11 минут» — не ускорение одной картинки в 35 раз, а два разных режима: максимальный Quality 2048×2048 на 48 шагах и повседневный Turbo 1152×768 на 12. Это продолжение серии о Typhoonminigen. В статье — архитектура приложения, реальные замеры, удачные решения, ограничения и ошибки, которые пришлось исправлять по пути.

Читать далее

Браузер вместо API: как я объединил DeepSeek, Qwen и ChatGPT в одного локального агента

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

Я хотел получить локального AI-агента без отдельного API для каждой модели — и превратил браузерные сессии DeepSeek, Qwen и ChatGPT в единый транспорт. В статье разбираю архитектуру AI Free: WASM proof-of-work, подписанные запросы через авторизованную вкладку, работу через штатный UI, общий оркестратор, память, skills и восстановление после сбоев. А ещё рассказываю, почему первый успешный запрос оказался самой простой частью проекта, который я разрабатываю один.

Читать далее

Я сделал полностью локальный Telegram Wrapped после того, как у меня угнали фейк с тремя переписками

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

Всем привет, начиная с прошлого лета я потихоньку клепал свою версию Telegram Wrapped.

Началось всё максимально тупо. Я увидел в TikTok рекламу очередного сервиса, который обещал красиво проанализировать мой Telegram. Проверять такое на основном аккаунте мне показалось сомнительной идеей, поэтому я зашёл туда с фейка, на котором было буквально три переписки.

В итоге фейк угнали.

Да, аккаунт с тремя чатами.

После этого я задумался: почему вообще ради красивой статистики человек должен отдавать кому‑то код входа, сессию Telegram или доступ ко всему аккаунту? Так появилась идея сделать свой Wrapped, который не заходит в аккаунт и не отправляет переписки на чужой сервер.

Читать далее

Hypothesis: тесты, которые сами ищут контрпримеры к вашему коду

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

Обычные тесты находят только ожидаемые ошибки. В статье разберём, как Hypothesis сам ищет контрпримеры и сокращает их до минимального сбоя.

Читать далее

Perseus: фреймворк для универсальной персонализации на основе гетерогенных событий

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

Привет! Я Олег Лашинин, руковожу направлением рекомендательных систем в Т-Банке. Когда в экосистеме десятки сервисов — от покупки продуктов в супермаркетах до оформления ипотеки, хочется, чтобы модель понимала пользователя целиком, а не по кусочкам. Но каждая команда собирает свои данные, у событий разные схемы, а в новых сервисах нет истории. 

Большинство моделей было построено только на данных того сервиса, где они применяются. Мы решили эту проблему, объединив все действия пользователя в единую последовательность, и на ее основе построили фреймворк Perseus.  Он позволяет масштабировать ML персонализацию на разные продукты и сервисы компании, так как является гибким инструментов для работы с экосистемными данными. В разных задачах нам удалось сразу повысить бизнес-метрики от 3% до  17% — даже если у пользователя не было ни одной покупки.

Читать далее

«Приватное» оказалось не приватным: разбираю свежий Gitea auth-bypass на живом стенде

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

Self-hosted git ставят ради приватности кода. А оказалось, что “приватное” в Gitea открывается одним HTTP-заголовком: без пароля утекают секреты из приватных репозиториев и открывается админка. Поднял уязвимую версию на стенде, воспроизвёл атаку целиком, показал как ловить в логах и чинить. И почему это не единичный баг, а паттерн 2026 года.

Читать далее

page.waitForTimeout — это всего лишь warning. Почему зелёный линт не спасает Playwright-тесты

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

Тест кликает с force: true, ждёт waitForTimeout(3000) и не делает ни одной проверки — а CI с подключённым eslint-plugin-playwright зелёный: все три греха в recommended — warning. Я выписал из исходников плагина, где error, а где warn. Под катом — конфиг, который это чинит. Ну и десять правил ревью, до которых линту не дотянуться в принципе.

Читать далее