вторник, 24 января 2012 г.

Как сгенерировать себе случайный аватар?

Сгенерируем тысячу и выберем самый красивый:
  • mkdir /tmp/avatars/
  • for i in `seq 1 1000`; do hash=`dd if=/dev/random bs=16 count=4 2>/dev/null | md5sum | awk '{ print $1 }'`; wget -q "http://www.gravatar.com/avatar/$hash?s=128&d=identicon&r=PG" -O /tmp/avatars/$hash.png; echo "$hash"; done
  • Идём в /tmp/avatars/ и выбираем аватар. Если нужна картинка большего размера, то можно вручную сделать HTTP-запрос с этим хешем.
  • Если случайные числа в /dev/random быстро заканчиваются, то замените его на /dev/urandom

















суббота, 14 января 2012 г.

www.100слов.рф — учите язык с помощью субтитров!

Как это работает?

Допустим, вы собрались посмотреть кино на английском:
  • Заходим на www.100слов.рф
  • Скачиваем кино вместе с субтитрами либо находим их в интернете;
  • Выбираем в меню "Начать урок" и загружаем .SRT файл c субтитрами;
  • Программа найдёт 100 самых часто-используемых слов из фильма и покажет вам их перевод с помощью одного или нескольких online-словарей;
  • В конце урока вы увидите подробную статистику по фильму: сколько слов было всего, сколько было отсеяно, какой % слов покрыл данный урок и т.д.
Сайт не требует регистрации, но если вы (бесплатно) зарегистрируетесь, то в добавок к вышеперечисленному сможете:
  • Сохранять свои предпочтения, а именно - список используемых словарей, любимый словарь и количество слов в уроке;
  • Во время урока отмечать слова как "известные". Программа будет помнить, какие слова вы уже знаете и не станет показывать их вам в следующий раз;
  • Просматривать список известных слов и удалять из него те, которые вы забыли.
В данный момент сайт поддерживает только английский, но возможно вскоре появится немецкий, французский и испанский.

Что под капотом
Тестирование

Все backend-классы (парсинг и анализ субтитров) покрыты Unit-тестами. Есть тест web-интерфейса (используется модуль Test::WWW::Mechanize::Catalyst).

WWW-тест эмулирует одновременную работу нескольких пользователей: они регистрируются, загружают субтитры, переводят слова, модифицируют параметры своего аккаунта и т.д. Тест создаёт для себя всё необходимое окружение и убирает за собой в конце.

Тест умеет автоматически конфигурировать и запускать временный экземпляр Apache2/mod_perl и тестировать приложение в условиях максимально приближенных к реальным.

Весь код (за исключением автоматически сгенерированных классов) проверен при помощи perlcritic-а в режме Brutal.

Все HTML страницы проходят валидацию на XHTML 1.0 / Transitional
Все CSS файлы проходят валидацию на CSS Level 2.1

Техническое имя сайта (не IDN): ss.entropyware.info

Feedback

В настоящий момент сайт и сама идея находятся на этапе опытной эксплуатации, поэтому было бы интересно получить feedback от тех, кто любит посмотреть фильмы на английском.