Обновить

Микросервис потоковой конвертации видео (Python, FFmpeg)

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

Недавно перед нами встала задача быстро реализовать микросервис для конвертации видео. Стандартным решением для таких целей является FFmpeg, который умеет читать файлы чанками (запросы HTTP Range) с URL и выводить результат в stdout. Поэтому я решил попробовать подход с потоковой конвертацией.

Важно уточнить, что под «потоковой обработкой» здесь подразумевается передача данных в виде последовательности чанков (Chunked Streaming), а не классический Continuous Streaming, как в случае с live-видео.

Читать далее

Как мы автоматизировали обновление, развёртывание и настройку Postgres-like СУБД для пользователей

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

Привет, Хабр! Меня зовут Роман Аминов, я руковожу группой автоматизации бизнес-сценариев в команде СУБД Pangolin в СберТехе. Это специальная доработанная сборка PostgreSQL, целевая СУБД в Сбере и не только. СУБД — сложный продукт, обновление, настройка и другие рутинные действия, связанные с её сопровождением, сопряжены с риском потери данных. Чтобы облегчить жизнь пользователям (и вдобавок разгрузить нашу техподдержку) мы разработали инструмент для автоматизации кластеров СУБД, их настройки и конфигурирования, обновления версий компонентов в их составе и обслуживание. Решение уже прошло проверку на тысячах кластеров в Сбере и я готов поделиться тем, как всё это работает.

Уточню, что мы используем систему управления конфигурациями Ansible. Всё, что нужно для её работы — это возможность устанавливать SSH-соединения и Python на удалённых серверах.

Надеюсь, статья будет полезна или натолкнёт на свои мысли автоматизаторов и администраторов СУБД и вообще всех, кто связан с базами данных. 

Читать далее

PID (ПИД) без математики: как просто понять P, I и D

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

PID-регулятор — частая проблема для начинающих в робототехнике: математика отпугивает. Но саму идею понять можно без формул. В этой статье я объясню P, I и D простыми словами и с визуализацией

Читать далее

Помощник читателя: визуализируем сюжет

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

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

- граф связей между героями
- хронологию событий
- карту мест действия

Читать далее

Angie — обратный прокси для безопасной локальной инфраструктуры и не только

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

Angie — современный веб-сервер, созданный бывшими разработчиками nginx с открытым исходным кодом (лицензия BSD).

Он сочетает проверенную архитектуру nginx с новыми возможностями:

Читать далее

Принципы DOD в C++: Часть 1. Оптимизация структур

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

Приветствую всех, кто хочет делать свой код быстрым и оптимальным. В этой статье мы расссмотрим один из способов, как можно просто и легко оптимизировать программу на C++ при работе со структурами/классами, почти не меняя код.

Читать далее

«Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки

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

Что будет, если столкнуть классический переборный алгоритм упаковки и «математику потока» на базе Numpy? Мы взяли реальный кейс на 398 предметов и проверили: можно ли за доли секунды найти решение, которое окажется дешевле и безопаснее ручного планирования.

Внутри — разбор «Бизнес-Ассемблера», борьба с весовыми лимитами и ответ на вопрос: почему при КПД 61% по объему контейнер может считаться идеально упакованным.

Читать далее

«База» по метрикам в Prometheus

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

Привет, Хабр! Меня зовут Глеб Типсин, я являюсь ведущим разработчиком продукта «Системы персонализации и геймификации» в SM Lab.

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

Материал подойдёт тем, кто только знакомится с мониторингом и хочет освоить «базу», а также тем, кто уже работает с Prometheus, но хочет "освежить" свои знания и узнать что-то новое.

Читать далее

Кубернетес для норм пацанов

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

Для сетевиков от сетевика

Там внизу, под катом, повествование о том, как сетевик кубернетес с Calico настраивал

Читать далее

Reverse Duck Test: как мы отсеиваем ложные срабатывания, не теряя бдительности

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

Всем привет! Сегодня расскажу вам о способе определения ложноположительных алертов, который был выработан совместно с коллегой по цеху и другом Николаем (@1Last) за время работы в SOC. К сожалению PhD в этом году перенесли, поэтому было принято решение поделится данным способом тут.

Кому он будет полезен и для какой, собственно, цели:

1. Для руководителей SOC и руководителей дежурной L1 - L2 — как способ оптимизировать ресурсы SOC (потому что мы изначально идём по более вероятному пути): структурировано и обоснованно отсеивать значительный объем шума — по нашему опыту, до 60-80% алертов на этапе роста SOC или в плохо настроенных средах.

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

3. Для аналитиков — использовать в повседневной деятельности подход, положительно зарекомендовавший себя на практике, и снизить ментальную нагрузку на принятие решения о вердикте алерта.

Читать далее

Project Valhalla: революция в памяти Java

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

Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это нам не приходилось платить «налогом на объект»: каждый раз, когда вы создаёте простой класс из двух полей int, JVM бережно дописывает к нему тяжёлый заголовок, упаковывает в ссылку и разбрасывает по куче, заставляя процессор страдать от постоянных промахов кеша.

Мы привыкли к этому компромиссу. Мы научились использовать примитивные коллекции и костыли, чтобы выжать производительность там, где объектная модель Java начинает буксовать. Project Valhalla призван изменить сами правила игры.

Читать далее

Как я перестал слушать «Unknown Artist — Track 01» и написал свой распознаватель музыки

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

12 000 MP3 без тегов, 15 лет прокрастинации, один выходной на код. Асинхронный распознаватель на Python + Shazam: как обойти rate limiting, починить кривые кодировки и не съесть всю память. Код открыт.

Читать далее

MIPI RFFE на GPIO ARM контроллера. Эмуляция проприетарного интерфейса на GPIO ARM-микроконтроллера

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

Всем привет, это моя первая статья, в рамках которой захотелось поделиться необычным для меня опытом. Возможно, кто-то найдёт здесь для себя что-то полезное. По работе пришлось столкнуться с крайне необычной микросхемой для коммутации высокочастотных (RF) сигналов.  Одна проблема – проприетарный интерфейс управления MIPI RFFE. Появился вопрос “А как этим управлять, не имея специализированных средств?”. Ответ узнаем вместе.

Читать далее

Треугольный пиксель: почему никто не собирает мозаики из пирамидок? (а зря)

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

Видели мозаики из кубиков Рубика? В сети достаточно контента с кубическими картинами, портретами из десятков, сотен, и даже тысяч кубиков. Но никто не собирает мозаики из пирамидок. Пирамидка (она же – пираминкс) – это перестановочный пазл, похожий на кубик Рубика. Ее цветные элементы – те же пиксели, только треугольные, и цветов не шесть, а четыре. Казалось бы, бери и складывай. Однако мозаик из пирамидок я не встречал.

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

Крутим пирамиду…

Вайбкодинг по Chess’ноку. 1. e4

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

От вайбкодинга к профессиональной ИИ‑разработке на примере LanChess: 3300 промптов, 832 коммита, 100 тыс. строк кода и путь от POC к продакшен‑сервису.

Поздний вечер, я смотрю в терминал. Celery worker на восьмиядерном сервере перемалывает 67 партий блица на Lichess одного из пользователей. Через минуту этот человек получит персонализированную аналитику и упражнения от сервиса, аналогов которого в России найти пока не удалось. Я же сижу и думаю, стоит ли выводить этот сервис из закрытого режима по инвайтам.

Менее чем за 3 месяца я написал 100 тыс. строк кода и ни одной — своими руками. Мне пришлось стать оператором персональных данных. РКН порекомендовал мне убрать авторизацию от Google. А ВК не давал мне подключить свою авторизацию, пока я не стал самозанятым.

Зато теперь у меня есть свой сервис, на примере которого без всяких NDA я могу открыто рассказывать о том, чем отличается вайбкодинг от профессиональной ИИ‑разработки. Могу смело поделиться статистикой продуктивности. Могу, не таясь, рассказать о сложностях, ошибках и успехах, с которыми сталкиваются инженеры, использующие самые современные инструменты искусственного интеллекта для разработки программного обеспечения. С помощью ИИ я работал над разными проектами за последние годы. Но только о своём я могу рассказать всё.

Читать далее

Работа VS Отношения: почему вы на собеседовании флиртуете, а на свидании — продаете себя

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

Когда в последний раз вы ходили на свидание и ловили себя на мысли: «Блин, надо рассказать про мои хорошие качества как будущего(й) мужа/жены»?
Или собирались на встречу с клиентом и ловили себя на другой: «Нужно одеть что-то поярче»?

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

Не верите? Давайте сделаем сравнительную таблицу. Покажем, что собеседование и свидание — это два вида одного и того же ритуала: выбора «подходящего», презентация себя и тест на совместимость.

Читать далее

Строим VPN, устойчивый к SpyWare

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

В предыдущей статье мы обсуждали некоторые меры, которые пользователь может предпринять против spyware, детектирующего факт использования VPN и сливающего полученные данные “Большому брату”.

Если судить по комментариям (и автор в целом согласен с их логикой), то в условиях тотального стукачества иных выходов, кроме как иметь два смартфона (а, возможно, и два десктопа!), действительно почти не остаётся. На первый взгляд это и правда так.

Однако если немного подумать, то окажется, что техническое решение всё-таки есть. Да, оно относительно дорогое (минимальные расходы около 1000-1500 рублей в месяц), но оно существует!

Если интересна архитектура VPN-сервиса, устойчивая к наличию spyware на клиенте, то

добро пожаловать под кат

Узнаём какое аниме будет самым рейтинговым еще до выхода

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

Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)

Читать далее

Вайб-кодинг: конструктор для профи или магия для «чайников»? Разбираемся на реальном кейсе

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

«Вайб‑кодинг». Ещё несколько месяцев назад это словосочетание вызывало улыбку, а сегодня оно собирает тысячи запросов в поисковиках и миллионы просмотров.

Но что это на самом деле? Очередная нашумевшая методика, которая учит писать код «не вручную», или реальный инструмент для быстрого создания продуктов? Особенно это интересно тем, кто далёк от программирования, но хочет попробовать себя в роли создателя.

Читать далее

Как мы овощехранилище автоматизировали, разработали свою SCADA и железо. Часть 1: Вводная

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

В 2022 году к нашей дружной команде (я и Дмитрий @DIIV) обратился знакомый и предложил разработать систему для автоматического управления климатом овощехранилищ. Это был очень сложный период, компании уходили с Российского рынка, начались проблемы с покупкой и обслуживанием иностранных систем.

До этого у нас был опыт разработки подобных систем и устройств, который пришёлся как раз на начало пандемии COVID, что привело к проблемам с покупкой электронных компонентов.

Исходя из этого, нами было принято решение разработать собственную SCADA систему и все необходимые устройства для интеграции датчиков и управления оборудованием, чтобы иметь практически полную независимость. Учитывая опыт COVID, при проектировании устройств было решено использовать широко распространённые электронные компоненты, которые легко можно заменить на аналоги, сделать систему простой, недорогой и надёжной.

Читать далее