Как стать автором
Обновить
67.89
Национальная Медиа Группа
Крупнейший в России частный медиахолдинг
Сначала показывать

Как донести видео до зрителя в нужном качестве и ничего не потерять по пути

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров890

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

Если бы каждый видеофайл прогонялся через специального обученного человека, то контент добирался бы до экрана сильно позже (а человек бы добирался до офтальмолога сильно раньше, чем планировал). Поэтому такие проверки отдают на откуп бездушной, но эффективной машине.

В этом посте мы расскажем вам об одном из таких инструментов под названием ORBOX. Что эта система умеет, какие параметры проверяет и зачем вообще это делать, чем отличается от конкурентов — под катом.

Читать далее
Всего голосов 8: ↑7 и ↓1+12
Комментарии1

Они хотят, чтобы мы забыли, как выглядят фильмы

Время на прочтение7 мин
Количество просмотров22K

Самая гротескная категория видео на YouTube — это старые киноплёнки, пропущенные через ИИ-апскейлер. Иногда видео придаётся цвет, иногда их интерполируют до 60 кадров в секунду. Если вы понимаете, как должно выглядеть видео, то все они кажутся одинаково ужасными, размазанными и кричащими. Но, похоже, этого не понимают в том числе и люди, отвечавшие за недавний апскейлинг фильма «Правдивая ложь» (и в меньшей мере «Чужих», «Титаника» и «Бездны»).

Таких фильмов уже миллион, и все они выглядят одинаково отвратительно.

Если вы никогда не смотрели фильм «Правдивая ложь», то вам, скорее всего, меньше тридцати. В нём Арнольд Шварценеггер играет роль агента правительственной контртеррористической организации, сражающегося со злодеями и хранящего этот опасный образ жизни втайне от своей непримечательной жены, которую играет Джейми Ли Кёртис. Это дурашливая крупнобюджетная комедия-экшн (ремейк французского фильма «Тотальная слежка») с фантастическими сценами, невероятным актёрским составом и несколькими прекрасными эпизодами. Сегодня он смотрится именно так, как должен смотреться незамысловатый экшн 1994 года. Вероятно, в карьере Джеймса Кэмерона это самый странный фильм, если не считать «Пиранья 2: Нерест».

Читать далее
Всего голосов 65: ↑54 и ↓11+66
Комментарии97

Единое хранилище данных и плюсы, которые оно несёт. Опыт НМГ

Время на прочтение5 мин
Количество просмотров2.7K

Привет! В одном из прошлых постов мы поговорили о том, как в целом верхнеуровнево устроен наш бизнес, как мы планируем нашу потребность в контенте, который будем показывать, и о множестве других вещей. Вкратце — как мы раскидываем перспективные сетки вещания на несколько лет вперёд, благодаря навыкам программных директоров.

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

В этом (спойлер — и не только в этом) нам сильно помогает единое хранилище данных, далее просто ЕХД.

Читать далее
Всего голосов 10: ↑8 и ↓2+9
Комментарии1

Я счастлив, что больше не веб-разработчик

Время на прочтение5 мин
Количество просмотров68K

Я написал своё первое одностраничное веб-приложение на Javascript в 2005 году, сразу после того, как узнал о XMLHttpRequest и до появления серьёзных фреймворков. Я оставил профессиональную веб-разработку примерно в 2009 году (а начал её в 1997 году с WebObjects), а последний десяток лет своей карьеры занимался мобильными.

Сегодня я смотрю на мир веб-разработки, и меня поражает его безумие. Существует так много фреймворков для веба, и каждый день появляются новые. Для создания веб-приложения (в отличие от веб-сайта, например, моего сайта про искусство, который сгенерирован статически и содержит лишь немного Javascript), часто требуются кучи инструментов и технологий, часто меняющихся с большой частотой и содержащих бесконечные объёмы других технологий, о существовании которых мы и не подозреваем (о, смотрите-ка, в папке пакета две тысячи файлов).

Javascript — ужасный язык, никогда не задумывавшийся для чего-то подобного, но, как ни странно, ставший популярным, потому что он всегда был под рукой. Потрясающе, какой объём инноваций затрачен на построение современной вселенной веб-разработки, несмотря на достаточно шаткий фундамент, на котором она основана.

Читать далее
Всего голосов 86: ↑71 и ↓15+75
Комментарии183

Ужасный огонь: почему даже в самых дорогих фильмах возникают проблемы со съёмкой простого пламени?

Время на прочтение6 мин
Количество просмотров6.8K

В фильме «Без обид» с Дженнифер Лоуренс есть сцена, где её одежда загорается. Она держится на капоте автомобиля, который на скорости въезжает на переполненный пляж и врезается в барбекю, после чего из него вылетают горящие угли. Однако пламя выглядит совершенно непохоже на то, что мы видим в жизни. Оно кажется пластмассовым и неоново-жёлтым, направленным прямо вверх. Даже в подобной халтурной комедии этот эффект выглядит раздражающе неубедительным.

И это не единственный пример. Сгенерированный компьютером огонь можно часто увидеть в фильмах, и повсюду он выглядит ужасно. Пожары в домах из прошлогодних «Банши Инишерина» и «Достать ножи: Стеклянная луковица» выглядят так, как будто их вручную нарисовали поверх кадров фильма. То же самое справедливо для сериала «Медведь» и нескольких пожаров в «Стране пожаров». В «Игре престолов» дыхание драконов было реализовано при помощи настоящих огнемётов на подъёмных кранах; в спинофе этого сериала «Дом Дракона» магические существа извергали цифровой огонь. Из всех очевидных спецэффектов в последних фильмах франшиз «Тор» и «Стражи Галактики» сильнее всего выделялось пламя — плоское, пересыщенное и подвергнутое motion smoothing.

Читать далее
Всего голосов 27: ↑26 и ↓1+34
Комментарии27

Перелом в судьбе змеи: как Python менял версию с 2 на 3

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

Мы можем только догадываться, что происходило в рождественские выходные 1989 года, когда Гвидо ван Россум приступил к своему хобби-проекту. Что можно сказать о Python, чего ещё не было сказано? Это один из самых популярных языков в мире, первый язык, на котором я учился программировать по-настоящему, и одно из самых громких имён в сфере машинного обучения. Судя по всему, он ни за что не должен был получить всю ту популярность, которой добился. Его на несколько лет опережал Perl: релиз 1.0 вышел в 1987 году и пустил глубокие корни в мире Unix, компьютерной графики и биоинформатики.

Python имел ужасный Global Interpreter Lock (GIL) и был очень медленным по сравнению даже с другими языками с динамической типизацией. К тому же он разделил своё сообщество из-за перехода от версии Python 2 к версии 3. Даже сегодня есть люди, отказывающиеся прикасаться к нему после этого перехода. Но несмотря на все свои недостатки, ему каким-то образом удаётся быть успешным.

Во время перехода с Python 2 на 3 я учился на последнем курсе магистратуры и изучал Python 2, поэтому помню, как оттягивал освоение Python 3. К тому моменту переход длился уже почти десяток лет, поэтому многие библиотеки уже были обновлены. Но окончательный срок Python 2 был ещё далеко. Мне повезло, что мой переход оказался относительно безболезненным, но для многих людей это было не так. Давайте разберёмся, с чего всё началось, но пока совершим небольшое отступление.

Читать далее
Всего голосов 14: ↑11 и ↓3+13
Комментарии4

Чек-лист: Как создать in-house бота

Время на прочтение7 мин
Количество просмотров2K

— Боги! Жена же предупреждала меня о том, что в 8:00 понедельника мне понадобится скан справки с места работы!

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

— Надо что-то делать! Попробую поискать знакомых, отдам что угодно, чтобы вытащить в офис в выходной того, кто может сделать такую справку!

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

— А тебе кадровик в офисе зачем? Справка с места работы просто нужна? Ну так напиши в бот, делов на пару минут.

Дано:

• Холдинг Национальная Медиа Группа — крупнейший в России частный медиахолдинг, управляющий диверсифицированным портфелем активов в области производства, дистрибуции и монетизации высококачественного медийного контента во всех средах потребления. Если очень коротко — много разной специфики. 

• Целевая аудитория пользователей = Сотрудники — разные уровни должности, сферы деятельности, месторасположения и формат работы (удаленная, гибрид, в офисе). Количество – ~ 4000 чел.

• Единое окно — сервис, вбирающий в себя все услуги, которыми могут пользоваться сотрудники холдинга (кадровые, административно-хозяйственные, юридические, ИТ и пр.),

результат предоставляется исполнителем (человеком),

регламентирован SLA по выполнению каждой услуги, 

В среднем SLA одной услуги составляет 24 рабочих часа (понимаем, что SLA и реальное выполнение могут разниться, как в худшую, так и в лучшую сторону – здесь мы зависим от загрузки исполнителя на том конце провода). 

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

Ответ: нужно создать сервис самообслуживания 24/7.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Как на самом деле Linux выполняет запись на диск?

Время на прочтение6 мин
Количество просмотров27K

Друзья мои, программисты и операторы, я бы хотел поговорить о том, как в Linux работает запись файлов.

Раньше я думал, что она устроена определённым образом, и как Джон Леннон, «I’m not the only one». Оказалось, операции записи работают совершенно иначе. То, как они работают, интересно и важно знать.

Позвольте начать с того, как я раньше думал о записи файлов.

Читать далее
Всего голосов 62: ↑43 и ↓19+44
Комментарии113

Готовим детей к школе с Кубокотом

Время на прочтение7 мин
Количество просмотров2.9K

Привет! Мы сделали приложение «Кубокот» для детей дошкольного возраста. Главная идея — подготовка ребенка к школе, поэтому образовательный контент у нас разделен на категории в зависимости от возраста. 

Кубокот — это персонаж-проводник, который всегда сопровождает ребенка на всех игровых экранах и голосом дает задания. Кот реагирует на правильные или неправильные действия: хвалит ребенка, если он совершает правильные действия, и корректирует, направляет его, говоря: «Попробуй по-другому, попробуй еще», если ребенок ошибся. Ещё он реагирует, когда ребенок возвращается в приложение в тот же день — говорит: «Как здорово что ты снова здесь!». Вишенкой для ребенка — на главном экране приложения кота можно гладить! 

В приложении работает автозапуск игр в зависимости от прогрессии. То есть мы запустили, допустим, букву «А», и пока ребенок не пройдет все игры на эту букву, его не вернет куда-то обратно в меню. Также между играми есть небольшая развлекательная составляющая — летят шарики, которые можно лопать. Если их лопать, то их будет лететь больше. За каждые десять лопнутых шариков Кубокот будет хвалить ребенка. 

Под катом о том, что ещё умеет приложение.

Читать далее
Всего голосов 11: ↑9 и ↓2+11
Комментарии3

Чем плохо ООП (иногда)

Время на прочтение6 мин
Количество просмотров14K

ООП используется уже давно, оно применяется в большинстве программ. Но всегда ли ООП является правильным путём? Далеко нет.

Что такое ООП?

ООП — это парадигма, при которой код разделён на множество классов, что приводит к настраиваемому доступу и разъединению компонентов. Основные преимущества использования ООП заключаются в следующем:

1. Сокрытие подробностей реализации

Благодаря использованию слоёв абстракций мы можем обеспечить приватность работы внутреннего устройства ПО. Абстрагирование помогает с безопасностью и удобством использования, так как другие разработчики не знают (и не должны знать) внутреннюю реализацию вашего ПО.

2. Разъединённые компоненты

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

Читать далее
Всего голосов 36: ↑20 и ↓16+14
Комментарии23

Эволюция процессов CI/CD в more.tv

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

Про CI/CD написано много разных статей и в них рассказывают о том, как это помогает увеличить TTM (time to market), позволяет автоматизировать рутинные вещи (например автотесты и различные проверки) и как деплоить в продакшен без отказа в обслуживании.

Мы в more.tv — не исключение и тоже стремимся к улучшению этих показателей при организации CI/CD.

Я Дмитрий Зайцев — руководитель отдела DevOps, и в этой статье расскажу вам, по какому пути прошли мы, какие особенности есть в нашей работе, какие задачи решали на каждом этапе и к чему в итоге пришли.   

Сразу отмечу — мы используем Gitlab, поэтому все процессы будут описаны именно в контексте использования Gitlab CI/CD.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии10

Как мы делаем RL в more.tv

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

Всем привет! Меня зовут Анатолий, я лидирую команду машинного обучения в онлайн-кинотеатре more.tv. В своей работе мы активно прототипируем и внедряем сервисы на основе обучения с подкреплением. Этот раздел машинного обучения всё ещё продолжает стоять особняком в индустрии, однако ситуация начинает постепенно меняться. Два года назад я впервые разработал контекстуальных бандитов для решения задачи ранжирования. По сравнению с мейнстримными listwise, pairwise и pointwise подходами, результат лично меня удивил. Конечно, как и всё, что делается в первый раз, было сделано с не очень большим пониманием дела. 

Однако, уже было понимание того, что RL - парадигмально иной раздел машинного обучения, требующий, в каком-то смысле, перестроения способа мышления. Полученный результат заставил меня более детально разбираться с теоретическими основами обучения с подкреплением и различными постановками задач.

Я более чем уверен, что мой пример не является аномалией или каким-то выдающимся случаем. Умея разрабатывать RL, каждый сможет существенно улучшить качество имеющихся ML/DL моделей, которые уже хорошо зарекомендовали себя в проде, или разработать собственное перспективное sota-решение для нового сервиса. Мне всегда было интересно разобраться в том, какие новаторские способы применяются в ML за пределами мейнстримных библиотек и сервисов. К примеру, в первую очередь я ознакомился не с функциональностью chatGPT, а с её разработкой по исходной статье.

Возможно, я “подсмотрю” интересное решение, которое смогу применить в своём рабочем проекте? А если и не получится, то получу опыт и расширю кругозор. И как же было забавно наблюдать, что RL подходы, описанные в оригинале статьи о разработке chatGPT, я уже применил на практике вместе со своей командой в наших бизнес-задачах.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Рисуем верёвку в формате SVG при помощи JavaScript

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

Сегодня я расскажу о процессе, который я придумал для преобразования SVG‑контура в векторный рисунок верёвки.

Вы узнаете, как превратить показанный слева контур в верёвку справа:

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

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

Замысел

Взглянув на это фото верёвки, вы заметите, что она состоит из множества переплетённых друг с другом прядей. Визуально они делят верёвку на сегменты. 2D‑проекция каждого сегмента напоминает изогнутый многоугольник.

Наша задача будет заключаться в создании этих многоугольников при помощи JavaScript.

Читать далее
Всего голосов 50: ↑49 и ↓1+61
Комментарии2

Look-a-like. Как это работает на стороне площадки и чем полезно бизнесу

Время на прочтение8 мин
Количество просмотров4.6K

Фразе Гиппократа «Ты — то, что ты ешь» уже более тысячи лет. И в 21 веке очевидно, что она относится не только к еде, но и к потребляемому контенту. Это давно доказано различными исследованиями и активно используется бизнесом: анализ историй посещённых веб-сайтов позволяет извлечь как базовые знания о человеке (пол, возраст, уровень зарплаты и т.д.), так и более специфичные вещи, например, интересы человека или факт наличия определённой вещи, будь то кроссовки фирмы Nike или дорогого автомобиля. 

В этой статье мы расскажем, как корпорации используют ваши истории браузеров для объединения людей по интересам, причём здесь таргетированная реклама и как эту задачу решают разработчики компании Amberdata. Если более конкретно — поговорим с вами о задаче Look-A-Like.

Читать далее
Всего голосов 11: ↑9 и ↓2+10
Комментарии0

Учёба — это запоминание

Время на прочтение4 мин
Количество просмотров6.7K

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

Начинаем читать страницу Википедии о квантовой механике

Столкнувшись с непонятной нам концепцией, (назовём её Концепцией 1):Переходим на страницу Википедии о Концепции 1Читаем о Концепции 1, пока мы не поймём её. Затем возвращаемся к статье о квантовой механике и продолжаем с того места, на котором закончили

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

Как думаете, позволит ли нам эта стратегия выучить квантовую механику?

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

Вся информация есть в Википедии, так почему же такое изучение не работает?

Читать далее
Всего голосов 22: ↑15 и ↓7+13
Комментарии13

Автоматизируем рутину при создании рекламных digital-размещений

Время на прочтение3 мин
Количество просмотров852

Привет! В сейлз-хаусе ЭВЕРЕСТ мы создали личный кабинет, который автоматизирует все процессы от расчётов до получения отчётов по рекламным кампаниям.

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+10
Комментарии1

Сага о SEO, часть 3: UX

Время на прочтение12 мин
Количество просмотров2.1K

Ранее мы писали о том, каким образом мы оптимизировали сайт more.tv для поисковых систем технологически и семантически. В очередной статье из серии мы обсудим, как влияет пользовательский опыт (UX) и, в первую очередь, быстродействие веб-приложения на эффективность его поискового продвижения.

Читать далее
Всего голосов 7: ↑5 и ↓2+6
Комментарии6

Стройте карьеру на выполнении грязной работы

Время на прочтение6 мин
Количество просмотров24K

Теория грязной работы: в унылой работе, которую избегает большинство людей, есть множество возможностей для внесения больших изменений малыми усилиями.

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

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

- Нахождение в месте, где от вас требуется выполнение работы, необходимо — чем больше компания нуждается в вас, тем больше людей будет пытаться вам помогать.

Последняя часть самая неожиданная — ищите неприятные вещи, которых люди избегают.

Читать далее
Всего голосов 38: ↑30 и ↓8+32
Комментарии33

Братство кольца в командировке: как мы обновляли систему для организации деловых поездок в НМГ

Время на прочтение6 мин
Количество просмотров1.8K

Организация деловых поездок (командировок) – сложный процесс, требующий наличия в команде сотрудников со специальными навыками. Как во всем многообразии агрегаторов билетов найти самый оптимальный вариант перелета, доступный с оплатой по безналу? Где наиболее полный перечень гостиниц? В чем разница между тарифами V и K? Сколько держится бронь? Как заселить в одну гостиницу либо разом всех участников командировки, либо никого? Какой лучший сервис такси в городе N?

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии2

Сага о SEO, часть 2: разметка

Время на прочтение8 мин
Количество просмотров4.7K

В предыдущей части статьи мы разбирались, как обеспечить поисковым роботам доступ к HTML-коду страницы. С вами снова Александр Усков, я ведущий разработчик more.tv, и в этом посте мы поговорим о том, что именно представляет из себя этот код и что можно сделать, чтобы сделать его максимально «понятным» и содержательным и для поисковых систем, и для браузеров.

Читать далее
Всего голосов 11: ↑7 и ↓4+6
Комментарии3
1

Информация

Сайт
nmg.ru
Дата регистрации
Дата основания
2008
Численность
1 001–5 000 человек
Местоположение
Россия