Обновить
512K+

Open source *

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

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

MarkMello v0.4.0: развитие MD-редактора

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

Всем привет!

В мае я опубликовал на Хабре первую статью о MarkMello (легкий MD-просмотрщик). Изначальная задача была простой: сделать лёгкое приложение, которое быстро открывает локальный Markdown-файл сразу в режиме чтения.

Хочу рассказать вам о развитии этого проекта, во что он превратился на сегодняшний день, а так же поблагодарить всех контрибьюторов за участие проекте.

Читать далее

Qwen4: Архитектура будущего

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

Тут надо сразу расставить точки, потому что вокруг названия путаница. Полноценного Qwen4 не существует. Есть Qwen3.8-Flash‑Next — модель, которую сама команда Qwen называет «экспериментальная версия архитектуры, которая ляжет в основу Qwen4».

26 августа 2026 интернет на пару часов забыл про всё. «Meet Qwen3.8-Flash, a multimodal MoE and an early preview of the Qwen4 architecture, now open‑weight!» И цифры… 125 миллиардов параметров всего. Плюс ещё 51 млрд отдельным слоем. А активируется на каждый токен — лишь 6 миллиардов.

Первая мысль была: так не бывает.

Читать далее

Как я перешёл на NixOS и настроил там OpenClaw

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

Полгода на Arch, одно обновление ядра и AmneziaWG выходит из строя. Snapper молчит, бэкап сломан. Решил попробовать NixOS…

Читать далее

Location King: геогессер на спутниковых снимках

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

Геогессеры обычно строятся на панорамах улиц: вид с земли, а вы ищете вывески, дорожные знаки, номера машин. Работает, но угадываете вы в итоге по надписям.

Я сделал Location King — игру на спутниковых снимках. Показывается участок съёмки сверху, без подписей, границ и координат. Надо понять, где это, и поставить точку на карте мира. Чем ближе к цели, тем больше очков, максимум пять тысяч за раунд.

Меня зовут Илья Краснопольский, я занимаюсь разработкой в области геоинформатики и градостроительства. Идея простая: сверху местность опознаётся не хуже, чем с земли, просто признаки другие.

Читать далее

Пассивный пространственный преобразователь: может ли форма полости кодировать волновую сцену?

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

PHB, численное моделирование FDTD, матрица откликов H и путь от пеленга к идее «волновой камеры

Лаборатория Геометрической Волновой Инженерии · версия для Хабра · август 2026

Читать далее

Мой сайт грузился две секунды, потому что каждый CSS-файл писал в базу данных

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

Сайт не сломан. Он открывается. В логах чисто, ошибок нет — просто ты кликаешь по вкладке и успеваешь заметить, что кликнул.

Я померил: страница кабинета грузилась 2,1 секунды. При этом сервер отдавал HTML за 30 миллисекунд. Первый час я искал не там — потому что померил не ту страницу.

Всё решил один замер. Я дёрнул один и тот же CSS-файл десять раз с кукой сессии и десять раз без неё: 55 мс против 14 мс. За файл с диска. Оказалось, аутентификация делала SELECT, UPDATE и COMMIT в SQLite на каждую картинку и каждый скрипт — сорок раз за страницу, чтобы сорок раз переписать один и тот же таймстамп.

Вторым тормозом был Tailwind, который компилировал стили в браузере у каждого посетителя. Стало 0,9 секунды.

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

Код открыт

Смотреть, как я это нашёл

OpenEar: как я посчитала, насколько скучный у меня плейлист (и написала для этого open-source дашборд)

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

Рекомендательная лента почти любого музыкального сервиса оптимизируется под одну метрику — удержание. Мне захотелось не рассуждать об этом абстрактно, а измерить: так появился OpenEar — open-source privacy-first дашборд, который считает прозрачные метрики музыкального разнообразия по истории ListenBrainz.

Читать далее

Одно кривое правило — и алертинг лёг всем тенантам: анатомия отказа vmalert в мультитенантной платформе

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

Я строю мультитенантную платформу мониторинга на стеке VictoriaMetrics + Grafana + vmalert: у каждого клиента — изолированный tenant в хранилище и собственный набор правил алертинга, которые он редактирует через личный кабинет. Расскажу про два сцепленных инцидента, которые изменили моё понимание изоляции тенантов, — с конкретными числами, конфигами и кодом фиксов. Спойлер: изолировать данные — этого мало.

Читать далее

Как интеграционная платформа (ESB) превращает цифровую имитацию в реальную трансформацию

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

Почему без интеграции ИТ‑систем все усилия по цифровизации умножаются на ноль.

В статье разберём четыре подхода, которые компании выбирают, когда доходит до интеграций ИТ‑систем: классические «точка‑точка» (они же «спагетти‑код»), брокеры сообщений вроде Kafka и RabbitMQ, Open Source‑решения и готовые ESB‑платформы. Посмотрим на примерах, как каждый из них работает в бою, какие грабли ждут на каждом пути, и почему «бесплатно» на входе часто оборачивается очень дорогим сопровождением.

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

Разберём на примерах, как каждый подход работает в реальной жизни, какие у него плюсы и минусы, и почему «бесплатные» варианты часто обходятся дороже.

Читать далее

Шесть миллиардов прогонов ради одной галочки: как устроено ревью научного софта на GitHub

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

Последние месяцы я рецензирую научный софт для JOSS, Journal of Open Source Software. Это настоящий рецензируемый журнал с редколлегией, только статья в нём короткая, около тысячи слов, а главный объект ревью - репозиторий с кодом. Ревью идёт в публичном GitHub-треде под именем рецензента, и весь процесс от заявки до вердикта открыт любому желающему. Я инженер, не учёный: ни PhD, ни публикационного списка у меня нет.

Читать далее

Я написал программу для записи экрана, которой не нужен мощный ПК

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

Представьте что вы — индус на отшибе мира у которого старенький ноутбук 2016-2017 года. Вам захотелось записать на YouTube видео с вашего компа, но вот незадача — OBS заставляет ваш ноутбук задыхаться. Bandicam платный, а бесплатной версией себя долго не помучаешь. Как насчет других аналогов? а вот фигушки! Если брать тот же ShareX то он не идёт с играми и жрёт кадры.

Принципе любой рекордер жрёт кадры, это неизбежно, в любом случае мораль проста - OBS идеален, если у тебя стоит хороший ПК. а если нет то... ну, тут ничего не поделаешь. Это не вина OBS — он решает другие задачи. Но для слабого железа нужен другой инструмент

И после одной такой мысли я подумал - а как решить эту проблему? Я живу по принципу "Критикуешь - предлагай" и я предлагаю свою программу - HomRec, которая решила мою проблему с OBS. Она полностью опенсурсна, есть на GitHub и бесплатна для каждого. Я написал её полностью на C++, она работает с помощью ffmpeg и, как мне кажется, вообще ничем не уступает по записи. А вот интерфейс знатно хромает.

Настройки помогают указать то как запись будет вестись, оверлеи исполняют базовые потребности по типу прикрепления картинки на экран или действий на клавиатуре. Так же я вошел в азарт и заделал туда свой терминал для различных задач (например — там есть свой пакетный менеджер для плагинов, а точнее их установки). подробнее я позже напишу в документации.

Кстати по поводу плагинов — они тоже присутствуют (как вы, скорее всего, уже поняли). Пишутся они на Lua 5.4, изначально я планировал сделать для этого Python но решил, что Lua больше подходит для этого.

Читать далее

redb 3.7: свой gRPC-протокол, отсечение props до агрегата и релиз, отозванный через день

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

Свой gRPC-wire в Route, отсечение props до агрегата в redb.Core, Tsak закрыт по умолчанию, второй фасад у Identity. И 3.7.0, отозванный через день.

За три дня у экосистемы сменилось три номера: 3.7.0, 3.7.1 и 3.7.2. Первый отозван, живой номер 3.7.2. Ниже разбор того, что в этой линии вышло, в порядке зависимостей: интеграционный движок redb.Route, хранилище redb.Core, рантайм redb.Tsak и OpenID-сервер redb.Identity. Все четыре продукта идут на одном номере, 66 пакетов.

Начну с того, почему номеров три.

Читать далее

Включение HotSpot Android по триггеру BT

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

Есть у меня довольно простой автомобильный сценарий. Я сажусь в машину, телефон автоматически соединяется по Bluetooth с магнитолой, а самой магнитоле для навигации, пробок и прочих радостей нужен интернет через Wi‑Fi. Каждый раз доставать телефон, открывать шторку и вручную включать точку доступа мне в какой-то момент окончательно надоело.

Казалось бы, задача на пять минут: поймали подключение нужного Bluetooth-устройства и вызвали системную функцию включения hotspot. Но с недавних пор эту лавочку в Android прикрыли. Обычному стороннему приложению прямого доступа к управлению tethering уже не дают, даже если пользователь сам этого хочет.

В итоге получилось небольшое приложение BlueSpot на C#/.NET, которое делает ровно одну вещь: при подключении к выбранному Bluetooth-устройству включает системную Wi‑Fi-точку и присылает уведомление. Root не требуется, но без небольшого легального извращения в виде Shizuku не обошлось.

Читать далее

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

Мы списали uv со счетов. А потом он ускорил наш CI на 80%

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


Мы списали uv со счетов. А потом он ускорил наш CI на 80%

В Python-сообществе вокруг uv уже несколько месяцев шум: быстрый резолвинг, один инструмент вместо зоопарка утилит и обещание ускорить привычный workflow. Звучит хорошо — пока не проверишь на своём стеке.

Мы так и сделали. Взяли один микросервис: Python 3.14, 37 прямых зависимостей, 153 пакета в lock-файле, приватные пакеты и внутренний Nexus. Ожидание было простым: если uv действительно быстрее Poetry, миграция окупится сама.

Локально получилось наоборот. Резолвинг — да, быстрее. Установка по готовому lock-файлу — нет, иногда даже медленнее. Эксперимент закрыли и остались на Poetry.

Через несколько недель пришлось вернуться. Не из любопытства, а из-за алерта Trivy и сюрпризов Poetry 2 с корпоративными индексами. И вот тогда uv показал себя совсем в другом месте — в CI.

В статье разберем:

- почему локальный бенчмарк uv vs Poetry нас обманул;
- как Poetry 2 сломал привычную разработку без VPN;
- зачем мы писали парсер poetry.lock requirements.txt и почему это оказалось костылём;
- как точечная замена Poetry на uv sync в пайплайне сократила время с 5:10 до 2:50;
- почему в итоге uv стал единым стандартом и локально, и в CI.

Коротко: если инструмент не выиграл с первого прогона — это ещё не значит, что он бесполезен. Часто вы просто мерили не то узкое место.

Читать далее

Sentry пора на покой… Metric готов принять пост

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

Self-hosted Sentry — это 65 контейнеров, 16-32 ГБ RAM и выделенный инженер на поддержку. Всё ради того, чтобы ловить стектрейсы. Разбираемся, почему индустрия приняла это как норму, сравниваем альтернативы (GlitchTip, BugSink, Hawk) и знакомимся с Metric — Sentry-совместимым мониторингом на, которому хватает 1 ГБ RAM и двух контейнеров. Миграция — смена одной строки DSN.

Читать далее

8 open-source AI-проектов, которые могут заменить часть платного софта

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

Локальный аналог NotebookLM, фильтр от AI-slop, маршрутизатор для сотен LLM-провайдеров, агент для поиска работы, автоматический пентестер и ComfyUI. Посмотрел, что из этого действительно можно использовать, а где «бесплатно» заканчивается после git clone.

Open source не значит бесплатно.

У проекта может не быть подписки, но останутся расходы на API, Claude Code, GPU, сервер, электричество и несколько часов на настройку. Поэтому ниже не будет обещаний «восемь сервисов, за которые больше никогда не придётся платить».

Зато есть восемь любопытных проектов, которые позволяют забрать себе часть привычного AI-стека, изменить его под свои задачи и в некоторых случаях вообще убрать SaaS из цепочки.

Смотреть подборку

Одна строка в системном промпте отключала кеш целиком. 1% против 98% на живых вызовах

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

Токен, прочитанный из кеша, стоит не «немного дешевле». Он дешевле в 10–31 раз: DeepSeek — $0.44 против $0.014 за миллион, OpenAI — $4.00 против $0.40.

Кеш провайдера — префиксное дерево по токенам. Он работает ровно до первого расхождения с прошлым запросом. Дальше — всё по полной цене.

Поэтому одна строка вида Current time: {datetime.now()} в начале системного промпта отключает кеш целиком: время меняется на четвёртом слове, и остальные две тысячи токенов политик и базы знаний каждый раз оплачиваются заново. Хотя не менялись ни разу.

Я замерил это на живых вызовах DeepSeek. Один и тот же агент, одни и те же четыре вопроса, одна и та же минута — разница только в том, куда положить время. Ноль попаданий в кеш против 1152 токенов из 1180.

Потом направил профайлер на 97 877 собственных вызовов Claude Code — 32,5 млрд входных токенов, 98% из кеша.

Внутри: как найти такой баг у себя, почему совпадение текста на 96% ещё не значит, что кеш работает, и какие поломки не видно глазами вообще — схемы инструментов из словаря с плавающим порядком ключей, база знаний из set(), «префикс совпал, а кеша нет».

Плюс отрицательный контроль: сценарий, где фикс не даёт ничего, и инструмент честно об этом пишет.

Инструмент открыт: github.com/Isk4R1oT/prefixcash

Проверить свой промпт

31 августа лимиты Claude Code упадут на треть: что заканчивается и что с этим делать

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

TL;DR

31 августа 2026 в 23:59 по тихоокеанскому времени заканчивается промо, которое с 13 мая держало недельные лимиты Claude Code на 50 % выше стандартных. Продлевали его трижды — 13 июля, 19 июля, 19 августа. После отмены недельная ёмкость падает примерно на треть: делить на полтора — это возврат к 67 % от привычного. Одновременно работает второй множитель, о котором говорят реже: модели Claude 4.7 и новее считают тот же самый текст примерно на 30 % дороже в токенах, а файл CLAUDE⁠.md — в 1,445 раза. Сложите одно с другим, и получите ощущение, что лимит закончился «в два раза быстрее, чем раньше», хотя формально урезали только треть.

Ниже — что именно заканчивается, с датами и ссылками на документацию Anthropic. И вторая половина, ради которой всё писалось: что с этим делать. Штатный режим «дорогая модель планирует, дешёвая исполняет» внутри самого Claude Code. Механика banked reset у Codex — она существует, но работает не так, как о ней рассказывают. GLM-5.3-Flash, она же нашумевшая Ox Alpha, — с моими собственными замерами, которые расходятся с анонсом. И Fugu от Sakana, которую почти все описывают неправильно.

Что именно заканчивается

Промо на +50 % к недельным лимитам Claude Code действует с 13 мая 2026 и заканчивается 31 августа в 23:59 PT. Anthropic продлевала его трижды, каждый раз незадолго до истечения, так что четвёртое продление исключать нельзя — но планировать на него не стоит. Арифметика возврата простая и неприятная: если сейчас ёмкость составляет 150 % от базовой, то после отмены остаётся 100 %, то есть две трети от того, к чему вы привыкли за три с половиной месяца. Это не «немного ужмут» — это треть недельного бюджета, которую придётся либо экономить, либо чем-то замещать.

Читать далее

От HAProxy до VLESS+Reality: все грабли одного MTProto-прокси

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

От HAProxy до VLESS+Reality: все грабли одного MTProto-прокси

Если вы когда-нибудь поднимали свой MTProto-прокси для Telegram и он у вас "работает, но как-то не очень" — эта статья для вас. Я прошёл путь от "просто добавить relay" до "переписать всю цепочку на VLESS+Reality с нуля", и по дороге собрал приличную коллекцию граблей. Расскажу всё по порядку, чтобы вам не пришлось наступать на те же.

Исходная ситуация

Была задача простая на первый взгляд: поднять MTProto проксю для Telegram на сервере в РФ. Причина стандартная — хочется, чтобы телега работала

Взял mtg (ghcr.io/9seconds/mtg:2 — отличная реализация MTProto-прокси с поддержкой fake-TLS), поднял на сервере — и оно не работает. Точнее, работает, но еле-еле: то подключается, то нет, на мобильном интернете почти всегда фейл.

Первая мысль, которая приходит в голову почти всем в такой ситуации: "провайдер блокирует адреса Telegram". И это отчасти правда — но, как выяснилось, правда не вся.

Первая попытка: спрятать Telegram за релеем

Логика была такая: раз провайдер режет соединения именно к IP Telegram, то уберу эти IP из виду. Арендую второй сервер за границей, туда ставлю настоящий mtg, а на RU-сервере — просто TCP-релей (HAProxy или голый iptables DNAT), который прозрачно перекидывает байты дальше.

Клиент → RU-сервер (HAProxy, чистый TCP passthrough) → Зарубежный сервер (mtg) → Telegram

Казалось бы, логично: сервер в РФ теперь физически ничего не знает про Telegram, он просто гоняет байты во внешний IP. Провайдер не должен видеть ничего подозрительного.

Читать далее

Как я написал простой HTML-сайт, который избавляет от ручного поиска и конвертации бренд-иконок

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

Каждый раз, когда верстаешь новый проект, лендинг или дэшборд, Дизайнер просит поставить на плашки ссылки со свежими логотипами сервисов, соцсетей или технологического стека. Начинается отдельная каста разработки и дизайна: найди официальный брендбук, вытащи оттуда SVG (Не факт что он там будет) или иди на сторонние агрегаторы, где половина файлов кривые, а скачивание запрятано за скрытой рекламой "Скачать Яндекс". Когда мне это полностью надоело я создал свой сервис - ГдеИконка (GdeIkonka)

Читать далее