среда, 22 апреля 2009 г.

Опять разное о программировании, музыке и кино

Вновь вываливаю кучу всякого разного…

Программирование…

Разговоры о языке D

Есть такой язык программирования – D. И есть такой сайт – www.linux.org.ru. Забавный сайт с очень неформальной манерой общения. Из-за чего чтение некоторых обсуждений на нем значительно поднимают настроение.

На linux.org.ru есть хорошая традиция – на главной странице сайта публикуются небольшие анонсы наиболее интересных и важных новостей. В последнее время к таким новостям стали причислять и анонсы очередных версий компилятора DMD. И в каждом обсуждении такого анонса обязательно найдутся утверждения типа “D не нужен!” :)

Вот мне интересно: версии DMD выходят с периодичностью в 2-3 недели. Так неужели на linux.org.ru будут с такой же частотой возникать темы с утверждениями “D не нужен”? :)

Что до меня, то я уже смотрю на D по инерции. Когда-то надеялся, что он вот-вот достигнет стабильного состояния и можно будет начать переход на него с C++. Не дождался, плюнул. Как до меня сделали еще несколько моих коллег по RSDN (c-smile, Зверек Харьковский, FR). Похоже – это традиция такая: очередной товарищ смотрит на D как на свой будущий инструмент, ждет стабилизации языка, ждет, ждет, потом плюёт.

Pattern matching мне бы сейчас пришелся ко двору…

Переделываю сейчас кусок C++ной программы. Код вида:

allocate_child_process_result alloc_result =
 allocate_child_process_for( request );
if( alloc_result.is_successful() )
  ...
else
  ...

Раньше alloc_result мог быть либо успешным, либо неудачным. Сейчас нужно добавить третий потенциальный результат – выполнение отложено. Т.е. что-то вроде:

allocate_child_process_result alloc_result =
 allocate_child_process_for( request );
if( alloc_result.is_successful() )
  ...
else if( alloc_result.is_delayed() )
  ...
else
  ...

Но такой вариант, хоть он очень простой и рабочий, мне не нравится. Ведь если со временем появится еще какой-то вариант alloc_result-а, то компилятор не подскажет мне места, где этот вариант не обрабатывается. Т.е. если я забуду подправить код обработки alloc_result-а в каком-то месте, то все – баг в программе.

Здесь бы очень пригодился бы паттерн-матчинг (такой как в Scala). Например, что-то типа:

case class abstract_process_allocation_result_t {};
case class successful_alloc : abstract_process_allocation_result_t { ... };
case class delayed_alloc : abstract_process_allocation_result_t { ... };
case class failed_alloc : abstract_process_allocation_result_t { ... };
...
allocate_child_process_result alloc_result =
 allocate_child_process_for( request );
match( alloc_result ) {
 case successful_alloc => ...
 case delayed_alloc => ...
 case failed_alloc => ...
}

Тогда бы компилятор сам бы указывал места, в которых новый вариант alloc_result-а не обрабатывается.

Обновились библиотеки ACE и POCO

Вышла версия ACE 5.6.9. Разработчики ACE в конце прошлого года забабахали анонсами грядущего ACE 5.7. Который так и не появился до сих пор. Зато версии 5.6.* выходят стабильно. Вот и 5.6.9 появилась. Но еще не пробовал ее, нет времени.

Вчера вышла и очередная версия библиотеки POCO – 1.3.4. В основном это bug-fix релиз, подробный список изменений здесь. После версии 1.3.4 разработчики POCO обещают заняться версией 2.0, которая будет значительно переработана и будет ориентироваться, в том числе, и на новые возможности C++0x.

Использовал POCO в парочке мелких утилиток. Впечатления самые положительные. Возможно, для SObjectizer 5 стоит выбрать именно ее в качестве базовой библиотеки вместо громоздкой и достаточно старомодной ACE.

Музыка

Новый альбом Depeche Mode

На днях Depeche Mode выпустили свой новый альбом: Sounds Of The Universe.

С первого раза не торкнул. Но с Depech-ами у меня это обычное дело: начиная с Violator-а меня догоняет только после нескольких десятков прослушиваний (исключениями были разве что Songs of Faith and Devotion с их совершенно забойными “Walking In My Shoes” и “Higher Love”). Например, в альбоме Ultra мне долго не нравилась их заглавная “Barrel Of A Gun”, зато сейчас она слушается как родная.

Вероятно, с этим альбомом произойдет тоже самое. Случаю его уже второй день и начинает втыкать. Вот, сейчас, например, очень в тему попала композиция “Wrong” :)

Что удивительно – Depeche-вский стиль. Не меняется. Уже почти тридцать лет. И все равно звучит актуально.

Tangerine Dream

Есть, оказывается, такая группа. Tangerine Dream. Исполняет электронную музыку уже более сорока(!) лет – с 1967-го года.

Нашел несколько их сборников: Dream Sequence (1985), The Best Of Tangerine Dream (1989), The Anthology Decades (2008). И альбом 2008-го года Views From A Red Train. Прослушал с удовольствием. А вот один из старых и знаменитых альбомов Phaedra (1974) мне не понравился – не мое.

Вообще-то, на мой вкус, мелодии у них однообразные. Нет таких забойных и узнаваемых хитов, как у Space, Майка Олдфилда, Жана-Мишеля Жарра или Вангелиса. Что-то типа спокойной фоновой музыки. При работе за компьютером вполне себе ничего.

Кино

Юлия Снегирь

Единственное, что есть хорошее в фильме “Обитаемый остров” (в первой части, по крайней мере) – это очень красивая актриса. Юлия Снегирь. Я уже публиковал ее фото из фильма. А вчера наткнулся на еще одну ее фотографию. Мне фотография очень понравилась, жене – нет :)

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

Пираты

Пираты, ворующие фильмы, не останавливаются. Копии, снятые с экрана кинотеатра видеокамерой – это еще цветочки по сравнению с тем, когда фильм воруется еще до окончания создания спецэффектов и монтажа. Вот например, доступный через файлообменные сети фильм “Люди Икс: Начало. Росомаха”. Забавно во время просмотра видеть, как персонаж превращается в недооцифрованный компьютерный манекен:

А тут еще и новости приходят о том, что пособников пиратов осуждать стали. Что вряд ли остановит файлообмен. Я надеюсь :)

Вот уж кому действительно выгодно процветание пиратства – так это Интернет провайдерам. Народ качает пиратский контент, провайдеры в выигрыше :)

Как по мне, так медиа-гигантам давно нужно было менять свою политику. Ну ведь все равно понятно, что воровать будут. Так почему бы не сделать воровство невыгодным для пиратов, а распространение фильмов/музыки через Интернет – выгодным для себя? Размещайте сами в Сети фильмы, и берите деньги с провайдеров. Вот, скажем, у меня unlimit за $20 в месяц. Пусть из этих денег $5 идут продавцам контента. Таких как я только в одной Белоруссии наберется тысяч сто, я думаю. Это значит, что какой-нибудь Warner Bros. будет получать по $500K в месяц от какой-то заштатной Белоруссии.

Вот была бы красота: захотел фильм посмотреть, зашел на сайт Warner Bros., выбрал подходящее для себя качество и размер (700Mb, 1.5Gb, 4.5Gb…), качнул. С нормального сайта, на нормальной скорости. Warner Bros. и Белтелеком получили свою денежку, я – свой фильм. Лепота!

Эх, мечты, мечты…

Кстати, интересно: почему в файлообменниках фильмы, в основном, в XviD или DivX-е ужаты (по крайней мере те, которые по 700Mb и 1.5Gb)? Ужимали бы их в H.264 (MPEG-4 AVC). Тогда в тех же 700Mb качество фильма было бы гораздо выше.