Обновить
0.83

Perl *

Высокоуровневый интерпретируемый динамический язык

Сначала показывать
Порог рейтинга
Уровень сложности

Многопоточность в Perl, или Как я посмотрел ролик о съёмках Warehouse 13

Время на прочтение6 мин
Охват и читатели16K
image
Всё началось с того, что я наткнулся на видео, которое рассказывало о съёмках одного из моих любимых сериалов, Warehouse 13:
www.aoltv.com/2009/07/10/behind-the-scenes-of-warehouse-13

Клёвые штуковины в стиле «стимпанк», рассказ о взаимовыручке и дружбе, и лёгкая волшебная атмосфера, уводящая от серых будней — вот, чем мне нравится этот сериал. И вообще мне не менее интересно, чем сам фильм, бывает смотреть, как снимают этот фильм.

Но, как принято на сайте AOL TV, видео оказалось доступно только жителям US. Зачем накладывать такие ограничения — я не могу взять в толк. Где и какая жаба их душит, непонятно.
Но такая мелочь меня не могла остановить.
Читать дальше →

Используем Flickr API из Perl

Время на прочтение5 мин
Охват и читатели5K
Добрый день, уважаемый %habr_username% !

Если кто не знает — речь идёт об одном из самых популярных в мире фотохостингов — Flickr (wiki про Flickr).

Вкратце о Flickr API, ибо на хабре присутствуют только краткие упоминания о нём.

Разработчики Flickr дают возможность всем страждущим использовать мощный API, предоставляющий доступ ко всем мыслимым и немыслимым функциям, данным, возможностям. Flickr API отлично документирован, есть полное описание всех запросов (пример), есть FAQ, есть «быстрый старт», это основные источники познаний о Flickr API, их вполне достаточно для начала разработки вашего приложения. Модули для облегчения использования Flickr API есть для большинства популярных языков программирования, в том числе для Objective-C и Java, которые в настоящее время широко используются в разработке для IOS и Android, список с ссылками можно посмотреть тут (Прокрутив страничку вниз).
Читать дальше →

Общение с fastcgi менеджером

Время на прочтение3 мин
Охват и читатели3.1K

Описание


Маленькое расширение для FCGI::ProcManager, позволяющее обращаться к менеджеру fcgi процессов. Для связи сторонней программы с менеджером используется сокет.

Подводные камни


Модуль FCGI::ProcManager используется для порождения обработчиков входящих запросов. Текущий процесс является менеджером. Со старта он порождает обработчиков (n_processes штук), далее он поддерживает их количество, следя за погибшими в бою. Для этих целей он использует wait. Тут и кроется проблемка. После того, как запущены потоки, менеджер, вызывая wait, блокируется. Достучаться до него можно только через сигналы. Исполнять в обработчике сигнала код нужно с умом и аккуратно, гонять там говнокод — нехорошо. А значит необходимо наладить другой канал связи.
Читать дальше →

Stackato: разворачиваем Perl приложение в своем облаке за 3 шага

Время на прочтение4 мин
Охват и читатели2.1K
stackato Компания ActiveState хорошо известна разработчикам. Они довольно активно продвигают свои сборки Perl (ActivePerl), Python (ActivePython), Tcl (ActiveTcl) (Раньше был еще ActivePHP, но сейчас его нет). У них есть отличный Komodo IDE и его урезанная бесплатная версия Komodo Edit. И недавно компания предприняла шаги к входу на рынок модных сейчас облачных технологии, но не со стороны создания своих облачных сервисов, а со стороны создания своей софтверной платформы. [Честно говоря, не совсем своей, но об этом далее :-)] Так появилась Stackato — «первая облачная платформа для создания private PaaS с поддержкой Python, Perl, Ruby, Node.js и Java».
Если интересно как создать свое «облачное» Perl приложение, прошу под кат.
далее

YAPC::Europe 15–17 августа в Риге

Время на прочтение2 мин
Охват и читатели586
Коллеги, товарищи и друзья!

В середине августа, с 15 по 17 августа, в Риге пройдет очередная ежегодная европейская Perl-конференция YAPC::Europe. Более сотни выступлений, которые готовят активные Perl-специалисты!

Полное расписание опубликовано и доступно на сайте: понедельник, вторник и среда.

Читать дальше →

IRC-тренинг «One day with the Debian Perl Team»

Время на прочтение1 мин
Охват и читатели682
В пятницу, 1 июля в 23:00 MSK (19:00 UTC) состоится IRC-тренинг «One day with the Debian Perl Team».
Тренинг состоится на канале #debian-meeting сети irc.debian.org и будет длиться 1 час.
Ведущий тренинга — Gregor Herrmann.
Организатор тренинга — Francesca Ciceri.
Не пропустите!
UPD: Ивэнт прошел успешно, лог IRC-тренинга находится здесь.

Config::YAML::Modern — работа с .yaml конфигурационными файлами на стероидах

Время на прочтение2 мин
Охват и читатели4.2K
Сегодня зарелизен свеженький модуль для работы с .yaml конфигурационными файлами. Как обычно, доступен общественности на github Config::YAML::Modern, в CPAN будет добавлен немного позднее Config::YAML::Modern.
Почему этот модуль может быть вам интересен? Он умеет несколько клевых трюков, например:
  • корректно смерджить пачку .yaml файлов из директории
  • преобразовать file.name.yaml имя файла в { File => { Name => { _content here_ } }
  • предоставляет чумовой path-resolution в dive-стиле qw/File Name inner_hash 0 my_key/

Области применения? Навскидку — конфигурация проекта при коллективной работе!
Интересно? Подробности под катом.
Читать дальше →

Собираем статистику просмотра постов в LJ/LI

Время на прочтение3 мин
Охват и читатели805
Я видел очень много скриптов на разных языках, которые рассказали бы мне о том, как узнать о своих посетителях. Но они все были очень странные и местами требовали непонятных мне вещей.
В силу того, что всю жизнь писал на Perl'е, подумал что неплохо бы разобраться как дела обстоят с решением подобной задачи.
Сама по себе задача тривиальна и решение её просто. Особенно на PHP.
Но я PHP не люблю. А перл никогда не использовал для web.

Посему за вечер был накидан вот такой код:

Читать дальше →

Стеганография на Perl

Время на прочтение4 мин
Охват и читатели5.2K
Доброго времени суток, уважаемые читатели.

Я — представитель типичной (для Хабра) современной «школоты». Интересуюсь околокомпьютерной тематикой, знаю пару языков программирования, верю, что что-то в этом смыслю. Но, пост не о том.

Просматривая хабр, я нередко натыкался на посты по теме стеганографии. Как начинающего (очень начинающего, ну совсем начинающего) программиста эта тема заинтересовала меня своей, с одной стороны неочевидностью, с другой — относительной простотой реализации. К тому-же, приближалась практика по программированию…
Пораскинув мозгами, я решил построить свой лунапарк, с блэк... написать свою стеганографирующую программу. Об этой программе, трудностях при ее написании и об их преодолении и будет мой первый хабрапост.
Читать дальше →

ActiveState приобрела Phenona

Время на прочтение1 мин
Охват и читатели1K
Сегодня зарегистрированные пользователи Phenona получили письмо от создателя сервиса Даниила Кульченко (Daniil Kulchenko) с анонсом покупки сервиса компанией ActiveState.
подробности

Многопоточный сервер на Perl? Легко!

Время на прочтение3 мин
Охват и читатели15K
Иногда возникает необходимость написать какой-то простенький TCP либо UDP сервер. Например, сейчас у меня вполне успешно в production трудится собственная реализация DHCP (существующие не подходят из-за специфики). Обычно это делается просто — один цикл, слушаем сокет — и вуаля! Но не всегда «тупой» подход оправдан (нужно что-то более сложное — работа в несколько потоков, например), а использование тяжелой артиллерии слишком затратно.

Интересно? Добро пожаловать под кат.
Осторожно! Внутри Perl-код.

Выпущен Perl 5.14

Время на прочтение1 мин
Охват и читатели849
Новая версия Perl — 5.14 — была официально выпущена 14 мая после успешного периода тестирования. Это первый релиз Perl 5, выпущенный по новому графику — выпуск стабильных версий теперь будет происходить раз в год.

В этой версии присутствует целый ряд улучшений и изменений, полный список которых можно найти по адресу http://perl5.git.perl.org/perl.git/blob/HEAD:/pod/perldelta.pod. Среди основных изменений:
  • поддержка Юникода 6.0, наряду со многими усовершенствованиями функций, связанных с Юникодом;
  • улучшена поддержка IPv6;
  • значительно упрощена автоконфигурация CPAN-клиента;
  • новый флаг /r, который делает замены s///, не изменяя содержимое рабочей переменной;
  • новые флаги регулярных выражений, позволяющие указать, что выражение нужно компилировать как ASCII или Юникод;
  • новый синтаксис «package Foo { }»;
  • по сравнению с предыдущими релизами меньше используется память и процессор;
  • множество исправлений ошибок, большое число которых связано с работой Дэйва Митчелла, который исправил некоторые самые важные ошибки на грант The Perl Foundation.
Выпуск этой версии знаменует официальное прекращение поддержки Perl 5.10.

Разработка версии заняла один год с момента выхода Perl 5.12.0. 150 авторов добавили и изменили около 550 тысяч строк в почти 3 тысячах файлах. Эта версия обязана своим выпуском сообществу CPAN, а также всему сообществу Perl. Отдельная заслуга принадлежит Джессу Винсенту — релиз-менеджеру Perl 5.14.

Mojolicious v1.12

Время на прочтение2 мин
Охват и читатели2.9K
Я обнаружил что релиз замечательного перлового фреймворка Mojolicious на Хабре остался совершенно незамеченным. А тем временем, уже доступна версия v1.12, это прискорбно, т.к. теперь на перле стало писать проще чем никогда. Покажу это на реальном примере.
Читать дальше →

Ближайшие события

Perl::Critic + Subversion = внедрение единых практик кодирования в команде

Время на прочтение13 мин
Охват и читатели2.9K
Язык Perl хорошо известен той степенью свободы (a.k.a. TIMTOWTDI), которую он даёт программисту в выборе способа решения той или иной задачи. У этой медали, к сожалению, есть и оборотная сторона, которая может проявиться при командной разработке крупных проектов. Если в команде нет единых практик кодирования и каждый из разработчиков придерживается принципа TIMTOWTDI, то новичку в таком коллективе не позавидуешь.

В 2005 году активный участник Perl-сообщества Дамиан Конвей (Damian Conway) опубликовал книгу Perl Best Practices, в которой собрал и структурировал 256 рекомендаций по написанию понятного, надёжного и поддерживаемого Perl-кода. Краткую шпаргалку с выжимкой из книги можно скачать отсюда.

Годом позже, Jeffrey Thalhammer и группа товарищей выпустила Perl::Critic — гибкий и расширяемый фреймворк, позволяющий автоматизировать проверку Perl-кода на предмет его соответствия большей части рекомендаций из книги Конвея, а также многих других полезных практик.

Perl::Critic подаётся под разными соусами: во-первых, в комплекте с модулем поставляется одноимённая утилита — perlcritic, во-вторых, проверку кода можно оформить в виде тестов с помощью Test::Perl::Critic либо Test::Perl::Critic::Progressive, в-третьих, критик легко интегрируется в VIM и Emacs.

В этом рецепте я расскажу о том как проверять Perl-код на лету при коммите в Subversion-репозиторий. Bon Appétit!

Читать дальше →

Универсальный шаблонный движок за 1 минуту из подручных материалов

Время на прочтение3 мин
Охват и читатели1.9K
Шаблон

Ни для кого сейчас уже не секрет, что шаблонный движок должен быть полноценным языком программирования.

Не стоит забывать, что применение шаблонов далеко не ограничено WEB-ом.
Это генерация различного вида отчётов, генерация кода программ на различных языках, генерация исходных данных для обработки и многое другое.
Вообще, шаблоны хочется применить везде, где много текста и мало логики.

В раздумьях, как бы это сделать побыстрее и подешевле, не следует обманывать себя (в основном, на раннем этапе) мыслями типа «да у меня статический текст, только надо приклеить шапку», «тут нужен только счётчик», «мне надо только вывести дату» и т.д.
Сначала — шапка и счётчик, дальше будет условная вставка блоков (if), потом понадобится генерация таблиц (тут уже нужны циклы и массивы), далее потянутся строковые операции и все остальные конструкции нормального языка программирования.
Читать дальше →

Видео с Perl-воркшоп «Saint Perl — 2» (Санкт-Петербург), 18 декабря

Время на прочтение1 мин
Охват и читатели791
Всего 10 выступлений, к сожалению выложили пока только 6 (остальное в процессе оформления)

1. Russian Perl 6 book — call to envolve and test, докладчик — Шафиев Наим
Существует проект по переводу официальной книги Perl 6 на русский язык. Проект испытывает острую нехватку в переводчиках и тестерах книжки.

2. AnyEvent::HTTPBenchmark, докладчик Шафиев Наим
Создание утилиты нагрузочного тестирования, само по себе тоже являеться утилитой нагрузочного тестирования

3. Morpheus configuration engine — новый подход к конфигурации чего угодно‎, докладчик Матюхин Вячеслав

4. Perl IDEs, докладчик Шафиев Наим

5. Экономим на спичках, или Подробнее о константах, докладчик Евдокимов Денис (Green)

6. CODA — новая система компьютерной безопасности, докладчик Баклановский Максим
Про Perl мало, даже очень мало.

UPD:

7. Парадигма аспектно-ориентированного программирования и ее реализация в Perl, докладчик Александр Котов

8. Как не хранить сессии, докладчик Алексей Капранов

К сожалению докладчики: Erica Gasparini, Алексей Капранов, Вячеслав Матюхин, Денис Евдокимов (Green), так и не прислали презентации, поэтому их доклады пока будет только видео, возможно они её исправятся.

Спасибо организаторам и докладчикам конференции.

Нефункциональное модульное тестирование — «главное чтобы блестел». Часть 2

Время на прочтение2 мин
Охват и читатели2.6K
В прошлом году я написал небольшую заметку о нефункциональном тестировании — т.е. о тестах пытающихся выявить уродливый и сложный в сопровождении код. Конечно такие тесты не гарантируют идеального кода, но какой-то минимальный уровень качества обеспечат т.к. несмотря на очевидность требований этих тестов многие их игнорируют и потом приходиться разбираться в процедурах на 5 000 строк.
Заметка в ЖЖ не вызвала ожидаемой мной обратной связи (хотелось бы знать что я упустил), поэтому несмотря на сопротивление хабра решил выложить продолжение тут (спасибо людям добавившим кармы).
Со времени публикации первой заметки произошли следующие изменения:
Читать дальше →

Пишем icq-бот на perl

Время на прочтение8 мин
Охват и читатели3K
Если вы не знаете, но хотите узнать, как сделать программу, которая постоянно висит в памяти и что-то нужное периодически выполняет, и при этом вы пишете на языке perl — попытаюсь рассказать об этом как можно более понятно.
Я сам люблю подробные инструкции, которые подразумевают, что человек, её читающий, не обязан знать всё, что было пропущено. Пусть лучше он сам пропустит то, что знает и так. Тем более, что о чём-то он может иметь ошибочное представление.

Ну а чтобы не было скучно, совместим этот пример с ещё одной темой — icq, чтобы у нас получился icq-bot.

Читать дальше →

Perl 23 года с нами

Время на прочтение1 мин
Охват и читатели649
image
Языку Perl исполнилось 23 года. В честь этого с 1 по 24 декабря разработчики языка Perl организовали марафон, в рамках которого на страницах блога каждый день один из разработчиков делился какими-то практическими навыками, демонстрирующими те или иные возможности Perl 6.
Завершила марафон статья Ларри Уолла, в которой он подвел итоги 23-летней истории языка Perl.
Поздравляю всех разработчиков использующих этот замечательный язык.

Perl-воркшоп «Saint Perl — 2» в Санкт-Петербурге, 18 декабря

Время на прочтение2 мин
Охват и читатели805
Меньше чем через две недели, 18 декабря, состоится шестой российский Perl-воркшоп «Saint Perl — 2» в Санкт-Петербурге.

Сайт: event.perlrussia.org/saintperl2

Еще не поздно зарегистрироваться или подать заявку на доклад. Upd: появились новые доклады.

На сегодня у нас такие выступления:

  • Martin Berends. ‎Perl 6 Implementations in December 2010‎
  • Martin Berends. ‎Perl 6 Database Interfacing‎
  • Алексей Капранов (‎kappa‎). ‎Как не хранить сессии
  • Александр Котов. ‎Парадигма аспектно-ориентированного программирования и ее реализация в Perl‎
  • Вячеслав Матюхин. ‎Morpheus — новый подход к конфигурации чего угодно‎
  • Максим Баклановский. ‎CODA — новая система компьютерной безопасности
  • Наим Шафиев — Perl IDEs‎

Расписание будет составлено со дня на день, а пока можем сообщить, что ориентировочно регистрация начнется в 10:30, а открытие конференции — в 11:00.

Те, кто приезжают из других городов, могут найти подходящую гостиницу на сайте мероприятия: event.perlrussia.org/saintperl2/booking.html, там же показано расстояние от гостиницы до место проведения.

Билет на поезд — на сайте ticket.rzd.ru, на самолет — awad.ru.

Читать дальше →

Вклад авторов