Блог Рагимова Романа

 

Aspen Player на других платформах и рекомендательный сервис

Товарищ G3DinUA задал в комментарии к предыдущему посту несколько вопросов, на которые хотелось бы ответить отдельно, ну и добавить несколько мыслей о дальнейшем развитии проекта.

Будет ли приложение для iOS/WP7/Blackberry10?

TL;DR

iOS - нет Blackberry - скорее да, чем нет WP7 - возможно

Подробно

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

WP7. Спорить не стану платформа интересная, да и с C# я имел дело, но поддерживать три системы на разных языках, да еще и выкатывать новые фичи... Не думаю, что версия для WP7 появится раньше, чем стабилизируется Android версия.

Blackberry? Я вижу на сайте разработчиков что-то про SDK для AIR, следовательно портировать не проблема. Но реального устройства на этой платформе у меня нет, соответственно, тестировать смогу только на эмуляторе и нужен будет кто-то для тестирования перед выгрузкой в их AppStore. В ближайшее время гляну на возможности платформы.

Рекомендации в десктоп версии

TL;DR

Скорее нет, чем да.

Подробнее

Думаю, идея с рекомендациями приходила в голову всем, что раньше пользовался Kinobaza.tv. Но, тут возникает несколько проблем, которые практически невозможно решить на текущем уровне развития проекта.

Проблема #1: Количество пользователей

Большая часть рекомендательных систем (да практически все) работает на принципе поиска пользователей поставивших оценки аналогичные вашей и вычисления примерной оценки на базе этих данных. Соответственно - чем больше пользователей, Тем больше оценок, тем лучше рекомендации. На данный момент у desktop версии примерно 50 пользователей. Сами понимаете, что качество рекомендаций при такой выборке будет хуже некуда.

Проблема #2: Количество пользователей

При увеличении количества пользователей возникнет другая проблема - для построения рекомендаций в live режиме требуются большие вычислительные мощности. Вычисление предполагаемой оценки при базе в 1000 пользователей на моем desktop заняло около 2 секунд. И это по одному фильму для одного пользователя. А теперь представьте даже 50 пользователей, желающих получить рекомендации по 10 фильмам... Мощности текущего хостинга для таких задач явно не хватит.

Проблема #3: Системы рекомендаций

На самом деле, сами движки рекомендаций - достаточно редкие звери. В большинстве случаев их пишут для себя и во внешний мир открывают только платный API, при этом аккуратно складируя все данные у себя (см. П1 о ценности пользователей).

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

Для написания собственной системы у меня не хватит математического аппарата. У меня далеко не математическое образование, чтобы лезть настолько глубоко в статистику. То, что я теоретически могу написать, с точки зрения производительности и качества, будет даже хуже open-source разработок вроде EasyRec.

Собственно, размышления

Подводя итог, хотелось бы еще раз напомнить, что я работаю один и проект всегда рассматривался мною в качестве хобби. Android версия появилась постольку, поскольку у меня есть устройства на базе этой ОС и я люблю посмотреть свежую серию сериала на сон грядущий. Desktop версия дорабатывается потому что мне не удобно держать открытым браузер, занимающий пол экрана, когда я работаю. Именно из-за того, что это хобби и нужно лично мне, я не забрасываю разработку глядя на графики использования desktop версии.

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

Aspen Player Mobile

Внезапно написал мобильную версию Aspen Player.

Скриншоты Aspen Player Mobile

По функционалу она, конечно, далека от настольного приложения, но это только начало. В планах добавить синхронизацию с desktop-версией и реализация своего рода пульта дистанционного управления.

В данный момент ее можно и Google Play - Aspen Player Mobile на Google Play. Приложениe доступно для всех жителей ex-USSR. Сделано это по причине непонятной ситуации с легальностью поиска по VK. Для прочих желающих есть прямая ссылка на APK Aspen Player Mobile с Bitbucket.

Буду рад предложениям.

Aspen Player 2.0 и AspenDB 0.1

AspenDB

Как я уже писал, Kinobaza перестала удовлетворять меня в качестве источника информации о фильмах. После долгих и мучительных поисков альтернативы, стало понятно, что в российском сегменте удовлетворяющих моим требованиям ресурсов (с достаточно большой базой, постоянно обновляющихся и имеющих открытый API) в принципе нет, а у иностранцев практически полностью отсутствуют данные о наших местных новинках. Это печально…

Так как хотелось сделать все по уму, я решил запустить собственную небольшую базу фильмов и сериалов, специально для работы с Aspen Player. На данный момент в базе около 70.000 наименований фильмов и более 150.000 эпизодов сериалов. Обновления сериалов происходят раз в два-три дня, фильмов — еженедельно. В процессе добавление описаний серий в самые популярные сериалы (сейчас эти данные доступны, например, для сериала «Игра престолов»).

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

AspenPlayer

Результат месячной работы по переводу интерфейса в векторный формат и допиливанию нужных мне функций.

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

Похожие фильмы и сиквелы Окно похожих фильмов

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

Интерфейс скачивания файлов Окно выбора источника для загрузки

Если вы помните, в оригинальном VOMP загрузка происходила после выбора пункта «Загрузить» в контекстном меню источника. В этом же контекстном меню находился пункт «Ссылка», открывавший окно со ссылками на источник для загрузки с помощью третьей программы. Немного поразмыслив над решаемыми этим меню задачами, я пришел к выводу, что данный способ далеко не интуитивен и, возможно, многие пользователи вообще не знали о подобной функции программы.

Результатом размышлений об оптимизации и популяризации данной функции стало добавление двух кнопок для каждого элемента в списке источников — «Смотреть» и «Скачать». При выборе «Скачать» открывается окно, которое вы видите на скриншоте выше, позволяющее как скопировать ссылку в буфер обмена, так и начать загрузку фильма встроенными средствами Aspen Player.

Кроме этого, теперь появилась возможность выбора качества скачиваемого ролика — максимально доступное или установленное пользователем, как предпочтительное (Настройки > Качество).

Строка состояния Строка состояния Aspen Player

Нововведение, которое должно раскрыть свой потенциал в будущем. На данный момент в ней отображаются:

Обратная связь прямо из приложения Обратная связь из приложения

Переоценить возможность сообщить об ошибке в приложении без открытия тикета в BitBucket из приложения сложно.

На сегодня все. Надеюсь, приложение вам понравится.

Борьба с обновлением изображений во Flex Item Renderer

Очень надоедали постоянно обновляющиеся обложки альбомов в Spark List. Как выяснилось, лечится этот недуг очень просто, с помощью ContentCache (только для Flex 4.5 и старше).

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx" autoDrawBackground="false">
    <fx:Script>
        <![CDATA[
            import spark.core.ContentCache;

            [Bindable]
            public static var imageCache:ContentCache = new ContentCache();

        ]]>
    </fx:Script>
    <s:BorderContainer 
        left="0" right="0" top="0" bottom="0"
        backgroundAlpha="0" borderVisible="false">
        <s:Image 
            source="{data.image}" contentLoader="{imageCache}" />
    </s:BorderContainer>
</s:ItemRenderer>

Aspen Player и Kinobaza.tv

Я думаю, пришло время подумать об отказе от Kinobaza.tv в качестве источника информации о фильмах, т.к. со своей ролью она совершенно не справляется. Вот, что на данный момент отображается в списке эпизодов Теории Большого взрыва:

Отсутствие информации о сериале на Kinobaza.tv

А между тем, на TVRage, для уже вышедших(!) серий, доступны не только названия, но даже screencaps.

Проблема же заключается в полном отсутствии у Kinobaza конкурентов. Kinopoisk не подходит по причине отсутствия API, IMDB по той же причине + проблемы с русским языком. Да, для сериалов можно использовать API MyShows.ru, благо оно тоже бесплатное и даже, в некотором смысле, проще представленного в прошлом году официального API Kinobaza.tv. Но у MyShows есть одна проблема, которая не позволяет полностью отказаться от Kinobaza в Aspen Player — отсутствие поиска по полнометражным фильмам.

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

7   6   5   4   3   2   1