Thursday, April 24, 2008

Yet Another Cpp Coding StyleGuide and even more...

Набрел на сайте PoCo на два интересных документа: Designing and Building Portable Systems in C++ и C++ Coding Style Guide. В конце первого документа нашлась еще одна очень интересная ссылка на перечень С++ библиотек (как свободных так и закрытых). В PoCo, к стати, недавно добавили поддержку MySQL.

Read more...

Friday, April 11, 2008

Big Buck Bunny Open Movie Project

После завершения проекта Orange, результатом которого стало создание анимационного фильма Elephants Dream с открытым "исходным кодом", Blender Foundation и Blender Community начали новый проект Peach, целью которого является создание небольшого анимационного фильма.
Как и в прошлый раз, небольшая комманда лучших 3D аниматоров из blender community собралась в Амстердаме для работы над проектом, который длился с Октября 2007 по Апрель 2008. Как и в прошлый раз для работы с изображением и анимацией использовалось открытое ПО (blender, gimp, может что еще... ). Исключением являлась работа со звуком, для которой использовались технологии Dolby Laboratories (по крайней мере для выпуска фильма на кинопленке). В первую неделю комманда занималась preproduction work, с этой целью они организовали Peach Workshop для проработки деталей сценария, по окончании которого был разработан development roadmap и шестимесячный план:

По ходу дела, за неделю до старта проекта у него появились спонсоры: Digitale Pioniers, Maqina Computersystems выступили в качастве спонсоров железа, sound студия wavemage. Чуть позже к спонсорам присоединилась Sun, чей грид network.com использовался для рендеринга. Акция dvd preordering на момент начала проекта принесла 1144 заказа, среди которых 947 были предоплачены.

И закипела работа :-D



Вот еще одно видео, где показано, как персонажи "оживлялись"



Интересно было почитать, как решилась проблема анимаации "толстых" персонажей.

Отдельно стоит сказать о железе и софте, на ктором работали аниматоры. Железо - это пять Maqina C6850DC 3D Blender Workstation’s (Dual Core 3ghz, 4gig ram, GeForce 8800 GTS), две Maqina X5130DC Workstation’s (Quad Core 2ghz, 4gig ram, NVidia Quadro FX 1700), и Maqina X5345QC Workstation (8 Core 2.33ghz, 8gig ram, NVidia Quadro FX 1700). Большинство рабочих мест укомплектовано двумя мониторами (оно и не удивительно)


На все системах установлена 64bit Ubuntu Gutsy Desktop. Каждый пользователь может войти под своим аккаунтом на любой машине - настройки хранятся на сервере. Все это добро соединено в гигабитную сеть. Все используют версию blender из svn, в которой , видимо, присутствуют используемые аниматорами новшества. Что характерно, они у себя отмечают, что Peach это видимо первый серьезный проект использующий blender, скомпилированный как 64-битное приложение (64, так как им необходимо большое колличество оперативки для рендеринга, однако меня несколько смутило упоминание, что на 32х битах можно адресовать 2 Гб).

В конце-концов, фильм получил название Big Buck Bunny:
A little explanation about the title Big Buck Bunny:

‘Big’ because the main character isn’t small.

‘Buck’ is the term for a male rabbit. It’s also the name of a movie character played by an actor we used as a reference.

‘Bunny’ because…. ah, I’m not gonna explain that.

Как уже упоминалось выше, для рендеринга, использовался грид SUN, которая предоставила им 50000 часов машинного времени. Разработчики упоминают, что данная ферма не использовалась ранее для рендеринга подобного масштаба, поэтому этот процесс является хорошим стресс-тестом для их инфраструктуры. Как показала практика, тест оказался эффективным и грид (ну по крайней мере один его узел) упал. Видимо после падения, у них возникли проблемы со шрифтами, и комманда решила, что быстрее будет отрендерить оставшиеся 2000+ фреймов на собственных машинах. Однако снова возникают проблемы разного рода (как всегда перед самим финишем). В частности, трава отрендеренная на ферме и на машинах аниматоров отличалась, причем они пришли к выводу, что виной всему реализация qsort() на Solaris, отличная от реализации в libc. В общем чтение этого поста, заставило меня не раз улыбнуться )).

Вотъ, а вчера было обьявлено о премьере. Трейлер же можно посмотреть ниже ;-D.



Read more...

Monday, March 17, 2008

C and C++ Secure Coding Standard

По ссылке с OpenNet набрел на готовящийся к выходу неформальный стандарт по безопасному кодированию на С и С++. Довольно приличное колличество информации собрано в одном месте, что, естественно, радует. Стоит прочтения, единственное, что меня раздражало - это жутко неудобная система навигации по разделам. Хотелось бы заполучить это все в plain html или в pdf. Может когда вычитают, сделают. Будем надеяться. В общем рекомендую всем, кому приходится писать на этих языках (впрочем некоторые правила применимы и не только к С с С++). Надо добавить линки в C & C++ useful resources.

Read more...

Friday, March 14, 2008

Netflix Prize. Just give it a shot...

Как это ни печально, но синоптики с погодой в Харькове сегодня не ошиблись. С самого утра дождь. То то я так долго просыпался. Однако этот пост будет не об этом.

Некоторое время назад блуждая по Википедии в поисках информации по data mining наткнулся на статью (эта же статья на английском) о конкурсе, организованном компанией Netflix - Netflix Prize. А тут недавно и в блогах пробежал пост об этом конкурсе. Решил более подробно ознакомиться. Netflix занимается арендой DVD через интернет. Ну и как многие e-commerce компании у них есть адвизори, т.е. список товаров (или услуг), которые они рекомендуют клиенту, на основании уже совершенных заказов. Для повышения вероятности того, что рекомендуемый фильм понравится клиенту, Netflix был разработан основанный на линейной регрессии алгоритм Cinematch, который дает СКО на тестовом множестве даннах 0,9525. В нетфликсе почухали репу и решили учредить конкурс - тот кто добьется 10% улучшения алгоритма получит 1 млн американских денег. Кроме того, также есть приз "за прогресс" - 50000 денег за улучшение на 1% по сравнению с предыдущим лауреатом конкурса.

Все участники (и вообще все желающие) могут скачать следующие 4 файла:

  • Тренировочные данные (training data set) содержат более 100 млн оценок, которые более 480 тыс. клиентов поставили 17.770 фильмам. Каждая оценка представляет собой квадруплет <номер клиента, номер фильма, дата оценки, оценка>. Номера клиентов и фильмов — целые числа, оценка — целое число от 1 до 5 (низшая оценка 1, высшая 5).Таким образом, в среднем каждый клиент поставил около 200 оценок, а каждый фильм получил около 5000. Однако количество оценок сильно варьирует: так, некоторые фильмы получили всего 3 оценки, а один клиент оценил более 17 тыс. фильмов.
  • Квалификационные данные (qualifying data set) содержат 2,8 млн триплетов <пользователь, фильм, дата оценки>. Оценки известны только жюри и будут опубликованы по окончании соревнования.
  • Названия и годы выхода в прокат всех 17.770 фильмов.
  • Фрагмент тренировочной базы данных, распределённый так же, как квалификационные данные. Этот фрагмент может использоваться, например, для оценки алгоритмов до посылки их на сайт.

Для того чтобы участник не мог использовать СКО для угадывания оценок, квалификационный набор данных разделён надвое. Участникам сообщаются результаты одной из половинок, называемой quiz set, но для получения приза (любого) учитываются результаты другой половинки — test set. Участники не знают, какая из записей к какой половинке относятся.

В общем, судя по LeaderBoard, прогресс есть и довольно приличный. Однако, как замечают некоторые разработчики, в последнее время СКО меняется буквально на сотые, тысячные доли. Трудновато, как оказалось, построить модель человека. Однако Хлопец в Гараже, являясь психологом, быстренько догнал и перегнал многих участников, и теперь входит в первую 10-ку команд. Он дескать взял да предположил, что решение может лежать на стыке математики и психологии...

Ну шо народ? Го Netflix?

Read more...

Friday, February 29, 2008

5 инструментов

Принимаю эстафету "5 инструментов без которых я не могу работать продуктивно" от Алены С++. Но сначала маленькое предисловие: поскольку речь идет именно о продуктивности, то я не буду описывать все те тулзы, с которыми мне приходится иметь дело при разработке ПО. Постараюсь написать лишь о тех, которые позволяют мне быстро и в сжатые сроки решать какие-либо повседневные задачи.

Итак эти самые 5 инструментов:
  1. Firefox - хороший браузер, к нему написано множество дополнений, которые облегчают работу (ScrapBook, Flashblock, Foxmarks, MinimizeToTray, ImgLikeOpera).
  2. Pidgin - multi-protocol Instant Messaging client, поддерживающий AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo!, Zephyr. Простой, есть версии как для Linux так и для Windows.
  3. Far Manager / Yakuake + bash + mc - файловые менеджеры, консоль, командный интепретатор соответственно под Windows и Linux, так как обеими этими системами я пользуюсь в равной мере.
  4. Gmail - почта, прельщает довольно удобный веб-интерфейс, хороший спам-фильтр.
  5. Google - всем известная поисковая система, использую для поиска различной информации.
Вот кажись все.
Передаю эстафету

Read more...