рубрика Рецепты

install Task::CPAN::Reporter

20.08.2013г. // Рубрики: Рецепты, Perl
test
В perl-сообществе на ЖЖ появилась очень правильная новость. Всех честных людей планеты призывают поставить себе модуль Task::CPAN::Reporter и настроить его на автоматическую отправку отчётов в CPAN. Полностью поддерживаю начинание и, прямо сейчас, в убунтовом терминале набираю команды:

$ sudo cpan
cpan> install Task::CPAN::Reporter
...
cpan> reload cpan
cpan> o conf init test_report
...
cpan> o conf commit
Ибо кто ещё поможет избавиться от ошибок в чужих модулях, если не ТЫ САМ?!

Горизонтальное и вертикальное выравнивание в CSS

11.08.2013г. // Рубрики: web, Рецепты
css
Очередная закладка на перевод статьи от smashingmagazine на тему выравнивания контента по вертикали/горизонтали посредством CSS: http://habrahabr.ru/post/189696/.
Оригинал статьи: http://coding.smashingmagazine.com/2013/08/09/absolute-horizontal-vertical-centering-css/.

Подобную задачу приходится регулярно решать, пусть ссылка будет всегда под рукой..

Модуль PocketIO - страдания под windows

23.07.2013г. // Рубрики: web, Рецепты, Perl
Bug
На работе появилась интересная задача, для решения которой намеревались воспользоваться Perl-реализацией библиотеки socket.io (версия 0.15 на данный момент). Почему Windows - даже не спрашивайте. Поначалу посчитали, что железяка, на которой будет работать приблуда, заточена под эту ось. Короче, начал активно изучать работу с websockets, благо весьма перспективная технология (давно к ней подбирался).
Запустил прилагающиеся примеры (под линуксом), поэкспериментировал с чатами, почитал разные документации, чего-то понял и приступил к реализации под виндой. На этом счастливая часть эпопеи была завершена. Exampl-ы упрямо не хотели работать как надо. Если точнее - handshake не отдавался сервером. Этот bug воспроизводился и в XP, и в Windows 7.
Длительное ползание по коду отладчиком привело к локализации места - в другом модуле, но этого же автора:
Protocol::WebSocket::Message, функция _append
if (ref $_[0]) {
        $_[0]->read(my $buf, $self->{max_message_size});
        $self->{buffer} .= $buf;
}
Здесь read впадает в прострацию и не выходит из неё, пока не разорвать соединение с браузером. В общем, если автор модуля случайно наткнётся на эти строки, то вот..
Ну а на работе выход нашёлся: фронтенд-напарник согласился на убунту. Как выяснилось, железяка с линуксом смогла заработать ничуть не хуже (были подозрения, что тачпад-интерфейс не заживёт, ан нет).

XML::Hash::XS - сверхскоростная замена для XMLout

08.07.2013г. // Рубрики: Рецепты, Perl
speed
Ещё совсем недавно на этом блоге я убедительно утверждал, что XML::Simple полностью удовлетворяет мои потребности и был в этом непоколебимо уверен, пока мне в руки не попался модуль XML::Hash::XS, написанный русскоговорящим программистом Yuriy Ustushenko.  Читать полностью >

Опыт использования xml2json-xslt

03.07.2013г. // Рубрики: web, Рецепты
xsl:choose
Потребовался недавно мне в проекте ajax вместе с json-ом, причем ответ сервера мог содержать не вполне проверенные данные. Сам ответ хранился в xml не столько в дереве, сколько в атрибутах. Как выяснилось, эта особенность данного xml оказалась важна при трансформации в json  Читать полностью >

Странности модуля Crypt::GeneratePassword

13.06.2013г. // Рубрики: Рецепты, Perl
Если бы мне кто-то со стороны рассказал бы про подобную ситуацию, я бы немедленно сделал вывод: "ты - лох, под mod_perl необходимо проверять в обязательном порядке, что любая переменная инициализирована". Но всё оказалось не так просто. Переменные оказались инициализированы.  Читать полностью >

Редактирование командной строки в отладчике Perl

09.04.2013г. // Рубрики: Рецепты, Perl
На свежепоставленном Debian/Ubuntu при запуске перл-отладчика (а также установщика модулей CPAN) проскакивает подобное сообщение:
$ sudo cpan
Terminal does not support AddHistory.
...............
Что это означает - быстро проясняется при попытке использовать "стрелочки" в командной строке в этой оболочке. Вместо перемещения курсора вылезают "кракозябры".
Долго рассуждать не буду, лечится это дело просто. Вот рецепт:
sudo apt-get install libterm-readline-gnu-perlТакая вот очередная зарубка на память.

Быстрый анализ логов Apache

21.03.2013г. // Рубрики: web, Рецепты, Хостинг
Хочется всегда иметь под рукой команду, для быстрой оценки содержимого access_log, без привлечения разных анализаторов. Чтобы не напрягать каждый раз память - добавляю её в свои рецепты, вот она:
cut -d" " -f1 access_log|sort|uniq -c|sort -n>out.txtЗдесь f1 - это сортировка по первой колонке. На некоторых хостингах лог ведётся так, что нужно указывать f2. По-идее, мы получим отсортированный по количеству обращений к сайту список ip-адресов и можно поглядеть - не нужно ли кого побанить на всякий случай (про whois тоже не забываем).
«   

Рубрики