Пятница, 29 июля

Хабрахабр: Метки / perl: Запуск сценариев автоматизации sparrow на удаленных серверах с помощью инструменатрия SparrowDO/SparrowUP

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


До недавнего времени запуск подобных сценариев был ограничен консольным клиентом ( sparrow или sparrowdo ), сегодня я бы хотел презентовать пилотный проект по автоматической установке и запуску sparrow сценариев на удаленных серверах посредством централизованного web сервиса — SparrowUP.


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

Суббота, 23 июля

Мини-портал Perl на Opennet: Выпуск Rakudo Star 2016.07, дистрибутива Perl 6

Представлен релиз пакета Rakudo Star 2016.07, включающего компилятор Rakudo, виртуальную машину MoarVM, документацию, модули и инструменты, необходимые для разработки на языке Perl 6. Компилятор соответствует спецификации Perl v6.c, за исключением поддержки расширенных макросов, неблокирующего ввода/вывода и ряда мелких особенностей, которые планируется довести до рабочего состояния в будущих выпусках. В качестве виртуальной машины для исполнения байткода предлагается MoarVM, которая проходит все необходимые тесты (альтернативный бэкенд на базе JVM пока не обладает всей необходимой функциональностью).

Понедельник, 11 июля

Хабрахабр: Метки / perl: Как развивался Perl — необычный язык, созданный лингвистом для программистов



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

Одна из легенд о происхождении Perl гласит, что в то время уже существовал язык с таким названием, поэтому Ларри сократил название на одну букву, не изменив произношения. По иронии судьбы, сегодня тот язык не помнит никто, кроме историков, а Perl известен всему миру.

Хотя, по другой версии, Ларри назвал созданный им язык по имени своей невесты.


Ларри Уолл

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

Четверг, 7 июля

Хабрахабр: Метки / perl: Sparrowdo — простой инструмент управления конфигурациями

Здравствуйте! В данной статье хотел бы рассказать о простом инструменте управления конфигурациями — Sparrowdo. Скажу сразу, что система Sparrowdo базируется на использовании так называемых Sparrow плагинов, o которых мною был уже написан ряд статей на habrahabr.ru


image image


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

Пятница, 24 июня

Shoor/нал: Затягивает

Вроде, недавно только поменял процесс подпиливания ильменского сайта — там теперь TDD — а уже каким-то образом 220 тестов написал. Хотя файлов, конечно, сильно меньше :-)

All tests successful.
Files=11, Tests=220, 14 wallclock secs ( 0.12 usr  0.02 sys +  9.66 cusr  0.64 csys = 10.44 CPU)
Result: PASS

Хотя тесты сразу надо было начинать писать, с момента начала переписывания тринадцать месяцев назад.

http://shoorick.ru/2016/06/24/involve/

Четверг, 23 июня

Хабрахабр: Метки / perl: Приглашаем на YAPC::Russia 2016



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

Среда, 22 июня

Мини-портал Perl на Opennet: 25 июня состоится конференция по языку Perl - YAPC::Russia 2016

В эту субботу (25 июня) пройдет всероссийская конференция по языку Perl - YAPC::Russia 2016.

Понедельник, 20 июня

Хабрахабр: Метки / perl: Вышла версия 2.1 Perl плагина для IntelliJ IDEA



Очередная версия плагина для IntelliJ IDEA поддерживает Template Toolkit 2, лучше работает с константами и методами объектов а так же содержит несколько небольших фиксов.
Читать дальше →

Пятница, 10 июня

Хабрахабр: Метки / perl: Synology DSM, Perl и Mojolicious

Раз вспомнили про Synology DSM в Одновременное монтирование зашифрованных папок в Synology DSM, то решил показать как при помощи Perl и веб фреймворка Mojolicious сделать простое приложение под свои нужды. Мне пришлось написать на коленке утилиту SynDevInfo, для вывода необходимой информации по устройству в браузере, т.к. уважаемый support не знает GNU/Linux, а пользователи не могут зайти по ssh.


Под катом будет описана структура пакета, скрипт запуска приложения и сам скрипт на Mojolicious::Lite

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

Вторник, 7 июня

Pilat66 blog: Блокировка выполнения скрипта

Существуют разные подходы. Обычно используется файл, в котором пишется PID процесса, но это «внутренняя» блокировка, программа сама себя блокирует, зная свой PID. Но существуют и другие подходы для внешней блокировки вызываемой программы, если программа сама не умеет блокироваться.

lockfile

Типовое использование:

#!/bin/bash lockfile -r 0 /tmp/the.lock || exit 1 # Что-то тут делаем, что [...]

Четверг, 2 июня

Хабрахабр: Метки / perl: Разработка Docker контейнеров с помощью системы многоцелевых сценариев Sparrow

В этой статье я хотел бы рассказать как можно создавать сценарии сборки имиджей для Docker контейнеров с помощью системы многоцелевых сценариев Sparrow*.


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

Четверг, 26 мая

Хабрахабр: Метки / perl: Вышла версия 2.0 Perl плагина для IntelliJ IDEA



Стала доступна для загрузки вторая версия Perl плагина для IDE от JetBrains. В этой версии появилась последняя из крупных фич, которую я хотел реализовать — отладчик.
Читать дальше →

Мини-портал Perl на Opennet: Вторая версия плагина с поддержкой языка Perl для IntelliJ IDEA

Доступна для загрузки вторая версия плагина с поддержкой разработки на языке Perl для IDE от JetBrains. В новой версии появилась последняя из крупных запланированных возможностей - отладчик. Основные особенности отладчика.

Понедельник, 23 мая

Хабрахабр: Метки / perl: API к zadarma.com на perl и python


У zadarma.com есть API к их сервисам на языке php, но на моих серверах этот язык отсутствует. Ставить php ради обращений к задармам желания не было. Поискал в интернете не нашел ничего для perl и python.
Написал для себя, что получилось под катом.
Читать дальше →

PerlNews.Ru: Конференция YAPC::Russia 2016 пройдёт 25 июня в Москве

Анонсирована очередная ежегодная конференция YAPC::Russia. В этом году мероприятие пройдёт 25 июня в Москве в офисе Mail.Ru Group. Участие в конференции бесплатное, но необходимо зарегистрироваться.

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

Также, как и в прошлом году, организаторы обещают прямую видеотрансляцию докладов.

Темы: YAPC

Суббота, 21 мая

XPoint.ru | Программирование::Perl::Модули: Как использовать Inline::CPP ?

Разве достаточно ли в одну папку со скриптом Sproba3.pl поместить папку Inline-CPP-master?? Вижу что нет.
Я не вполне пойму суть всего и конкретные методы. Может кто-то рассказать и.или показать?

Sproba3.pl

use Modern::Perl;
use Inline 'CPP' => "./calc.cpp";

say calc($ARGV[0]);

Понедельник, 16 мая

Хабрахабр: Метки / perl: Разработка Sparrow плагинов

Приветствую!


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


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

Четверг, 12 мая

PerlNews.Ru: Perl 5.24 стал быстрее

Одним из улучшений в Perl 5.24 стало ускорение арифметических операций. Начиная с Perl 5.8.0, когда появилась поддержка 64-битных целых, скорость арифметических операций снизилась из-за необходимости проверки различных граничных условий. Теперь же проверяется общий случай, что снимает необходимость проверки всех частных случаев, что в целом оптимизирует производительность.

Синан Унур в своей статье продемонстрировал, что эта оптимизация даёт выигрыш в 30% по сравнению с Perl 5.20.2 в бенчмарке nbody, который использует большое число арифметических операций. Благодаря этому Perl 5.24 обогнал Python 3 в данном тесте.

Темы: Perl benchmark

Вторник, 10 мая

Мини-портал Perl на Opennet: Релиз языка программирования Perl 5.24.0

После года разработки состоялся релиз новой стабильной ветки языка программирования Perl - 5.24. При подготовке нового выпуска было изменено около 360 тыс. строк кода, изменения затронули 1800 файлов, в разработке приняли участие 77 разработчиков.

Понедельник, 9 мая

PerlNews.Ru: Выпущен Perl 5.24.0

9 мая 2016 года была выпущена новая стабильная версия языка программирования Perl 5.24.0. Разработка велась примерно 11 месяцев, начиная с Perl 5.22.0, и содержит примерно 360 000 изменённых строк среди 1800 файлов от 77 авторов.

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

Темы: Perl

Пятница, 6 мая

PerlNews.Ru: Coro в Perl 5.24

В тот момент, когда перед выпуском Perl 5.24 остались считанные дни, в рассылке perl5-porters внезапно вспомнили, что в новом Perl по-прежнему остаётся сломанным модуль Coro Марка Леманна. Одна из проблем была связана с тем, что в Perl 5.22 структура MGVTBL (магическая виртуальная таблица), формирующаяся во время компиляции perl, стала константной. Coro делал переопределение в таблице, поэтому и не мог работать с новым Perl 5.22. Было предложено откатить это изменение до выхода Perl 5.24.

Вносить подобные изменения в последние дни перед выпуском слишком рискованно, поэтому произошёл спонтанный мозговой штурм проблемы, в результате которого удалось выяснить очень много интересных деталей. Оказалось, что переопределение MGVTBL требовалось Coro только для того, чтобы переопределить работу с хендлерами сигналов __DIE__ и __WARN__ для магического хеша %SIG, что в свою очередь было сделано из-за бага Perl, когда присутствует рассинхронизация в PL_warnhook и $SIG{__WARN__}. Теоретически оба должны ссылаться на хендлер обработки предупреждений, но некоторые кривые XS-программы, в том числе входящие в базовый Perl (например, find в PerlIO::Layer), могут изменить только PL_warnhook, забыв про $SIG{__WARN__}. То есть это был банальный костыль в Coro для обхода реальной проблемы в Perl. Эта проблема была зафиксирована в баге #125349,

Более того, оказалось, что Coro можно было приспособить для работы с константной MGVTBL, Dave Mitchell и Father Chrysostomos продемонстрировали патч, который позволяет Coro работать без проблем на Perl 5.22.

Очевидно, что если бы этот мозговой штурм прошёл год назад, проблема была бы решена раньше и не возникло бы таких явлений как stableperl. Вероятно штурм бы и не потребовался, если бы Марк сообщил о проблеме в Perl, когда столкнулся с ней впервые.

Темы: perl bug Coro

Четверг, 5 мая

Сообщество ru_perl в LiveJournal: Моджо сдох

Внезапно с утра обнаружил что помер проект на моджо, рестарт приложения и рестарт nginx не помогло. Снёс nginx, установил заново, воткнул простейшие настройки для моджо проекта:

upstream myapp {
server 91.136.234.5:3002;
}
server {
server_name domen.ru www.domen.ru;
listen 80;
charset UTF8;
index index.html;
root /var/www/domen/public;

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root /var/www/domen/public;
expires 14d;
}
location / {
proxy_pass http://myapp;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "http";
}
}


обновил моджо:

# mojo version
CORE
Perl (v5.18.2, linux)
Mojolicious (6.61, Clinking Beer Mugs)

OPTIONAL
EV 4.0+ (4.22)
IO::Socket::Socks 0.64+ (0.68)
IO::Socket::SSL 1.94+ (1.965)
Net::DNS::Native 0.15+ (0.15)

This version is up to date, have fun!

перезалил проект, назначил права доступа, запустил проект:

su user, cd /var/www/domen, hypnotoad script/myapp,

получаю: 504 Gateway Time-out.

Проект висит в процессах и слушает порт, смотрю так: netstat -tupnl.

tcp 0 0 91.136.234.5:3002 0.0.0.0:* LISTEN 1459/myapp

Прописалл в iptables:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000:3050 -j ACCEPT

это помимо того что уже есть правило для 3002 порта,


Что это может быть? Может что-то уже поменялось в фреймворке, пока я картоху сажал? )))

Среда, 27 апреля

Мини-портал Perl на Opennet: Выпуск Rakudo Star 2016.04, дистрибутива Perl 6

Состоялся релиз пакета Rakudo Star 2016.04, включающего компилятор Rakudo, виртуальную машину MoarVM, документацию, модули и инструменты, необходимые для разработки на языке Perl 6. Это второй выпуск после объявления релиза языка программирования Perl 6. Компилятор соответствует спецификации Perl v6.c, за исключением поддержки расширенных макросов, неблокирующего ввода/вывода и ряда мелких особенностей, которые планируется довести до рабочего состояния в будущих выпусках. В качестве виртуальной машины для исполнения байткода предлагается MoarVM, которая проходит все необходимые тесты.

Воскресенье, 24 апреля

PerlNews.Ru: Sawyer X новый pumpking Perl

Рикардо Сигнес сообщил, что новым добровольцем, вызвавшимся быть ответственным за релизы Perl, стал Sawyer X, известный в сообществе израильский Perl-программист.

Рикардо заметил, что предыдущий pumpking Джес Винсент сопровождал Perl два года, сам Рикардо — четыре (два в квадрате), следовательно Сойеру предстоит по меньшей мере 4² = 16 лет увлекательной работы.

В рассылке perl5 porters началось обсуждение новости. Уже предрекают появление Dancer в базовом Perl, вместо ушедшего оттуда модуля CGI.

Темы: community

PerlNews.Ru: Рикардо Сигнес получил серебряного верблюда

silver camel

На проходящем Perl QA Хакатоне в английском городе Рагби Рикардо Сигнес получил довольно уникальную награду: серебряный верблюд. Это первое публичное Perl-мероприятие, которое посетил Рик после анонса, что Perl 5.24.0 станет его последним релизом. Награда стала данью признания выдающихся заслуг Рикардо Сигнеса в его работе над выпусками Perl на протяжении последних пяти лет.

Награда «серебряный верблюд» появилась в 2014 году, когда ею впервые был удостоен Марк Китинг за его вклад в развитие Perl-сообщества в Соединённом Королевстве. Дело в том, что Марк являлся членом маркетингового комитета фонда перл и никогда бы не смог получить награду «Белый верблюд», поскольку именно фонд перла выбирает лауреатов награды и по этой причине не может выбирать никого из жюри. «Серебряный верблюд» позволил изящно обойти это ограничение.

Темы: community

Четверг, 14 апреля

PerlNews.Ru: Последний релиз Рикардо Сигнеса

Рикардо Сигнес, текущий релизер стабильных релизов Perl (pumpking), сообщил о том, что релиз v5.24.0 и одновременно выходящий релиз v5.25.0 для разработчиков, станут его последними релизами Perl.

Рикардо на протяжении последних почти 5 лет выпускал стабильные релизы Perl, начиная c 5.16.0. Он обещает по-прежнему активно участвовать в сообществе, но уже не в роли pumpking. Тема письма в perl5-porters «...and slide on the ice» является окончанием цитаты из эпизода MASH:

Ladies and gentlemen, take my advice. Pull down your pants, and slide on the ice

Maj. Sidney Freedman

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

Темы: community

PerlNews.Ru: Выпущен Perl 5.24.0-RC1

Не откладывая в долгий ящик, Рикардо Сигнес выпустил первый «настоящий» релиз-кандидат новой мажорной версии Perl 5.24.0-RC1. Список изменений по сравнению с Perl 5.22.0 доступен в perldelta. Среди основных изменений можно отметить:

  • Постфиксное разыменование больше не экспериментальное, соответственно удалена поддержка авторазыменования.

  • Поддержка стандарта Юникод 8.0.

  • Удалена поддержка лексической переменной my $_.

  • Оптимизирована процедура входа и выхода в/из область видимости, что ускоряет вызов функций, циклов и блоков кода.

  • Прирост в скорости в регулярных выражениях с фиксированной строкой поиска за счёт использования соответствующей аппаратной поддержки.

  • Множество исправлений ошибок.

Темы: Perl

Понедельник, 11 апреля

PerlNews.Ru: Релиз-кандидаты Perl 5.22.2-RC1 и 5.24.0-RC0

10 апреля вышел первый релиз-кандидат Perl 5.22.2-RC1. Новый минорный релиз текущей стабильной ветки Perl 5.22 содержит только исправления ошибок безопасности: CVE-2015-8607, CVE-2015-8608, CVE-2016-2381 (подробно о них уже рассказывалось в новости о релизе Strawberry Perl), а также ошибка #RT127322, когда при создании временных файлов перед вызовом mkstemp, в Perl предварительно устанавливались биты umask 0600 (вместо 0177), что на современных Linux системах приводило к результирующему значению бит прав 0000, что не является проблемой безопасности, но на древних системах с glibc ≤ 2.06 давало результирующее значение 0066, что уже является проблемой.

Также было объявлено о создании релиз-кандидата будущей стабильной версии Perl 5.24.0-RC0. Это не совсем «настоящий» релиз, так как тарбол не был отправлен на CPAN, и собрать новый релиз можно только из исходного кода в git-репозитории. Но Рикардо Сигнес обещает выпустить настоящий RC1 уже через пару недель. Таким образом, в этом году ожидается необычно ранний релиз Perl по сравнению с предыдущими (например, 5.22.0 вышел 1 июня).

Темы: Perl

Четверг, 7 апреля

Чтобы не искать: Логотипы Metacpan и Hansa

Есть такая компания Hansa. Компания производит бытовую технику - стиральные машины, холодильники, и.т.д. На сайте они делают вид, что компания немецкая, но в Википедии написано, что компания российская.

И есть такой сайт MetaCPAN. На сайте хранятся модули для языка программирования Perl. Сайт международный, поддерживается сообществом.

А вот их логотипы:


Четыре красные точки подозрительно похожи друг на друга.

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

Почему у MetaCPAN четыре красные точки? Потому что модули в Perl именуются таким способом, через двойное двоеточие. Например - Image::JPG, Document::Text, Table::Excel.

Среда, 6 апреля

Pilat66 blog: mojolicious — переходим на версию 6

Запомнившиеся изменения в версии 6. Некоторые стали очень неожиданным сюрпризом.

6.55 2016-03-08

Fixed a bug where Morbo would restart more than once if multiple files changed at the same time. (leejo, nugged)

Теперь не будет миллиона рестартов morbo при запуске rsync

6.54 2016-03-06

Added support for named variables to Mojo::Template. Added vars attribute to [...]

Пятница, 25 марта

PerlNews.Ru: Враждебные форки

В документации Mojolicious появилось предостережение от создания форков отдельных частей проекта Mojolicious, которые не были одобрены разработчиками Mojolicious. Форки не только ведут к истощению ресурсов проекта, бренда, но также лишают его возможных баг-репортов и патчей. В качестве примеров можно привести DOM::Tiny , который является форком Mojo::DOM, или JSON::Tiny, который является форком Mojo::JSON. Например, улучшение для JSON::Tiny никто не удосужился предложить портировать обратно в Mojo::JSON, а улучшения в Mojo::JSON не попадают в форк, таким образом складывается ситуация, когда оба проекта несут потери.

Себастьян Ридель настроен серьёзно и уже поместил негативный отзыв дистрибутиву DOM-Tiny на cpanratings.

Темы: mojo fork

Суббота, 19 марта

Меркантильный гуру: perl 5.14 smart matching

use Dancer ':syntax';
use v5.14;
...

my @options = qw ( func_overload allow_url_fopen ); my $p = params->{'...'};

return redirect '...' unless $p and $p ~~ ['func_overload', 'allow_url_fopen']; # работает return redirect '...' unless $p and $p ~~ qw ( func_overload allow_url_fopen ); # не работает return redirect '...' unless $p and $p ~~ @options; # работает



Прелесть какая!

Меркантильный гуру: try/catch

Родное решение в Dancer не умеет вложенные try/catch. И вообще, чем дальше, тем больше там всё сделано странно.

К счастью, есть Try::Tiny.

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

Четверг, 17 марта

PerlNews.Ru: Код ошибки Winsock теперь попадает в $^E

Давняя история борьбы Perl с кодами ошибок Winsock внезапно получила продолжение. Как известно, традиционно в Perl на Windows коды ошибок Winsock сохранялись в errno и транслировались в переменную $! так, чтобы соответствовать POSIX-кодам ошибок. Возникающие проблемы при таком подходе уже подробно освещались в статье «AnyEvent сломан на Strawberry Perl 5.20»

И вот, в конце февраля было внесено новое предложение по работе с ошибками Winsock. Чтобы немного смягчить имеющееся рассогласование, начиная с грядущего выпуска Perl 5.24 значение кода ошибки Winsock будет попадать в переменную $^E, которая как раз и служит для хранения платформо-специфичных ошибок. Отказ от модификации $! пока не предусматривается, но если он будет выполнен для Winsock, то пройдёт через стандартную схему устаревания и, как минимум, через один стабильный релиз.

11 марта это изменение было отправлено в основную ветку.

Темы: windows perl

Пятница, 11 марта

Сообщество ru_perl в LiveJournal: Вакансия Perl разработчик Санкт-Петербург

Обязанности:
• разработка проекта компании;
• различные интеграционные решения;
• тесная работа с фронт-енд программистом

Требования:
• уверенное знание Perl;
• умение работать с любым из популярных шаблонизаторов (HTML::Template, TT, CTPP и т.д);
• умение работать с PostgreSQL или Mysql;
• умение работать с большим объемом данных, опыт в hbase будет большим плюсом;
• знание JavaScript, HTML, CSS будет существенным плюсом;
• ответственность, инициативность, исполнительность.

Условия:
• офис ст. метро Горьковская в пешей доступности;
• гибкий график работы, возможность работать удаленно;
• работа в крупной российской компании (успешный прибыльный проект);
• зарплата от 100 000 рублей, по результатам собеседования.

Тип занятости:
• Полная занятость, полный день.

Резюме высылайте на почту: comdef@gmail.com

PerlNews.Ru: Выпущен Strawberry Perl 5.22.1.3 и 5.20.3.3

Выпущены два релиза дистрибутива Perl 5.22.1.3 и 5.20.3.3 для Windows Strawberry Perl. Оба релиза содержат исправление уязвимостей:

  • CVE-2015-8607 — функция canonpath модуля File::Spec не сохраняет taint-атрибут возвращаемого значения.

  • CVE-2015-8608 — обращение к памяти за пределами границ при обработке путей. Баг специфичен для Win32 платформы, возникает в случае если в пути в качестве буквы диска указан любой символ, отличный от а..z или A..Z.

  • CVE-2016-2381 — если в массиве переменных окружения оказывались дублирующиеся ключи, то в %ENV сохранялось последнее значение, в то время как getenv возвращал первое. В такой ситуации дочерний процесс мог получить неожиданное значение переменной окружения.

Кроме того, в дистрибутивах обновлена библиотека openssl. Загрузить новые релизы можно на сайте проекта strawberryperl.com.

Темы: Perl windows security

Воскресенье, 6 марта

Сообщество ru_perl в LiveJournal: Как добавлять бизнес-логику в DBIx::Class?

Хочу уже не руками модель писать, а как большой. И нигде не могу найти никакой документации -- как расширять модель для DBIx::Class. Ну вот она сгенерирована Schema::Loader'ом. А мне бы туда теперь бизнес-логики. Например, добавить в состояние схемы (туда же, где хендл DBI хранится) текущего пользователя и добавить ВО ВСЕ все селекты проверку владельца объекта, что бы чужого из базы никто запросить не смог, даже если я уровнем выше вдруг ошибусь. Или вот при создании объекта проверить лимиты того же пользователя, можно ли ему создавать. Такое вот разное. Или это предполагатеся делать уровнем выше, т.е. поверх DBIx::Class-модели писать ЕЩЁ ОДИН СЛОЙ и заворачивать каждый объект в DBIx::Class в ещё одну обёртку? Но тогда получается, что DBIx::Class фактически бесполезен!

Среда, 2 марта

Сообщество ru_perl в LiveJournal: Библиотека (очень специализированный шаблонизатор?) для web-фронтенда?

Сто лет не писал на perl'е ничего для веба. А тут понадобилось. Когда писал последний раз — писал «рутер» и контроллер руками, шаблоны делал на Template::Toolkit тоже руками. Это было так давно, что Mojo или Dancer'а ещё и в проекте не было, был CGI.pm и Mason. Которые были так ужасны, что руками было проще. AJAX'а тоже не было, модных форнтенд-библиотек не было и всех устраивали формочки сделанные на голом HTML «профессиональным программистом» (в табличках, разумеется), на которые какой-никакой дизайн натягивался через CSS1. В общем, лет 10 назад это было.

А тут потребовалось. Ну ладно, server-side я понимаю — Mojo или Dancer2, сейчас разберёмся.

А вот что делать с фронтом? Нету ли какого-нибудь очень специального шаблонизатора для CRUD-подобных приложений, что бы дизайна и HTML'я и всякого jQuery не делать вообще, а описать СТРУКТУРУ формочек на экранах как-то декларативно (YAML-хуямл, да хоть XML, не важно) и получить непротивно выглядящий фронтенд, с проверкой данных на клиенте, AJAX'ом, и прочими ништяками?

Update: Поясню. Я спрашиваю не про клиентский JavaScript-фреймворк типа React'а или там Angular'а, а про именно что умный генератор фронтенда на бэкенде по декларативному описанию интерфейса. А уж этот генератор может прицеплять в сгенерированный фронтенд хоть Реакт хоть Ангулар хоть чёрта лысого, как ему удобно и что любит автор генератора.

Сообщество ru_perl в LiveJournal: locale ubuntu mojo

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

#locale
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU:en
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=



use DateTime::Format::SQLite;
use locale;
use POSIX qw( locale_h strftime );
setlocale(LC_ALL,"ru_RU.UTF8");

my @stash;

while (my $archive = $rs->next) {

my $dt = DateTime::Format::SQLite->parse_datetime( $archive->postime );

$dt->set_time_zone('Europe/Moscow');

push @stash, $dt->strftime('%B %Y');

}

В результате названия месяцев на английском, а хочется на русском. Куда ещё покопать, что прочесть? Спасибо.

Вторник, 1 марта

Сообщество ru_perl в LiveJournal: Mojolicious Роуты

Возникла нужда иметь такие роуты:
$r->get('/blog')->to('blog#index');
$r->get('/blog/:category')->to('blog#show_category');
$r->get('/blog/:category/:id')->to('blog#show');
$r->get('/blog/:year/:month')->to('blog#show_archive');
Разумеется они конфликтуют. Кто и как решает такие проблемы?
Ну и что-бы два раза тему не создавать, видел роуты с регэкспом:

qr|/user/show/(\d+)| -> $self->render(text => $users{$1});

и вот ещё:

$r->route('/uid/:id/',id => qr/\d+/)->to( controller => 'Uid',action => 'index');

Роуты с регэкспами работают? И как? Спасибо.

Суббота, 20 февраля

Shoor/нал: Без @ARGV

Обнаружил в попавшемся на глаза чужом скрипте чтение переданных через командную строку параметров без упоминания массива @ARGV. Проверил — работает:

#!/usr/bin/perl

my $shifted = shift or die 'Not shifted';

print "Shifted value is $shifted\n";


Выдаёт
$ ./shift.pl
Not shifted at ./shift.pl line 3.
$ ./shift.pl ARGV?!
Shifted value is ARGV?!

Век живи — век учись.

http://shoorick.ru/2016/02/20/without-argv/

Четверг, 18 февраля

PerlNews.Ru: Выложены видеозаписи Perl-докладов на FOSDEM 2016

На сайте конференции FOSDEM 2016 выложены видеозаписи докладов, проходившие в зале Perl.

P.S. По всей видимости, видеофайлы выложены частично битые. Первая минута не проигрывается, но дальше воспроизводится нормально. Требуется полная загрузка видеофайла для начала воспроизведения.

P.P.S. Все видеофайлы, кроме «Perl 6», перегенерированы и доступны для просмотра.

Темы: FOSDEM

Суббота, 13 февраля

Сообщество ru_perl в LiveJournal: Eclipse Perl::Epic PerlTidy

Фигня какая-то с редактором творится. Не получается скопировать уже готовый проект. Делаю так, создаю проект, потом импортирую в него файлы. Вроде всё хорошо, но файлы физические на диске не сохраняются, не изменяются, а в редакторе всё норм.

Как это так?

Ещё не понятно как работает perltidy, приходится ручками делать так:

perltidy -b Dashboard.pm

Нагуглил какие-то опции для perltidy в eclipse:

-l=180 --force-read-binary -i=2 --tabs -et=2 -ci=2 -olc -ibc -hsc -nsfs --delete-old-whitespace -nbbc -bbs --blanks-before-blocks --long-block-line-count=1 -nsob -bar -dnl -anl -pscf=-c -cti=0 -nolq -w -dws -bext=’/’ -csc -csci=15 -cscb -dcsc -iob

Это вообще что за хрень? И работает ли?

Где нибудь есть информация по скрещиванию eclipse и perl?

Четверг, 11 февраля

СетевойГибитобой: Массовое добавление и удаление друзей в LiveJournal через XML-RPC

Так как пользоваться консолью ЖЖ для добавления или удаления друзей стало невозможно (эти команды отключили) — сделал небольшой скрипт lj-edit-friends, который позволяет редактировать список друзей для указанного аккаунта через XML-RPC интерфейс ЖЖ. Пользоваться несложно — получить список друзей для добавления/удаления с помощью LJ Add/Remove Friends, сохранить его в файл и обработать через lj-edit-friends. Подробности — […]

Пятница, 5 февраля

Мини-портал Perl на Opennet: Выпуск Rakudo Star 2016.01, дистрибутива Perl 6

Состоялся релиз пакета Rakudo Star 2016.01, включающего компилятор Rakudo, виртуальную машину MoarVM, документацию, модули и инструменты, необходимые для разработки на языке Perl 6. Это первый выпуск после объявления релиза языка программирования Perl 6. Компилятор соответствует спецификации Perl v6.c, за исключением поддержки расширенных макросов, неблокирующего ввода/вывода и ряда мелких особенностей, которые планируется довести до рабочего состояния в будущих выпусках.

Четверг, 4 февраля

PerlNews.Ru: Вышел Rakudo Star 2016.01

Вышел официальный анонс «Rakudo Star» 2016.01 — дистрибутива Perl 6. Поскольку предыдущий релиз вышел в ноябре 2015, то этот релиз является первым стабильным выпуском Perl 6, соответствующим спецификации v6.c.

Этот релиз «Rakudo Star» был выпущен с поддержкой бэкенда MoarVM (все модули проходят тесты на всех поддерживаемых платформах). JVM бэкенд в данной версии не является полнофункциональным, поэтому рекомендуется использовать только бэкенд MoarVM. Загрузить архив с исходным кодом можно здесь.

В мире Perl 6 есть различие между языком «Perl 6» и конкретной реализацией языка, такой как «Rakudo Star». Данный релиз содержит компилятор Perl 6 Rakudo 2016.01.1 и бэкенд MoarVM 2016.01, а также различные модули, документацию и другие полезные ресурсы от сообщества.

P.S. Доступны для загрузки MSI-инсталляторы для платформ Windows: x86 (без JIT), x86_64 (c JIT).

Темы: Perl6

Среда, 3 февраля

Сообщество ru_perl в LiveJournal: Удаленная работа для PERL-программиста

Приветствую!

Ищу человека для осуществление различных доработок сервиса.
Используем perl/dancer + mysql.
Желательно умение разбираться с html/css/js, понимать что такое bootstrap.

E-mail: aleksandr.khasanov (at) gmail.com

Вторник, 2 февраля

PerlNews.Ru: Вышел Rakudo 2016.01

Вышел первый в 2016 году релиз компилятора Perl 6 — Rakudo 2016.01. Это также первый пост-Рождественский релиз, построенный по-прежнему на основе спецификации v6.c. Выпуск задержался на две недели, что связано прежде всего с продолжительным периодом зимних праздников, да и просто разработчикам был необходим отдых после напряжённой работы над первым стабильным релизом.

Данный релиз не имеет новой функциональности и содержит только исправления ошибок и оптимизации. Загрузить архив с исходным кодом можно на сайте rakudo.

Разработчики отмечают в анонсе, что новые релизы Perl 6 в этом году могут содержать новую функциональность, которая не является частью спецификации v6.c. Данные возможности можно будет включать с помощью прагм, работающих в лексической области видимости. При этом будет гарантироваться, что всё, работающее согласно спецификации v6.c, будет продолжать работать. Кроме того ожидаются и инкрементальные изменения самой спецификации.

К сожалению, до сих пор не выпущен новый дистрибутив «Rakudo Star», содержащий стабильный Rakudo, наборы модулей и документацию, как и не выпущены msi-пакеты для установки в системе Windows. Никакого инсайда по этому поводу пока не поступало.

P.S. Для предварительного тестирования доступен первый релиз-кандидат «Rakudo Star» 2016.01-RC0.

P.P.S. Выпущен экстренный релиз Rakudo 2016.01.1, исправляющий проблему в процессе инсталляции модулей CORE. Проблема актуальна если при инсталляции используется параметр DESTDIR, указывающий путь к каталогу для установки (как правило, при сборке rpm/deb пакетов).

Темы: Perl6

Среда, 27 января

Чтобы не искать: Асинхронный ввод/вывод в Coro::Handle

Сломал мозг, не могу разобраться с Coro::Handlе. :(

Вторник, 26 января

Меркантильный гуру: perl cgi

Я очень люблю Dancer, но вот потребовалось мне написать маленький сервис, который был бы в одном файле весь целиком и запускался через CGI. И мне не удалось запустить последнюю версию дансера ввиде CGI.

К тому же там есть пара проблем со значениями переменных окружения, которые нельзя решить без патча внутренностей - ну правильно, никто дансер не запускал как цги годами, зачем там вообще что-то проверять или чинить?

Пришлось все сделать на Mojo. Такие дела.

Мета

Поиск

Участники

Список участников в формате OPML OPML

Добавить сайт

По-другому

Приборы