Обновить
512K+

Open source *

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

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

Написал валидатор llms.txt на 64 тестах — и проверил, читают ли этот файл боты

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

Файл llms.txt предлагают класть в корень сайта с 2024 года: считается, что языковые модели прочитают его вместо того, чтобы разбирать вёрстку. Я написал для него генератор и валидатор, проделал 64 теста для отладки — и параллельно посмотрел, сколько раз ИИ-боты вообще запрашивают этот файл. Значения получились неутешительные, но валидатор всё равно оказался полезным. Ниже — устройство разбора, схема оценки и код.

Читать далее

Что такое Harness и с какими моделями его едят?

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

Сегодня, 13 августа DeepSeek выложил DeepSeek Harness v0.1 в Developer Preview. Открытый код, MIT, пакет @deepseek-ai/dsh в npm, запуск в одну строку.

Нюхаем, что вообще такое harness, какие виды его бывают и пытаемся разобраться зачем он нужен.

Выбрать свой молоток

От десктопа к Android и в роутеры

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

MASQUE — туннель, неотличимый от обычного HTTPS-трафика к Cloudflare, постквантовый VLESS, AmneziaWG, дотянутый до эталона. Всё это теперь не только в телефоне, но и прямо на роутере: отдельный Wi-Fi, весь трафик которого уходит в туннель. Рассказываю, как мое ядро sing-box-lx до этого доросло

Читать далее

Как выбор двух мониторов превратился в собственный RDP/SSH‑клиент для macOS

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

Когда я перешёл на Mac, мне казалось, что с удалённой работой проблем не будет. RDP существует много лет, клиентов для macOS хватает, а подключение к Windows — давно решённая задача.

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

Мне хотелось самостоятельно указать, на каких физических дисплеях должна открываться удалённая Windows‑сессия. Например, отдать под неё один или два внешних монитора, а экран ноутбука оставить macOS. Или, наоборот, запустить Windows только на встроенном дисплее. Я перебрал доступные варианты, но не нашёл приложения, в котором можно было бы нормально настроить такую схему: не просто включить режим «использовать все мониторы», а сопоставить физические дисплеи macOS с виртуальной раскладкой Windows.

Так появился первый прототип будущего Selective Remote.

Читать далее

redb 3.6.0: багрепорт, который оказался в шести провайдерах сразу — плюс AS2/EDI и общий порт

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

Отчёт пользователя вскрыл утечку между диалогами в query-провайдере ядра — 6 из 6. Что ещё в 3.6.0: AS2/EDI, общий Kestrel, Camel-паритет.

Год стек рос на наших собственных задачах: мы писали то, что нужно было нам, и проверяли на своей проде. С весны им начали пользоваться посторонние люди — и характер входящих сообщений изменился. Вместо «а поддерживаете ли вы X» приходят разборы: воспроизведение, номера строк в наших исходниках, обходные пути, которые человек уже написал у себя, пока ждал ответа.

Это самое ценное, что может ...

Читать далее

Алгоритм был правильным. Ошибка была в контракте графа

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

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

Через несколько дней (говно)кода стало много — вменяемого сервиса не получилось.

Один BFS принимал map[string][]string. DFS жил на другом типе графа. В одной реализации направленность задавалась на уровне графа, в другой вытекала из того, как было записано ребро. Опции существовали, но их комбинации не образовывали понятной политики. Result types возвращали срезы и числа, однако я не мог внятно ответить, что именно они гарантируют.

Проблема была не в том, что LLM «не умеет BFS». Я попросил реализации раньше, чем сформулировал общий контракт данных. Генератор заполнил пустые места правдоподобными допущениями — которые, очевидно, не совпали в разных кусках кода.

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

Спуститься на уровень архитектуры

Пульт красивый, но непонятный. Вскрываем BLE протокол

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

Иногда новый проект начинается не с технического задания, а с вещи, которая случайно попала в руки.

В моём случае это был Bluetooth-пульт Makeblock MBBTCTR01. Красивый? Да. Удобный? Более-менее.
Два стика, крестовина, кнопки — всё, что нужно для управления мобильным роботом. А пара тележек с дифференциальным приводом у меня как раз была под рукой.

Читать далее

Browser Policy Manager: документация

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

К релизу Browser Policy Manager 0.9.5 подготовлен документационный портал: четыре руководства на шести языках, локальный поиск, контекстная помощь из интерфейса и фундамент для будущего безопасного RAG-помощника. Рассказываю, как он устроен и почему документация здесь — часть безопасной работы с политиками Firefox.

Читать далее

AS2 в .NET без отдельного Java-гейтвея: EDI-обмен с партнёрами прямо в маршруте

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

Если вы поставляете товар в крупную розницу, возите грузы для 3PL-оператора, шлёте платёжные извещения банку или обмениваетесь медицинскими транзакциями X12 — вы почти наверняка обмениваетесь этими документами по AS2. Заказ (EDI 850), счёт (810), уведомление об отгрузке (856), платёжное авизо (820) уходят партнёру не почтой и не через REST, а как подписанный и зашифрованный S/MIME-конверт поверх HTTP, с подписанной квиткой-распиской в ответ. Так работает регламентированный B2B-документооборот в рознице, логистике, финансах, производстве и здравоохранении уже двадцать лет: Walmart, Amazon и их сети поставщиков, банки с host-to-host каналом, автопром, дистрибьюторы — все требуют AS2.

В .NET до сих пор было два пути. Либо коммерческий AS2-шлюз — Cleo, Seeburger, BizTalk — отдельная коробка, отдельная лицензия, отдельная команда сопровождения. Либо Java-сервер с открытым кодом — OpenAS2, Mendelson Community — отдельный JVM-процесс рядом с вашим .NET-бэкендом, со своим inbox-каталогом, откуда документы надо ещё забирать джобой. В обоих случаях AS2 живёт сбоку от вашей интеграции, а не внутри неё.

redb.Route.AS2закрывает этот разрыв: AS2 становится обычным шагом маршрута в вашем .NET-процессе. Приняли конверт от партнёра, расшифровали, проверили подпись, отдали документ в pipeline — провалидировали, трансформировали, положили в Kafka или SQL — и вернули партнёру подписанную расписку. Один процесс, один деплой, одна панель наблюдаемости. Разберём, как это выглядит в коде, где применяется и почему нативный коннектор в ESB выигрывает у отдельного шлюза.

Читать далее

Как я написал PID 1 для контейнеров на чистом ассемблере: x86-64 и ARM64

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

Не потому, что контейнерному миру срочно нужен ещё один init. Есть Tini, есть docker run --init, и для большинства production-сценариев я бы по-прежнему начал именно с них.

Мне скорее хотелось разобрать задачу до самого нижнего уровня: без libc, без runtime, напрямую через Linux syscalls. Заодно проверить, насколько сильно будет отличаться одна и та же реализация на x86-64 и ARM64.

В итоге из небольшого эксперимента получился mini-init-asm: PID 1, который запускает приложение в отдельной process group, передаёт сигналы всей группе, собирает zombie-процессы и умеет корректно завершать контейнер с exit code приложения.

Позже туда добавились subreaper mode и простой restart-on-crash. А сам проект в итоге доехал сначала до Debian unstable, а затем и до testing.

Но началось всё с вопроса: что вообще должен уметь нормальный PID 1 внутри контейнера?

Читать далее

Куда на самом деле попадает секрет при сборке Docker-образа: разбираем 8 способов

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

Секрет попал в Dockerfile, разработчик спохватился и добавил RUN rm. Файла в контейнере больше нет — значит, всё в порядке? Нет: строку по-прежнему можно достать из образа, даже не запуская контейнер. Я собрала восемь образов, в каждом передала секрет своим способом и разобрала результат на слои и метаданные. Ниже — где именно оседает секрет в каждом случае и какие два способа действительно не оставляют следов.

Все эксперименты выполнены на Ubuntu 24.04.1 LTS, Docker Engine 29.1.3, BuildKit v0.26.2.

Читать далее

Что ждет нас в будущем с AI? Полный перевод манифеста Марка Цукерберга

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

Привет! Меня зовут Саша Журавлев. Я венчурный инвестор и основатель фонда Mento VC. Мы инвестируем в технологические компании на стадиях Seed / Series A в США, а в своем телеграм-канале рассказываю, как вижу рынок и принимаю инвестиционные решения.

Вчера Марк Цукерберг опубликовал огромный манифест о том, каким он видит будущее с AI и сверхинтеллектом. Мне он показался интересным, поэтому мы с командой его изучили и перевели для вас. Приятного прочтения!

Читать далее

TACACS+, RADIUS и 802.1X под одной политикой: как я строил Taranac и что из этого вышло

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

Привет, Хабр. Десять лет назад я был обычным сетевым инженером, которому надоело править tac_plus.conf руками, и я написал вокруг него веб-морду — TACACSGUI. Она неожиданно разошлась: тысячи инсталляций, форум, письма из мест, о которых я и не думал. Документации там практически не было — интерфейс был устроен так, что люди разбирались сами. Это был главный урок, который я оттуда вынес.

Второй урок был в почте. Самая частая просьба за все годы, с огромным отрывом: «добавьте RADIUS». Прикрутить RADIUS сбоку к обёртке над TACACS-демоном невозможно так, чтобы это не было уродством: получились бы две несвязанные правды, два места настройки, два набора пользователей. И я решил не прикручивать, а переделать.

Так появился Taranac — TACACS+, RADIUS, NAC. Полтора года проектирования и разработки (не считая времени, которое я просто носил архитектуру в голове). Сегодня это работающая платформа: TACACS+, RADIUS, 802.1X, MFA со своим push-сервисом и мобильным приложением, PKI, captive portal, кластеризация. Free, self-hosted, без лимитов на устройства и пользователей.

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

Читать далее

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

Cделал бесплатный чат для сайта с функциями платных сервисов, делюсь

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

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

Читать далее

ИИ-ревьюверы твоего кода: как нейросети позволяют упрощать анализ PR

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

С развитием ИИ себестоимость кода стремительно падает. Его становится все больше, а команды не растут пропорционально количеству. AI-инструменты генерации кода (Copilot, Cursor, Codex, Claude Code) увеличивают скорость написания, но не скорость проверки кода.

Узким горлышком становится сам PR, они могут висеть днями в вашей компании или opensource-проекте, контекст может теряться, на его оценку тратится время, и иногда впустую.

В среднем, команда на ревью тратит ~20% рабочего времени, особенно если это большой PR, или PR от новичка.

Но как же решить эту проблему? Ведь беда не в том, что ревьюверы плохие, или что им нужно давать больше работы, а в том, что объем кода растет быстрее возможности осмысленно его проверить.

В этой статье я расскажу о том, как помочь вашему корпоративному или опенсорс-проекту, если он тонет в код-ревью, и расскажу о существующих решениях — devin ai, context7, deepwiki, rabbit code review и других.

Читать далее

Хватит строить Kubernetes для пятнадцати человек

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

Я много лет занимался инфраструктурой. Потом перестал и ушёл в продукт — но привычка заглядывать: «А как у вас тут всё устроено?» осталась. И вот теперь я хожу к клиентам по совсем другим вопросам, а глаза всё равно выпадают.

Читать далее

/party — скилл для общения между агентскими сессиями: Claude, Cursor, Codex, Grok, и т.д

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

У меня открыто несколько агентских сессий сразу: Claude Code в одном окне, Cursor в другом, иногда ещё одна на второй машине. Пока они не пересекаются, всё хорошо. Как только одна из них меняет то, на что опирается вторая, начинается кутерьма: копирую вопрос из окна в окно, объясняю второй сессии, что имела в виду первая, несу ответ обратно.

Так появился agents-party: общий канал, в который агентские сессии заходят сами. Скилл-файл плюс CLI, лицензия MIT. Вызывается просто по команде “/party”, которая выводит текс приглашение для других сессий. Текст приглашение рассылается по сессиями и они общаются между собой, не блокируя ваш ввод в те же сессии.

Видео-обзор на YouTube: https://www.youtube.com/watch?v=4IT0oFwGtP4 Видео-обзор на VK Video: https://vkvideo.ru/video-227165132_456239214 Исходный код: https://github.com/1gr14/agents-party

Под катом рассказываю, как этим пользоваться и как устроено под капотом.

Читать далее

Как я автоматизировал сборку образов с Ansible и Packer и попал в community.ansible

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

Полночь, деплой горит, а ты вручную поднимаешь десятый сервер за неделю: копируешь ISO, тыкаешь Enter в консоли анакон­ды, правишь fstab, чинишь grub — и на утро выясняешь, что забыл gpg-ключ репозитория на трех машинах из десяти. Признавайтесь, бывало? Эта статья для тех, кто устал платить временем и нервными клетками за ручную сборку образов.

В этой статье расскажу, как построил полностью автоматизированный пайплайн для сборки образов закрытого дистрибутива Linux на базе RedHat — без единого ручного клика после старта. Ansible управляет хостом-билдером, Packer с shell-провижионерами собирает сам образ, и в итоге мы получаем готовый RAW, оптимизированный для OpenStack. Подход не привязан к конкретной ОС: если у вас другой дистрибутив, достаточно заменить ks.cfg на preseed.cfg или любой другой автоустановщик — остальная логика пайплайна должна работать без изменений. На десерт расскажу, как оформил часть решения в модуль для Ansible и отправил его в официальную коллекцию community.general.

Читать далее

Почему цена Bitcoin «сломалась»: разбор аномалий 2022–2026 с WhyTrend

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

Увидел провал на графике → открыл Google или Twitter → полдня собираешь версии "почему". Знакомо? Детектор аномалий сам по себе даёт только точки на оси времени, а вопрос "почему" как был ручным, так и остаётся.

В этот раз я прогнал WhyTrend не на паре аккуратных точек из Google Trends, а на полном ряде BTC за 4.5 года — и заодно на двух разных LLM. Результат оказался неожиданным: модель меньшего размера дала в три раза больше настоящих объяснений, чем более крупная. Расскажу, что случилось и почему.

Читать далее

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

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

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

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

Читать далее