Выпуск 17. Июль 2014

Использование портов GPIO в Raspberry Pi. Часть 1 | Содержание | Интервью с Питэром Рэббитсоном (Peter Rabbitson)

Обзор CPAN за июнь 2014 г.

Рубрика с обзором интересных новинок CPAN за прошедший месяц.

Статистика

  • Новых дистрибутивов — 247
  • Новых выпусков — 768

Новые модули

HTTP::Tiny::Paranoid является надстройкой над HTTP::Tiny, которая перед подключением выполняет разрешение имени хоста в Net::DNS::Paranoid, что позволяет исключить подключение к ip-адресам из диапазонов приватных сетей, а также выполнять проверку по чёрным/белым спискам хостов.

Компания Juniper выпустила свой первый официальный модуль на CPAN для управления конфигурацией сетевого оборудования своего производства. Не совсем понятна, какова лицензия продукта, но код открыто доступен.

BusyBird — это веб-приложение для просмотра ленты статусов/сообщений. Это своеобразный симбиоз twitter’а и RSS-агрегатора. BusyBird сам не выполняет сбор сообщений, но имеет API для их получения. Таким образом, пользователь должен быть немного программистом, чтобы написать модули, которые бы собирали данные, например, твиты, почтовые сообщения, RSS-ленты и передавали в BusyBird, задача которого уже отображать эти данные.

Protocol::OTR — это обвязка к библиотеке libotr v4, реализующая криптографический протокол Off-the-Record для систем мгновенных сообщений, позволяющая безопасно обмениваться сообщениями, аутентифицировать собеседников, защищать историю переписки при компрометации ключей.

Etcd является perl-клиентом для высокодоступного сервиса хранения пар ключей-значений для разделяемых конфигураций etcd.

Cookieville — это веб-приложение на базе Mojolicious, реализующее REST-интерфейс к базе данных. Для работы должен быть создан класс схемы DBIx::Class.

Devel::Trace::Syscall позволяет выводить трассировку системных вызовов, которые вызываются в вашей Perl-программе. Модуль использует вызов ptrace и работает только на Linux, также требуется Perl 5.18.0 или старше.

     $ perl -d:Trace::Syscall=open my-script.pl
     open("somefile", 0x0, 0666) = -2 at my-script.pl line 4

Protocol::Gearman — это ещё одна реализация протокола, а также клиента и рабочего процесса для сервера задач Gearman.

Модуль Async::Chain позволяет организовать группу вложенных функций обратного вызова в плоскую структуру, более наглядную и удобную для сопровождения. Вместо написания

    async_func1 cb => sub {
        async_func2 cb => sub {
            ...
        }
    }

Указывается ключевое слово chain и далее следует последовательность функций:

    chain
        sub {
            async_func1 cb => shift;
        },
        'optional name of sub' => sub {
            async_func2 cb => shift;
        },
        ...
    ;

Прагма warnings::pedantic добавляет шесть новых предупреждений для сомнительных конструкций: grep, close, print в пустом контексте, некорректный прототип для sort-функции, присвоение массиву ссылки на массив, использование констант с правой стороны «жирной запятой» или в качестве ключа хеша.

Обновлённые модули

В новой версии реализации сопрограмм Coro улучшена совместимость с Perl 5.20.

Новый мажорный релиз модуля (де)сериализации Sereal включает поддержку сжатия zlib и новый магический заголовок данных для лучшего детектирования закодированных в UTF-8 данных.

Первый мажорный релиз драйвера MongoDB Mango официально больше не считается экспериментальным.

Обновлён модуль асинхронного ввода/вывода IO::AIO. В новом релизе сделаны исправления для работы с Perl 5.20.

Новый релиз утилиты perlbrew для инсталляции и управления версиями Perl в домашнем каталоге исправляет проблему с установкой perl 5.21, а также проблемы при работе со сломанной версией local::lib.

В новом релизе исправлена ошибка в формировании заголовка Connection. Добавлена поддержка кода перенаправления 308, а также всех допустимых идемпотентных методов HTTP/1.1 в запросе (их на сегодняшний день 34).

Новый релиз компилятора Perl B::C содержит множество исправлений, включая исправления байткода для Perl 5.18, лексических подпрограмм для Perl с поддержкой тредов, работы модуля Coro. Существенно уменьшен генирируемый код за счёт исключения ненужных зависимостей.

Новый релиз модуля Email::Address для проверки email-адреса в соответствии с RFC 2822 исправляет ошибку в безопасности CVE-2014-0477, которая позволяла организовать DoS-атаку на сервисы, использующий данный модуль. Функция Email::Address::parse затрачивала существенное время при разборе, если встречалась последовательность из двух двойных кавычек "".

В новый релиз perl для разработчиков 5.21.1 включена поддержка Unicode 7.0, а также реализовано API для вывода трассировки вызовов внутренних функций perl при предупреждениях, аналогичный выводу gdb:

    $ env PERL_C_BACKTRACE_ON_WARN=10 perl -we '$x=1'
    0    496712:0012    Perl_dump_c_backtrace    util.c:6138    perl
    1    4967b7:0047    Perl_mess_sv    util.c:1382    perl
    2    497786:0006    Perl_vwarn      util.c:1810    perl
    3    497c87:0087    Perl_warner     util.c:1902    perl
    4    44a8a5:0215    Perl_gv_check   gv.c:2304      perl
    5    4487fc:14fc    S_parse_body    perl.c:2314    perl
    6    42b630:0080    main            perlmain.c:113 perl
    7    7f031f593ad5:00f5    -    -    /lib64/libc.so.6
    8    42b6ed         _start          start.S:126    perl
    Name "main::x" used only once: possible typo at -e line 1.

Для обновлённого Readonly больше не требуется Readonly::XS. Также исправлено множество ошибок в коде и неточностей в документации.

Владимир Леттиев


Использование портов GPIO в Raspberry Pi. Часть 1 | Содержание | Интервью с Питэром Рэббитсоном (Peter Rabbitson)
Нас уже 1393. Больше подписчиков — лучше выпуски!

Комментарии к статье