Each year, Mark Jason Dominus hosts
Perl lightning talks. These are five minute long talks, with the time limit
strictly enforced. We should see about 16 or 18 in this 90 minute session.
They’re often fun, and a good break from the deeper technical talks at the
conference.
(By the way, the wireless network is working again. I wonder if the
different rooms here are connected to different routers. That might explain
why I’m having trouble in some places and not others.)
Stop Using XML Everywhere Damn It! by Michel Rodriguez. For
configuration files, XML gets turned into a Perl data structure. It works,
but it’s ugly. YAML is cleaner looking. You can turn XML into YAML with a
Perl one-liner. For data, use a database. Exchange data with XML, don’t
store it that way. XML is just like text files, only slower. Time’s up!
The State of Onion by Robert Spier. An announcement of (and ad
for) the newly redesigned Perl.org web site. Lots of nice features, and
you can even write pages in POD
and it will render in HTML. The new site does look very clean, and has half
a terabyte of storage available.
BeeCheck: The Do-It-Yourself Software Solution by Maryjane R.
Eldred. Company found software licensing costs prohibitive, but needed to
keep it legal. Solution: turn to open source. But the sales force depended
on ACT! and Access. They couldn’t find open source solutions for this, so
they decided to do it themselves. They needed speed and portability,
multi-platform and no mouse required. Built on MySQL, Perl, and
CURSES::Widgets for display. Rolled it out on Friday, June 13, to high
acclaim. The Perl community provided the support that helped them do it.
CPAN: The Next Generation by Autrijus Tang. Tools and
capabilities that have appeared in the last year. (Display problems for his
laptop: part of the screen was cut off by the projector. He has to lower
the resolution on his notebook; everyone was impressed by the Chinese
version of Mac OS X.) First we see “CPAN: The Original Series”. The
diagram is big and convoluted. Now we have CPANPLUS, a modular rewrite of
CPAN. It’s extensible, portable, and fast. And the diagram is much
simpler. Module::Builder replaces MakeMaker. There’s a BOF on everything
new tonight.
How to Get Hired by Andy Lester. Andy is a programmer who grew
pointy hair and is now a manager. Find a job you want or you’ll hate life.
Don’t just throw out resumes at random. Ignore Monster, et. al. From a
survey: hires made through Monster = 1.4%, Hotjobs = 0.39%, CareerBuilder =
0.29%, Headhunter.net = 0.27%. Most of his recent positions came from
jobs.perl.org. Resume: what he wants is programming competence, not language
specific, brilliance and wizardry isn’t important. Good habits. Social
skills. It’s a
buyers’ market; competent programmers are a dime a doze, but team oriented,
sociable people more rare. Consider the poor hiring manager who wants to
find you if you’re the right person. Start with a summary at the top: who
you are, what you know, what you want to do. Interview: dress like a
professional; a suit is always fine, there’s no such thing as overdressing
for an interview. Don’t be afraid to say “I don’t know”. If you don’t
know, ask the interviewer the right answer. Ask questions: what do you want
to know (don’t ask about pay and benefits, ask about the work). Closing: if
you want the job, say so. Follow up via e-mail (don’t call unless e-mail is
unanswered for weeks). Get the book
Ask The Headhunter. I
certainly agree that this is good advice that is not followed enough by job
hunters.
The Perl DateTime Project by Dave Rolsky. Equipment problems
prevented giving this talk, at least for now.
Part-of-speech Tagging by Aaron Coburn. (Another presenter
needing to change resolution to work.) How do you distinguish meaningful
words in text versus those that don’t need to be indexed? Well, I don’t
have the background to understand this talk; it seems to assume a lot of
linguistics knowledge. But it’s available on CPAN, so I could research it
further if I like.
5 Damian Modules in 5 Minutes by Walt Mankowski. “Damian Conway is
best known for work on dead languages like Latin, and fictional languages
like Klingon and Perl 6.” Lingua::EN::Inflect converts singular to plural,
selects “a” or “an”. Switch is a switch statement in Perl (which
doesn’t have one). Class::Multimethods support multimethods and
C++-style function overloading in Perl. Attribute::Types; attributes
that confer type on variables. This lets you put types that variable values must
conform to. Next provides a pseudo-class NEXT that allows method
redispatch.
New Syntax for Links in Pod by Ronald J. Kimball. His proposal for
a new syntax for links in POD. Why? Current syntax is too complicated,
order is hard to remember, too much character escaping. Now wants: target
of link described by attributes of the L<> escapes. Everything not
an attribute is part of the descriptive text. And URLs with descriptive
text will be supported: L< u<http://www.perl.com/> The Perl
homepage> creates a nice hyperlink. Benefits: simpler, attributes in any
order, no special characters needing escaping, easily extended. Can be
backwards compatible with current method because lower-case letters indicate
attributes, which indicate the new syntax. Subscribe to mailing list via
pod-people-subscribe@perl.org for more information.
Second try after break: The Perl DateTime Project by Dave Rolsky.
CPAN has many date and time related modules, no one of which solves all the
problems there are for dates and times (in fact, some problems aren’t
addressed by any of these modules, such as the Olson time zone database).
The proposed solution, a suite of related modules. The core module is
the existing DateTime.pm.
These are 1% of my favourite CPAN… by Autrijus Tang. A rap in
Chinese about his favorite modules, ending with the list mostly in Chinese
to the tune of “My Favorite Things”.
Test-Driven Development by Matthew Heusser. Decompose your
functions, write test cases, both valid and invalid, including boundary
cases. But how? “use Test;” to use Perl to run your tests. Because coding
is fun, testing is boring, and this makes testing feel like coding. And why
not test at the end? Well, you’ll find all kinds of reasons your testing
“can’t” be automated, you “won’t have time”. And what kind of carpenter
cuts first, then measures? Measure first, then cut, then measure again.
Don’t Injure Yourself, Use Inline! by Schuyler Erle. Start by
discussing various map projections to be more accurate in showing the earth
on a flat surface. R. Buckminster Fuller invented the Dymaxion Projection
that mapped the surface of the sphere onto the surface of a polyhedron, then
unfolded the polyhedron. What does this have to do with inline.pm?
Schuyler helped a friend handle projecting the globe centered at different
cities. Some important code was in C, and ugly to write in Perl. So inline
let that C code be incorporated into Perl, solving the problem.
Complexity Management Simplified by Piers Cawley. He came up
front and started singing. What’s that got to do with complexity
management? Apparently nothing. There’s a four letter word people use: “just”. When your
boss says “can you just?” he’s hiding complexity.
Ten Great non-O’Reilly Books by Andy Lester. We start with a
picture of a bookshelf with dozens of O’Reilly books on it. But what about
great non-O’Reilly books? Object Oriented Perl by Damian Conway.
Effective Perl Programming by Joseph Hall talks about idioms and how
to think Perl. Network Programming in Perl by Lincoln Stein.
mod_perl Developer’s Cookbook by Geoffrey Young. Code
Complete by Steve McConnell (from Microsoft Press). The Pragmatic
programmer by Andrew Hunt and David Thomas; if there’s one book you’re
going to buy, buy this one. The Practice of System and Network
Administration by Limoncelli and Hogan. The Elements of Style by
Strunk and White, not just for its obvious purpose, but also for ideas about
agile development. The 7 Habits of Highly Effective People by
Stephen Covey. The Brand You 50 by Tom Peters. (I’ve read all these
except for the Practice of System and Network Administration, and I agree
with Andy about almost all the ones I know. But I’ve started to feel Tom Peters’s work is
shallow, though a nice read.)
Implementing the Shell’s “select” Loop for Perl by Tim Maher.
CPAN module Shell::POSIX::Select gives you the loop “the Perl gods didn’t
want you to have”. Tim is writing a book for Manning about minimal Perl for
shell programmers. He noticed that the select loop is the only shell looop
missing from Perl, but it’s the friendlest loop in any of the Unix shells.
So he decided to fix it. “select is even cooler than Perl’s -n option.
Think of -n with extra performance.” It’s code for making a choice from a
menu. select should be as easy to use as foreach, instead of calling a
subroutine. This means source filtering using Filter::Simple. That module
passes the source code to the programmer’s sub in $_, which can modify it,
then Perl runs the modified code. More invormation at
www.teachmeperl.com.
Allison’s Restaurant (by Arlo Guthrie) by Allison Randal. She
channels Arlo Guthrie for a new song about Perl 6 development.