Wednesday, June 29, 2011

YAPC::NA 2011 - day 2

Tuesday started with RJBS's "Perl 5.14 for pragmatists". Stable perl releases can now be expected every year. He warned about the usage of "given/when" and smartmatching, followed by all the changes of 5.14. Biggest features in my opinion: \r regex modifier, each on arrayrefs, built-ins on references (push, keys, ...) and new core modules like HTTP::Tiny and JSON::PP.

Later he explained his reasons for avoiding smartmatching (directly from my notes):
  • operands define semantics (everywhere else the operator)
  • 27 different possibilities
  • applied recursive
  • wicked complicated
And for given/when:
  • uses smartmatch implicitely
  • except in 8 cases

The next talk was Jesse Vincent with "Perl 5.16 and beyond". It was a look into the future of Perl 5.

After the lunch break it was time for me. I talked about "Sanitizing HTML 5 with Perl 5", which is about HTML5::Sanitizer. It was my second international talk (last year I talked about "Graphic visualization") and I was pleased with it (I didn't like my performance last year). There are lots of things I can do better, but at least I see a progression. :)

Then I hopped into "Practical AnyEvent", which started parallel to my talk. Stephen showed some AnyEvent examples. And I noted "never run recv on a condvar, use a callback ($cv->cb) and call recv in there", which sounds like a solution to a problem we have in Beetle. But I have to check that, when I'm back in the office.

Next was Rocco Caputo with Reflex. Reflex is the "ORM of event loops" or "reactive programm building blocks". It looked really nice, I have it on my list of things to try out.

I didn't make any notes about the content gaps talk, there was not much Perl in it, at all.

And the day ended with lightning talks:
  • Vala (static typed OO language, for Gtk)
  • Selenium (with Perl)
  • (mailing list archive)
  • Template Toolkit usage mistakes (not using caching)
  • carton (dependency installation in local directory)
  • CPAN modules from far east
    • Furl (fast HTTP client)
    • Server::Starter (hot deployable network server)
    • SQL::Maker (cleaner internals than SQL::Abstract)
    • Test::mysqld (start/stop MySQL server for testing, automatic cleanup)
  • beware the brilliant programmer (more focus on maintenance programming
  • Perl events
  • fat comma (constants cause problems with fat comma, Abigail proposes ,=>)
  • Devel's REPL (mst talked about Eval::WithLexicals)


  1. Nice report, Uwe. I hope there will be videos or slides after the event. I'm really interested in practical AnyEvent :)

    Have fun!

  2. @tiff: Thanks Christopher. I shared your wysihtml5.

    @vti: Yes, everything is recorded and it will be on at some time. I'm quite sure you know the AnyEvent stuff already. There also was a presentation about POE, AE and Coro in comparison, but I attended Perl 5.16 instead. :(