Yes, I’m desperately trying to catch up with a week that is passing by too fast. A mountain of information is sitting in notes on my computer awaiting comment on this blog.
Tuesday was my MJD day. A day of Tutorials spent listening to one of my favorite Perl trainers, Mark Jason Dominus. For those not familiar, Dominus is a smart guy with a dry sense of humor, and who enjoys working on code that most people just dont’ have fun with. He is also the author of Higher Order Perl, one of my most recommended books for advanced Perl programmers.
My first session with him was an updated presentation of the same name, Higher Order Perl, the second session was title “Making Programs Faster”. Sadly I cannot link to his extremely thorough slides (It’s his job), but the majority of the content was more in depth discussion on aspects of his book, with alternative looks at how the data can be useful.
One review of the Higher Order Perl is the rip off of the Spam skit, it’s about “closures, closures, closures, closures, Baked Beans, and closures”. Really a large part of the book uses Perl closures to get across many key features.
Iterators, walk_tree routines, anonymous subs as objects, and parsers were some of the tools used to teach some the different ways to accomplish common tasks Perl programmers face, but in more optimized ways.
The Making Programs Faster class began by looking into the pitfalls of benchmarking, including some of the errors he’s found in the common Benchmark module, and showed ways to perform benchmarking more accurately. From benchmarking we moved into profiling methodologies in perl. From there we moved on to writing a better POD parser, before finally going over common performance mistakes.
All of MJD’s talks carry with them a great depth that helps you understand inner magics of the language in actually useful ways. But with magic comes the chance for going astray. Only in MJD’s class can you quickly go from a discussion on profiling, to discussing if lemonade is a black body, and therefore measurable by an infrared thermometer. 🙂
In summary, really both classes cover content that you can basically find in the book, but the atmosphere, and depth far surpass what you get from just reading. New examples and QA time really help in understanding.