Обновить
499.77

Open source *

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

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

Защита контейнеров изнутри: как работает первый российский open-source-инструмент для мониторинга рантайма

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

Представьте, что вы наконец-то выстроили надежный периметр вокруг своих контейнеров, сканируете образы и настраиваете политики в соответствии с общепринятыми стандартами безопасности. И кажется, всё под контролем. Но что, если атака началась в уже запущенном контейнере? Как обнаружить, что прямо сейчас легитимный микросервис крадет ваши данные или майнит криптовалюту?

В данном случае на классические средства защиты рассчитывать не приходится: они охраняют контейнеры снаружи и не видят, что происходит внутри. А большинство инструментов для выявления угроз в среде выполнения — сложные и дорогие. Тем не менее выход есть: недавно специалисты из команды PT Container Security представили рынку первое в России открытое решение для защиты рантайма контейнерных сред — Runtime Radar. Подробнее о нем в нашей статье рассказывают руководитель разработки Никита Ладошкин и эксперт Виталий Шишкин (@JCD3nt0n).

Читать далее

Новости

Настоящие и будущее поиска в Ecommerce

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

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

Читать далее

Один чат, чтобы править всеми: собрали библиотеку для ИИ-ассистентов на базе Gravity UI

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

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

Разные команды собирали интерфейсы на общем фреймворке Gravity UI, но постепенно там появилось столько вариаций, что стало сложно поддерживать единый пользовательский опыт. Да и коллеги всё чаще сталкивались с тем, что тратят время на одни и те же решения. 

Чтобы перестать каждый раз изобретать велосипед, мы собрали накопленные практики в единый подход и сделали инструмент для чат‑ботов с ИИ — @gravity‑ui/aikit. Он позволяет создать полноценный интерфейс ассистента за несколько дней и при этом легко адаптировать его под разные сценарии.

Меня зовут Илья Ломтев, я старший разработчик в команде Foundation Services Yandex Cloud, и в статье я расскажу, почему мы решили собрать AIKit, как он устроен, немного о планах на будущее — и о том, что можно попробовать у себя.

Читать далее

Используем Coolify для хостинга проектов на своём VPS. Часть 1: готовим сервер, домен, DNS и файрвол

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

Coolify это инструмент с открытым исходным кодом, который позволяет удобно хостить бэкенд- и фронтенд- веб-приложения, базы данных и многие популярные open-source сервисы, вроде n8n.

И хотя начать пользоваться Coolify не так уж сложно, но как и везде, тут есть свои особенности. Поэтому мы и решили написать инструкцию. Однако в процессе стало понятно, что просто рассказать про работу с Coolify недостаточно. Потому что нужно показать и подготовительную работу — как правильно выбрать VPS, как купить домен, как настроить DNS и файрвол (firewall).

Поэтому мы решили первую часть нашей инструкции посвятить исключительно вопросам подготовки. Расскажем максимально подробно, чтобы разобраться мог даже человек, который впервые слышит про сервера и домены. А уже во второй части, которая выйдет чуть позже, мы непосредственно займемся самим Coolify — его установкой, настройкой и использованием.

Читать далее

В Kubernetes теперь можно совмещать hostNetwork: true и hostUsers: false и планировать поды группами. Обзор фич K8s 1.35

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

Сегодня официально выпустили новую версию Kubernetes — 1.35. Собрали обзор со всеми изменениями. Среди главных нововведений — возможность запускать поды с hostNetwork: true и hostUsers: false, групповое планирование подов и перевод контроллера маршрутов на watch-модель.

Читать далее

Прошиваем ESP32 из HomeAssistant и трекаем девайсы по BLE

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

Всем привет, сегодня будем скрашивать никак не наступающую зиму всякими забавными штуками типа заливания прошивки в esp32, и установки тотальной слежки за всеми внутри квартиры. Основа всех этих изысканий вот эта статья. Вся магия будет происходить исключительно тыканием в кнопки UI и написанием yaml. Основная идея - прошить несколько esp32 прошивкой которая будет будет стучать про слышимые BLE девайсы через wifi в HomeAssistant и раскидать их по квартире.

Нам понадобится

Читать далее

Большой разворот: как изменился стек технологий в российском IT после 2022 года

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

Если оглянуться на последние три года в российской IT-индустрии, становится ясно: мы пережили полноценную трансформацию. Процесс, который в обычных условиях занял бы лет пять-семь, сжался в 2-3 раза. Для многих это был болезненный, но продуктивный стресс-тест для всей экосистемы.

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

Итак, начнём!

Читать далее

Все не так с Codable

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

Привет, Хабр! На связи Кристиан Бенуа, iOS-разработчиĸ в Т-Банĸе. Быстродействие мобильных приложений — один из критериев, влияющих на успех не только приложения, но и всего бизнеса.

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

Расскажу, как мы сделали pull request в swift-foundation и внесли несколько оптимизаций в JSONDecoder/JSONEncoder, ускорив сериализацию и десериализацию в два раза. В конце обсудим, как получить эту оптимизацию без ограничений по версии iOS и насколько можно ускорить работу с JSON в приложении.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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 мин
Охват и читатели10K

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

О чём статья:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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