OSCON 4.2: Lightning Talks

by Geoff Broadwell

Related link: http://conferences.oreillynet.com/cs/os2005/view/e_sess/6842

This year's MJD Lightning Talks were wide ranging, and for the most part a blast to watch. My biggest complaint was that there weren't enough of them -- I'd happily spend an entire afternoon (four 45-minute session periods) doing a huge set of lightning talks. I note that the Python folks are currently having to do an LT session of their own at the moment, and MJD's are already two periods long, which indicates to me that there are easily enough topics to fill an afternoon if speakers from all tracks felt more welcome.

In fact, I'd say that inviting all tracks to a common block of LTs would probably make a wonderful event. MJD's LT session is listed in the Perl track, but I believe he usually has a good mix of Perl and non-Perl topics; this year we ended up with about the same number of Perl and non-Perl talks. I enjoyed the non-Perl talks very much, and I'd love to be able to hear LTs from all of the other languages as well as the Linux and security tracks, for example. Somehow it needs to be made more clear next year that everyone is invited. Perhaps the session could be put in a "General" track, or titled "All-Tracks Lightning Talks" or somesuch (but hopefully better worded).

Here are the talks given this year, broken down into Perl and non-Perl (I've used the names listed in MJD's talk list when my notes were found lacking; apologies if any of these are not correct):

Perl Talks

  • Darren Duncan talked about Rosetta, his database abstraction layer. Rosetta apparently allows queries to be specified as ASTs, which will be automatically converted to any (supported) data provider / query language backend as needed. Sounds good, but I'll reserve judgement -- DB abstraction is usually a harder problem than it first appears, especially if efficiency is important.

  • Eric Wilhelm explained how the detailed manufacturing of the metal cladding for San Francisco's new de Young Museum was driven by Perl scripts processing images drawn by artists and architects. Pretty cool (and just plain pretty) stuff.

  • Tim Maher explained what he meant by Minimal Perl, the title of his upcoming book. Tim recommends teaching and working within a subset of Perl, crafted to work to the strengths of new users and avoiding esoteric complexities. When his book arrives, it will be interesting to compare the language features he chose with those used in the fourth edition of Learning Perl.

  • Marvin Humphrey pitched Kino Search, an indexer/searcher toolset written in Perl. He explained that Kino Search is not a spider, and not a web app; it's more of an RDBMS for search indexes, providing much of the backend magic and some clever algorithms to give more relevant search results. Kino Search users can then put arbitrary front ends and data spidering tools in front of these libraries to fit their needs. This the another of the "Looked good, but 5 minutes is just not enough to show how much of the complex problem space this addresses" talks.

  • Will Whittaker followed up last year's talk on using mod_perl to make Apache speak SMTP (using Apache::SMTP) with a talk on how to use Apache as a traffic shaper to give suspected spammers brutally slow net connections (using his Apache2::Protocol, Apache2::Protocol::SMTP, and Apache2::Throttle modules). Clever and wonderfully evil.

  • Grant McLean persuasively argued (as did several other speakers at the conference; it seemed to be a major meme) why Perl 5 programmers should just say no to prototypes. I only had a brief stint years ago thinking they were cool, but now I'm in agreement with everyone else -- Perl 5 prototypes shouldn't be used except in very special circumstances. They are very anti-DWIM and fundamentally broken in Perl 5 for lots of important cases.

  • Ask Bjørn Hansen talked about perl.org's new single sign-on system, Bitcard. Bitcard is open and free, both for users and websites, and supports APIs used by other languages and platforms. The goal is to never have to write another website user authorization system. Identity systems seem to be another major conference meme this year; there was even a keynote about it.

  • Earl Cahill rounded out the Perl talks with a pitch for CGI::Path and CGI::Ex::Validate, which his team used to produce data-driven multi-page website flows, such as user signup. Validation code is automatically generated both in client-side JavaScript and server-side Perl for security and user friendliness. It wasn't clear from the talk whether the modules were useful in a mod_perl environment, or only a true external-program CGI environment, or both.

Non-Perl Talks

  • Andy Lester gave two great lightning talks. The first was his Seven Dirty Words of Programming. The words (and phrases) were:

    1. "Can't you just . . . ?" (implies the listener is stupid; Andy suggests "Why doesn't foo work?")

    2. "My code/your code" (if you own your code and won't let anyone touch it, you will learn that "can't be replaced" and "can't be promoted" go hand in hand)

    3. "Efficient" (overbroad and way overused; be specific!)

    4. "Intuitive" (just another way of saying "it makes sense to me")

    5. "Fault" (who cares, and at a minimum, blame code, not people)

    6. "Too hard" (missed the detail on this one)

    7. "Later" (either put a real date on the calendar, or treat this as "never" and be rid of it)

  • Andy's other talk was "How to Not Be a Nobody", in which he pointed out that open source is inherently social, and what you could do to be a part of this society. Here are some of his suggestions (with Perl-specific annotations):

    • At a conference, eat lunch with people you don't know

    • Write a module for your favorite language or environment

    • Fix bugs, especially those in official bug tracking systems (rt.cpan.org and rt.perl.org)

    • Add a feature to an existing module

    • Improve some docs (annocpan.org)

    • Improve some tests (qa.perl.org)

    • Answer posted questions (lists.cpan.org, perlmonks.org, comp.lang.perl.misc)

    • Go to a local user group (pm.org)

    • Give a talk (OSCON, YAPC, Perl Mongers, etc.)

    • Write an article (perl.com, theperlreview.com, etc.)

  • MJD himself did a talk (presented silently) on programming by deleting from a full file, rather than adding to an empty one. A highlight: the special slide used when he was heckled. It already (correctly) had "Shut Up, Uri!" in blinking text. I wondered if it was a setup, but then I noticed the frequency of Uri heckles in other sessions . . . .

  • Casey West pitched JSAN, the JavaScript Archive Network. It's great to see some Perl fu spreading out to the other languages, and it sounds like it's being received well, too.

  • Ben Tilly spoke of tactical and strategic thinking, and pointed out that getting plastered the night before giving a talk is definitely not strategic thinking. I believe he knew whereof he spoke.

  • Elizabeth Cortell had the coolest talk, explaining how to make a lunchbox out of one of the thicker O'Reilly books. "Bet you don't have one of these bad boys around the office!"

  • Rich Bowen explained why he hates Apache, which was pretty much an extended (and hilarious) rant on stupidities in Apache configuration. (He also explained that he wrote some of the docs for it, so knows first hand how borken it can be.)

  • Of course, there was the (in)famous Juggling Multiple Languages talk -- pretty well done, though having heard the spoilers, I didn't get the full effect.

  • Tim Chambers finished off the LTs with his Ergonomics in Emacs talk, which seemed to consist of massive rebinding of the Emacs key tables (and a partial conversion to VI-style modal input?)

Phew, quite a collection! Of course, I already said I want more next year. ("More, MORE, I'm still not satisfied!")

What do you think about having a full afternoon of lightning talks next year, with all tracks explicitely invited?


2005-08-07 22:11:30
It was no plant. Just well-planned.
2005-08-08 21:57:43
Perl Prototypes

I wasn't actually arguing against the use of Perl prototypes or suggesting that they're 'fundamentally broken'. The key point is that people expect Perl prototypes are used for the same thing C prototypes are for when in fact they're intended for something entirely different.

In 5 minutes I couldn't really go into 'appropriate' uses of Perl prototypes too (although some would argue that that's more than enough time).

2005-08-08 22:58:13
Perl Prototypes
Fair enough, though only the first sentence of that bullet point was intended to reflect your talk; the rest was my own beliefs synthesized with other speaker's comments on the subject, data from Damian's Perl Best Practices book, and so on.

Sorry that that got confused!