Многие уже наслышаны о производительности СУБД Tarantool, её возможностях и особенностях. Например, у него есть классное дисковое хранилище — Vinyl, кроме того, он умеет работать с JSON-документами. Но в многочисленных публикациях обходят стороной одну важную особенность. Обычно БД рассматривают просто как хранилище, но всё же отличительная черта Tarantool — это возможность писать код внутри и очень эффективно работать с этими данными. Под катом рассказ, как мы строили одну систему почти полностью внутри Tarantool, написанный в соавторстве с Игорем igorcoding Латкиным.

Perl *
Высокоуровневый интерпретируемый динамический язык
Отчет с Moscow.pm 2 февраля

2 февраля в нашем московском офисе прошла встреча Perl-программистов Moscow.pm, ставшая уже традиционной на протяжении 10 лет. Под катом вы сможете найти видео и презентации трех докладов:
- «Автотесты», Вадим Пуштаев, программист отдела внутренней разработки Поиска Mail.Ru
- «Введение в асинхронно-событийное программирование на Perl», Андрей Еньшин, младший программист команды разработки веб-бэкенда Облака Mail.Ru
- «Coro. Intro», Евгений Вансевич, программист Почты Mail.Ru
Модуль HTML::Phl для обработки HTML-документов, содержащих инструкции с кодом Perl

В статье приведена спецификация модуля HTML::Phl для работы с HTML-документами, содержащими код языка программирования Perl.
Задача модуля HTML::Phl — выбрать из текстового документа формата HTML, размещенный в нем особым образом perl-код, выполнить кое-какие манипуляции над ним и остальным кодом, объединить полученное в единый код perl и «скормить» всё это 'eval', получая на выходе сгенерированную HTML-страницу, воспроизводимую веб-браузером.
1 <HTML>
2 <HEAD>
3 <META content="text/html; charset=UTF-8" http-equiv="Content-Type">
4 <TITLE>Пример PHL</TITLE>
5 </HEAD>
6
7 Создаем два дочерних процесса f1 и f2<br>
8
9 %pl include("process_win.phl", "fork decode=cp1251", "f1");
10 %pl include("process_utf.phl", "fork decode=utf8", "f2");
11
12 Ждем завершения процессов<br>
13
14 <%pl my %join = include("JOIN", "f1 f2"); %>
15
16 Результаты выполнения процессов<br>
17
18 <%pl
19 foreach my $key(keys(%join)) {
20 if (ref $join{$key}) {
21 print "процесс '$key' - результат: ";
22 for (my $i = 0; $i <= $#{$join{$key}}; $i++) {
23 print "'${$join{$key}}[$i]' ";
24 }
25 print "<br>";
26 } else {
27 print "процесс '$key' - результат: '$join{$key}'<br>";
28 }
29 }
30 %>
31
32 </HTML>
Статья написана в ознакомительных целях, разработка модуля носит концептуальный характер, и его надежное применение нуждается в дополнительном тестировании.
Лень, нетерпение и самомнение — три главных добродетели программиста. С днем рождения, Ларри Уолл
— Ларри Уолл
- Ларри всегда по определению прав по поводу того, как Perl должен себя вести. Это значит, что у него финальное право вето на основные функциональные возможности.
- Ларри позволительно менять свое мнение по любому вопросу спустя какое-то время, независимо от того, использовал ли он Правило 1.

Компактная биография Ларри выглядит вот так (Geek-код): GC/CS/E/H/IT/L/M/MU/PA/P/S/SS/TW/O d(+++)>+ s: a+>++>+++$ C++++$ UBAHS*++++$ P+++++(--)$ L !E? W+>++ N+++@ K+++>++++++@ w$ !O M->+ V--() PS+(-) PE(++) Y+ PGP->+ t+() 5 X? R>* tv@ b++>+++ DI+++ D? G(-) e++>+++@ h----() r+++ y++++ (расшифровка)
Ларри, как потомственный пастор, в детстве мечтал стать служителем церкви. Но пришлось идти в ИТ. Студетнтом он 3 годаработал в компьютерном центре университета. После универа, вместе с женой работали переводчиками Библии, изучали лингвистику, в надежде на то, что где-нибудь в Африке обнаружется племя со своим языком, но без письменности, и они разработают под этот язык письменность и одарят туземцев. В роли туземцев, спустя годы, оказались программисты.
Из-за денег, Ларри успел поработать в Unisys, NASA (JPL) и O'Reilly.
Из-за лени, нетерпения и самомнения Ларри написал rn (популярный клиент для Usenet) и утилиту patch (под UNIX). Чтобы стать пожизненным великодушным диктаторм, он написал язык Perl.
Ларри верит в типологию Майерс-Бриггс (INFP), а еще он двукратный мировой чемпион по запутанному коду на С.
Лекции Техносферы. Программирование на Perl (осень 2015)

Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на Perl. Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова. Также в Техносфере есть еще несколько открытых курсов, 1 сентября на них открывается запись. В этом семестре вас ждет приятное дополнение: они будут подкреплены методическим материалом, который будет содержать достаточно информации, чтобы по нему можно было вспомнить материал любой лекции и при необходимости более глубоко её изучить.
Цель курса «Программирование на Perl» — узнать возможности языка (его сильные и слабые стороны), научиться писать программные продукты на этом языке, научится быстро ориентироваться в чужом коде. Под катом находятся все лекции в формате видео и краткое описание к ним.
Гейзенбаг, или как Луна портит код
Луна убывает, такое бывает… ©Земфира
Гейзенбагом называют ту разновидность программных глюков, которая возникает не пойми откуда, не поддается отладке и обнаружению. Словом, ведет себя как тот самый Неуловимый Джо или кроковский кот из недавнего поста. Мне по работе приходилось сталкиваться с такими и про себя я называл это эффектом квантовой механики до тех пор, пока не узнал, что близкое по смыслу название уже давно придумали. Бывает, посылаешь заказчику отладочный бинарник, который всего лишь записывает в журнал больше событий вокруг предполагаемого источника проблемы и после этого проблема исчезает!
heisenbug /hi:'zen-buhg/ n.
A bug that disappears or alters its behavior when one attempts to probe or isolate it.

Предлагаю вашему вниманию свою небольшую познавательную коллекцию квантовых эффектов в программировании.
Эпизод I, OpenOffice не печатает во вторник
Историю этого замечательного багрепорта можно почитать на Ubuntu Launchpad, а я вкратце изложу суть для тех, кому не сподручно читать по ссылке. В системной утилите file
был баг из-за которого, файлы содержащие в 4-м байте Tue
определялись как Erlang JAM. Дефект присутствовал в версиях file
4.21 и 4.24 и был вызван ошибкой в magic
файле.
Эффективное кеширование. От теории к практике

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.
Вне зависимости от того, строите ли вы хайлоад сервис для миллионов посетителей или проектируете мобильное приложение, пишите операционную систему или СУБД — ключевое звено, влияющее на конечную стоимость системы и на отзывчивость интерфейса/сервиса — это кеш.
История языков программирования: Perl — необычный язык, созданный лингвистом для программистов

Язык программирования Perl создал Ларри Уолл (Larry Wall) в 1987 году, когда он работал системным программистом в американской компании Unisys. Цели, которые преследовал Ларри при разработке нового языка программирования, отражены в его названии — PERL, которое позднее стало расшифровываться как Practical Extraction and Report Language, то есть «практический язык извлечения „данных“ и „создания“ отчетов».
Одна из легенд о происхождении Perl гласит, что в то время уже существовал язык с таким названием, поэтому Ларри сократил название на одну букву, не изменив произношения. По иронии судьбы, сегодня тот язык не помнит никто, кроме историков, а Perl известен всему миру.
Хотя, по другой версии, Ларри назвал созданный им язык по имени своей невесты.

Ларри Уолл
На становление Perl повлияли языки Ada, Basic, Fortran, Lisp, Pascal и, конечно, язык C. Perl впитал в себя разные течения компьютерной науки: процедурное, модульное, функциональное и объектно-ориентированное программирование, макрообработку текста, а кроме этого — культуру ОС Unix, с ее богатым набором команд и утилит, стройной продуманной архитектурой и унифицированным подходом к представлению данных.
Приглашаем на YAPC::Russia 2016

В субботу 25 июня в московском офисе Mail.Ru Group пройдёт ежегодная конференция YAPC::Russia, посвящённая языку программирования Perl и его сообществу. В разные годы она проходила в Москве, Киеве и Санкт-Петербурге. На конференцию съезжаются Perl-профессионалы из разных городов и стран, чтобы обменяться опытом, завести новые знакомства в своей сфере и пообщаться с единомышленниками в неформальной и приятной обстановке. Программа встречи ждет вас под катом.
Вышла версия 2.1 Perl плагина для IntelliJ IDEA

Очередная версия плагина для IntelliJ IDEA поддерживает Template Toolkit 2, лучше работает с константами и методами объектов а так же содержит несколько небольших фиксов.
Synology DSM, Perl и Mojolicious
Раз вспомнили про Synology DSM в Одновременное монтирование зашифрованных папок в Synology DSM, то решил показать как при помощи Perl и веб фреймворка Mojolicious сделать простое приложение под свои нужды. Мне пришлось написать на коленке утилиту SynDevInfo, для вывода необходимой информации по устройству в браузере, т.к. уважаемый support не знает GNU/Linux, а пользователи не могут зайти по ssh.
Под катом будет описана структура пакета, скрипт запуска приложения и сам скрипт на Mojolicious::Lite
Разработка Docker контейнеров с помощью системы многоцелевых сценариев Sparrow
Ближайшие события
Вышла версия 2.0 Perl плагина для IntelliJ IDEA

Стала доступна для загрузки вторая версия Perl плагина для IDE от JetBrains. В этой версии появилась последняя из крупных фич, которую я хотел реализовать — отладчик.
Разработка Sparrow плагинов
Приветствую!
В предыдущей статье я писал о SparrowHub — репозиторий готовых утилит для системного администрирования. Что же, время прошло, и теперь хочется рассказать о том КАК разрабатывать эти самые утилиты и загружать их на SparrowHub для повторного использования кем-либо.
Вышла версия 1.5 Perl плагина для IntelliJ IDEA

Вышел знаковый для меня релиз плагина. Год назад я начал работу над ним и иногда не верится что все это было сделано. В репозиторий прошло более двух тысяч коммитов.
Данная версия привносит поддержку POD, хелперов для Mojolicious, контекстную подсказку и много приятных мелочей.
SparrowHub — репозиторий готовых утилит для системного администрирования
SparrowHub — проект, целью которого является распространение различных готовых решений для задач системного администрирования и не только.
Несмотря на то, что существует масса решений по автоматизации задач системного администрирования, определенная ниша в этой области все же остается незанятой. Что мы делаем, когда хотим решить какую-то специфическую задачу? Например, проверить логи нашего ssh сервиса на наличие неудачных попыток логинов с целью позаботиться о секьюрности наших серверов? — Берем и пишем однострочник, состоящий из bash команд вида grep, sed, awk и так далее, ну, или можем написать скрипт на Perl. Отлично, все работает. Eсть решение, которое устраивает нас. И мы пользуемся им. Вопрос в том, как мы хотим сохранить результаты наших трудов, что бы поделиться ими с другими или же когда пройдет время снова воспользоваться придуманным решением. Вот тут и возникает проблема.
Быстрый анализ транзитного трафика
- шлюзом выступает устройство провайдера, а в сети есть только файл-сервер;
- данные о трафике нужны не постоянно, а от времени к времени;
- устройство не поддерживает возможность запуска на нем сторонних программ;
- трафика столько, что сервер после запуска tcpdump-а «клеит ласты»;
- или наоборот, настолько мало, что его уровень сравним с долей (хотя и значительной) обычного трафика?
Погоня с препятствиями
Какая медлительная страна! — сказала Королева. — Ну, а здесь,
знаешь ли, приходится бежать со всех ног, чтобы только остаться
на том же месте! Если же хочешь попасть в другое место, тогда
нужно бежать по меньшей мере вдвое быстрее!
Льюис Кэрролл "Алиса в Зазеркалье"
Сегодня, я хочу рассказать об удивительной и недооценённой игре, с которой я познакомился чуть менее двух лет назад. В каком-то смысле, именно с этой игры, а также с Ура, началось моё знакомство с Дмитрием Скирюком. В те дни я только начинал интересоваться настольными играми. Мои познания были скудны и, во многом, наивны. Такие игры как "Чейз", буквально открыли для меня новый необъятный мир. Даже сейчас, работа над этой игрой, в большой степени, напоминает детективную историю. В этом отношении, игра "Chase" полностью оправдала как своё название так и сходство с псевдонимом известного американского писателя.
Вышла версия 1.4 Perl плагина для IntelliJ IDEA

Новая версия Perl плагина для продуктов JetBrains стала доступна для скачивания из официального репозитория. Главные фичи: оптимизация и поддержка HTML::Mason.
А теперь, немного подробнее: