Обновить
1024K+

Open source *

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

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

Вредоносный PyTorch Lightning сливал пароли через скрытый JavaScript

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

30 апреля на PyPI обнаружили новую версию PyTorch Lightning, которая при импорте скачивала Bun и запускала 11,4 МБ опасного JavaScript-вора. Цель — браузеры, облачные API, GitHub-токены. Всего одна строчка импорта: import lightning — и все ваши API-ключи и данные будут скомпрометированы! Полный разбор инцидента внутри.

Разобрать инцидент

Новости

Кириллица в LLM: почему русский язык в нейросетях стоит дороже и работает медленнее

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

Когда вы пишете запрос в ChatGPT или другую нейросеть, она не работает с буквами или словами — она режет ваш текст на маленькие кусочки. Эти кусочки называются токенами, и от того, как именно нейросеть режет текст, зависит цена ответа, скорость, и сколько информации в неё помещается за раз. С английским это работает хорошо: одно слово — обычно один‑два кусочка. С русским всё хуже: то же самое слово часто превращается в три‑четыре обрывка. Английское «contract» — один токен. Русское «разработка» — два‑три. «Программирование» — три‑четыре.

Из‑за этого русский текст в облачных сервисах вроде OpenAI обходится примерно в 2 раза дороже английского, медленнее обрабатывается, и в одно «контекстное окно» нейросети помещается заметно меньше реального содержания. Эта статья — про то, откуда берётся разница, как её измерить на ваших данных и какие модели лучше работают с русским языком.

Читать далее

Как улучшить опыт работы с Zabbix: разбираем юзкейсы

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

Привет, Хабр! Меня зовут Ярослав Яковкин, я младший инженер по разработке ПО в YADRO, работаю в команде TATLIN.FLEX. Еще будучи стажером, я разбирался в инструментах, которыми пользуется моя команда, и обнаружил, что система мониторинга Zabbix допускает некоторые ошибки в работе. Они не влияют на производительность, но, если их исправить, всем станет лучше.

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

Читать далее

Монтаж видео через Claude Code

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

Часовое видео в 30 fps — это 108 000 кадров. Если каждый кадр стоит 1500 токенов, получаем 162 миллиона токенов на одно видео. Никакая модель столько не возьмёт. Команда browser-use недавно опубликовала проект video-use, который решает эту задачу с другой стороны: LLM не “смотрит” видео, а читает его через транскрипт. Разбираю архитектуру и показываю, чем этот подход полезен далеко за пределами монтажа.

Читать далее

Разбираю «Qwen3.5-21B-Claude-4.6-Opus-Heretic-Uncensored»: что на самом деле внутри файнтюна с громким именем

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

В телеграме завирусился пост: якобы кто-то “дообучил Qwen 3.5 до уровня Claude 4.6 Opus и убрал цензуру через Heretic”. Я открыл карточку модели на HuggingFace и провёл вечер, разбираясь, что под капотом. Спойлер: там много интересной техники, но к Claude эта модель имеет такое же отношение, как кроссовки “Adibas” к Adidas. Разбираю distillation, depth upscaling и abliteration без маркетинговой обёртки.

Читать далее

TeachTrack: NestJS + Telegram‑бот напоминаний + РКН — как я в одиночку собрал CRM для частных репетиторов

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

Месяц назад я выложил на Хабр статью про TripTrack — GPS‑трекер для машины на iOS, который собрал будучи бэкендером без опыта в Swift. Статья неожиданно набрала 7.4К (на данный момент написания) просмотров. Но, мне посчастливилось поработать по своей специальности, не только под IOS‑приложения, а под NestJS бекенд.

Параллельно с TripTrack я писал второй проект — на этот раз ровно в зоне комфорта (NestJS + PostgreSQL), и это позволило развернуться по‑серьёзному: транзакционный outbox для идемпотентных отправок в Telegram, single‑use invite‑токены с защитой от enumeration, timezone‑aware scheduler, partial unique indexes — словом, всё то, что для бэкендера интересно само по себе.

Под катом — про то, как устроен Telegram‑бот напоминаний в TeachTrack, что я понял про pessimistic_write и FOR UPDATE SKIP LOCKED, зачем pet‑проекту с реальными пользователями из РФ нужно уведомление в РКН, и почему холодный аутрич преподавателям английского научил меня важной вещи про русский менталитет.

Читать далее

Создание Python‑библиотеки для перевода исключений на русский язык

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

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

Читать далее

Bug fingerprinting для UI: почему stack trace не работает и что вместо

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

TL;DR: Sentry дедуплицирует backend‑ошибки по хешу (error class + top stack frame + module). Для UI‑багов этот рецепт ломается — у expect(button).toBeVisible() нет stack frame в продуктовом смысле, есть локатор + assertion + URL. В webtest‑orch я собрал composite SHA-256 fingerprint из (normalized_selector | assertion type | error class | URL template | message[:80]) с тремя rules нормализации (:nth-child, UUID, /users/123 → /users/:id). Это даёт стабильный 8-hex BUG-id который выживает прогоны и даёт diff new / regression / persisting / fixed без БД и embedding«ов.»

Читать далее

Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

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

Неделю назад я не думала, что буду писать базу данных. Начиналось всё с плана добавить строчку в резюме. Но получилось: LSM‑дерево, MVCC, снапшоты, транзакции, Value Log, WAL, компакшн, Column Families и даже GC. Вы когда нибудь делали документацию в doc/ для пет-проекта? Я да! И всё на чистом Go. При этом бд не только встраиваемая, но и отдельно разворачивается как сервер (gRPC для 12 языков и CLI). Исходный код открыт.

Рассказываю как собирала конструктор, чьи решения подсматривала, каждый сложный термин поясняю. Рассказываю, где допускала ошибки и как решала проблемы, а что оставила в долгий ящик, и в конце даже небольшая любовная драма в CLI <3

Узнать, что у меня получилось

Как Runtime Radar помогает обнаруживать атаки на цепочку поставок: кейс LiteLLM

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

Всем привет! Это Сергей Зюкин, разработчик экспертизы runtime-radar — опенсорсного продукта, обеспечивающего безопасность контейнерной среды выполнения. Я подготовил для вас статью, в которой расскажу, как можно обнаружить инфостилер, встроенный в библиотеку LiteLLM в результате ее недавней компрометации. Помимо этого, мы, конечно же, рассмотрим и боковое перемещение внутри Kubernetes-инфрастуктуры, которое происходит, если скрипт инфостилера запускается в поде с достаточными привилегиями.

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

Но обо всем по порядку.

Читать далее

Как сделать каталог с поиском, фильтрами, фасетами и семантическим поиском

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

Сделать поиск по каталогу легко. Гораздо сложнее — сделать каталог, который полезен не только на первом запросе.

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

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

Сначала можно попробовать уже развёрнутую версию:

https://catalog.manticoresearch.com

Читать далее

FSRS для Obsidian: помнить всё

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

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

Я сделал плагин интервального повторения на современном алгоритме FSRS. Он запоминает что и когда вы учили, предсказывает что вы вот-вот забудете, и показывает какая тема даётся тяжелее всего. Все данные хранятся локально в ваших .md файлах — ничего не уходит на сервера.

Читать далее

Как настроить AI-агента под проект: контекст, rules, skills, MCP — конспект двух вебинаров

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

Цепочка короткая: сначала был просто автокомплит, потом появились чаты, в которые надо было руками копировать код туда-обратно (и человек выступал прокси между моделью и проектом — «много ручной работы, контекст рвётся»). Потом пришли агенты, которые живут прямо в проекте, читают и правят файлы, запускают команды. Сверху — агентские системы, которые координируют нескольких агентов и решают проблему перегрузки одного контекста.

Где живёт агент: три класса инструментов

Читать далее

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

Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование

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

Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.

Читать далее

NocoDB — бесплатная альтернатива Airtable с подключением к своей базе данных

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

Для работы с базами данных через наглядный UI-интерфейс есть много профессиональных инструментов. Но что если наоборот — нужен максимально простой способ? Чтобы просто посмотреть данные с фильтрацией по определенным параметрам, а затем отредактировать некоторые записи.

Вроде старого-доброго phpMyAdmin, но ещё проще, удобней и современней. Что-нибудь с дизайном, как в Airtable, но только с подключением к собственной базе данных PostgreSQL.

Хорошая новость — такой инструмент есть, и он называется NocoDB. И его можно без проблем поставить на собственный сервер, чтобы использовать без ограничений.

В этой статье разберём, как NocoDB может пригодится программисту в разработке, а непрограммисту — в организации личного или рабочего информационного пространства. Также посмотрим, как установить Ноко на своём сервере и начать с ним работать.

Читать далее

MCP в Cursor IDE: подключаем AI-агенту внешние данные без возни с API

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

Cursor IDE умеет генерировать код, рефакторить, объяснять и дебажить. Но по умолчанию он видит только файлы в вашем проекте. Если нужно, чтобы агент сходил в Google Trends, проверил задачи в Jira или прочитал что-то из Notion, приходится копировать данные руками и вставлять в чат. Агент получается не особо автономным, каждый шаг требует вашего участия.

MCP даёт агенту инструменты — функции, которые тот вызывает сам, когда ему нужны внешние данные. Вместо «вот тебе CSV, проанализируй» вы пишете «проанализируй тренды по запросу X», и агент сам вызывает нужную функцию, получает данные и работает с ними.

Читать разбор

TokenToad: как я сделал Chrome-расширение, чтобы перестать удивляться счетам за AI

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

Расходы на AI API копятся незаметно: сессия Claude Code тут, batch к GPT-5 там — и к концу месяца биллинг удивляет. Собрал бесплатное Chrome-расширение, которое показывает траты Anthropic, OpenAI и Gemini в реальном времени прямо в badge браузера.

Читать далее

44 CVE в uutils: что Rust ловит, а что нет на границе с системой

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

В апреле 2026 года Canonical раскрыла 44 CVE в uutils. Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy, ни cargo audit не поймали ни одной.

Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса.

Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка.

Читать далее

DGX Spark: мониторинг unified memory, когда NVML и dcgm‑exporter молчат

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

Свежепоставленный мониторинг на DGX Spark. Открываю NVIDIA‑дашборд в Grafana — половина memory‑панелей пустые, прямые линии по нулю. Сначала кажется, что что‑то не настроил. Через полчаса доходит: это не у меня сломалось, это NVML на GB10 так работает.

Это та область, где на GB10 половина стандартного observability‑стека просто не работает: NVML отдаёт [N/A] на memory.used и memory.total, dcgm‑exporter не ставится, nvtop в memory‑колонке показывает пустоту. В Grafana NVIDIA‑дашборды по умолчанию выглядят так, будто GPU вообще нет — и это не очевидно, потому что Grafana при отсутствии данных не кричит, а молча рисует ровную линию по нулю.

Статья — про то, как я это место обошёл и что в итоге увидел в Grafana. Трёхуровневая схема: textfile collector для базовых метрик, per‑container attribution через docker top + nvidia-smi, и CLI‑фоллбэк на /proc/meminfo, который оказался полезен не только на Spark, но и на других Linux‑системах с единой памятью (unified memory) — AMD Strix Halo и подобные.

Читать далее

SocratiCode: разбираю MCP-сервер, который даёт ИИ-агенту понимание кодовой базы

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

Если ваш ИИ-агент при каждом вопросе начинает grep-ом по всему проекту — у меня есть для вас одна штука. SocratiCode — это MCP-сервер, который индексирует кодовую базу через Qdrant и даёт агенту нормальный поиск вместо построчного чтения. Разобрал, как он устроен внутри, потестировал на нашем монорепе и сравнил с обычным режимом Claude Code

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