Обновить
370.87

Open source *

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

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

Как мы написали React Native библиотеку для Яндекс Карт за два дня с Claude

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

Сначала коротко о том, зачем нам это было нужно.

Мы в основном пилим решения для фудтеха, а для мобилок используем React Native (почему, рассказывали тут). 

В одном из таких проектов (российская сеть ресторанов по франшизе) нам нужно было прикрутить Яндекс Карты. Изначально хотели взять либу react-native-yamap (респект тем, кто ее делал) — но как выяснилось, она работает только на старой архитектуре RN. 

После обновления до 0.76 версии, где Fabric стала использоваться по умолчанию, приложения на iOS начали падать: карта не рендерится, события не доходят до JS, приложение крашится при взаимодействии с картой и вот это вот всё. И судя по открытым тикетам, мы не одни, кто столкнулся с этой проблемой. 

Полезли искать, написал ли кто-то уже библиотеку под новую архитектуру — но либо таких людей нет, либо ни с кем не делятся. Спойлер: мы пока тоже не будем, ещё обкатываем либу на своих проектах — но уже сейчас хотим рассказать, как собрали новый пакет с помощью Claude Code за два дня.

Читать далее

Новости

Зачем тестовому фреймворку 17 функций?

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

Если посчитать публичный API Ginkgo, получается внушительный список. Describe, Context, When, It, Specify, By, BeforeEach, AfterEach, BeforeAll, AfterAll, JustBeforeEach, JustAfterEach, BeforeSuite, AfterSuite, SynchronizedBeforeSuite, SynchronizedAfterSuite, DeferCleanup. Семнадцать функций, и это без F- и P-вариантов для focus и pending.

GoConvey проще, но и у него набирается не меньше: Convey, So, ShouldEqual, SkipConvey, FocusConvey, Reset и собственный DSL для assertion-ов.

Какой минимальный API нужен scoped-фреймворку для тестирования?

Читать далее

Мутационное тестирование (Как я учил байт-код плавать)

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

Когда-то давно, в те благословенные времена, когда программисты еще наивно полагали, что покрытие кода тестами — это показатель качества, я тоже разделял эту иллюзию. Восемьдесят процентов покрытия? Отлично! Девяносто? Великолепно! Сто? Да вы просто параноик, милейший, возвращайтесь в Скворечник, а то на ужин опоздаете.

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

Как надо?

Я просто хотел, чтобы код от Claude не поломался через месяц. Пришлось сделать runtime для воспроизводимости AI-кода

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

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

Я столкнулся с этим, когда Express API, сгенерированный Claude, умер через 28 дней.
Перегенерация помогала… ровно до следующего обновления зависимостей.

В итоге я попытался решить не проблему кода, а проблему воспроизводимости AI-решений — и случайно пришёл к идее CI/CD для мира, где код пишет не человек, а модель.

В статье — про «гниение» AI-кода, Execution Plans, проверку смысла вместо проверки файлов и почему в большинстве случаев чинить можно без повторного вызова LLM.

Читать далее

Platformize It! Часть 2: Расширяем Kubernetes с помощью API Aggregation Layer

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

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

Читать далее

Как настроить swap в Linux, чтобы поды не убивались и не вытеснялись

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

С недавних пор в Kubernetes можно включать swap. Говорят, теперь можно забыть о внезапном вытеснении и убийствах подов. Но так ли это на самом деле, если риски никуда не делись?

В статье на тестах и графиках показано, как разные значения параметров ядра Linux влияют на swap и расход памяти в целом. Спойлер: если грамотно всё настроить, можно избежать проблем.

В конце — набор рекомендаций и базовых настроек, которые можно протестировать на своих приложениях.

Читайте, как настроить без риска

Как я написал оптимизатор Windows для геймеров и выложил в open source

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

Привет, Хабр! Меня зовут Sonic. Я собрал SonicBoost — бесплатную утилиту с открытым кодом, которая вытаскивает из Windows 10/11 максимум FPS. 28 твиков реестра, управление службами, блокировка телеметрии, оптимизация сети — всё в одном EXE на 65 МБ. Под капотом .NET 8, WPF UI с Mica-эффектом и ни одного подозрительного скрипта — весь код на GitHub.

В статье — подробный разбор: какие параметры реестра реально влияют на производительность, почему Windows по умолчанию тормозит в играх, и как мы это исправляем.

Зачем вообще нужен ещё один твикер?

Каждый геймер знает ощущение: собрал машину за 200к, а в Valorant на ALT+TAB — фриз на 3 секунды. FPS скачет, пинг гуляет, микрофризы в самый неподходящий момент.

Проблема не в железе. Проблема в том, что Windows — это корпоративная ОС, а не игровая. По умолчанию там крутятся:

Соник, что ты сделал?

Один endpoint — одна строка. Как мы до этого докатились на Rust

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

Я пишу на Python. В последнее время увлёкся Rust — типы, скорость, предсказуемость. Но когда смотрю, как пишут веб на Расте, по спине холодный пот: десятки строк замыканий на один endpoint, Box::pin, lock контейнера, resolve, clone. Хотелось питонячего подхода — без мишуры. Решил расширить своего Urich до Rust. Пошёл дальше: написал растовое ядро (роутинг, протокол приложения, HTTP), поверх него — две обёртки: для Rust и для Python. Один core, два языка. В ядре — зачатки ASGI (scope, receive, send).

Всё в ветке multi. Пока work in progress, но то, что получается, нравится. Ниже — суть, пример кода, ссылки. Зову помогать: комментарии, контрибьюции, реальные использования — буду рад.

Читать далее

Open Source-джентльмены 2026: Обзор самых ярких GitHub-проектов, определивших начало года

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

2025 год стал переломным для open-source-сообщества. Согласно ежегодной статистике GitHub, количество публичных репозиториев перевалило за 395 миллионов, а аудитория платформы выросла до 180 миллионов разработчиков. Но главная интрига развернулась на пьедестале языков программирования: TypeScript впервые сместил Python и JavaScript, став самым быстрорастущим языком с годовым приростом в 1 миллион новых разработчиков.

Мы вступили в 2026 год, и тренд на «агентность» и «интеграцию с ИИ» перестал быть просто хайпом. Теперь это архитектурный стандарт. В этой статье я собрал проекты, которые буквально «взорвали» GitHub в конце 2025 и начале 2026 года. Это не просто игрушки, а реальные инструменты, меняющие ландшафт разработки.

Читать далее

glenv: синхронизируем .env файлы с GitLab CI/CD переменными без боли

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

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

Если вы работаете с GitLab и у вас больше одного окружения — вы наверняка знаете этот ритуал: открываешь Settings → CI/CD → Variables, начинаешь вбивать переменные вручную, на пятой ошибаешься, на двадцатой теряешь счёт, на пятидесятой начинаешь сочувствовать тем, кто хранит секреты прямо в коде.

Я написал glenv — CLI-инструмент на Go, который синхронизирует .env файлы с GitLab CI/CD переменными через API. Под катом — история о том, почему существующих решений не хватило, как это устроено внутри и несколько примеров использования.

Читать далее

Стоп-слова, исключения и словоформы в Manticore

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

Теперь Manticore Search поддерживает прямое указание настроек токенизации непосредственно в команде CREATE TABLE. Таким образом, исчезает необходимость создавать внешние файлы при настройке стоп-слов, исключений, словоформ и слов без позиции, делая создание таблиц проще и удобнее для развертывания.

Читать далее

Как заставить Qwen 3.5-Plus написать ransomware, reverse shell и zero-day exploit за 5 шагов

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

5 векторов обхода трёхэшелонной защиты Qwen 3.5-Plus — без единого классического джейлбрейка. Ни DAN, ни «ignore previous instructions». Только контекстное фреймирование — и модель сама пишет ransomware, reverse shell и Security Advisory на собственные уязвимости. Разбор цепочки атак, почему Qwen3Guard, GSPO и RationaleRM оказались бесполезны, и что должна делать реальная защита.

Читать далее

«Разблокируй телефон» — как я реализовал фейковый мессенджер для допроса

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

Привет, Хабр! Я разрабатываю open-source мессенджер Xipher (C++/Android), и одна из фич, которую пришлось проектировать особенно тщательно — Panic Mode. Это система правдоподобной отрицаемости (plausible deniability): при вводе специального PIN-кода мессенджер показывает полностью фейковую, но убедительную базу данных с поддельными чатами, а параллельно отправляет скрытый SOS-сигнал на сервер.

В статье разберу архитектуру целиком — от криптографического разделения баз до генерации правдоподобных фейков и маскировки panic-алерта под рутинный сетевой запрос. Весь код — из реального проекта.

Исходники открыты — ссылка на GitHub в конце статьи.

Читать далее

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

Мы знаем как готовить БД. Но индустрия изменилась: что бы я заложил в OLTP-БД с нуля

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

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

Читать далее

Urich: DDD и CQRS для микросервисов на Starlette без ручной раскладки роутов

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

Когда строим бэкенд по DDD и CQRS, роуты и OpenAPI обычно собираем вручную. Urich делает иначе: описываешь ограниченный контекст одним объектом — маршруты и документация появляются сами. Обзор фреймворка на Starlette и примеры кода.

Читать далее

Пишем плагин для semantic-release

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

Вы когда-нибудь писали плагин для semantic-release? А хотели бы? Если да, то идем дальше. Расскажу, как это сделать и самое главное это не сложно. А в конце Вас ждет репозиторий, который вам поможет начать проект.

Привет! Меня зовут Алексей, я работаю в команде Авторизации Банки.ру. Сегодня хочу познакомить Вас с тем, как можно написать свой плагин для semantic-release.

Читать далее

Агглютинативный код: почему будущее IT требует смены лингвистического фундамента

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

Каждые несколько лет IT-индустрия переживает очередной ренессанс. Мы пишем новые языки программирования - Rust для безопасной работы с памятью, Go для идеальной конкурентности, Swift для экосистемности. Мы плодим новые фреймворки, стандарты и сетевые протоколы, пытаясь превзойти существующие ограничения.

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

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

Читать далее

Как библиотеки и репозитории open source решений защищают свою интеллектуальную собственность

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

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

Читать далее

Запустили Роллаут — чтобы вы могли сделать макеты для своего финтех-приложения за неделю

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

Сегодня выпустили первую версию нашего опенсорс-конструктора для e-com и финтех-продуктов. Рассказываем, что внутри и чем Роллаут уже сейчас может пригодиться любому бизнесу, что-нибудь продаёт или принимает оплату онлайн.

Читать далее

Параллельный поиск в PostgreSQL: Погружение в архитектуру и производительность pg-smart-search SDK

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

Многие проекты рано или поздно утыкаются в «потолок» стандартного поиска. Обычный LIKE перестает справляться, когда данных становится больше 100 тысяч строк, а пользователи начинают ошибаться в каждом втором слове. Типовым решением в такой ситуации считается внедрение Elasticsearch или Meilisearch.

Но внешние движки — это всегда «налог» на инфраструктуру: лишняя память, задержки на сетевой хоп и, самое главное, головная боль с синхронизацией данных. В этой статье мы разберем, как выжать из PostgreSQL производительность специализированного поисковика, используя Node.js как оркестратор параллельных стратегий и механизм AbortSignal для предотвращения лишней нагрузки на БД. Разбираем внутреннее устройство SDK pg-smart-search.

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