Lightning Talks

Instead of having one large presentation this month, we decided to have several people give shorter presentations.

TDD Done Correctly - Robert Stone

Robert made the assertion that TDD is a very good approach to writing software and suggested that people who don't like TDD aren't doing it properly. He walked through an example of some code he wanted to develop, showing how to use TDD from the beginning.

UML class diagram of Person class and Exercise Role

Starting with the UML diagram above, Robert wanted to show TDD in the best light. In the interest of time, he showed the begining of the development real-time and finished with some of the code and the tests that he had developed along side.

The audience ended up asking a lot of questions around the periphery of his main topic. There were questions about the use of make_immutable, some of the vim features he used, as well as the trade-offs of using cmp_ok versus is from Test::More.

Robert also showed an interesting technique for creating a test class using Moose::Meta::Class, with an attached role in order to test the role in isolation.

The code for the talk is available as a tarball for download.

Radix Sort - Julian Brown

Julian presented some research that he had been doing on a sort that was claimed to be even faster that the standard Perl sort. The inventor describes it as a kind of general purpose radix or counting sort. This generated quite a bit of discussion about radix sorts and this algorithm in particular. (Slides)

Sessions - Jocelyn Kirby

Jocelyn described some of the history of maintaining session information for a web application, starting from the early days with only cookies and progressing to the present with modern session object techniques using Dancer. (Slides: Google Slides format, PDF)

vim tips - G. Wade Johnson

Wade followed up some with a set of vim tips to expand on what Robert had mentioned. He showed a one line command that provides a way to load a beginning template when creating a new file based on the extension:

    autocmd BufNewFile * silent!    0r ~/.vim/templates/%:e.template
He said he doesn't remember where he saw it, but it is quite effective for filling in initial boilerplate for new files. He also showed uses of the block seletion, and text objects that are useful for intermediate level vim editing and talked about a couple of plugins.

Some of My Modules - Michael R. Davis

Michael showed his list of his CPAN modules (ID: MRDVT). The modules he highlighted ran the gamut from modules that provided a single function to a plugin-based library for GoogleEarth.

We had 7 people attending this month. As always, we'd like to thank cPanel, Inc. for providing the meeting space and food for the group.