Чего не хватает в плагинах Mojo?
Возможность задавать очередность а-ля Module::Pluggable::Ordered. Пример, когда это нужно:
использую я плагины Mojolicious::Plugin::Dbi и Mojolicious::Plugin::Session Оба они вешаются на хуки:
- before_dispatch (коннект к БД и создание объекта сессии)
- after_dispatch (дисконнект с БД и сохранение данных сессии).
Посему на hook неплохо бы иметь возможность ставить приоритетность. Подумаю еще над этим, и наверное автору закину патч для Mojolicious::Plugins.
Bootylicious уже месяц как выложен на CPAN и я наконец-то выложил туда свои плагины к нему:
Все это также и на github: http://github.com/GreenKakadu
Для подготовки CPAN дистрибутивов использовал Dist::Zilla - очень удобно, всем рекомендую. Использовать просто - инструкции тут
Получил аккаунт Google Wave, могу кинуть инвайты. Правда работают они своеобразно, похоже когда я кому-то кидаю инвайт, то он просто попадает в очередь на получение аккаунта. Т.е. приходит не сразу.
UPD Как написано в самом google wave: Invitations will not be sent immediately. We have a lot of stamps to lick. Я себе отправил инвайт на другой аккаунт прошло несколько дней и тихо. Так что всем, кому я отправил инвайты рекомендую запастись терпением.
UPD Как написано в самом google wave: Invitations will not be sent immediately. We have a lot of stamps to lick. Я себе отправил инвайт на другой аккаунт прошло несколько дней и тихо. Так что всем, кому я отправил инвайты рекомендую запастись терпением.
Недавно появился русский перловый агрегатор PlanetPerl.ru всем рекомендую. Был удивлен, найдя там себя :)
Вообще, в последнее время перловые массы бурлят: интересные перловые проекты.модули, акции популяризации перла (Planet Perl Iron Man) - это все очень радует. Еще бы нужно несколько успешных open source перловых проектов ДЛЯ_ОБЫЧНЫХ людей (типа RT) и тогда все будет вообще здорово.
Вот что меня весьма интересует в перловых разработках в последнее время:
Mojo - очень здорово, ковыряюсь в свободное время. С нетерпением жду stable версии.
Padre - IDE на perl для Perl. Поставил, попробовал. Интересно что-нибудь полезное к нему написать (но нет времени из-за кучи других не менее интересных идей)
PDL - Perl Data Language. Может это и баян, но недавно лишь попробовал ее в использовании. Очень проникся. К тому же сейчас происходит регулярное обновление данной библиотеки
AnyEvent - все никак не соберусь чего-нибудь осмыссленное написать.
А ведь есть еще и Perl6 и Parrot, т.е. впереди куча всего интересного и увлекательного!
Регулярно просматриваю новые модули, появляющиеся на CPAN, приятно радует прогресс. Пусть подавяца инвалиды, которые называют перл некрофилией и считают что он умер, Perl живее всех живых!
В общем, согласен с
sharifulin : use Perl or die;
Вообще, в последнее время перловые массы бурлят: интересные перловые проекты.модули, акции популяризации перла (Planet Perl Iron Man) - это все очень радует. Еще бы нужно несколько успешных open source перловых проектов ДЛЯ_ОБЫЧНЫХ людей (типа RT) и тогда все будет вообще здорово.
Вот что меня весьма интересует в перловых разработках в последнее время:
Mojo - очень здорово, ковыряюсь в свободное время. С нетерпением жду stable версии.
Padre - IDE на perl для Perl. Поставил, попробовал. Интересно что-нибудь полезное к нему написать (но нет времени из-за кучи других не менее интересных идей)
PDL - Perl Data Language. Может это и баян, но недавно лишь попробовал ее в использовании. Очень проникся. К тому же сейчас происходит регулярное обновление данной библиотеки
AnyEvent - все никак не соберусь чего-нибудь осмыссленное написать.
А ведь есть еще и Perl6 и Parrot, т.е. впереди куча всего интересного и увлекательного!
Регулярно просматриваю новые модули, появляющиеся на CPAN, приятно радует прогресс. Пусть подавяца инвалиды, которые называют перл некрофилией и считают что он умер, Perl живее всех живых!
В общем, согласен с
Попробовал перловый профайлер Devel::NYTProf очень впечатлен! Вах как круто!
Используется очень просто:
perl -d:NYTProf mysuperscript.cgi
в результате получим нечитабельную базу с результатами тут: ./nytprof.out
После чего конвертим результаты в html
nytprofhtml
открываем броузером и удивляемся, там действительно будет очень много букоф и циферок. Я попробовал сунуть туда приложение на Mojolicious в топах по использованию и времени метод attr (Mojo::Base) Автор модуля Tim Bunce (он же автор DBI). Подробнее можно почитать тут: NYTProf v2 – A major advance in perl profilers
Используется очень просто:
perl -d:NYTProf mysuperscript.cgi
в результате получим нечитабельную базу с результатами тут: ./nytprof.out
После чего конвертим результаты в html
nytprofhtml
открываем броузером и удивляемся, там действительно будет очень много букоф и циферок. Я попробовал сунуть туда приложение на Mojolicious в топах по использованию и времени метод attr (Mojo::Base) Автор модуля Tim Bunce (он же автор DBI). Подробнее можно почитать тут: NYTProf v2 – A major advance in perl profilers
Это мега зачот: Были получены исходники 3300 глобальных интернет-проектов
А вот gentorist, я помню, нам в свое время сказал: "Нех вам svn на боевых серверах, ручками накатывайте" и был прав.
А вот gentorist, я помню, нам в свое время сказал: "Нех вам svn на боевых серверах, ручками накатывайте" и был прав.
Наткнулся на интересного чувака (Christopher Laco), который в качестве хобби щупает за всякие теплые места известные фреймворки.
Посмотрел его код для Mojo (хоть и под старую версию), весьма зачотно. Мне понравился его хак, который он использовал для вызова нужной модели, в зависимости от вызываемого контроллера (использовал DBIx::Class). Похоже он на Catalyst'е натренировался.
Здесь: github.com/claco/burningplate.com примеры простого приложения обзора ресторанов, написанный на фреймворках:
Посмотрел его код для Mojo (хоть и под старую версию), весьма зачотно. Мне понравился его хак, который он использовал для вызова нужной модели, в зависимости от вызываемого контроллера (использовал DBIx::Class). Похоже он на Catalyst'е натренировался.
Здесь: github.com/claco/burningplate.com примеры простого приложения обзора ресторанов, написанный на фреймворках:
- ASP.NET
- CakePHP (php)
- CodeIgniter (php)
- Symfony (php)
- Catalyst (perl)
- Mojo (perl)
- Django (python)
- Merb (ruby)
- Rails (ruby)
Интересная статья,обзор профессий, востребованных в 2029 году: Топ профессий 2029
- Разработчик "реальных" миров
- Секвенеровщик ДНК
- Иммортолог
- NBIC-Конвергентор
- Дизайнер эмотехнологий
- Имуннокомпьютеролог
- Вирусолог сознания
Ранее я уже упоминал движок для блога Bootylicious (написан с использованием Mojo). Недавно сделал для него несколько плагинов:Gallery, AjaxLibLoader, TocJQuery
Всем френдам перловичкам предлагаю вовлечься в развитие данного проекта (написать плагин, парсер или еще чего-нибудь нужное)
В чем плюсы?
- Это весьма интересно и не требует много времени.
- Можно пощупать Mojo и не ради каких-то абстрактных задач, а для вполне конкретных целей.
- Развивает фантазию (это как писателям предлагают для тренировки писать коротенькие рассказы)
Регистрируетесь на Github.com
Форкаете проект от автора http://github.com/vti/bootylicious
Клонируете репозитарий себе на машину. Креативите, если выхлоп удачный, то пишете документацию и тесты. Далее, комитим себе в репозитарий и делаем push в свой удаленный репозитарий на github, после чего присылаем автору vti pull request (кнопочка в веб интерфейсе при просмотре информации по коммиту). Все! Гордимся собой (один коммит в опен сорс это как бабушку через дорогу перевести +3 к карме).
Автор проекта bootylicious, Вячеслав Тихановский, он же vti.
P.S. кстати смотрю рассылку по Mojo и создается впечатление, что там больше половины русскоговорящих (даже бывших коллег встретил)
Посмотрел аниме Гуррен Лаганн (Gurren Lagann) 27 серий. Очень впечатлен! Потрясающее аниме, отличный перевод с охрененной озвучкой. В общем, всем рекомендую. Один из лучших аниме сериалов последнего времени.


Берем SDL Perl (Simple DirectMedia Library Bindings for Perl) добавляем туда щепотку креатива, графику, музончик и получаем симпатичную игру-аркаду Frozen Bubble с 3-х мерными анимированными пингвинами. Для Ubuntu/Debian ставится она просто: apt-get install frozen-bubble
Если хочется знать больше о SDL Perl то вам сюда:
Блог Yet Another Perl Game Hacker
Сайт Perl SDL
Коллега сделал очень прикольный сервис smartTARIF, который анализирует историю ваших звонков и рекомендует оптимальный тариф. Порадовали детальные инструкции - это сподвигло меня на смену тарифа (а то я как подключился в 2004 так его и не менял). Если верить сервису, то буду экономить примерно 2500 руб в год. Оплата 31 руб (смс-кой) за столь кропотливый и довольно нудный труд (вбивание тарифов и инструкций) ИМХО вполне нормально.На чем сделано? nginx + Perl + JQuery
Появилась довольно прикольная штука под Mojolicious::Lite: простенький движок для блога Bootylicious:- в зависимостях только Mojo
- это один и очень маленький скрипт, с простой конфигурацией
- разметка вынесена из кода в шаблоны
- т.к. на Mojo, то работает как под CGI так и под FastCGI.
В лучших традициях некогда популярного перлового микро-движка Blosxom (the zen of blogging), надо только добавить туда поддержку плагинов от сторонних разработчиков и все будет супер. Без всяких этих мега баз данных, сотни шаблонов и прочей фигни.
Устанавливается на раз-два. Для того чотбы запостить, нужно в директорию положить файлик с POD разметкой.
18 августа обновился Mojo, причем довольно круто: часть модулей удалена, множество изменений без обратной совместимостиПолный список изменений тут Пришлось обновить свой диструбутив MojoX::Log::Dispatch, чтоб соответствовать новым веяниям.
На тему мега апдейта автор высказался в своем блоге The Times They Are A Changing
P.S. так что если кто-то писал что-то под Mojo очень советую проверить, работает ли это что-то с текущей версией Mojo
Нужна была мне возможность логирования в сислог для Mojo, в результате получился MojoX::Log::Dispatch - обертка над Log::Dispatch с интерфейсом Mojo::Log (чтоб заменять можно было). Теперь можно логировать в десятки различных ресурсов, модулей для Log::Dispatch большое множество
Нагрузочное тестирование дефолтного Mojo приложения (nginx и Mojo::Server::FCGI::Prefork):
Если интересны бенчмарки то вот:
Mojo vs HTTP::Engine
Startup benchmarks for Mojo, Catalyst, Titanium, HTTP::Engine, CGI::Application and CGI.pm
perl -MMojo::Server::FCGI::Prefork -e 'Mojo::Server::FCGI::Prefork->new->run() ;' &
ab -k -c 15 -n 10000 http://127.0.0.1:8080/fci
Server Software: nginx/0.6.35
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /fci
Document Length: 38 bytes
Concurrency Level: 15
Time taken for tests: 22.284 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 10000
Total transferred: 2130000 bytes
HTML transferred: 380000 bytes
Requests per second: 448.76 [#/sec] (mean)
Time per request: 33.425 [ms] (mean)
Time per request: 2.228 [ms] (mean, across all concurrent requests)
Transfer rate: 93.35 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.7 0 59
Processing: 2 33 7.7 31 157
Waiting: 0 33 7.7 31 157
Total: 3 33 7.7 31 157
Если интересны бенчмарки то вот:
Mojo vs HTTP::Engine
Startup benchmarks for Mojo, Catalyst, Titanium, HTTP::Engine, CGI::Application and CGI.pm
Отсутствие документации в Mojo способствует разрушению мозга. Хоть исходники очень даже приятны для просмотра, но первые шаги даются с трудом.Итак, пара советов всем кто решил не дожидаться документации, а приступить к изучению этого интересного фреймворка:
1. Начните изучение с тестового приложения Mojo::HelloWorld. Именно оно грузится по дефолту и взглянув на его код вы поймете, с чего же начать.
Самое примитивное приложение будет вида
package MyMojo::App;
use strict;
use warnings;
use base 'Mojo';
sub handler {
my ($self, $tx) = @_;
$tx->res->code(200);
$tx->res->headers->content_type('text/pl
$tx->res->body('Hello world!');
return $tx;
}
1;
2. Советую ознакомиться с архивами почтовой рассылки Mojo
3. Имеет смысл посмотреть на тестовые скрипты дистрибутива.
4. Настраиваем Nginx:
Увидел в рассылке конфиг для Nginx (автор
location /fcgi {Один из ключевых параметров в этом конфиге MOJO_APP MyMojo::App; он устанавливает переменную окружения
fastcgi_pass 127.0.0.1:3000;
fastcgi_param MOJO_APP MyMojo::App;
fastcgi_param SCRIPT_NAME http://127.0.0.1:3000; # !
fastcgi_param PATH_INFO $fastcgi_script_name; # !
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
$ENV{MOJO_APP} = MyMojo::App;
именно это просматривает баззовый класс Mojo::Server для установки аттрибута app_class:
$ENV{MOJO_APP} ||= 'Mojo::HelloWorld'
( Продолжение... )
Год выпуска: 2009
Автор: Kieren Diment , Matt Trout
Издательство: APRESS
Кто не брезгует торрентами, то скачать можно тут.
А тут: официальная страница книги
Просто так читать ее бессмысленно, поэтому если кто-то собирается познакомиться с Catalyst, то советую в первую очередь почитать мануал на CPAN, он был хорошо переработан и для старта - самое оно.
- Трусы
- Мужчина
- Гендер
- Каминг-аут
- Ну и ну! Земляничные яйца
Основная идея состоит в том, что отдельные подсистемы (или независимые приложения) могут обмениваться произвольным образом сообщениями через AMQP-брокер, который осуществляет маршрутизацию, возможно гарантирует доставку, распределение потоков данных, подписку на нужные типы сообщений. В качестве классических примеров обычно приводятся финансовые приложения, связанные, например, с доставкой потребителям информации о курсах ценных бумаг в режиме реального времени, также возможно RPC-взаимодействие двух подсистем, которые не имеют связи друг с другом (взаимодействие через общий протокол AMQP) и так далее и тому подобное.
Подробнее можно прочитать тут: AMQP по-русски
Так же в тему:
Apache Active MQ - open source решение (написано на Java), есть клиенты для большинства языков
amqp.org - тоже пригодится
Message_Queue_Evaluation_Notes - сравнение различных реализаций обмена сообщениями, в частности основанных на AMQP. Довольно интересно, что это wiki при Second Life
Zero MQ - быстрый и легкий сервис обмена сообщениями, написан на С++. Реализует несколько моделей работы, есть плагин AMQP.Написано, что у них получилось достичь 14,3 милисекундной задержки при потоке 4 100 000 сообщений в секунду
Apache Qpid - Open Source AMQP Messaging. Довольно прикольная штука, есть брокеры на С++ и Java.
OpenAMQ - брокер (С++) и API WireAPI (С++) через которое и происходит общение AMQP
UPD: На CPAN появился модуль Net::AMQP
