Channels ▼

Web Development

OSCON Report

Casey West specializes in developing open source based high-availability solutions. He spends free time hacking on Perl and its community, as well as contributing to other OSS projects.

OSCON 2005

O'Reilly's Open Source Convention was a must-see event this year. OSCON was held in Portland, Oregon, in the first week of August. Over 2000 developers came to learn, teach, advocate, and socialize.

This year marked the 7th OSCON, and the 9th Perl Conference. Last year's OSCON brought new life to the conference. More developers came than the year before and sessions were packed. O'Reilly solved the space problem this year by moving the conference from a hotel setting to a convention center. This had the immediate effect of creating more than enough room for attendees.

The conference had a more "corporate" feeling than years past. OSCON was referred to as "The COMDEX of Open Source" during a keynote session. This change of atmosphere might be attributed to the change of venue.

The Tutorials

The first two days of OSCON are reserved for tutorials. These sessions run for three hours and cover in-depth topics such as learning Perl's DBI and test driven Apache module development. This year a very popular tutorial was given by Damian Conway titled "Perl Best Practices." Damian's tutorial coincides with the release of his latest book titled _Perl Best Practices_, published by O'Reilly ( I received a copy of this book and I'm very pleased with it.

Perl 6 continues to make progress. Damian Conway and Larry Wall gave us the "Perl 6 Update" on Monday, detailing the development of Perl 6 over the last 12 months. Brian Ingerson presented "Apocalypse Now!—Perl 6 Is Here Today" which gave a very fast overview of Autrijus Tang's Pugs project, a Perl 6 interpreter written in Haskell. Patrick Michaud discussed ongoing development of the Perl 6 Compiler. Patrick is leading design and development of the software and he discussed work related to the parrot grammar engine, the Perl 6 grammar, and reviewed his road map to the first Perl 6 development release. Nicholas Clark briefed us on the status and development of Ponie, the bridge between Perl 5 and Perl 6. He detailed the difference between the insides of Perl 5, a stack based virtual machine, and Perl 6 running on Parrot, a register based virtual machine.

Web development with Perl was a major topic at OSCON this year. Stas Beckman presented a tutorial on writing applications with mod_perl 2 titled "Practical mod_perl 2." On Wednesday Geoffrey Young taught us "A Few Cool Things About mod_perl 2.0." Kevin Scaldeferri, Lead Developer at Yahoo! discussed "How to Serve a Billion Requests a Day with Perl," an engaging session providing insight to the complex technologies Yahoo! Search must employ to get the job done. No web development track would be complete without a discussion of MVC frameworks available to Perl developers today. To fill that void, Perrin Harkins spoke about "MVC Web Development with Perl." He covered Apache::PageKit, Maypole, OpenInteract2, and CGI::Application. With such an excellent round up he left the audience with a solid understand of the differences and development practices of each.

A gaggle of Perl testing zealots lead a lively session on "Practical Perl Testing." Bill Odom, chromatic, Andy Lester, and Ian Langworth took the stage to present this topic to interested Perl developers. They touched on the important topics such as test-driven development, difficult testing scenarios, and real-world testing of production systems. After the presentation the speakers told me it was chaotic to give such a talk with so many people on stage. I expect them to invent test-driven conference presentations for next year.

Peter Scott, author of Perl Debugged and most recently Perl Medic: Transforming Legacy Code, presented "Extreme Perl Makeover." This session drew large inspiration from his excellent Perl Medic book in which Scott described numerous situations where a programmer is left maintaining a pile of less-than-perfect code. Analogous to the popular "Extreme Makeover" TV shows, Scott showed us how to take sub-standard Perl programs from bad to beautiful.

Perl 5 Porters made its annual showing with "pumpkings" Nicholas Clark and Rafeal Garcia-Suarez teaming up to teach us "What's New in Perl 5." Clark and Garcia-Suarez discussed the new release model for Perl 5 development, "release early and often." Rafeal has accepted responsibility for Perl's development track, 5.9, taking over for Hugo van der Sanden. The development of Perl for a 5.10 release continues steadily.

Damian Conway showed his evil genius at "The Conway Channel 2005." In this session Damian discussed a couple handfulls of modules he's been working on. Damian covered IO::Prompt, IO::Interactive, Log::StdLog, Debug::Phases, Leading::Zeros, Sub::Installer, Regexp::MatchContext, Contextual::Return, Perl6::Export::Attrs, Config::Std, and Getopt::Euclid. I suppose for Damian this is all in a day's work.

Mark-Jason Dominus gave two excellent talks discussing some "Higher Order" topics. His tutorial covered "Making Programs Faster" in areas of performance tuning with practical benefit. Mark started with the basics of performance tuning and tailored the session to emphasize cost vs. benefit. He finished with common blunders made while optimizing including the infamous premature optimization. Mark's second presentation was titled "You Can't Get There From Here." He began the talk by reminding the audience that "nothing you learn here will be any benefit to you in any practical way, but my book has the opposite effect." I agree completely. His talk covered a number of "NP Complete" and "Intractable" problems that are common stumbling blocks within computer science. Mark's style was engaging and the audience demanded he continue well past the end of the session time.

Ask Hansen presented "Build Easily Extensible Programs" and discussed plugin architectures. He drew from experiences with qpsmtpd, his Perl SMTP server built with plugins and flexibility at the core. This case study covered topics such as simple, easy APIs and keeping maintainability in a system of increased generality and pluggability.

Curtis Poe dazzled audiences with "Logic Programming in Perl." Curtis presented an overview of logic programming, sometimes known as specification programming. He went on to show off his Prolog implementation in Perl. This code allows you to describe the goal and lets your program figure out how to achieve it. Curtis did an excellent job presenting a topic that is often orthogonal to traditional Perl programming styles.

Social Events

OSCON is just as much about social events as technical sessions. This year SpikeSource threw a party nearly all week with the SpikeZoo TestFest Lounge. This was a huge lounge with large LCD displays, Sony PlayStations, video games, ice cream, couches and chairs, and constantly flowing coffee. This lounge was one of the best places to relax at OSCON hands down.

The "hallway track" at OSCON was also excellent. The Portland Convention Center had tons of space in the halls for lounging around. O'Reilly provided a bunch of blow up furniture to support the grouping habits of geeks. This was an amazing innovation for a conference of this size. Walking the halls you could find groups of developers every twenty feet discussing topics from Open Source Java to Identity 2.0. I highly encourage every attendee of a conference to spend some time in the "hallway track."

Casey's Wrap-up

For me, OSCON was a resounding success this year. I got to meet old friends and make new ones, and learn about amazing technologies both emerging and stable. Join me next year for the 8th O'Reilly Open Source Convention.


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.