Обновить
512K+

Open source *

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

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

Как мы скрестили Go, Rust и MCP, чтобы построить масштабируемый оркестратор ИИ-агентов часть 2

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

Как мы скрестили Go, Rust и MCP, чтобы построить масштабируемый оркестратор ИИ-агентов часть 2

Глубокий разбор архитектуры Zettaverse AgentHub

Кастомная валидация структуры flow_json и построение DAG

Читать далее

Новости

Protestware: как идейные злоумышленники атакуют ваш код — и как этого избежать

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

Всем привет! Меня зовут Руслан, я инженер в отделе развития процессов безопасности в YADRO. В прошлой статье я рассказывал о рисках транзитивных зависимостей в open source: один неблагонадежный пакет во всей цепочке — и продуктовая сборка скомпрометирована. Таким пакетом может быть protestware — вид ПО или библиотек, в которые разработчики (мейнтейнеры) намеренно внедряют деструктивный, изменяющий логику работы или политизированный код. Он так же опасен, как уязвимости в зависимостях, компрометации репозиториев и атаки класса Dependency Confusion.

В отличие от «традиционного» вредоносного ПО, в основе protestware — не получение финансовой выгоды, а идеологическая мотивация: выражение социальных, политических или идеологических взглядов, привлечение внимания к каким‑либо событиям в мире, влияние на пользователей, связанных с определенными регионами, организациями или государствами и так далее. С точки зрения безопасности это такой же риск для цепочки поставок ПО, как и другие вредоносные компоненты. 

Ниже разберемся, как эта функциональность попадает в инфраструктуру и open source, как ее обнаружить и какие меры предпринять, чтобы защитить свой проект.

Читать далее

«Аниме-завод» открыт: выкладываю код конвейера, который сам режет эпизоды на Shorts

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

За последнее время я написал три статьи про систему, которая превращает длинные видео в вертикальные клипы: общий обзор «аниме-завода», разбор виртуальной камеры с face tracking и рассказ о том, почему связка «транскрипт + LLM» почти всегда даёт мусор.

Комментарий, который повторялся под всеми тремя, был один и тот же: «покажи код».

Показываю.

github.com/ialakey/shorts-factory

Это витринная ветка большого приватного проекта: MVP, в котором оставлен полный путь «взял длинное видео → получил готовый вертикальный клип», а всё остальное вырезано. Ниже — что именно внутри, как код соотносится с тремя предыдущими статьями и что пришлось выкинуть.

Заглянуть на производство

Поправки к ГОСТам живут только в изданиях. Веб-копии стандартов показывают редакцию до правок

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

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

Читать далее

И снова 3 сентября: Sheeternetes-оператор для Google-таблиц, который лечит сам себя

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

Недавно я рассказывал про Sheeternetes — оркестратор, у которого control plane живёт в таблицах. Здесь — про следующий логичный шаг: паттерн «оператор», применённый к самим таблицам. Настоящий полноценный Sheeternetes-оператор. Не скрипт внутри таблицы, а внешний контроллер, который приводит табличку к желаемому состоянию.

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

Читать далее

Tome Reader, своя читалка для Obsidian

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

Собрала свой плагин для Obsidian. Это Tome Reader – читалка EPUB с четырьмя темами, выделением текста в заметки и в словарные карточки, закладками, правкой опечаток прямо во время чтения, автоматическим оглавлением для «битых» книг и опциональным AI-ассистентом, куда пользователь добавляет собственный ключ. Читалка доступна в официальном каталоге плагинов Obsidian.

Читать далее

Sheeternetes: как мы запустили оркестратор контейнеров внутри Google Таблиц (а заодно написали ОС и создали фонд)

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

Хабр, привет! Есть такой тип проектов, которые начинаются со слов «а что если» и заканчиваются тем, что ты в три часа ночи объясняешь kubelet-у, что таблица — это его новый control plane. Так вышло и тут, всё родилось из субботней шутки в одном телеграм-канале по кубернетесу.

Правила игры простые: раз весь мир можно создать в эксельке, то пускай всё состояние кластера живёт внутри электронной таблицы. Не «метаданные в таблице», не «экспорт в CSV» — а буквально: Deployments, Nodes, Pods, Events — это вкладки Google Sheets (или листы Excel). Планировщик читает и пишет ячейки. kubectl-подобная утилита ходит в таблицу. И — вот это ключевое — на другом конце крутятся настоящие Docker-контейнеры. Таблица не симулирует кластер. Таблица и есть кластер.

Проект называется Sheeternetes. Это, конечно, шутка. Но шутка, которая компилируется, проходит тесты и переживает падение ноды.

Ниже — как это устроено, как это поднять у себя за пять минут, как оно работает на bare metal без интернета (в Excel и LibreOffice), как связать несколько таблиц-кластеров в федерацию с живой миграцией, почему контейнеры можно хранить прямо в ячейках, — и что это внезапно выросло в целый фонд с 30 проектами, стандартом контейнеров и системой сертификации.

Читать далее

Как быстро влиться в чужой проект и не завалить коллег вопросами: тестируем Gemini Notebook

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

Обычный вечер понедельника. Я уже собирался уходить домой после работы, как вдруг зацепился за разговор коллег о неком Gemini Notebook. Стало интересно, что это, как люди им пользуются, а главное — надо ли оно мне. Глянул пару обзорных видео, послушал про его плюсы, чудеса и все такое прочее, но больше всего зацепил меня тезис о том, что окно контекста у этой штуки — миллион токенов. Вечер перестал быть томным.

Привет, Хабр! Меня зовут Вадим Гартман, я бэкенд-разработчик в Selectel. Недавно стал одним из ответственных за поддержку terraform-provider со стороны выделенных серверов, при том что ранее работал вообще в другом направлении. Я старался быстро влиться в проект, и будто бы ИИ-RAG-инструмент, способный обрабатывать и анализировать структуры огромных монолитов, появился очень кстати.

В общем, мы с Gemini Notebook встретились в странный период моей жизни. А что из этого вышло — читайте в этой статье.

Читать далее

Как проверить справочник, у которого нет первоисточника: 5 800 строк сортамента против формул

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

Как проверить справочник, у которого нет первоисточника: 5 800 строк сортамента против формул. Задача звучала так: взять справочник металлопроката почти на 5 800 строк и убедиться, что числа в нём верные. За месяц выяснилось, что неверных больше полутора тысяч, и что почти каждую из них можно было поймать одной формулой.

Читать далее

WS‑Trust поверх OAuth: третий транспорт OpenID‑сервера, для контура, который живёт на SOAP

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

redb.Identity получил WS-Trust фасад: Issue, Validate, Cancel, Renew на тех же маршрутах ядра. Тот же JWT, тот же реестр клиентов, WSDL для генератора.

Когда мы делали gRPC-фасад, тезис был такой: логика redb.Identity живёт в ядре за адресами direct-vm://identity-*, а транспорт это тонкий переводчик поверх них. Второй фасад тезис подтвердил. Но два транспорта, оба современные, оба построенные примерно на одних представлениях о мире, проверяют утверждение мягко. По-настоящему проверяет третий, устроенный принципиально иначе.

Теперь он есть. Рядом с HTTP и gRPC встал WS-Trust: IssueValidateCancelRenew по SOAP, на те же маршруты ядра, с тем же издателем и тем же хранилищем токенов. Токен, выданный по SOAP, принимается по HTTP и получает там тот же вердикт.

Читать далее

Кроссплатформенный мониторинг аппаратных ресурсов на C++ и Python: библиотека hardware_monitor_cpp

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

После того как мой пет-проект случайно «выстрелил» на Reddit, я решил, что пора поделиться так же и своей кроссплатформенной библиотекой на C++20 для мониторинга железа, с нативной поддержкой Python.

Рассказываю историю создания hardware_monitor_cpp: как избавиться от лишних зависимостей, получить адекватную статистику swap-файла под Windows и macOS, упаковать все в удобное C++ API, а заодно получить готовую консольную утилиту с визуализацией графиков прямо в терминале.

Читать далее

Мы завышали площадь окраски металла в полтора раза. Как нашли и как проверить любой калькулятор за минуту

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

Мы завышали площадь окраски металла в полтора раза. Как нашли и как проверить любой калькулятор за минуту.

Читать далее

Проверка исходников VSCode

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

Теперь можно говорить без всяких прикрас: мы выпустили анализатор для языков JavaScript и TypeScript. А значит, это повод испытать его в полевых условиях и посмотреть, что он найдёт в исходном коде хорошо знакомого многим Open Source проекта Visual Studio Code. Если вам интересно узнать, какие ошибки и подозрительные фрагменты кода обнаружил анализатор, — добро пожаловать в статью.

Читать далее

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

Отступы или скобочки? — Да

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

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

Я написал маленькую утилиту, которая переводит исходный код Python между тремя синтаксисами: классические отступы, C-подобные фигурные скобки, S-выражения в духе Лиспа. Один и тот же quicksort, три вида:

Читать далее

Инженер отсутствует, но его работа выполняется?

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

Всем привет! Меня зовут Илья, я инженер-программист, но чаще пишу промпты вместо кода, что привело к некоторым артефактам, о которых ниже.

В данной статье я покажу, как интегрировать n8n с OpenWebUI, вайбкодить по делу и без, а также напомню о том, как найти идею, если кто не знал.

Некоторое время назад я оказался в не очень злачном месте, чтобы "развлекаться" околоинтеллигентными разговорами про экономику, международную политику и научно-технический прогресс. Чем еще было заниматься осенним субботним вечером в 2022 году?

Читать далее

redb.Route 4.0: тест-кит, шаблоны payload, форматы данных, REST DSL и ядро без Newtonsoft

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

Восемь новых пакетов и REST DSL вокруг прежних 56 глаголов маршрута; из ядра ушёл Newtonsoft.Json. Что ломает мажор и как мигрировать за десять минут.

Готовится четвёртая версия redb.Route, интеграционного движка для .NET в духе Apache Camel. В 3.x была закрыта ширина по паттернам: 56 глаголов DSL, тридцать с лишним коннекторов, свой язык выражений, скомпилированный в IL (в 4.0 он качественно переработан, об этом ниже). 4.0 закрывает то, что вокруг паттернов: как протестировать маршрут без брокеров, как собрать тело сообщения, как читать CSV и Avro, как выставить REST-фасад, как кэшировать ответ сервиса. Восемь новых пакетов, REST DSL внутри HTTP-коннектора, переработанный язык выражений и ядро, которое стало легче, а не тяжелее. За год это первый мажор такого масштаба: не смена номера под несколько ломающих правок, а качественное расширение функционала, и ломающих изменений в нём как раз немного.

Читать далее

Ошибка вендора. Эффект Кобры

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

В Индии во времена британского колониального правления, губернатор Нью‑Дели решил бороться с расплодившимися ядовитыми кобрами. Он назначил денежную награду за каждую принесённую голову змеи.

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

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

Читать далее

redb 4.0: ленивые ссылки, уникальные ключи и обновление базы без DBA

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

Анонс четвёртой версии redb.Core: ссылки грузятся по обращению, уникальность на любом поле, схема обновляется сама. Бесплатно, три СУБД, Free и Pro одинаково.

Готовится redb.Core 4.0. За год это первый мажор такого масштаба: не смена номера, а качественное расширение функционала. Он про три вещи, которые чаще всего просили: ленивая загрузка ссылок между объектами, уникальные ключи на любом поле и обновление схемы базы без ручных действий администратора. Всё вместе, на трёх СУБД сразу и без разделения на «в Free так, в Pro иначе».

Коротко, что изменится для приложения.

Читать далее

Как запустить собственную AI-лабораторию (без миллиардных вложений)

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

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

Продолжение этой статьи. Досмотрел выступления портфельных компаний Sequoia о том, как они строят внутри себя AI-модели. Понравилось выступление основателя Harvey (AI-компании для юристов) и нарратив из Moneyball, который он продвигал:

Читать далее

Чужой код у вас в Production. Как устроены Supply Chain Attacks и что с ними делать

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

Что может быть привычнее для разработчика, чем ежедневный ввод команд установки или обновления зависимостей: npm install, pip install, uv add, bundle add, cargo add? Пакетный менеджер находит нужную библиотеку, скачивает её вместе с транзитивными зависимостями и за несколько секунд устанавливает в проект сотни тысяч строк чужого кода. В этот самый момент мы не задумываемся о том, что совершаем серьёзный акт доверия. Мы доверяем автору пакета, его аккаунту, системе публикации, сборочному конвейеру и всем зависимостям, которые пакет подтянет вместе с собой. Бесспорно, большую часть этого кода мы не читали и, скорее всего, не прочитаем никогда. Пока всё работает как задумано, этот процесс остаётся незаметным. Но стоит злоумышленнику скомпроментировать хотя бы одно звено этой цепочки, и обычное добавление или обновление библиотеки превращается в установку вредоносного кода в сотни или даже тысячи проектов.

Именно на этой идее и строится атака на цепочку поставок — supply-chain attacks. Зачастую злоумышленнику не обязательно искать уязвимости непосредственно в вашем приложении, планировать дорогостоящие многовекторные атаки и применять социальную инженерию. Ему достаточно увести учётку разработчика даже не особо известного пакета, добавить бэкдор в новую версию, опубликовать её в тот же npm или PyPi — и вуаля: вот уже вредоносный код отправляет персональные данные ваших клиентов прямиком на серверы хакеров.

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