Выпуск 20. Октябрь 2014

Введение в Rose::DB::Object | Содержание | Интервью с Леоном Тиммермансом

Обзор CPAN за сентябрь 2014 г.

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

Статистика

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

Новые модули

Проект Clownfish разрабатывается в рамках поискового движка Lucy, и представляет собой реализацию объектной системы для языка C. Одноимённый Perl-модуль Clownfish является симбиотическим байндингом, связывая объектную системы языка Perl с Clownfish, позволяя получать доступ к объектам Clownfish как к обычным объектам Perl, наследовать, расширять и затем использовать в Clownfish.

Утилита mssh позволяет выполнять команды через ssh-соединения одновременно (или последовательно) на нескольких хостах.

Ещё один представитель модулей для генерации SQL-запросов. Интерфейс модуля оправдывает своё название, позволяя достаточно гибко строить весьма сложные запросы. Документация модуля содержит большое число примеров.

Модуль Scalar::Watcher позволяет отслеживать изменение скалярной переменной, вызывая указанную пользователем функцию:

    my $a = 123;
    when_modified $a, sub { print "catch $_[0]\n" };
    $a = 456; # напечатает 'catch 456'

Фреймворк для автоматизации задач администрирования Rex обзавёлся веб-интерфейсом Rex::JobControl. Веб-интерфейс создан на основе фреймворка Mojolicious и сервера задач Minion.

Object::Util — набор полезных функций для работы с объектами. Идея интерфейса заимствована из Safe::Isa, но набор функций значительно шире и интереснее.

    $foo->$_isa("Class");

В данном примере метод $_isa аналогичен стандартному isa: он проверяет, является ли $foo объектом класса Class, с тем лишь отличием, что если $foo не является объектом, то вместо исключения возвращается undef.

Утилита cpanmw является обёрткой для cpanm и делает симпатичную подсветку вывода, если терминал поддерживает цвета. Подсветка работает в том числе и на платформе Windows.

Net::DNS::Native неблокирующийся ДНС-резолвер, который использует вызов getaddrinfo вашей системной библиотеки. Разрешение имени происходит в выделенной нити, позволяя основной нити программы выполнять свою работу.

Mesos — это обвязка к разделяемой библиотеке Mesos проекта Apache для управления кластером серверов. Модуль позволяет создавать распределённые приложения (фреймворки), запускающие задачи на динамическом пуле серверов, управляемом Apache Mesos с поддержкой изоляции и выделения ресурсов.

Модуль Plugin::Loader позволяет просто и безопасно решать задачу по поиску и загрузке модулей-плагинов. Данная задача, наверно, один из самых распространённых случаев использования строкового eval неискушёнными разработчиками.

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

Новый релиз неблокирующегося драйвера MongoDB Mango по всей видимости стал последним. Себастьян Ридель объявил, что в связи с тем, что разработка актуального драйвера требует высоких трудозатрат, а каждый релиз MongoDB ломает обратную совместимость, разработка Mango прекращена. Почти сразу появился форк проекта, но пока неясно, станет ли он преемником.

В новом релизе лёгкого веб-клиента HTTP::Tiny исправлена работа keep_alive при создании нового процесса/нити в программе.

Новый релиз DBIx::Class со множеством исправлений ошибок.

Вышел первый мажорный релиз MaxMind::DB::Reader для работы с базами данных геолокации IP-адресов MaxMind. Параллельно выпущена и XS-версия модуля, работающая в 100 раз быстрее.

Новый релиз популярного шаблонизатора Template::Tooolkit теперь поддерживает контурные теги (outline tags %%), позволяя избавиться от нагромождения скобок:

    %% IF some.list.size
      <ul>
    %%   FOREACH item IN some.list
        <li>[% item.html %]</li>
    %%   END
      </ul>
    %% END

Обновление для модуля Data::Dumper содержит исправление ошибки безопасности CVE-2014-4330, при разборе глубоко вложенной структуры происходили расходование всего пространства стека и крах приложения. Теперь модуль содержит переменную Maxrecurse, которая по умолчанию ограничивает максимальный уровень рекурсии значением в 1000.

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


Введение в Rose::DB::Object | Содержание | Интервью с Леоном Тиммермансом
Нас уже 1393. Больше подписчиков — лучше выпуски!

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