Обновить
477.11

Open source *

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

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

Управляю VDS с телефона: Telegram-бот + Claude Code CLI

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

Я не devops, поэтому хотел получать ответы на человеческом языке в любое время. Ты в дороге, приходит алерт, нужно срочно посмотреть логи или проверить статус сервиса. Достаёшь телефон, открываешь SSH-клиент, набираешь команды...

В итоге, я написал Telegram-бота, который принимает запросы на человеческом языке и выполняет их через Claude Code CLI. Теперь вместо journalctl -u nginx --since "1 hour ago" | grep error я просто пишу в Telegram: «Покажи ошибки nginx за последний час». Выложил в opensource.

В статье расскажу про архитектуру и примеры.

Читать далее

Новости

Rust в ядре Linux: долгий путь от осторожных попыток к реальному применению

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

Совсем недавно мы вспоминали, как Rust вырос из стартапа до языка, у которого серьезные планы на Linux. И вот свежие новости: на Maintainers Summit 2025 года разработчики ядра решили, что Rust доказал свою пользу и можно расширить сценарии его использования. Это не значит, что он теперь на равных с C, но проект вышел за рамки «просто эксперимент». Давайте разберем, как все происходило, зачем нужно, почему были споры и что это сулит для будущего ядра. Поехали!

Читать далее

Shrink кластера и Iceberg-коннектор. Что нового?

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

В этой статье мы поделимся некоторыми подробностями работы над новыми функциями Greengage, такими как shrink и expand кластера, улучшение вставки для foreign-таблиц и подготовка к интеграции с Apache Iceberg.

Читать далее

Опенсорс-библиотека Implicits от Яндекс Браузера: новый шаг в передаче зависимостей Swift

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

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

Проблема известна. Scala использует implicit parameters на уровне языка, Kotlin экспериментирует с context receivers, Android полагается на Dagger. А Swift не предлагает встроенного решения. Поэтому мы в команде Яндекс Браузера создали библиотеку Implicits — механизм неявной передачи зависимостей с compile‑time‑проверками. Она успешно работает в продакшне Браузера на полутора миллионах строк Swift‑кода, а ещё доступна в опенсорсе.

В этой статье я расскажу о поиске собственного подхода для передачи зависимостей в коде на Swift, о том, как внедрение Implicits позволяет существенно сократить boilerplate, ускорить рефакторинг и улучшить читаемость кода благодаря локальному объявлению только реально используемых зависимостей, а также покажу реальные примеры из продакшн‑кода мобильной версии Яндекс Браузера.

Читать далее

AsmX G3 v30.0.0-rev1.0: мы взорвали четвёртую стену низкоуровневого программирования

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

AsmX G3 v30.0.0-rev1.0 — крупное архитектурное обновление, которое делает ассемблер не «инструментом 90-х», а полноценным современным языком системного программирования. Главные изменения: пакетная сборка --multiboot с Supervisor, атомарная очистка --multiclean, поддержка изменяемых данных (.data), новые ISA-инструкции (включая inc/dec и movsxd) и выразительный синтаксис функций с экспериментальной поддержкой возвращаемых типов.

Одной командой теперь можно собрать загрузчик, ядро, модуль ядра и динамическую библиотеку — и Supervisor гарантирует консистентность и изолированность ошибок в подзадачах. Для разработчиков это означает: CI в 3–5 строк вместо громоздких Makefile, меньше рутины и полная управляемость сборки.

Языковые улучшения (честные строки, @syscall, @fn share, @fn static, полноценная .data) переводят AsmX G3 в категорию «язык для реальных проектов»: библиотеки .so, production-модули .ko и микро-ОС — всё это теперь удобно писать, собирать и отлаживать на чистом ассемблере.

Если вы работаете с ядром, драйверами или пишете рантаймы, v30 — релиз, который стоит испытать прямо сейчас: меньше хака, больше гарантий, полный контроль над железом — и при этом современный синтаксис.

Читать далее

Google Maps для биржевого стакана: пишем визуализатор данных Московской биржи на Python

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

Обычный трейдер смотрит на свечной график, но свеча — это уже тень прошлого, постфактум. Между тем настоящая динамика рождается в глубине торгового стакана — Limit Order Book, где борьба заявок определяет будущий импульс.

Проблема в том, что историю стакана почти нигде не увидеть: розничные терминалы для частных клиентов дают лишь текущую таблицу DOM ( Depth of Market ) и это статичный срез без прошлого.

Чтобы увидеть то, на что обычный трейдер не обращает внимание я собрал инструмент, который превращает исторические данные L2 Order Book (стакан заданной глубиной) и Trades Stream (обезличенные сделки) в тепловые карты и позволяет изучать эволюцию заявок на Московской бирже через браузер с Deep Zoom — плавно, как в Google Maps.

Читать далее

4QS-преобразователь на подвижном составе переменного тока: система управления

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

Эта статья является прямым продолжением предыдущей публикации на данную тему. К тому же, от пользователя @Sotnya1337 прозвучал вопрос

«Подскажите пожалуйста, угол fi мы выбираем наобум? Было бы интересно рассмотреть автоматическую логику управления, без ручного выбора угла fi »

требующий ответа. Более того — этот ответ я и сам хотел получить довольно давно. Но, как я и писал ранее, в отечественной литературе этот вопрос не освещается вообще, а в зарубежной — частично, в основном применительно к низковольтным активным выпрямителям вторичных источников питания. Тем не менее, мне удалось разобраться в этом вопросе. И сегодня мы не будем «наобум» выбирать угол \psi, а построим настоящую систему управления 4QS‑преобразователем и смоделируем её работу. При чем не для каких‑то там «детских» мощностей, а вполне в соответствии с потребностями электрической тяги на магистральных линиях.

Осторожно! Много волосатой ТАУ!

Почему Go, Rust и Zig такие разные: ценности, компромиссы и назначение языков

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

Команда Go for Devs подготовила перевод статьи о трёх языках, которые всё чаще оказываются в одном ряду, но на самом деле решают принципиально разные задачи: Go, Rust и Zig. Автор несколько месяцев изучал каждый из них и попытался понять, какие ценности стоят за их устройством. Go выбирает минимализм и корпоративную предсказуемость, Rust — безопасность и максимальную выразительность, Zig — радикальный контроль и отказ от ООП-мышления. Получился честный и местами провокационный разбор того, зачем нужны эти языки и кому из разработчиков они подходят.

Читать далее

Чистим main.go: предсказуемый старт и надежный Graceful Shutdown

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

Сталкивались ли вы с болью при управлении порядком запуска и остановки зависимостей в вашем Go-сервисе?

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

Примерный сценарий жизненного цикла сервиса выглядит так:

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

С graceful shutdown ситуация обратная: порядок должен быть строго зеркальным. Сначала нужно перестать принимать новые запросы, дождаться завершения текущих, остановить воркеры, и только потом разрывать соединения с инфраструктурой. Иначе мы получаем неприятные ошибки подключения и даже потерянные транзакции в момент деплоя.

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

Но если вы ищете способ автоматизировать эту рутину, сохранив код чистым - добро пожаловать под кат.

Читать далее

Как сериализовать всё состояние C++-программы и пережить обновление бинарника

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

Экспериментальная система сериализации графов объектов с самоописанием, миграциями и живой отладкой — без VM и без JSON

О чём статья:

долгоживущие(сохранение всего runtime-состояния) программы и движки

загрузка старых данных в новую(с обновлённой системой типов) версию бинарника

правка состояния на лету без перезапуска

без виртуальной машины

без замедления в 10–50 раз

Почему стандартные форматы не подходят:

они работают с деревьями, а не с графами

не умеют циклы и самоссылки

ломаются при изменении структуры типов

Что будет показано:

сериализация объектных графов с циклами

самоописание типов прямо в файле

миграция данных при удалении и перестановке полей

какие идеи оказались тупиком, а какие — нет

Читать далее

Лучшие практики по настройке конфигураций в Kubernetes

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

В статье — проверенные практики от сообщества Kubernetes: от выбора версии API и работы с YAML до управления подами и лейблами. Плюс несколько советов от команды Deckhouse по работе с ресурсами и автомасштабированием.

Читать далее

Новогодний IT-челлендж для разработчиков: сможете расшифровать сообщение?

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

Всем привет! С приближением Нового года мы запускаем IT-челлендж, чтобы размять мозги перед праздничным отдыхом.

Нужно расшифровать сообщение, написав собственное решение, и показать путь к результату. Тот, кто решит эту задачу первым и представит элегантное решение, получит главный приз: годовой Telegram Premium (или ~2500 звёзд)!

Читать далее

Как Европа развивает свою open source-экосистему — и какие новые возможности по кооперации появляются у стран БРИКС

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

В этом году Европа запустила межнациональный листинг репозиториев с открытым исходным кодом — EU OSS Catalogue. Рассказываю, почему она пришла к этой идее, как развивается реестр, и есть ли аналогичные инициативы в других регионах.

О том, нужно ли делать что-то подобное в БРИКС, я узнал у экспертов — мнения представлены во второй половине материала. Кстати, анализ развития open source-экосистемы в странах БРИКС я представил в общедоступной научной статье.

Читать далее

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

Станет ли FreeBSD 15.0 новым шагом в развитии свободной ОС

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

2 декабря 2025 года, спустя два года после выхода ветки 14.0, сообщество FreeBSD представило долгожданный релиз 15.0. Нам обещают ряд технических улучшений и серьезные изменения в подходе к разработке и сопровождению системы. Кажется, все желающие уже выпустили новости по этому случаю с перечислением основных апдейтов. Что ж, попробуем посмотреть внимательнее, что же нам предлагают.

Читать далее

Open source-стратегии: как работать с партнерами на базе открытых технологий — опыт Александра Нозика, директора SPC

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

Обсудили с @darksnake ход развития open source-хаба — его инициативы, реализующей новую модель сотрудничества на базе индустриального опенсорса. Получился объемный, но продуктивный разговор с полезными инсайтами по теме.

Читать далее

Rust 1.92.0: проверка типа never, unused_must_use, генерация таблицы раскрутки стека на Linux, Валидация #[macro_export]

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

Команда Rust рада сообщить о новой версии языка — 1.92.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.92.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать далее

Нагрузочное тестирование YMatrix

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

Привет, Хабр! На связи Марк — ведущий архитектор группы компаний «ГлоуБайт». Сегодня мы немного расширим результаты нагрузочного тестирования из предыдущей статьи «Нагрузочное тестирование GP6 vs GP7 vs Cloudberry» и поделимся результатами тестирования YMatrix. Сразу оговорюсь, что это дополнение к предыдущей статье, для того, чтобы сформировать понимание сравнимости результатов различных форков GreenPlum, поэтому акцентировать внимание будем только на YMatrix. Детали по методике тестирования и как были получены результаты для GP6, GP7 и Cloudberry 1.6, можно прочитать в предыдущей статье по ссылке выше. 

Читать далее

Дети, запомните: если дядя из туториала предлагает вам начать проект на Express.js… Рейтинг opensource для фронтенда

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

Всем привет! Меня зовут Алексей Золотых, я тимлид команды веб-редакторов в МойОфис. Недавно мы запустили новое шоу АйТир Лист. В каждом выпуске мы берём одну тему из мира разработки и раскладываем всё по тир-листу: от FAIL до GOD.

В пилотном выпуске мы с коллегой — Александром Коротаевым, фронтенд-гуру и энтузиастом креативного кодинга, прошлись по популярным опенсорс-инструментам для фронтенда: от тех, которые пора отпускать, до тех, что стали эталоном. Эта статья — расширенная версия выпуска. Под катом рассказываем, что у нас попало в FAIL, кто выжил на уровне MVP, кого мы поставили в SENIOR и кто, по нашему мнению, заслужил звание GOD.

Дисклеймер: мы с большим уважением относимся ко всем упомянутым проектам. Многие из них помогли индустрии вырасти. Но сегодня мы смотрим на них через призму вопроса: что бы мы посоветовали новичку или команде в 2025 году.

Читать далее

Мониторим OpenWRT c beszel

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

Всем привет.

В статье описана установка клиента beszel-agent_linux для роутера с openwrt на борту. Установка сервера beszel за рамками этой статьи, предполагается что он у вас уже установлен и работает.

Для тех кто не знал beszel - минималистичная система мониторинга, состоит из сервера и агентов. Архитектурно это выглядит как ssh сервер (агент) на кастомном порту, к которому по ключу ходит сервер и выполняет команды. Агенты (впрочем как и сервер) могут быть запущены в докере, интерфейс предлагает для этого готовые команды, обе две и докер и обычная инсталляция (по классике, как мы все "любим" sudo curl https://.. | bash).
Полностью документация доступна на официальном сайте, не будем ее дублировать.

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

Читать далее

JavaScript Distributed Assets

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

Идея вот в чем: берем стандартные JavaScript модули (ESM) и делаем их прямыми эндпоинтами для генерации любых текстовых веб-ассетов, таких как HTML-файлы, CSS, SVG или даже JSON или Markdown, используя простое соглашение о именовании исходных файлов и дефолтный экспорт результата в виде строки (JavaScript Template Literal). Проще некуда и чем-то похоже на PHP, верно? Но, что это нам дает?

Давайте разберемся, почему JSDA (JavaScript Distributed Assets) - это то, что может сделать веб-разработку "грейт эгейн", после тысячи поворотов "не туда".

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

Вклад авторов