Обновить
32K+
3
Alakov Ilia@i_alakey

Backend Engineer

16
Рейтинг
5
Подписчики
Отправить сообщение

I Taught a Virtual Camera to Behave Like a Human Operator: How a Face Tracking Algorithm for Shorts/Reels Works

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

In the previous article I described my “anime factory” in detail — a pipeline that automatically turns episodes into finished Shorts. But inside that system there is one especially important module that deserves a separate deep dive: a virtual camera for automatic reframing.

In this article, I will break down not just an “auto-crop function,” but a full virtual camera algorithm for vertical video. This is exactly the kind of task that looks simple at first glance: you have a horizontal video, you need to turn it into 9:16, keep a person in frame, and avoid making the result look like a jittery autofocus camera from the early 2010s.

But as soon as you try to build it not for a demo, but for a real pipeline, engineering problems immediately show up:

Read more

CUBA: Why It Saved My Hackathons and Killed My Production Projects

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

If you have ever done enterprise Java development, you have probably heard of CUBA Platform. And no — this is not about the Caribbean.

CUBA is a full-stack Java framework for rapid development of business applications: CRM, document management, ERP-like systems, internal tools, and everything commonly called “enterprise.”

I worked with it in several hackathons and in a couple of real projects. And I have mixed feelings about it — that is exactly why I am writing this.

Read more

How I Built an “Anime Factory”: a System That Automatically Turns Episodes into YouTube Shorts

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

Hi, Habr!

Over the past few months, I have been building a system that I internally call an “anime factory”: it takes a source episode as input and produces a ready-to-publish YouTube Short with dynamic reframing, subtitles, post-processing, and metadata.

What makes it interesting is not just the fact that editing can be automated, but that a significant part of this work can be decomposed into engineering stages: transcription, audio and scene analysis, strong-moment discovery, “virtual camera” control, and a feedback loop based on performance metrics.

In this article, I will show how this pipeline is structured, why I chose a modular architecture instead of an end-to-end black box, where the system broke, and which decisions eventually made it actually usable.

Read more

Как устроена транскрипция в Jitsi Meet: Jigasi, SIP и путь до EMR

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

Когда мы проектировали пайплайн автоматического заполнения EMR по итогам видеоконсультаций, исходная гипотеза была простой: Jitsi Meet — open source, документация есть, значит, подключить бота и получить транскрипт — задача на пару дней. На практике именно этот слой занял непропорционально много времени относительно своей "очевидности".

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

Читать далее

Как я выбираю моменты для Shorts: почему LLM + транскрипт почти всегда дают мусор

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

Это третья статья про мой "аниме завод" — систему, которая автоматически превращает длинные эпизоды в Shorts.

Если хотите полный контекст, вот предыдущие части:

Читать далее

Я научил виртуальную камеру быть оператором: как устроен алгоритм face tracking для Shorts/Reels

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

В предыдущей статье я подробно рассказывал про свой "аниме завод" — пайплайн, который автоматически превращает эпизоды в готовые Shorts. Но внутри этой системы есть один особенно важный узел, который заслуживает отдельного разбора: виртуальная камера для автоматического кадрирования.

В этой статье я разберу не просто "функцию автокропа", а полноценный алгоритм виртуальной камеры для вертикального видео. Это тот случай, когда задача на первый взгляд кажется простой: есть горизонтальный ролик, нужно сделать 9:16, удержать человека в кадре и не превратить результат в дёрганый автофокус из начала 2010-х.

Но как только начинаешь делать это не для демо, а для реального пайплайна, сразу всплывают инженерные проблемы:

Читать далее

RANK() vs DENSE_RANK(): ошибка, которая ломает топ-N в проде

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

При работе с данными в SQL рано или поздно возникает задача ранжирования: топ-5 продуктов по продажам, рейтинг сотрудников по KPI, распределение клиентов по категориям.

На первый взгляд RANK() и DENSE_RANK() делают почти одно и то же. На тестовых данных разница может быть вообще незаметна. Но в проде именно здесь часто начинаются ошибки: — топ-3 внезапно возвращает 5 строк; — дашборд "врёт"; — backend-логика начинает вести себя не так, как ожидалось; — запрос, который вчера работал быстро, сегодня уходит в disk spill.

Две самые популярные функции для ранжирования — RANK() и DENSE_RANK(). Ниже разберём, чем они отличаются, где именно ошибаются разработчики и аналитики, и что важно понимать: не только что делает оконная функция, но и сколько она стоит на больших объёмах данных.

Читать далее

Архитектура мультиканального Discord/Telegram voice-бота на Spring Boot: архитектура, грабли и production-решения

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

Как я собрал мультиканального voice-бота на Spring Boot, который объединяет Discord, Telegram и веб-панель в одной системе.

Разбираю архитектуру, работу с голосом (TTS, запись каналов), интеграцию JDA + LavaPlayer и реальные проблемы продакшена — от memory leaks до ограничений Telegram API.

Читать далее

CUBA: почему она спасала мои хакатоны и убивала мои продакшн-проекты

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

Если вы хоть раз занимались корпоративной разработкой на Java, вы наверняка слышали про CUBA Platform. И нет — это не про Карибы.

CUBA — это full-stack Java-фреймворк для быстрой разработки бизнес-приложений: CRM, документооборот, ERP-подобные системы, внутренние инструменты и всё то, что принято называть словом «enterprise».

Я работал с ним на нескольких хакатонах и в паре реальных проектов. И у меня к нему сложные чувства — поэтому и пишу.

Читать далее

Как я построил «аниме-завод»: систему, которая сама превращает эпизоды в YouTube Shorts

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

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

Последние месяцы я строил систему, которую внутри называю «аниме-заводом»: на вход она получает исходный эпизод, а на выходе собирает готовый YouTube Shorts с динамическим кадрированием, субтитрами, постобработкой и метаданными для публикации.

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

В статье я покажу, как устроен этот пайплайн, почему я пошел в модульную архитектуру вместо end-to-end black box, где система ломалась и какие решения в итоге сделали ее реально рабочей.

Читать далее

Информация

В рейтинге
552-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Старший
Git
SQL
Python
PostgreSQL
MySQL
Docker
Java
Spring Boot