четверг, 19 мая 2011 г.

JRockit отныне не только для богатых

Прекрасные новости для всех, кто использует Java как серверную платформу - JRockit, быстрейшая серверная имплементация Java, теперь доступен бесплатно с oracle.com.

среда, 13 апреля 2011 г.

SKPlayer версии 3.0.1

Вышла версия 3.0.1

Багфиксы. В осномном - относящиеся к MAST (реклама теперь у нас непрокручиваемая), слегка изменено и подтьюнено поведение autoHide: теперь в полноэкранном режиме исчезают полностью контрольная полоска и вы видите видео без всяких... посторонних примесей. Ну и так, по мелочи

суббота, 9 апреля 2011 г.

Scientific Linux 6 - первые впечатления

Устанавливаю SL6 на ноутбук - пока полет нормальный. Добротный вроде клон RHEL6, все как-то сразу заработало. Thinkpad T60 вообще с линухом дружит неплохо, надо сказать. Видео работает шустро, все железо сразу без проблем заработало. Подключил EPEL (бету для RHEL6) и RPMFusion. С последним не все прямолинейно - надо подключать как Fedora 12 (RHEL 6 и есть 12я Федора в своей основе). Для этого после установки репозиториев надо заменить в .repo-файлах RPMFusion $releasever на 12.

cd /etc/yum.repos.d
grep -l releasever rpmfusion* | xargs sed -i 's/\$releasever/12/g'
Для установки плагинов gstreamer еще к одному трюку пришлось прибегнуть - ругался не отсутствие libsidplay.so.1()(64bit)

Взял вот отсюда


Почему именно SL? Хотелось какой-то клон RHEL на ноут. Gentoo на ноуте, который используется не каждый день, держать слишком хлопотно. Ubuntu обхожу просто идеологически. Debian 6 пробовал - глюки. А так - будет у меня система, которая много лет поддерживается с минимальными усилиями. Долгой тебе жизни, SL6 :)

четверг, 7 апреля 2011 г.

О контроле версий

Плохо ходить на одной ноге. Плохо работать одной рукой - если под работой имеется в виду, разумеется, не мастурбация ;)

И очень, очень плохо тем программистам, кто не использует системы контроля версий (VCS). Хорошая VCS занимает такое же достойное место на рабочем месте, как и мощный редактор - позволяя отслеживать изменения кода, откатиться в любой момент, если зашли слишком далеко. Фактически они развязывают вам руки и позволяют дать волю своей фантазии и поиздеваться как следует над кодом, пока из него не выйдет именно то, чего вы от него хотели.

Я уже года два использую Git. Более чем продвинутая VCS, которая позволяет как работать с микропроектами из одного php-файла (достаточно в директории набрать git init, и все - локальный репозиторий готов), так и работать над большими проектами, держать кучу бранчей, мерджить код в любую сторону и как заблагорассудится, работать с удаленными репозиториями, работать с SVN... в общем, я работал с кучей VCS еще с 90х годов, начиная с MKS - но наконец-то чувствую себя с Git'ом так, как... "honey, I'm home!" :) Все то, на что я ругался матом, спотыкаясь о неудобства и косяки в других системах - тут стало работать именно как надо и никогда не лезть под руку. Да, я в курсе про Mercurial, Bazaar - но наконец я просто не вижу смысла в том, чтобы что-то еще искать, а можно просто пользоваться и изучать все лучше.

Если бы Линус Торвальдс не создал Linux, а создал бы только Git - уже за одно это ему стоило бы поставить памятник.

SKPlayer версии 3 вышел в свет

Наконец, свершилось - версия 3 SKPlayer жива, дышит, работает. Работа над новой версией продолжалась более 1.5 месяцев. Переделана основная архитектура с учетом всего, что накопилось как опыт работы с версией 2. Плеер полностью избавился от Flex - теперь в его основе набор классов на "голом" ActionScript 3. Это позволило намного ускорить загрузку плеера - особенно в первый раз, когда раньше значительному количеству пользователей сначала подгружались RSL'и с adobe.com. Для раскраски и ошкуривания использовалась библиотека Flash Camouflage - что помогло сэкономить еще, наверное, пару недель разработки, хотя и увеличило несколько размер финального SWF. Увы и ах. На основе Camo были написаны кастомные компоненты, отвечающие за все кнопки, слайдеры и т.д Возможно, со временем я от нее избавлюсь, написав свою замену, чтобы сделать плеер еще компактнее и, к примеру, придав плееру еще большую гибкость через полный CSS layout - но это потом. Скорее всего, к версии 4, которая планируется гибридной - Flash + HTML5.

Плеер использует подгружаемые ядра - вот так :) Ядро - это то, что, собственно, занимается воспроизведением, показывает картинку на экране, издает звук и т.д. Основное же приложение отвечает за внешний вид (содержит контролы), подгружает конфигурацию, грузит скины, плагины и ядро, отвечает за взаимодействие с пользователем, интерфейсы с JavaScript - в общем, все, что не проигрывает медийные файлы. В комплекте поставки идет 3 версии ядра на базе OSMF, каждое оптимизировано под конкретную версию Flash Player - так обеспечивается как поддержка старых версий (вполне можно в 2011 году считать версию 10.0, которой уже 2 года, старой), так и поддержка всех новых возможностей - полной хардверной акселерации, продвинутых фичей Flash Media Server (в случае, если вы достаточно богаты, чтобы его купить :) ) - к примеру, DRM. Для последнего пользователю, однако, потребуется плеер 10.1 или выше - так что, если вы хотите его использовать, требуемую версию на странице с плеером надо выставить именно такой - пользователю будет предложен апгрейд. К слову, на сегодняшний день где-то 85% пользователей уже имеют 10.1 установленным. Плеер требует версии как минимум 10.0 - это более 99% броузеров как по данным Adobe, так и по косвенным данным, полученным от использования предыдущей версии на тьюбах-милионниках.

Ядро вовсе не обязательно должно строиться на OSMF - интерфейс с ним абсолютно абстрактен. В планах - минимальное ядро, позволяющее только стриминг по RTMP и HTTP-псевдостриминг - для тех, кому требуется только проигрывание видео без продвинутых фичей, которые предоставляет OSMF (включая плагины). В этом случае размер ядра ожидается где в районе 20-30 kb. Планируется также опубликовать полностью все интерфейсы - как ядра, так и плагинов, задокументировать все нужные моменты, опубликовать SDK для расширения плеера. Это как дисциплинирует разработчика, так и помогает особо продвинутым пользователям понять, что происходит внутри и почему, а также - еще более особо продвинутым - написать свой плагин или свое ядро. Мало ли.

В общем и целом, мне история плеера напоминает историю Microsoft Windows - которая в версиях 1.0 или 2.0 была еще в пеленочном состоянии, мало кто их помнит - и только к версии 3 выросла. Я, во всяком случае, наконец-то доволен продуктом, который стал уже 100% самостоятельным, взрослым и готовым к массовому использованию. Буду надеяться, что он станет со временем настолько же популярным, как Windows версий 3 и выше :) И дело не только в деньгах - а в том, что нет ничего приятнее, чем сотворить что-то упорядоченное, совершенное из хаоса, и смотреть как оно растет и крепнет.

воскресенье, 8 июня 2008 г.

Устанавливаем куки через mod_rewrite

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

Пример (кусок кода из - не уверен, что будет работать в .htaccess, там несколько свои правила.

RewriteEngine on
RewriteCond %{QUERY_STRING} param=(.*)
RewriteRule ^(.*)$ $1? [L,R,CO=mycookie:%1:.mydomain.com]

Эти правила, если серфер заходит на наш сервер через URL

http://www.mydomain.com/somefile?param=PARAM_VAL

перенаправят его на

http://www.mydomain.com/somefile

установив куку "mycookie" в значение PARAM_VAL.

Обратите внимание на второй параметр в RewriteRule. Тот, который "$1?". Хитрость - в вопросительном знаке после $1. Я не знаю, почему (судя по документации, такого эффекта быть не должно), но без него происходит редирект на оригинальный URL, вместе со всеми параметрами %{QUERY_STRING}... что, само собой, ведет к зацикливанию редиректа. Во всяком случае, это имеет место быть у меня на apache 2.2, как на Vista, так и на FreeBSD 6.2

среда, 4 июня 2008 г.

Создание WMV-клипов при помощи ffmpeg

Начинаю понемногу записывать в блог то, что а) не хотелось бы забыть самому б) что может быть полезно другим.

Итак, на днях добился от ffmpeg того, что он мне сгенерил честный WMV, который может быть проигран на голой XP. Тут производится "нарезка" готового фильма на короткие сцены, но так можно получить WMV из всего, что может быть прочитано ffmpeg'ом.

ffmpeg -vocodec wmv2 -acodec wmav2 -sameq -y -ss {offset} -t {duration} -i movie_in.wmv movie_out.wmv

Не то, чтобы открытие мирового масштаба - но пришлось слегка повозиться, подбирая кодеки.