Back from BlackPerl 2011

On the first days of October (1-2) I was in Crimea (beautiful peninsula on the Black Sea). There was a beta version of BlackPerl workshop. We had not many people there but we had a lot of fun, presentations and even a small hackathon.

Translating PSGI specification into russian

We've started translating PSGI specification into russian If you speak or know russian you are more than welcome to join. We use channel on for discussions.

PocketIO - realtime applications for Plack

PocketIO is a SocketIO port from Node.JS to Perl. It allows you to write realtime web applications without worring about specific browsers features: from long-polling to WebSockets.

PocketIO is built on top of AnyEvent and Plack, runs smoothly on Twiggy. This way it can be easily combined with other nonblocking Plack apps.

PocketIO can be scaled using Redis pub/sub infrastructure.

Proved to work well in production with 100-150 simultaneous connections. Works just fine with TLS/SSL (via App::TLSme) too.

Check it out. On Github or now on CPAN.

PerlWeekly - Quality Perl links

I've joined as soon as it was launched. And since then I've enjoyed the quality Perl links every Monday. Not too few, not too many, just the right amount of news to check if I missed something during the week.

Articles, discussions, videos, events... I wish it had the most interesting CPAN updates or new Perl projects. Some unique content would be nice too, like interviews or short stories.

Sing up here

Little gifts are true

After reading rjbs' post on Promoting little gifts I remembered various gifts that I received from the users of my modules. For example I received a ebook from Jens Gassmann for working on PocketIO and today I got a thankful note and a donation from, the website that uses the same PocketIO in production (scary!). Funny that I can use something that uses something I wrote.

It's always nice to receive thanks and gifts. Thank you!

Perl Résumé

Lately I was playing with api. So I built a simple website that generates your Perl résumé based on CPAN experience, activity and impact. Runs on Dancer btw.

So check it out!

Any comments, suggestions and critics are as usual very very welcome.


Hey! The above document had some coding errors, which are explained below:

  • Around line 3:

    Non-ASCII character seen before =encoding in 'résumé'. Assuming UTF-8

Three Perl cloud hosting platforms

Recently a lot of cloud hosting platforms started to appear. But most of them are either bound to a particular language or technology or have quite a limited Perl support. It is always a joy to see a new hosting company that supports my favorite language. And now we have even three alternatives!

Socket.IO for backend developers

There is an official Socket.IO specification document, but it doesn't tell you the implementation details of every transport. When implementing a server side of Socket.IO you have to use tcpdump or wireshark to capture packets and actually see what you have to send and receive. So here are the details that I collected when implementing

Stash, Registry and DI container

It turns out that all web frameworks require some kind of a sharing mechanism for passing variables to templates, holding configuration, database connection etc. This common data should be accessed from everywhere: controllers, models, templates, api endpoints, utility scripts and so on. Designing this "everything in one" class can dramatically affect web framework flexibility, extensibility, readability, maintainability and global warming.

Writing Perl code the right way

Today we are going to learn how to write a HTTP request dispatcher subroutine in Perl. Why Perl? Because Perl style is close to HTML style. And HTML is used on the internets. Below are some useful tips.