http://twitter.com/yapcrussia/statuses/337623662213603330
yapcrussia: One of the #ye2013 organisers attends this week's Polish Perl Workshop. The 1st Perl workshop in Poland, amazing! http://t.co/bOxNhVuGWD
yapcrussia: One of the #ye2013 organisers attends this week's Polish Perl Workshop. The 1st Perl workshop in Poland, amazing! http://t.co/bOxNhVuGWD
yapcrussia: 306 days until the German Perl Workshop 2014! http://t.co/P95aDIFglb A good tradition to launch conference sites early. #perl #perl5 #perl6
22:50 22.05.2013
Глава 8. Типы
В этом разделе коротко обсудим ранее упомянутые типы данных. Как вы уже знаете, есть коллекция предопределленных типов данных, которые могут быть использованы с isa при обявлении свойства или с параметром метода при использовании Catalyst Declare. В этом разделе мы научимся определять свои собственные типы данных. Давайте начнем с хорошо написанного примера из опрделения MooseX::Types (по ссылке http://search.cpan.org/~rkitover/MooseX-Types-0.21/lib/MooseX/Types.pm )
subtype PositiveInt,
as Int,
where { $_ >= 0 },
message { "Int is not larger than 0" };
В этом примере тип PositiveInt создатся как подтип Int. Ограничение для типа обеспечивается блоком where, который в приведенном примере проверят положительный переданный аргумент для PositiveInt. В блоке message пишется сообщение об ошибке, которое возвращяется если переменная не проходит оганичение типа.
Темы выпуска: настройка Claws Mail, генерация UUID и каррирование в Erlang, как в Linux заблокировать экран перед выполнением pm-suspend, и не только. Предыдущие выпуски: одиннадцатый, десятый, девятый, восьмой. 1. Как сгенерировать UUID в Erlang Генерация валидного UUID 4-ой версии занимает пять строк кода на Erlang: -module(uuid). -export([ generate/0 ]). generate() -> [...]
Наконец-то удалось запустить карту велошатаний — http://shoorick.ru/lj/map/bike.html
Масштаб выбирается автоматически, в зависимости от натянутого на карту трека.
На карту, отображаемую библиотекой Leaflet, можно накладывать разные слои. Среди таких слоёв может быть и слой с треками в формате GPX или KML — его можно наложить с помощью соответствующего плагина, входящего в leaflet-plugins.
В процессе подготовки к UWDC-2012 я подготовил трек, попытался натянуть его на карту — не заработало. Чтение логов и гугление показало, что Google Chrome не даёт яваскрипту читать локальные файлы, если веб-страница получена с локального ресурса (то есть, её URL начинается на file://), а не по HTTP. Выходов несколько: либо заливать карту на сервер и отлаживать там (что, в общем, не представляет сложности, когда есть sshfs), либо поднимать простенький сервер прямо на рабочем месте. Подобных серверов — вагон и маленькая тележка. Думаю, одних только перловых серверов на моём ноутбуке явно больше одного. Увидел на stackoverflow способ запуска простого HTTP-сервера на питоне:
python -m SimpleHTTPServer 8000Проверил — работает.
22:45 21.05.2013
Глава 8. CatalystX
Возможны вы удивитес на счет пространства имен CatalystX. CatalystX это пространства имен используемое модулями Catalyst-а которые расщиряют Catalyst но не являются ни плагинами ни типичными компонентами Catalyst-a. Доступные пакеты Catalyst-а содержат много различную функциональность, которое может об;егчить разработку приложений переиспользованием кода. Для полного списка модулей поищите CatalystX на cpan
http://search.cpan.org/search?m=all&q=catalystx&s=71
Возможно Вы также захотите изучить CatalystX::Traits, которые являются загружаемыми ролями Moose , которые могут использоватся в вашем приложении — в модели, контроллере и view. Для понимания вопроса прочтите http://www.catalystframework.org/calendar/2009/10.
yapcrussia: Dear PM groups, did you submit a proposal to host the next year's YAPC::Europe? #ye2013 #yapceu #ye2014 #perl #perl5 #perl6 #perl7
viking-coyote поделился ссылкой
Ветка 5.18 выпущена в соответствии с утверждённым три года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. 20 июня планируется выпустить первый корректирующий релиз Perl 5.18.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.18.0. Одновременно с выходом Perl 5.18 прекращена поддержки ветки 5.14, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.19, на базе которой в мае 2014 года будет сформирован стабильный релиз Perl 5.20.
В Perl5 как наверно ни в одном другом языке программирования нет такой тщательной заботы об обратной совместимости. Многие модули CPAN отлично работают на самых древних версиях интерпретатора Perl, вышедших ещё в прошлом тысячелетии. Более того, некоторые авторы с большим удовольствием сообщают в ChangeLog, что в новом релизе исправлены проблемы совместимости с версиями Perl, например, 5.6. Всё это может создавать ложное ощущение у программиста, что выпускаемые новые версии Perl - это не более чем косметические изменения и настоящему труъ хакеру нужен только 5.8.1 или даже 5.6.1 - ведь они стабильны как скалá (не путать со Scala), работают быстрее чем новомодные релизы, да и CPAN продолжает их поддерживать. На самом деле, всё это конечно не так. Развитие кода в рамках старого интерпретатора — это процесс, которые со временем приводит к возрастанию сложности проекта, поскольку помимо кода самого проекта возникает задача тянуть поддержку старого интерпретатора и его багов, а вырваться из этой ловушки со временем становиться всё труднее.
Комментарии(0)
После года разработки представлена новая стабильная ветка языка программирования - Perl 5.18. В рамках подготовки нового выпуска было изменено около 400 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 113 разработчиков.
yapcrussia: Weather during the #ye2013 river trip :-) http://t.co/6wERlGyJEs Did not join yet? Do it now! http://t.co/aXFrqAjRUL http://t.co/0KvTCE2dzm
22:19 14.05.2013
Глава 8. CatalystX declare
Catalyst declare это экспериментальный плагин, который сможет сделать описание приложения, контроллера и модели более наглядным и легким. Он скорее не плагин а модуль с декларативным синтаксисом основанный на Devel::Declare. Эта специализированная версия MooseX-Declare.
Также, заметьте CatalystX-Declare вероятно немного изменит свои характеристики в будущем, поскольку он экспериментальный.
Последний пример может быть переписан с использованием Catalyst::Declare следующим образом
Use CatalystX::Declare
controller AddressBook::Controller::Test;
action count_users as 'count' under '/' {
my $count = $ctx->model('AddressDBI')->count_users();
$ctx->stash->{message}="There are $count users. ";
}
after count_users {
$ctx->stash->{message} .= "And they all Like Moose");
}
Модификаторы методов парсит MooseX-Declare, и поэтому они элементы синтаксиса, и не записываются в процедурной форме foo => sub{ }. Также нет нужды в доступе к аргументам напрямую. $self и $ctx автоматически лексически доступны, и все другие параметры могут быть определены как сигнатуры с MooseX-Declare.
yapcrussia: 250 registered users on the YAPC::Europe 2013's website. We still need more :-) Join! http://t.co/N970aduZF4 #ye2013 #perl #yapc #yapceu
Мне кажется, большая беда дансера в том, что никто не использует его для реальных проектов. Я регулярно нахожу баги на пустом месте. Ладно, это я могу держать в голове штук 50 разных моментов, большинство не могут писать код сразу без ошибок и учитывая всё. Но элементарный запуск стандартных кейсов на новых версиях уже показал бы, что всё сломалось. Но нет, никто этого не делает.
С сегодняшним багом, кажется, мне это надоело. Доделаю текущие дела - устрою себе отпуск на пару неделю и напишу свой фреймвор. Ибо когда проблемы случаются на столько часто - написать свой уже получается дешевле, чем тратить время на описывание багов и придумывание на эти случаи тестов.
yapcrussia: RT @OvidPerl: Finally signed up for YAPC::EU 2013. Looking forward to Kiev! http://t.co/fVCujxBf6l
Дорогие друзья!
Позвольте представить вам третий выпуск русскоязычного журнала о Perl.
http://pragmaticperl.com/
Читать дальше →
Представлен третий выпуск Pragmatic Perl, русскоязычного журнала о современном языке программирования Perl.
Столкнулся с интересным глюком.
1. Имеется Канвас с фоновой картинкой.
2. На канвасе есть картинки и линии, которые перемещаются и связаны между собой, типа графа. Соответственно нужно в динамике прорисовывать эти линии относительно картинки.
3. Есть вертикальные и горизонтальные линии, и косые.
4. Если толщина линии=1, то все ок, если 2 и более, то...
Косые линии рисуются на ура, а вот вертикальные или горизонтальные иногда имеют артефакты толщиной в 1 пиксель(черного или белого цвета) вдоль линии за пределами ее размера.
Помогает мелкое искривление линии:
$c->createLine($x,$y,$x+1,$y2);
$c->createLine($x,$y,$x2,$y+1);
Сие на глаз не заметно, если линия толстая и срабатывает как костыль.
Но это же бред?
Я пробовал отключать 3Д и типы растризации в КДЕ4 - не помогает.
Модуль видимокарты? Его опции? Пользую Интел. Есть возможность проверить на Нвидиа. Позже проверю, но что-то слабо верится в модуль.
Я понимаю что Тк для Перла давно не развивается, но что это может быть?
Я так понимаю что для рисования вертикальных и горизонтальных линий используется один алогритм, более быстрый чем для рисования косых линий. Вот он наверное как-то по другому работает с видеопамятью и получаются помехи..
Этот ваш dzil слишком умный.
Форкаю, добавляю тест, запускаю dzil test - мой тест не запускается. А если prove -lr t, то запускается.
Ок, гуглю, запускаю dzil test --release - мой тест не запускается.
Догадываюсь и делаю git add my-test.t. Ура.
Жаль, нельзя взять линейку и сделать за такое кому-нибудь больно. А потом еще раз, за то, что это не задокументировано.
upd: Ну и, в итоге, по состоянию на сейчас, вроде бы найдены и исправлены все баги в Dancer::Session::Cookie, так что после выхода новой версии дансера можно ставить последнюю версию и всё будет работать. Ну или можно уже сейчас ставить дансер из гитхаба.
yapcrussia: You can now see all submitted talks! Weeks minus 15 and 14. Lurking in the hidden schedule. http://t.co/eyWfMPAERk #ye2013 #yapceu #perl
yapcrussia: We've just passed 100 committed attendees to the YAPC::Europe 2013 in Kiev! #yapceu #ye2013 #perl http://t.co/N970aduZF4
Смотрите какую штуку нашел - http://www.slimframework.com
Оно даже умеет хранить сессии в зашифрованных куках - Slim/Session/Handler/Cookies.php. Вот прямо совсем как сами знаете где )
Чего только не придумают люди, вместо того, чтобы сразу писать на perl/Dancer...
Если у человека есть практика общения на иностранном языке и понимания на слух, субтитры для него — всего лишь подспорье, значение которого зависит от разборчивости, нормативности, сложности и скорости речи на экране. Но если человек всего лишь сносно читает на иностранном, субтитры для него — основной источник информации.
К сожалению, во втором случае обычного времени показа титров бывает недостаточно. Удлинить его можно во многих программах (например, в SubtitleEdit) — но иногда это удлинение ограничено разумными пределами, да и запускать для такого простого действия полноценный редактор не всегда удобно.
Поэтому я попробовал написать простые скрипты только под эту нужду и выбрал два принципа удлинения времени. Читать дальше →
Как я только не запускал перловые скрипты на веб-серверах — и как CGI, и как mod_perl (на обоих апачах), и как FastCGI через nginx.
А какой способ принято сейчас использовать?
Мы завели отдельную железяку под перловый хостинг, чтоб выселить туда всё перловое: несколько сайтов на Mojolicious, Catalyst и Movable Type плюс древний самописный кошмар, который давно переписать на чём-нибудь современном.
Хочется сделать это хорошо и правильно. Как быть? Что читать?
yapcrussia: YAPC::Europe 2013 in Kiev, week minus 16. Spread the word. http://t.co/3yjcpeGeR1 #yapceu #ye2013 #perl #perl5 #perl6
Ищем бекендера.
Формальное описание вакансии здесь: http://hh.ru/vacancy/7818084
Если кратко, то есть mod_perl приложение, сильно монолитное и с давно просроченым техническим долгом. Предстоит решать довольно творческие задачи по ходу процесса по распилу/выпилу легаси и постройке, по-сути новой платформы, отвечающей современным требованиям. Команда только набирается (хотя и не предполагается, что она будет большой) – так что спешите присоедениться, если подобные задачи вам по душе.
Пишите в скайп: orlovsky.alexander
Или, еще лучше, приходите к нам в офис – расскажу подробнее что и как.
yapcrussia: YAPC::Europe 2013 in Kiev welcomes India! #ye2013 #perl #yapceu #perl5 #perl6 #perl7 http://t.co/N970aduZF4 http://t.co/Asy2NPpNQy
yapcrussia: "Regexes can be simple and fast" talk approved for the YAPC::Europe 2013 http://t.co/353BMnvqrI #perl #regex #ye2013 #yapceu
Разбирался с ошибкой в тесте Perl модуля GD. Сравните картинки, которая должна быть и какую в реальности формирует третий тест в t/GD.t.
Как видно, не происходит заполнение одной из областей синим цветом. Удивительно, но баг воспроизводится только на 32-битной платформе x86. В чём же дело?
Комментарии(0)
yapcrussia: YAPC::Europe 2013 in Kiev, week minus 17. Checklists. http://t.co/1i0zaYijJ6 #ye2013 #yapceu #perl
yapcrussia: Did you know that there are 202 accommodations in Kiev for 53...1207 € for the YAPC::Europe 2013 #ye2013 dates? http://t.co/LiUKRmYz1C #perl
yapcrussia: ½ of the YAPC::Europe 2013 team coming to this week's Dutch Perl workshop in Arnhem #ye2013 #yapceu #perl
Так случилось, что в короткие сроки появилась необходимость перевезти 70 человек с аналоговыми телефонами из одного бизнес центра в другой. Ситуация усугублялась тем, что в новом офисе у владельца не было аналоговых портов в АТС, а АТС в старом принадлежала телефонной компании. Пришлось в короткие сроки внедрять IP телефонию с переносом всех аналоговых городских линий на Asterisk. Поставка оборудования была назначена на день предшествующий дню переезда, что означало — времени на развертывание телефонии будет очень мало.
Что из этого вышло под катом.
Материала много, так что не пугайтесь.
Читать дальше →
Привет, друзья!
Давненько я ничего не писал про Perl.
Тем временем произошло несколько интересных событий и появилось несколько интересных статей, о которых и расскажу в этой короткой заметке.
Новость номер один, на мой взгляд, самая значительная и интересная — это рождение "Журнала о современном Perl на русском".
Встречаем сайт pragmaticperl.com/ Уже успело выйти два выпуска этого замечательного журнала.
Каждый выпуск содержит интервью с какой-нибудь «perl-super-star», новости, статьи и обзоры новых модулей на CPAN.
Особенно порадовала первая статья первого выпуска "Возрождение Perl"
Журнал доступен для чтения и комментирования на сайте pragmaticperl.com/, кроме того, каждый выпуск можно скачать в удобном для чтения на электронном гаджете формате. У журнала есть RSS и Email рассылка
Каждому перловику — мастрид однозначно! Авторам, пожелаю удачи и сил не забросить это полезное дело!
Новость номер два. Многие уже знакомы с сайтом perl5maven.com/ и его туториалом, если еще не знакомы — очень советую почитать, а еще лучше купить книги и тем самым поддержать автора. Совсем недавно начался перевод данного руководства на русский язык, результат работы добровльцев можно найти вот здесь ru.perl5maven.com/. На данный момент переведены первые три статьи, надеюсь, что это продолжится и дальше!
Теперь про интересные статьи, сегодня их две:
"Обновления Python 2.7.4, 3.2.4 и 3.3.1. Поддержка ветки Python 2.7 истекает через 2 года" www.opennet.ru/opennews/art.shtml?num=36613 — казалось бы при чем тут Perl !? На самом деле так кажется пока не заглянешь в комментарии к статье, а там просто море, ну вот море отборного холивара у кого писька длиньше язык лучше! Мой бложик про цитаты пополнился несколькими чудесными экземплярами!
"Как мы Dancer хоронили..." — knutov.livejournal.com/2876149.html — в комментариях, как и всегда, налетели толпы рубисто-питонистов и начался стандартный холивар, в котором похоронили не только Dancer, но и сам Perl
p.s. если у вас спросят: «Почему Perl ?», ответ можно всегда подсмотреть вот здесь allframeworks.ru/blog/quote/619.html
На сегодня все.
В заметке рассмотрено использование многопоточного парсера Яндекс ТИЦ на примере обработки списка пользователей ЛиРу (Liveinternet). Для запуска понадобятся: bash (под Windows можно использовать cygwin), perl, wget и, для большего удобства представления результатов, – sort. Все эти утилиты присутствуют практически в любой *nix-ОС или могут быть установлены в cygwin. Для начала подготовим исходные данные – список [...]
yapcrussia: Anybody participating in our Partners Programme? http://t.co/tZhhco34nI #ye2013 #yapceu
4 апреля, в четверг, с 19.00 до 22.00 в помещении Mail.ru состоялась 24-я встреча Perl-программистов. В программе несколько выступлений:
Чуть позже мы опубликуем видеозапись мероприятия.
По состоянию на сейчас можно констатировать, что
1) поддерживать часть кода Dancer 1, в работающем без багов состоянии, зафейлили. В основном с формулировками вида "у меня тут переезд, новая работа, и вообще".
2) поддерживать Dancer 2 в понятном состоянии зафейлили вообще. С формулировкой вида "мы хотели как лучше, но получилось что-то другое"
3) поддерживать процесс разработки Padre зафейлили года два назад. С формулировкой вида "Этот ваш git - это очень новое, да и зачем оно нам вообще?"
4) поддерживать процесс релиза Padre зафейлили с самого начала. Есть какие-то относительно стабильные релизы, но, кажется, вообще никто не понимает, как это релизить в работающем состоянии так, чтобы оно работало где-то еще, кроме уже настроенного окружения автора. При этом большая часть модулей уже больше года на работают вообще, просто так или из-за смены API. Текущую новую 0.98 версию не могут зарелизить больше 4х месяцев.
Итог - на этом как-то еще можно инерционно прожить года два, но от перехода с Dancer и Padre на что-то другое никуда не деться.
В идейном плане в веб-разработке и Python и Perl многое взяли от экосистемы Ruby. Только если посмотреть Python, то там можно найти буйство фреймворков, который устаревают, сливаются друг с другом, заимствуют компоненты, а если посмотреть на Perl, то там давно отбросили модную шелуху и качественно реализовали то главное, что действительно облегчает разработку.
И главное, где у perl та киллер-фича способная перевесить все недостатки синтаксиса!?
CPAN, быстрые, полноценные и более удобные в использовании регулярки, меньше проблем с кодировками, похожесть на shell, в среднем более толковая документация, автовивификация, возможность проверять наличие переменных и полей классов ещё на этапе компиляции (use strict, use fields), что позволяет писать быстро и без необходимого 100% покрытия кода тестами. Менее богатый набор типов позволяет меньше думать о приведении типов (есть, например, отдельные операции конкатенации и сложения, отдельные операции сравнения строк и чисел).
Python, видимо, оправдывает своё название и извивается как может, в то время как Perl оправдывает свой талисман — невзрачный верблюд тихонько идёт в караване, не требуя много воды, довольствуясь пустынными колючками и таща на себе тяжёлую ношу.
yapcrussia: YAPC::Europe 2013 in Kiev, week minus 18. The Partner Programme. http://t.co/tZhhco34nI #yapceu #ye2013 #perl
Отписался от ru_perl сообщества, в общем-то это был в свое время приятный язык, первый в вебе для меня, но так как я уже давно не ощущаю в нем для себя потребности и все его возможности мог легко реализовывать на php, а сейчас и вовсе не пишу на perl'е ничего, чтобы мне надо было, решил оставить его в прошлом.
Покойся с миром, R.I.P. Perl, сила твоих регулярок всегда поражала, cpan радовал обилием, но это было так давно, что я успел повзрослеть, жаль, что у тебя не хватило сил расти вместе с мной.
Прощай.
Уже второй месяц выходит новый электронный ежемесячный журнал на русском языке Pragmatic Perl. Он посвящен перлу :-) Не просто перлу, а современному перлу.
Содержание второго номера:
Друзья!
Представляю вам второй выпуск русскоязычного журнала о Perl
pragmaticperl.com
Читать дальше →
yapcrussia: Better and wider geography at #ye2013! The first user registered from Slovenia. We are really happy. #perl #yapceu http://t.co/AjyiE5M3pk
yapcrussia: Welcome Hungary at the YAPC::Europe 2013 in Kiev! #ye2013 #yapceu #perl http://t.co/N970aduZF4 Join now! http://t.co/R8GXHW2ex3
На perl нельзя перейти. Это не язык, это образ жизни. Как наличие мотоцикла и даже литры выпитого вместе с Синусом не делают тебя байкером.
Представлен второй выпуск Pragmatic Perl, русскоязычного журнала о современном языке программирования Perl.