Обновить
512K+

Open source *

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

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

Apache ICEBERG: Прикасаюсь к Iceberg… а он горячий

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

Про Iceberg сейчас много чего понаписано. Либо обзор «формат будущего, открытость, лейкхаус», после которого непонятно, где нажать, либо разбор одного механизма — снимки отдельно, каталог отдельно, права отдельно. Iceberg плохо объясняется словами, поэтому я собрал стенд, где все части уже соединены и поднимаются одной командой. Trino, каталог Lakekeeper, права в OpenFGA через OPA, вход через Keycloak, S3 на RustFS, а из инструментов нужен только DBeaver. В статье — путь одного запроса через все компоненты, снимки и откат таблицы, права мышкой и обслуживание таблиц с рекомендациями для рабочей системы.

Читать далее

Как Open Source аналоги убили Adobe и Microsoft Office? ИИ сделал это за пару месяцев

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

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

В статье разберём: какие юридические риски может нести сходство с оригиналами, что всё это говорит о будущем разработки ПО, и насколько его приложения близки к коммерческим аналогам.

Читать далее

Бесплатная верстка и перевод книг: как я создал конвейер, работающий на видеокарте

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

Три месяца отладки, десятки книг и переход от Claude к локальным моделям.

Рассказываю, как собрал открытый конвейер перевода и вёрстки книг: MinerU распознаёт страницы, Hy-MT2 переводит текст, а Python-скрипты собирают LaTeX и PDF.

Показываю запуск без управляющего ИИ-агента, схемы работы и как осуществлять верстку целых книг с автоматическим переводом абсолютно бесплатно и без ограничений!

Читать далее

Кооп-бадминтон на двух телефонах с сонар-управлением, и зачем мне понадобилась картонка

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

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

Читать далее

Я заказал художнику рисунок своего дома, и теперь это мой дашборд Home Assistant

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

Антон Фролов год автоматизировал дом на Home Assistant, но приложением, кроме него, никто в семье пользоваться не хотел. Тогда он заказал художнику иллюстрацию дома в разрезе и собрал из неё дашборд: камин и кондиционеры анимированы, ночью меняется освещение, оба этажа и сад видны на телевизоре. В статье техзадание для художника, карточка picture-elements, переключение дня и ночи, YAML-режим и киоск на HDMI.

Читать далее

Диктовка без «ну» и «вот»: Whisper на своём компьютере и маленький посредник к LLM

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

Я пишу книги, и кроме самих книг за день набирается много другого текста: сообщения, письма, задания нейросетям. Говорить быстрее, чем печатать, поэтому большую часть этого я диктую. Только живая речь, записанная слово в слово, читается плохо. Вот фраза, которую Whisper распознал без единой ошибки:

Читать далее

V‑GEN: автономный генератор теленовостей и видеосюжетов на Google Gemini и FFmpeg

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

V-GEN — локальный сервис с веб-интерфейсом, который собирает новостные ролики сам «под ключ»: от живого поиска инфоповодов до готового Full HD файла с русским именем для эфирного плейлиста.

Читать далее

Как обойти проверку SynthID

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

Что я пробовал вначале. JPEG не помог. Шум тоже.

Кадр один: девочка у пруда, утки в траве, осенние деревья, 1536 × 1024. Я мял его обработкой и снова получал одно и то же. SynthID обнаружен. Картинка уже выглядела хуже. Проверка по-прежнему находила знак.

Сработал другой ход. Сгенерировать вторую версию сцены через ControlNet Canny, взять из неё полосу текстуры и подмешать в исходник. Ручная проверка этого файла вернула not detected. Трава изменилась. Утки остались утками.

Читать далее

Почему на десктопе до сих пор нет нормального T9 и при чем тут LLM

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

Рабочие тексты большинство из нас набирает на компьютере, а умная автокоррекция почему-то досталась телефону… Мы настолько привыкли к этой разнице, что почти ее не замечаем: на телефоне слова исправляются сами, а на ПК остаются только  красные подчеркивания и ПКМ. Почему же десктоп за столько лет так и не научился большему, и можно ли это как-то исправить с помощью LLM, которые сегодня у всех на слуху.

Читать далее

Я потратила $9 000 на ИИ-агентов и в итоге сделала Crossweft — проверку того, что они ломают между файлами

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

Я потратила больше $9 000 и больше миллиарда токенов, пытаясь сделать нормальную безопасность в приложении, которое разрабатываю с января. Сама программа работала прекрасно, а слои защиты не сходились друг с другом: что-то менялось в одном месте, и ломалось в другом.

Я перепробовала бесчисленное количество способов их свести, даже сделала отдельное приложение, которое следило за «сердцебиением» слоёв защиты и пыталось держать их вместе, — но ничего не помогало. В итоге всё это сошлось! И получился полноценный инструмент — Crossweft. Это открытый плагин для Claude Code и Codex, который не даёт ИИ-агенту сказать «готово»,пока все связанные части программы не синхронизируются. Рассказываю, как он устроен.

Читать далее

Агентный поиск на open-source моделях: кого нашёл, сколько потратил и где всё сломалось

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

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

Читать далее

Генератор парсеров ISPA

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

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

Следует философии:

1. Статическая генерация. Никакой генерации в рантайме
2. Отсутствие зависимостей — сгенерированный парсер должен легко настраиваться
3. Вывод на несколько языков
4. Семантические действия и обработка ошибок прямо в грамматике, без её раздувания
5. Гибкость использования как в тривиальных, так и в очень крупных проектах
6. Простой в использовании API

Читать далее

Устанавливаем Jenkins на облачный сервер для автоматизации сборки приложений

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

Привет, Хабр! Меня зовут Завур, я фронтенд-разработчик в Selectel.

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

Если вам нужен независимый сервер автоматизации, который не привязан к конкретной платформе, подойдет Jenkins — open-source инструмент с большой экосистемой плагинов и поддержкой практически любых технологий. Он может собирать проекты из любого Git-репозитория, запускать тесты, собирать Docker-образы и разворачивать приложения.

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

Читать далее

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

Чему нас научил взаимный перенос тестов между Pii-Mask и его форком

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

Автор форка Pii-Mask добавил исправления и тесты обработки Word и Excel. На нашей версии 13 его тестов не прошли. Покажу один найденный пропуск и расскажу, как взаимный перенос тестов помог подготовить план исправлений и сохранить улучшения обеих веток.

Читать далее

Kubernetes как ядро Linux, часть 1: собираем тулкит для создания дистрибутивов K8s и универсальный пакетный менеджер

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

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

Осенью 2023 года на KubeCon в Чикаго Тим Хокин, один из тех, кто стоял у истоков Kubernetes, говорил со сцены о том, что Kubernetes становится сложнее с каждым релизом, и эта сложность не бесплатна, потому что каждая новая фича, нужная лишь кому‑то одному, ложится грузом на всех остальных; разработчики проекта всё хуже удерживают в голове всё целиком, а инженерам, которые его эксплуатируют, всё труднее разобраться во всех его настройках. Хокин предложил относиться к сложности как к бюджету, который у проекта есть и который можно потратить, но только один раз, а значит, надо научиться отказываться от того, что этот бюджет съест без достаточной пользы.

Меня эта мысль зацепила, потому что мне показалось, что у неё есть продолжение, о котором со сцены сказано не было. Если сложность, нужная машинному обучению, сетевым устройствам или промышленным контроллерам, не помещается в бюджет ядра проекта, то ей всё равно нужно какое‑то место, где она будет жить, никого не обременяя. В мире Linux такое место давно нашлось. Ядро там остаётся ядром, которое знают и трогают руками немногие, а вся специфика уходит в дистрибутивы, и никто не ждёт от Торвальдса, что он лично позаботится о роутерах, медицинских томографах и игровых консолях.

Читать далее

Как Google Play сделал публикацию бесплатного приложения настоящим испытанием

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

Привет, Хабр!

Если вы читали мои прошлые статьи, то знаете Гига Писаря: зажимаешь кнопку, говоришь, отпускаешь, и текст появляется там, где стоит курсор. Речь распознаёт модель GigaAM от Сбера прямо на телефоне, без интернета и без облака.

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

Поэтому я решил выложить Писарь в Google Play, но там есть нюанс и мне потребуется ваша помощь

Читать далее

«Яму» убрали, обрывы остались: один живой адрес Telegram и молчаливый лимит на 13 соединений

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

Предыдущий разбор закончился тем, что из клиентского пути убрали периодическую яму: раз в десять минут прокси проверял мёртвую первую ступень, клиент оплачивал эту проверку несколькими секундами ожидания и уходил, не получив ни одного байта. Окна исчезли, сообщение «прокси использует некорректные настройки» больше не появлялось — а через несколько часов телефон снова начал терять соединения. Лог при этом выглядел безупречно: ни одной строки ERROR за девять часов, ни одного перезапуска процесса, 2 415 клиентских сессий и 482 МБ скачанного трафика.

Дефект нашёлся по подписи из четырёх чисел: сессии, которые апстрим закрывал ровно за 0.1 с, после ~800 байт вверх и 8–28 байт вниз, и все до единой — на прямой ступени. Причина оказалась не в прокси, а в том, как из этой сети устроен путь к Telegram: из 1 270 проверенных адресов мессенджера по TCP отвечает ровно один, и это не дата-центр, а служебный узел, к которому к тому же действует молчаливый лимит на одновременные соединения. Телефон открывает пачку из тринадцати сокетов — семь проходят, шесть гаснут без единого ответного пакета. Ни один лог приложения такого не покажет.

Дальше — как это измерено, почему одна ступень Cloudflare не является резервом, что дала смена маршрута за девять часов работы и где границы этого результата.

Читать далее

Чей номер и чей БИК: две офлайн-библиотеки на открытых реестрах Минцифры и ЦБ

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

Когда в форме нужно проверить ИНН, подсказать банк по БИК или показать оператора по номеру телефона, обычно подключают внешний API. Мне захотелось обойтись без него: все эти данные государство и так публикует открыто, и они достаточно маленькие, чтобы положить их прямо в npm-пакет.

Так появились две библиотеки. phoneoperator по реестру Минцифры определяет оператора и регион номера, bankbik по справочнику ЦБ находит банк по БИК и проверяет ИНН, СНИЛС, ОГРН и счета. Обе работают без сети и обновляются сами. Внутри: как 60 МБ реестра ужимаются до 45 КБ, почему у МТС два названия и почему сайт Минцифры не пускает GitHub.

Песочницы: phoneoperator и bankbik.

Проверить реквизиты

Telemax — показал проект на Хабре и получил бан на GitHub

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

15 августа я показал здесь Telemax — мост, который приносит переписку из MAX в Telegram. Пост прочитали 14 тысяч раз, под ним набралось 48 комментариев.

А на следующий день ссылка на GitHub из поста начала отдавать 404. Не репозиторий удалён, не аккаунт заблокирован — просто для всех, кто не вошёл под моим именем, меня и моего кода больше не существовало. Читатели шли по ссылке и упирались в пустую страницу, а те, кто уже поставил мост, потеряли обновления.

Разбанили меня только через месяц. Эта статья — о том, как прошёл этот месяц, как проект пережил его без GitHub и что из ваших комментариев за это время стало обновлениями.

Читать далее

Локальный ассистент для зумов, часть 10: NLI — три места, куда я его примерял, и два, откуда ушёл

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

Бюджет на квартал согласован и бюджет на квартал не согласован. Для эмбеддингов это почти одна фраза: слова те же, частица не в векторе весит мало. Для встречи это значит, что решили обратное.

Вот из-за таких пар в Чароите живёт NLI-модель. Ниже — где она работает третий месяц, где я её снял и почему, и во что это обошлось.

Читать далее