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

В статусе job-сервера такие задачи видны с «перекошенным» счетчиком:

new_feature 14 0 0

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

Мариан Маринов, технический архитектор компании SiteGround, сегодня добавил в интерфейс команду rmfunc, которая позволяет удалить функцию из списка зарегистрированных.

Пользоваться новой функцией крайне просто:

$ telnet localhost 4730
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
status
new_feature 14 0 0
.
rmfunc new_feature
OK
status
.

Запрос на удаление функции, для которой существует «живой» воркер, завершается с ошибкой ERR there are still connected workers.

P. S. Сейчас весь код находится в отдельной ветке.

Несмотря на то, что проектирование интерфейсов — задача, которую програмисты не всегда решают успешно, картинка на новом сайте YAPC::Europe 2010 — великолепна.

Тема конференции — The Renaissance of Perl, проходит она в Италии, и лук в стиле записок Леонардо Ди Каприо, — прекрасен.

YAPC::Europe 2010

Да, а на ютубе (британцы говорят ючуб, кстати) есть ролик про качества перла.

Да здравствует перл! Этот блог работает на перле, но писали его неизвестные мне люди Я тут зашел куда-то в админской части, и увидел массу комментариев, которые, оказывается, висят неодобренными. :-O 

Часть я пооткрывал, а часть (ай!) удалил. Перл + юзабилити часто так же несовместимо, как и многие другие продукты, созданный программистами.

И еще я забыл с собой зарядное устройство от телефона.

А следующий пост будет про автобус номер один, которую начали обсуждать в комментах в прошлый раз.

Только что вернулся в гостиницу с седьмого голландского Perl-воркшопа. Он проходил в хостеле Stayok в городе Арнеме.

Это город в ста километрах от Амстердама, в часе езды электричкой (и еще полчаса от вокзала, то есть почти что московские расстояния от спальных районов до центра :-)

Как всегда, я сразу обращаю внимание на посещаемость, и даже под вечер она была около 90 % — из 39 зарегистрированных посетителей я насчитал 35.

Часть выступлений была на голланском языке (он напоминает смесь немецкого и английского с примесью французской картавости), поэтому все остальные, которые на английском, сразу стали вдвое интереснее :-)

Особенно хорош был Мартин Берендз, сделавший обзор интерпретаторов и компиляторов Perl 6, существующих в марте 2010 года. Мартин упомянул неофициальное понятие bus number, которое равно числу ведущих разработчиков проекта.

Леон Тиммерманс подкинул еще одну лингвошутку — unintentional feature (имеется в виду баг).

Через какое-то время должны появиться видеозаписи (их делали местные организаторы).

А после обеда сначала пошел мокрый снег, а потом — к вечеру — дождь; электричку пришлось ждать полчаса; и я теперь весь промокшый, но довольный :-)

Часть I
История и статистика

Perl 5.10 увидел свет в 20 день рождения языка — 18 декабря 2007 года. Уже прошло более двух лет, и за это время успели появиться девелоперские версии 5.11.0, 5.11.1, 5.11.2, 5.11.3 и 5.11.4, и вот-вот появится версия 5.12, предназначенная для использования в реальных приложениях.

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

На CPAN сейчас хранится около 80 000 модулей в 20 000 дистрибутивах, список авторов содержит около 8000 имен. Как часто здесь используются фичи Perl 5.10?

Ответ: новые фичи встречаются в двух сотнях модулей, созданных сотней авторов.


Часть II
Фичи Perl 5.10

Кратко о том, что появилось в Perl 5.10.

— Встроенная функция say, которая работает аналогично print, но добавляет перевод строки.

— Оператор сопоставления (смартматчинга) ~~ сопоставляет свои аргументы согласно здравому смыслу (и, разумеется, четким правилам, описанным в документации). Например, в этих примерах аргументы имеют разный тип, но используется один и тот же оператор.

$a ~~ /\d/

$a ~~ @list

@list ~~ %hash

— Составной оператор выбора под условным названием switch. С помощью новых ключевых слов given, when и default возможно создать условную конструкцию, аналогичную switch/case в C и других языках. Важное отличие в том, что внутри given происходит не простое сравнение, а сопоставление (или смартматчинг).

given($x) {
    when(/a/) {...}
    when('b') {...}
    default   {...}
}

— Модификатор state позволяет создавать лексические переменные, сохраняющие значение между вызовами подпрограммы. Использование state похоже на объявление автоматической переменной со словом static в C.

sub counter {
    state $c = 0;
    return ++$c;
}

— Новшества в регулярных выражениях. Регулярные выражения существенно переработаны, в частности, добавлены именованные сохраняющие скобки. В этой статье про регулярные выражение почти не упоминается, поскольку они достойны отдельного рассказа.

(?<name>)
\K
\R
%+
%-
\g<name>

— Бинарный оператор defined-or (//). Возвращает первый из аргументов, который содержит определенное (не undef) значение. Может использоваться и в варианте с присвоением.

Следующие два примера иллюстрируют логику, которая часто прослеживается в сообщениях о вакансиях.

$city = $arg // 'Moscow';

$vacancy{city} //= 'Moscow';


Продолжение будет.

10+

| Комментариев: 6

На основе записей в трудовой книжке.

1999, Москва

— Я программирую на Perl. Особенность в том, одно и то же действие можно записать по-разному. Это и непривычно, и немного сложно, но интересно.

Это сказал мой товарищ, который в то время делал сайт одного из поставщика радиодеталей. Я же в то время писал на C++ программы для обработки данных физических экспериментов по сталкиванию частиц, делал статистический анализ данных, замаскированных шумом, и пытался применять новейшие математические приемы — вейвлеты — для анализа электрокардиограмм.

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

2000—2010, Москва

С этого года Perl стал меня кормить. За десять лет я совершенствовал себя и свои знания в журнале «Радио», фонде научных исследований «Прагматика культуры», студии Артемия Лебедева (да-да, там я тоже делал некоторые вещи на перле), российском информационном агентстве «РИА Новости», компании Q1 и в ООО «Гностик».

2010, Амстердам

В марте я подписал контракт с компанией Booking.com — еще одним лидером интернетов, который знает толк в перле и где не стыдно работать.

Из 49 ответов на вопрос «@var — это массив или список?», оставшихся после отсеивания накруток сторонников массивов, сложилась такая картина общественного мнения:

Trim

| Комментариев: 2

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

Вместо двух замен

$str =~ s/^\s+//;
$str =~ s/\s+$//;

Себастьян указывает на такой вариант:

$str =~ s/^\s*(.*?)\s*$/$1/;

Интересно почитать и комментарии, где предлагают несколько похожих вариантов с альтернативами в регулярном выражении:

$str =~ s/(^\s+|\s+$)//g;

$str =~ s/(?:^\s+|\s+$)//g;

$str =~ s/^\s*|\s*$//g;

$str =~ s/^\s+|\s+$//g;

P. S. В комментариях, кстати, видно, как почти одно и то же выражение разные люди записывают по-разному.

Что для вас @var?

| 1 комментарий

Как вы называете в повседневном обиходе переменную с именем @var? Массивом или списком?

Проголосуйте

Perl на РИТ++

| Нет комментариев

РИТ++Открыт сайт конференции РИТ++ (Российские интернет-технологии) 2010 года. Конференция пройдет в Москве 12–14 апреля.

В этом году на РИТ++ отдельным потоком пройдет «вложенное» мероприятие — конференция MayPerl (да-да, в апреле).

Одновременно объявляется прием заявок на выступления на доклады. Предпочтение отдается докладам, попадающие в заявленные темы, которые хотелось бы осветить на мероприятии:

  • Патрик Мишо (Patrick Michaud)Perl в крупных организациях;
  • Perl 6;
  • Perl в сравнении с другими языками программирования.

В конференции примет участие Патрик Мишо (Patrick Michaud), архитектор компилятора Perl 6 Rakudo. Именно этой весной планируется выпустить первый релиз.

Регистрация, оплата и личный кабинет находятся на общем сайте конференции РИТ++. Присоединяйтесь (=заставьте своего работодателя вложиться в Perl)!

Страницы

  • img