YAPC::EU 2013 afterimage

This was the biggest Perl event I've attended so far. Also, it was the first one I've attended outside of Brazil. And I'm happy to see that there is so many people in Ukraine who are passionate about Perl! So, listing some of my impressions below.

The city

Kiev reminded me the place of my birth, Novosibirsk. The huge Dnipro river, the soviet architechure, the dishes... OK, it's not the same, but, you know, after all, Ukraine is more similar to Russia than Brazil or Netherlands are ;)

Also, I've got my thesis disproved: Ukrainian & Russian language distance is bigger than Spanish & Portuguese. And, as a bonus, it seems that my wife's 2 years of learning Russian got her able to handle simple conversations with the local people :D

The people

I don't usually interact with people. Not because I don't enjoy talking to people, but rather because I'm an introvert. Well, there is a CPAN module for that! Actually, not yet, but Hallway++ concept by Matt S. Trout comes quite close. I've had many enlightening talks with many interesting people, despite the fact that I suck at starting conversations :D

Also, we data-munging crowd usually suck at design. At least, graphic design. He that never made a crappy logo/favicon among you, let him first cast a stone. A skilled designer can make a huge difference for our awesome projects. Now, you too can make a difference by saving a designer's life!

Tricks learned

  • Benchmarking is really hard, and the default Benchmark module shipped with Perl wasn't designed taking into account the modern multi(core|tasking) systems. Dumbbench module by Steffen Mueller addresses some of the issues. Also, it might be interesting to force cputime-based clock by monkeypatching Time::HiRes;
  • It is possible to trace variable changes by tie()ing scalars/hashrefs/arrayrefs. Tie::Trace module wraps this debugging feature in a user-friendly way;
  • XMLStarlet is a tool that combines grep/sed/awk/join Unix commands for structured XML data;
  • Sometimes, monkeypatching can be very useful (like forcing cputime for benchmarks, as stated above). Other times, we need to patch the optree directly using B::Generate. Then, Code::Splice is for optree patching as Monkey::Patch is for monkeypatching :)
  • Unix::Statgrab, the API for fetching information on the operating system, CPU, memory usage, network interfaces, hard-disks etc., is reborn;
  • Perl6 is awesome for concurrency, parallelism and asynchrony. And Perl6 will run Perl5 code natively in a couple of years \o/
  • We should steal some of the date/time handling concepts from JSR-310.

BTW, all the slides (even mine) can be accessed from here: http://act.yapc.eu/ye2013/slides

Leave a comment

About stas

user-pic Just another lazy, impatient and arrogant IT guy.