Tuesday, 26 September 2006
Pittsburgh Perl Workshop 2006
Genehack and Nathan and I made the trip up to Pittsburgh for a day to participate in PPW06. It's the first proper Perl conference I've been to, and it was very much worth it - I met a few other DC-based Perl people and got some fresh ideas from the talks I attended. (Details on those after the jump.)
Thoughts on the conference itself -
- Surprisingly, they only charged $20 as an early bird fee.. frankly they could have charged more and we would have still come; they did say they pretty much sold all the spots they had expected to and more. (Also, there's not as much point to an early bird fee if it only expires 6 days before the conference.) I felt we got away almost too cheaply -- the fee probably barely covered the t-shirts and materials and food and drink they provided all day.
- The theme of the conference was "Perl at Work", i.e. a strong focus on practical applications. As one fellow from PriorityHealth summed up at the end of the day, there are things from the conference that we can start using tomorrow.
- In a way, this was a test of the concept of a Perl Workshop -- there have been some abroad but this was the first one in the US. I think it was mighty successful, and I'd love to see one even closer to DC.
Some links from the day for future reference..
- pghpw.org, the conference site
- the conference wiki
- hackathon.info, a weekend of working on Perl community code in Chicago. Looks like a lot of fun -- unfortunately, it conflicts with a Piker alumni reunion, so maybe next time.
- DBIx::Fun, a module which makes calling PL/SQL procedures much cleaner & nicer in Perl.
- PlusThree, a DC company which uses Perl extensively. Michael Peters presented on a "web-based smoke test aggregator" they just updated, Smolder.
- Perl DateTime project - making a consistent API for dates and times. Time zones and leap seconds make life awfully complicated.
- Perl 6 Synopses - the latest information about what Perl 6 will look like.
Specific talk notes follow... [ppw06 perl]
I went to these talks:
Having fun with stored procedures with DBIx::Fun - This one was the most immediately applicable to me; we use PL/SQL stored procedures here and there, and the
bindparaminout statements you have to use with them can make your eyes cross and send you running to the documentation every time.
DBIx::Fun abstracts the ugly stuff out so your main code can be readable and smooth again... For this and other reasons (SQL syntax checking & completion, precompilation, direct DBA access to important queries...), there's an argument to be made that one could now easily relocate much (or even ALL) of one's SQL ''into the database'', much like the View layer abstracts all the HTML away. This is a very interesting idea. (It could be done before, but painfully.)
Writing an "Enterprise Scheduler" in Perl using POE, DBI, and SSH - Same company that gave the above talk, PriorityHealth. They used Perl Object Environment and MySQL to generate a very involved-but-seriously-capable controlling app for coordinating backups and restarts of Oracle and Sybase systems (and anything else they need to do from the command line), with an extensive notification engine, sophisticated dependency handling, and some other things I can't recall just now.
The first version's code is released at http://thirdlobe.com/projects/page/ (PAGE = Perl Asynchronous Graph Executor).
- Higher-Order Design Opportunities - Using functional programming to make a generalized ETL engine with any input and any output but with smart default behaviors. Good practical demo of techniques I've been mostly reading about.
- Bring Your Smoke Tests to Life - Introduction of Smolder, a "web-based smoke test aggregator". Handles anything that outputs TAP (though right now the TAP needs to be converted into an XML format; not hard). Looks like it'll be useful when we get a big enough test suite.
- Perl DateTime Project - good intro to the emerging API for consistent handling of dates & times. Recommendation from the talk: always store dates in UTC and translate to the user's specific time zone when you need to display.
- Make your database work for you - Some straightforward SQL discussion, with one particular nugget I liked -- when performing a search with multiple criteria, assemble your big query based on INTERSECTs of only the queries handling the fields which have search terms. Much better than trying to be clever with joins.
- Approximation Algorithms in Perl - A good reminder of some of the classic algorithmic problems, and demos of how estimation of a solution often gets you close enough.