Published on
O'Reilly (http://www.oreilly.com/)
http://www.oreillynet.com/pub/a/oreilly/frank/yapc.html
See this if you're having trouble printing code examples
YAPCR: Yet Another Perl Conference Report
Last week, I attended YAPC, Yet Another Perl Conference, organized by the
Perl Mongers Organization, at Carnegie Mellon University in Pittsburgh. It
was impressive enough that I think it deserves a little attention.
General Impressions
YAPC was a very successful conference. There was much good feeling all
around. The Perl
Mongers wanted to
host a conference that any Perl user could afford to attend. The Perl Mongers
organization is, to be gentle, a loose coalition of loosely organized local
groups of Perl programmers, and some of them were worried that such a group
could not put together a successful conference. YAPC put those fears to rest.
Kevin Lenzo, a graduate student in computer science at CMU (and a member
of the Pittsburgh Perl Mongers), organized the conference. He was roundly
praised. The conference attendees gave him a book (Cryptonomicon, the
new Neal Stephenson novel) and his mother another book (Yes, I said his
mother; she got a very nice collection of short stories), both signed by
everyone attending the conference. It was warm and homey.
The conference ran very smoothly. Carnegie Mellon University provided good
conference space -- one very large conference room that split into three
good-sized rooms for most of the day. Presentations ran pretty smoothly, with
a few more glitches than usual, but nothing terribly bad. Most presentations
were made from attached and projected PCs (most running Linux, of course).
No presentation seemed to have Internet access. The presentations were less
well-prepared and more informal than at most conferences, but that made
sense. The tenor of the conference was one of egalitarianism, and most
presenters saw themselves as part of the same community as the audience. The
audience agreed. Audience participation was common and seemed natural.
However, in some cases, this informality led to talks that were rambling and
self-indulgent.
There were two kinds of rambling talks. In a couple of cases, the presenter
seemed to be someone who had longed for the opportunity to discuss his
particular interest and project, and, in the real world, found few willing
listeners. Finally in the midst of many Perl-loving colleagues, these
presenters opened the floodgates and released wave after wave of arcane
Perl information. The audience was forgiving of such presenters because the
presenter's respect for his material was so evident, and, because, well,
they like arcane Perl information.
The other kind of rambling talk showed a lack of preparation on the part of
a couple of presenters. These presenters, I felt, didn't prepare enough
because of their assumption that the audience would be very forgiving. Such
presenters got lost in their slides or had to explain why they couldn't show
one slide or another. One presenter said something like: "These slides have
some technical errors, but I know you'll understand. You're not like the
people who attend those $299 tutorials and expect every slide to be perfect."
The audience seemed less comfortable with this view. Although the attendees
didn't pay $299 to attend, they still expected the spreakers to be
well-prepared and the slides to be accurate.
Let me emphasize that most of the talks I attended were very useful and
well-prepared. Some were versions of talks or courses that would have cost
a lot more as part of other conferences or courses.
Conference proceedings were made available the first morning of the
conference. Many presentations were not included (part of that informality,
I guess) but will be available from the
conference
website. I just checked
and didn't see the proceedings yet, although the list of speakers and
abstracts is up. I suspect that Kevin is still recovering from YAPC
preparation and hasn't had time to update the site.
The food was okay but downscale. Lunches were a box lunch sandwich on
Thursday and pizza on Friday. Dinner on Thursday was institutional buffet:
chicken piccata (they said), vegetable lasagne (a lot like a chicken pot pie
without the pie crust or the chicken), boiled beans, salad, and dessert, all
on plastic plates with plastic utensils. All breaks had coffee or soda and
muffins, cookies, cheese cubes, or other snack-like objects. The food was
more than reasonable given the price of the conference.
Sponsors
Conference sponsors included
O'Reilly & Associates, of
course;
CMU;
The Perl
Journal (now published by Earthlink);
Walnut Creek, the
CDROM publishers;
ActiveState Tool
Corporation, developers of Perl software for the Win32 programming
environment;
Metronomicon.com (Kevin Lenzo's "wee startup");
Told You So, a
consulting company that supported the conference registration;
Manning Press, and
Addison-Wesley
Longman.
Presentations in a Nutshell
Here are my thoughts about some of the presentations I attended. Of course,
there are many presentations that I did not attend; three presentations
were given during most time periods. For more information, keep your eye on
www.yapc.com.
Keynote: Larry Wall
Larry Wall's keynote was supposed to be about Perl and economics (the dismal
science), but he changed his talk because he found the subject too dismal.
He showed us the Perl code that he uses to control the X10 household
environment in his home. It features sounds for everything, all broadcast
over a PA system. These sounds included a 10-minute countdown that helped his
children get to school on time (yeah, right); the Alleluia Chorus, for
email sent to his wife; and recorded dog barks to answer the door bell when
the family was out. The sounds were suppressed during the hour most often
allotted to naps; that's a nice feature! I found the system to be ingenious
at first and then a little scary. The code was interesting and clearly
written, but the concept was, well, oppressive. I know I'd put up with it
for about two days, and then I would own the wires to that PA system.
It was an interesting talk, however, because it was humorous; it focused on
very accessible Perl scripting (even I could follow it); and it featured
Larry, a very self-effacing Perl deity. It was very well-received.
XML and Perl
There were several XML-related presentations. I attended two: one on XML
and Perl by future O'Reilly author Jonathan Eisenzopf; and "Avoid Syntax
Hell: Use XML", by Ben Holzman. I was struck again by how difficult a
subject XML is proving to be. Jonathan tried to cover all of XML, and had
great difficulty determining which parts of XML are worthy of mention and
ready to use. XSL and XQL are two examples of XML-related technologies in
some mixed state of utility and instability.
Other XML tools, like jade and expat, have clear strengths and weaknesses
that make their use a matter requiring analysis. expat, for example, which
is part of the XML::Parser module in Perl, checks that an XML document is
"well-formed" but does not validate it. (A well-formed XML document follows
all the generic rules of XML; for example, all beginning tags will have
end tags. A valid XML document will also follow the rules of an associated
Document Type Definition; for example, a DTD might specify that a
header-level 3 tag has to be subordinate to a header-level 2 tag.) Thus, to
understand whether you want to use this module, you need to understand
whether validation is important to your document.
Someone more experienced with XML will probably dispute my examples above;
it's difficult to make completely accurate short statements about XML.
During Jonathan's talk, for example, a fellow from the audience kept making
exacting corrections to Jonathan's slides. I thought Jonathan might take
offense. It turns out that the "heckler" was Clark Cooper, Jonathan's
co-author. Hmmm.
Jonathan made a point of XML's inability to display information easily,
especially over the Web. I'm not sure that this will be a serious problem
for long. The next generation of browsers should handle XML natively. In
the meantime, just convert XML to HTML.
The point of Ben Holzman's talk was that XML is a good tool for regularizing
the syntax in configuration files. I'll have to pass on describing this
one. Ben went from the general statement above to a series of tasks and
the associated Perl scripts, skipping the middle layer that related the
scripts to the overall goal. I was lost until Ben's final point:
"Object-orientation is pretty cool." The code will be in the proceedings
at www.yapc.com. I leave it as an exercise to the reader.
Ben represented the other difficulty with much of the discussion of XML: the presenter knows what he does with XML, but those tasks get lost in the details of the code. I would have enjoyed this talk more if I were a serious Perl coder.
News from the Development Front: Dick Hardt
This talk was a summary of the new features of the nest release of Perl (5.6)
and of
Activestate Tool
Corporation's Microsoft-funded work. [In the interest of full
disclosure: O'Reilly & Associates has a financial interest in Activestate.]
This talk was interesting because of Activestate's acceptance of financial
support from Microsoft. There has been some criticism on the Web, and from
some Perl purists, about accepting money from the alleged Great Satan of
Software. Perl's independence, especially from Microsoft, is of great
importance to many Perl users. The critics were perhaps unaware that
Activestate had received funding from Microsoft before; that funding made the
current version of Activestate's Win32 Perl possible. Dick Hardt was clear
that the funding would be used for the greater good of Perl; nevertheless, he
looked around the room warily at first, checking, I think, for the glint of
metal flashing off a weapon.
Dick explained that Activestate's version of Perl supports the OnePerl effort.
This goal, rather than differentiating Win32 Perl from other platforms,
incorporates them under one specification. Among the work being done now by
ActiveState is COM support on Unix, for example. This work allows Unix
servers to work cleanly with Perl scripts running on Windows clients. In fact,
nobody challenged or attacked Dick. They seemed to understand that improving
Win32 Perl and integrating it with other versions of Perl was good for the
Perl community and for Microsoft. Of course, just in case, he did give away
free frisbees.
Dick expects Activestate's version of Perl to be part of Microsoft's
Services for Unix V2 product. He does not expect Microsoft to ship Perl as
part of Windows or NT. He promised a Beta of Perl 5.6 by the
O'Reilly Open Source
Conference in mid-August.
Dick also admitted that he has seen "The Phantom Menace" three times.
Chris Nandor - macperl
Chris Nandor made an interesting presentation about how MacPerl works with
Apple events, how it stacks up next to Applescript, and how it uses certain
specific modules (Mac::Glue, for example).
However, his current version is just into beta, and there are some major
holes, lack of perl/tk support being the major one. (If you want to port Tk
to the Mac, Nandor wants you.)
Lies We Tell Ourselves about Perl: Nat Torkington
This talk came late in the day, and Nat, a Perl Monger favorite, was trying
to stoke up the crowd. He wanted to disabuse the attendees of the notions
they tell to each other that conceal characteristics of Perl that could be
improved. The lies and half-truths Nat exposed were:
- Perl isn't slow. (It has to be slower than C.)
- Okay, it's slow but Moore's Law (the rapid increase of hardware-based
speed) will make it okay. (That's nothing Perl can take credit for, and
besides, Moore's Law works for the faster languages also.)
- Perl is easy to learn. (It is easy to use, but it's so terse, and
provides so many ways to do something, that it can be difficult to learn.)
- Perl is readable. (Only if the coder makes it so; it can be completely
unreadable, too.)
- It's okay to write "baby" perl. (Read the calumny in the chats and
newsgroups hurled at those coders who do write simplified code.)
- If you know C, you can write the time-critical parts of an application
in C. (So what is Perl for?)
- Perl certification is possible, based on Perl specs. (The specs aren't
good enough and Perl isn't set up for certification-type tests: too much
freedom.)
- Develpmen by perl5 porters is as good as development by commercial
developers. (Not true; not as reliable.)
- Many eyes find the bugs. (Nice point, but many bugs are obscure and
only a few people are really capable of finding and fixing them.)
- Perl moves 2 billion Euros a day. (It does, apparently; but European
companies can't find enough Perl programmers; Perl programmers (Note this,
European readers!) are actually being offered a higher hourly rate than
C++ programmers. Companies won't use a product if they can't find staff.)
- Don't do it in C++; do it in Perl. (Perl cannot always do what C++
can, or do it as well.)
- Don't reinvent the wheel -
use CPAN. (Perl is
fun; we *like* to reinvent the wheel.)
- Conclusion: Perl sucks. Use Python. (Nat's sardonic final remark; it
drew a few derisive laughs from the crowd.)
Nat admitted that his remarks were in some case half-truths as well, but he
intended them to burst some balloons and make people think about some of
the assumptions they made.
Perl Hardware Store: Mark-Jason Dominus
Mark-Jason noted that, when he went to the hardware store to ask about
leaky faucets, he found out about Teflon plumbing tape, which, when wrapped
around the threads of his shower head, stopped the leaks but left the head
easy to turn. Perl has useful tools like that, too, he said, and he gave
some examples.
His tools included:
- Schwartzian Transforms (named after Randal by Tom Christiansen) --
sorting a list by a hidden attribute (sorting filenames by date w/o printing
the date)
- Manual exporting w/o the Exporter (arranging functions in one package
for export, so they appear as if they were in another package; isn't that
like shoplifting?)
- Adding a New Method to a Package
- Semaphore Files (using a 'semaphore' to allow locking of a file so
that it can't be overwritten during the process of opening and locking it)
- Memoizing (A memoized function caches its return values)
For the code and a further explanation, see the conference proceedings,
when they are available. Mark-Jason's notes are quite complete.
M.-J. D. is an unorthodox (read: barefoot) presenter. He is quite lively
and a dynamic speaker. He could be more concerned about the accuracy of
his slides.
Elaine Ashton - History of Perl
This was a timeline of events which Elaine felt are connected to the
development of Perl. Some were a stretch. (Atari introduces home video
games in 1975. "Who," Elaine asks, "could forget Pong...?") This was a trip
down memory lane. It is useful from time to time to realize that Perl 1.0
was released in 1987. This is a language with a lot of history, a lot of
development. It predates Visual Basic and a lot of other interesting
languages. It's been hammered on by experts. If you're looking for a
stable, tested language, Perl has a claim on your time.
If you're interested in viewing all historical Perl events, visit the YAPC
website.
Randal Schwartz: Reducing Business Risk Using Perl
This business risk presentation, presented professionally and briskly by
Randal, stressed the features of Perl to use (and the ones to avoid) in
order to write commercial-strength, secure Perl code. This information
could help Perl programmers persuade their brainwashed bosses that Perl
code can be as secure and reliable as its proprietary competitotrs.
Randal warns against overuse of globals, use of certain outdated modules,
Y2K problems, warnings in running code, code "zombies", and other potential
performance and security problems. Nice talk.
Randal knows this material.
Adam Turoff - Effective Perl Mongering
This talk recounted how Perl Monger groups in various urban areas have been
started and maintained. There were no particularly unusual organizing
techniques; however, beer seems to play a crucial role.
As noted, the Perl Mongers are loosely organized. There are chapters in
most cities and on five continents. The chapters continue to exist as long
as the particpants are motivated to attend the meetings. Therefore, chapters
mix useful presentations and discussions with social events. Did I mention
the beer?
Adam called on Brian D. Foy, who discussed the Perl Mongers'
White Camel
award. The White Camel, it seems, is a rare and highly prized
animal. The award will be given to members of the Perl community who make
crucial non-technical contributions to Perl.
You can nominate someone at starting on July 8. The
winners will be announced at the O'Reilly Open Source Conference.
Perl/Gtk+: Geoff Harrison (Mandrake)
Geoff is about 12 years old (okay, he's in his early twenties, but from my
perspective, that's the same thing) and an employee at VA Research.
His presentation of Gtk+ and Perl was not very scripted; he mostly
demonstrated widgets. It may be that others who understood Gtk+ and
technology like Tk would have appreciated this talk more. Geoff certainly
claimed that Gtk+ had features that went well beyond those available through
Tk. Check the YAPC web site if interested.
Geoff talked during the lunch break about his true love, Englightenment, a
GUI he's developing right now. He seemed quite energized about it. It does
seem like a technology that could be important in the Linux community.
Perl and Databases: Chris Winters
This was a basic talk on DBI and database independence with brief coverage
of Apache::DBI and mod_perl. DBI, as you may know, is a generic Perl
interface to relational databases. It replaces the database-specific modules
common to Perl 4: OraPerl and SybPerl, for example. DBI provides a consistent
interface to common database operations; these operations, then, are mapped
to specific database products by drivers.
Chris noted in his talk, as I will here, that O'Reilly & Associates has a
book in the works on this topic by Alligator Descartes and Tim Bunce. Tim
is the creator and maintainer of the Perl::DBI module. Expect this book
later this fall.
Rebuilding Post-Apocalyptic Civilization with Perl: Jon Orwant
This was a tour de force. Jon, spokesmodel for the MIT Media Lab, asked:
what would happen if a group of aliens, annoyed by all the information noise
caused by humans, dropped an information bomb on the Earth? Jon posits that
most people would die. The most backward 500,000, unaware of information,
would survive, as would the most advanced 500,000. Jon thinks most of them
would be Perl programmers, with a few C and C++ programmers. "There was one
Visual Basic programmer," Jon related. "He made a tasty meal for the rest
of us." The most pressing goal of rebuilding civilization, according to
Jon? Organizing CPAN a little better.
Jon ranged over a number of interesting facts: for example the amount of
data DirecTV drops out of the sky onto your head each minute. A gigabyte,
that's how much. He figured out which characters were most used in CPAN
and was able to arrange a Dvorak-like keyboard for the post-apocalyptic Perl
programmer. It was pretty amazing. Based on Jon's predictions, though, I'll
be happy to be among the victims of this bomb.
Town Hall Forum: Kevin Lenzo
The last event was an open forum on the conference. Much satisfaction was
expressed.
The revenue fell a couple of thousand short of expenses. We passed the
hat. As I said: warm and homey.
Will there be a YAPC II, someone wondered? Next year, about the same time,
at CMU again, Kevin confirmed. They're looking to double the size. They may
adopt a sliding scale of charges to raise a little more money, charging
people like me more without charging more to students and such. They're
looking into adding a day, perhaps for extended tutorials.
Social Notes from the Steel City
- WDUQ, the public radio station managed by Duquesne University, may
be the best radio station in the world. It broadcasts great, accessible
jazz (Pittsburgh's jazz roots are deep) and National Public Radio news.
Don't visit the Pittsburgh air space without first tuning your radio to
90.5 on your FM dial.
- When I was in high school in a suburb just outside Pittsburgh, we went
to the Oakland neighborhood (where CMU and the University of Pittsburgh are)
to go to Original Hot Dog. We had heard, in my protected little suburb,
that you could find prostitutes there. We went, but we never found a
prostitute (to our knowledge, anyway, which was admittedly limited). We
bought the hot dogs, though, which was better anyway, because we knew what
to do with them. I went back to Original during the conference and had a
hot dog, fries, and a draft (Iron City) beer. Just as good as ever. If you
go, order the small fries. A large order will kill you, and even the medium
is beyond your capabilities if you're not from the Steel City.
- The Cathedral of Learning, the towering edifice at the middle of Pitt's
campus, looks like an elongated version of the structure Richard Dreyfuss
made out of mashed potatoes in "Close Encounters".
- I drove past my old house in the suburb of Mount Lebanon. I'd forgotten
how square and sturdy Pittsburgh's brick and stone houses are. My entire
street looks like it was built by the third Little Pig.
- One person at the conference admitted to having seen "The Phantom
Menace" five times. He was old enough to vote. It may soon be necessary to
consider Benevolent Despotism a viable governmental form.
Frank Willison
Editor-in-Chief, Technical Publishing
Return to: Frankly Speaking
Copyright © 2007 O'Reilly Media, Inc.