Thursday was a long time ago. The keynotes have been covered in detail
elsewhere, so I’ll just give a general impression. It was really nice to hear
Mitch Kapor’s enthusiasm for Linux on the Desktop. He also mentioned that his
first brush with free software was in the mid 80s, when Richard Stallman was
protesting outside the Lotus offices. Kapor took a strong stand against
software patents, which endeared him to the audience.
Mark-Jason Dominus is well-known as an entertaining speaker as well as the
capable host of the Perl Lightning Talks. He’s so good at what he does, he was
able to give the conference committee only the title of a talk and
receive 45 minutes to do whatever he wanted. The result was “Nine Views of
Mark-Jason Dominus”, nine lightning talks about cool hacks and good ideas.
One of the most useful talks was “How to Progress”. Dominus gave some of
his secrets of being smart — read the books no one else is reading, take
good notes, and read one sentence and really think about it before you read the
next sentence. The final talk explored a message to aliens, encoded in a radio
signal. It’s really interesting to think about how you would explain human
concepts and science starting from the number system and working up to ideas
such as gravity and pressure.
Andy Lester then presented “Automated Testing of Large Projects with Perl”.
The big secret is how his company handles their smoke tests. In short, they
run the complete smoke test suite automatically every hour. Any failures are
e-mailed to all developers. (There aren’t many failures.) Andy’s learned
quite a few things and most of his experiences and conclusions match mine. It
was nice to see forty or fifty people picking up good habits. Andy suggested
daily, weekly, and monthly goals to improve testing. (Good suggestion one:
read our testing materials! Good suggestion two: everyone writes at least one
test every day! Good suggestion three: keep records on how much testing helps
Microsoft provided lunch again. Version 2.0 was better than version 1.0.
It’s unfortunate that they won’t have the chance to impress us with version
During lunch, I helped James Duncan man the
href="http://perl-foundation.org/">Perl Foundation booth. We explained the
goals and principles of the foundation to a few hardy souls wandering the
exhibition booth during lunchtime. If you’re looking for a way to support your
favorite language and community in a volunteer fashion (and possibly a non-code
fashion), there are foundations for other languages.
Next up was an O’Reilly Network meeting, with Daniel Steinberg, Derrick
Story, and Nancy Abila. We discussed href="http://today.java.net/">Java.net and href="http://www.onjava.com/">ONJava, how they complement each other and
how our editorial strategy needs to evolve. Since both sites address different
audiences in different ways, we’re just looking for the right way to handle
things editorially. Enough work, though, there are still talks to attend!
Just about everything Perrin Harkins says impresses me. I rushed to his
“Object-Relational Mapping Tools for Perl” talk. I’ll admit that I don’t ever
want to write a serialization layer again, so I was interested to see his
survey. His conclusion was about what I expected — I really need to look
into Class::DBI. Fair enough.
The next talk was a little disappointing. While David Fetter’s “How
Database Projects Fail” had some good content (it’s always amusing to hear
horror stories of when things went wrong, and it’s usually easy to learn a
lesson or two), he spent a lot of time bad-mouthing MySQL. I understand that
PostgreSQL fans are disappointed that MySQL gets a lot of press for adding
important features that Postgres has had for years, but they’re both fine
projects. Fetter’s information about MySQL features and flaws was a couple of
years out of date in places and just plain wrong in others. Hopefully he’ll
revisit his research and improve his comparisons for next time.
I ducked in for the tail end of the “Perl Certification Panel”. There are
few subjects more contentious in the Perl world. Things were winding down, but
I heard two good points that really changed my mind on the issue. First, Andy
Lester, who manages more than he codes these days, asked the question, “Why
would I need to look at a certification if I’m going to interview prospective
hires from a technical perspective, anyway?” Brian Aker responded that just
having a certification for Perl allows Human Resources people to filter CVs
before dumping a huge pile on a developer or a technical manager.
Andy’s right, in that a company that wants to write good code would be
crazy not to interview people in detail. (Of course, there are good
arguments that the software industry is crazy, and you don’t
have to look very hard to see why I think that.) Brian’s also right, in that
it would be useful to be able to say “Hey, this guy knows a few things while
this guy doesn’t seem to.”
I wonder if there’s a certification that could be built that doesn’t imply
that one person is a great developer, only that she demonstrates a basic
proficiency with the language. You wouldn’t hire her based on just having a
certification, but you could consider her for a more detailed interview.
It’s a thought, and there’s a Perl
Certification Wiki in place now to discuss these ideas. Perhaps we’ll see
more progress along these lines in the near future.
Fotango’s James Duncan (yes, the guy
from lunch) next gave his “One Year, 93,210 Lines of Code, Ten Staff and Some
Lessons Learned” talk. He gave this at YAPC to good reviews. Fotango grew
from a startup with a website thrown together by consultants into an effective
development group with a large product written in Perl that’s spawning
generically usable open source libraries.
The real secret of Fotango’s success is good teamwork. Part of that is
their strict hiring process. Another part is their agility. It’s possible to
build really good, really useful, really elegant large applications in Perl (or
just about any other language). They don’t talk a lot about doing Extreme
Programming, but their development process is definitely agile. Good talk.
The Testing Cabal had a BOF partway through the talk, but as Schwern was
listening to the ever-clever Dave Thomas and I was entranced by the wacky
antics of orange-loving Londoners, I showed up late. Unbeknownst to me, Dale
Dougherty and Steve Mallett were meeting in the same room so we discussed some
of our upcoming publishing plans. There are lots of interesting ways to start
conversations, and we’ll be exploring those in the future.
href="http://www.onyxneon.com/">Onyx Neon open bar party came next, so I
was a good little citizen in my free Onyx Neon shirt. My sometime co-worker
Curtis Poe had come up with an interesting idea for training that we might
explore; see the Onyx Neon site for further details.
The rest of the party is a little fuzzy. The TPF auction had the usual
assortment of ridiculous items, including Andy Lester eating pages from his
book, Karen Pauley donating Dominus’ boxer shorts (clean) and then buying them
back (and you should have seen Marty Pauley’s face), and the right to determine
the color of CPAN Search for the next
year (and you really should have seen Leon Brocard’s face when
London.pm LOST!). I wish I had one of those nice wizard hats, though….
As I started fading, I was in a heated discussion with Curtis Poe and Piers
Cawley about the best way to test to make sure that your individual code units,
well tested with programmer tests, fit together. I think we finally convinced
him, but I really wanted my bed at that point.
Then it was midnight and we missed the last train home and my brother and
sister-in-law are absolute saints for driving downtown to pick us up. Maybe
next year they’ll build a hotel within walking distance of my house so I can
cut the commute from an hour to about two minutes. Ah, a man can dream. See