Обновить
512K+

Open source *

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

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

Четыре узла из семи не работали, и все проверки говорили OK

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

Если вы держите свой обход блокировок, у вас почти наверняка есть белый список. Не как отдельная сущность, а как последнее правило в конфиге: разрешить то, разрешить это, а дальше reject. Появляется он в первый же день, когда доходит, что открытый прокси в интернете живёт до первой жалобы хостеру, и с этого дня к нему не возвращаются, потому что он не просит: узлы добавляются, конфиг раздаётся, туннель поднимается, мониторинг показывает зелёное.

У нас в этом списке было пять адресов при семи живых узлах, и сколько недель это продолжалось, я до сих пор сказать не могу.

Читать далее

VLAN и одна старая мечта: как я начал делать Visual IDE для сетей

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

Кстати, хочу поблагодарить сообщество за обратную связь по EvertyDesk. Я увидел огромное количество замечаний, идей и реальных проверок. Много ребят запускали проект у себя, ковыряли его, находили проблемы, и вместе мы дотащили всё до версии 2.0.1. Да, я перепрыгнул с 0.0.1 почти сразу. Иногда нумерация версий тоже хочет жить быстрее разработчика.

Нейросети очень помогают добивать мелкие и очевидные баги. Это невозможно сравнить с тем, как я работал раньше, и с тем, как работаю сейчас.

Некоторые спрашивали про Contributor в виде cloud. Ребят, было бы стыдно этого не указать. Значительная часть работы действительно идёт в диалоге с нейросетями. Я фанат технологий, и иногда меня в хорошем смысле удивляет, насколько круто они умеют делать рутинную работу.

В целом я считаю, что мы живём в удивительное время.

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

Поэтому я решил начать параллельную серию статей. Помимо своего VST3-плагина для сведения я хочу наконец сделать то, о чём мечтал годами, пока работал ведущим инженером у частного интернет-провайдера.

Читать далее

unissh – современный, опенсорсный SSH клиент с selfhosted zero-knowledge сервером для синхронизации данных

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

Доброго времени суток, читатели!

Хочу представить вам unissh – современный, простой опенсорсный SSH клиент с selfhosted zero-knowledge сервером для синхронизации данных.

Читать далее

А что, так можно было? Как (а главное — зачем) установить нейросеть на компьютер

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

Большинство нейросетей сегодня работают онлайн: вы открываете сайт, пишете запрос и получаете ответ с удаленного сервера. Но некоторые современные модели можно скачать на компьютер и запускать прямо на своем железе — даже без подключения к интернету.

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

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

Читать далее

Я сменил страну Apple ID и потерял 10 532 трека. Вот как я вернул 6 453 из них

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

17 лет с покупки первого айфона я складывал музыку в одну медиатеку. Она начиналась с mp3-шек на жёстком диске, пережила переезд в стриминг (через iTunes Match) и росла до марта 2026-го. Плейлисты «Deepden», “Kizaru”, “повтор” — собранные под себя, годами.

Потом сверху решили, что оплачивать Apple Music в России никак нельзя. Я закинул 2000 ₽ на счёт Apple, чтобы не умерла синхронизация с iCloud, остальные подписки отменил — с мыслью, что за год решения, как обойти ограничения, найдутся. Так и жил без подписки: медиатека на месте, слушать нельзя. В августе 2026-го понадобился особенный трек, которого не было в Я.Музыке (худший сервис — и, к сожалению, ровно потому, что соблюдает законы РФ). Завёл американский аккаунт — тем более после покупки MacBook Air в американском сторе подарили три месяца халявы. Регистрируюсь, соглашаюсь на триал, открываю «Музыку».

Пусто.

10 532 трека — как оказалось позже — канули в лету. Переживал я даже не из‑за конкретных треков, а из‑за плейлистов: там собирались подборки под каждое настроение. Собирать их заново — ни в Я.Музыке, ни где‑то ещё — у меня не было ни желания, ни времени.

6 453 трека и все плейлисты вернулись на место. Ниже — как именно.

Как я вернул 6 453 трека

Слабосолёный мессенджер из MikroTik CHR и Java, по домашнему

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

Как это? У вас есть аккаунт на хабре, есть своё мнение по каждой статье, есть желание этим мнением поделиться с дедушкой, но нет своего мессенджера чтоб это сделать? Срочно исправляем.

Lim (local ip messenger) работает в вашей локальной сети, на вашем CHR или ARM64 роутере Mikrotik, без внешних сервисов. Обмен текстовыми и голосовыми сообщениями, файлами до 50мб. Публичным ключом собеседника шифруются: сообщения, файлы и имена файлов. И кнопка "Отправить", тоже зашифрована.

Приготовить дома самому

Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor

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

Пару месяцев назад я решил провести эксперимент и сделать с нуля clean-room имплементацию LINSTOR, используя его референсы и публичные API-типы. Изначально эта идея зародилась как пятничная шутка: я просто хотел уделить этой задаче минимум времени, запустить ее на фоне и посмотреть, к чему это приведёт. Целью было просто проверить, насколько современные нейросети способны к автономной работе без участия человека. 

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

Читать далее

Nelmwave – декларативный оркестратор релизов поверх nelm

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

Если в кластере больше пяти Helm-релизов, рано или поздно появляется скрипт. Сначала десять строк с helm upgrade --install, потом sleep 30 между базой и приложением, потом sops ▎ -d values.yml | helm -f -, потом ветка if [ “$ENV” = prod ]. В какой-то момент никто не может сказать, что именно он раскатит на проде, пока он это не сделает.

▎ nelmwave заменяет этот скрипт одним манифестом

Ок, смотрим дальше

Написал расширение, которое качает статьи Хабра в Markdown — и не долбит сервер

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

В прошлых двух статьях я разбирал DNS-трафик домашней сети и анализировал 1233 публикации Хабра, чтобы понять, за что площадка даёт рейтинг. И там, и там был вопрос, который я обходил: чем, собственно, я выгрузил эту тысячу статей?

Не руками копировал и не скриптом на Python, который на двухсотом запросе получил бы 429 и бан по IP. Я написал расширение для Chrome, которое сохраняет статьи Хабра в Markdown — по одной, пакетом или автоматически по расписанию, — и делает это достаточно вежливо, чтобы сервер не считал его атакой.

Главная мысль статьи оказалась не про парсинг HTML, а про хорошие манеры к серверу. Наивный качатель на голом fetch пишется за пять минут и получает бан на десятой. Инструмент, которым можно пользоваться постоянно, отличается тремя вещами:

— держит принудительный интервал между запросами (1.5 секунды, гарантированно); — слушает 429 и при перегрузке сервера замолкает на три минуты целиком (паттерн circuit breaker), а не долбит сквозь ограничение; — работает с открытыми статьями для личного архива, а не сливает базу.

Внутри: разбор вежливого граббера с кодом, почему парсинг чужой вёрстки ломается на каждом редизайне и как от этого защищаться фолбэками, формат Markdown с YAML-метаданными (тот самый, что сделал возможным анализ тысячи статей) и правовая рамка — где граница между «сохранил для себя» и «спарсил».

Расширение с открытым кодом под MIT, ставится из Chrome Web Store в один клик.

Читать далее

Привод ответил ACK. Что он на самом деле пообещал?

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

В логах запуска нашего стенда давно живёт строка Failed SDO download 0x6060 (-22). Мы её лечили всерьёз — пока не заметили, что та же строка печатается и в успешных запусках. Подтверждение на полевой шине приходит почти всегда, а значит куда меньше, чем кажется. Под катом — четыре ступени «принял» на живых замерах: почему сброс ошибки с честным ack её не снимает; как электронный редуктор не увидеть замером, который сам через него идёт; и сколько стоит спросить привод по SDO — 32 мс на параметр, полный паспорт около десяти секунд.

Смотреть замеры

Joomla-дайджест. 2-й квартал 2026 года

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

Все главные новости из мира Joomla за апрель, май и июнь 2026 года в одной статье. Традиционно дайджест собирает новости сообщества, релизы, расширения, интеграции, видео и статьи из мира Joomla. Прошлый выпуск доступен на Хабре.

Читать далее

Как создавалась CMS Joomla! и как она представлена в патентах

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

В мире, пожалуй, есть несколько самых популярных классических систем управления сайтами — это, конечно, WordPress и Joomla!. Joomla! немного сложнее WordPress, да и шаблонов дизайна у нее меньше. Но ее доля составляет до 3% всех сайтов в мире и до 10-18% — в России. Об истории создания Joomla! и патентах с ее упоминанием — в нашей статье.

Читать далее

Побеждаем OOM в PyTorch: как обучать гигантские графы на обычной видеокарте

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

При обучении графных нейросетей и гигантских эмбеддингов на миллионы узлов стандартный torch.optim.SparseAdam в PyTorch моментально забивает RAM и VRAM, вызывая ошибку CUDA out of memory (OOM). В этой статье разбираем, как устроена легковесная Open Source библиотека Disk Sparse Adam (DSA), которая выносит состояния моментов на диск через memory mapping (mmap) и позволяет обучать огромные спарс-модели на обычной домашней видеокарте.

Читать далее

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

Голосовой ввод в любое окно Windows за секунду. Офлайн, на CPU, без единого гигабайта torch

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

Голосовой ввод для Windows за ~1 секунду | Полностью локально • CPU • Open Source

Как заставить Whisper распознавать речь почти в 4 раза быстрее на обычном CPU без GPU и без облака. Разбираю архитектуру WhisperType, сужение окна энкодера, потоковую обработку аудио, оптимизацию faster-whisper и подводные камни WinAPI.

Читать далее

Я печатаю медленнее, чем думаю: локальная диктовка на Whisper для Windows, телефона и Telegram

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

Я диктую постоянно: сообщения, заметки, постановку задач — говорить в разы быстрее, чем печатать, а мысль не успевает остыть. Проблема в том, что удобной диктовки, которая не гонит звук в чужое облако, я не нашёл. Так появился PasteTalk: локальная диктовка для Windows по горячей клавише, а вокруг неё — собственный сервер, приложение для телефона и Telegram-бот.

Отдельным требованием стала мама: из-за слабого зрения печатать на телефоне она почти не может, и телефонная часть проектировалась под самый жёсткий случай — одна кнопка на весь экран, крупный шрифт, ошибки словами. Забегая вперёд: правки «для мамы» сделали приложение удобнее и для всех остальных.

Под катом — архитектура, цифры и четыре бага, каждый из которых молча съедал наговорённый текст.

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

Нагрузочный тест Sockudo: два бага в чужом Rust‑коде, которые кладут сервис на ровном месте

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

Я делаю NotiBox — Pusher‑совместимый сервис realtime уведомлений. Под капотом я использую Sockudo — WebSocket сервер на Rust. Прежде чем показывать реальным пользователям, я решил проверить, на сколько Sockudo на самом деле «blazingly fast».

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

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

Другой сценарий — ничего не перегружено, но новые соединения/запросы не проходят, растёт задержка ответов. Это тоже ожидаемо и понятно как чинить: смотришь на TIME WAIT сокеты, max open files, и другие «предохранители».

А что делать, если там тоже всё по нулям? Вот тут начинается настоящее приключение.

Читать далее

Почему EtherCAT в LinuxCNC держится на компоненте из 9 коммитов

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

Есть на GitHub репозиторий из одного файла: 9 коммитов, 48 звёзд, лицензия GPL-2.0. Через него проходит заметная часть всех станков, где LinuxCNC разговаривает с сервоприводами по EtherCAT, — и у него нет ни форков, ни конкурентов, ни «переписал на Rust». Когда мы начинали свой стенд, это казалось странным; спустя месяцы наладки трёх серво по живой шине ответ нашёлся — и он интереснее, чем «проект заброшен». Под катом — весь стек от сетевой карты до joint.0.motor-pos-cmd и шесть граблей, которых нет ни в одном README: карта битов, съехавшая на +4 против мануала, SDO-записи навсегда в EEPROM и момент −0.4%, показанный как 6553%.

Читать далее

EvertyDesk: я отдаю то, на что ушли годы

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

Меня зовут Артур Валиев. Я открыл исходники EvertyDesk Lite — и заодно EvertyDesk Next, то, что должно было стать следующей версией. Полностью. Без купюр.

Читать далее

У нас есть для вас пакет! Как LLM придумывают несуществующие зависимости

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

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

Перед вами обзор исследования We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs. Авторы проверили 16 моделей, сгенерировали 576 000 образцов кода на Python и JavaScript и изучили, как часто в ответах появляются несуществующие пакеты. Их работу отметили наградой «Distinguished Paper Award» на конференции USENIX Security 2025. 

Читать далее

Родитель засыпал навсегда: чего Rust не делает за вас в ядре ОС

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

Я пишу ядро операционной системы на Rust. Не потому что собираюсь заменить Linux, а потому что мне интересно, что получится, если закладывать безопасность в архитектуру с нуля, а не встраивать в готовое.

Довольно быстро выяснилась вещь, о которой в разговорах про Rust в системном программировании говорят реже, чем стоило бы. Язык закрывает один класс ошибок и оставляет другой нетронутым. И второй класс ловится куда хуже первого.

Расскажу про конкретный баг, который я ловил дольше всего.

Читать далее