October 2002 Newsletter
The Perl Foundation Newsletter
October, 2002
YAPC 2003
It's time to put together your proposal to host next year's YAPC. Information on venue requirements is available at: http://www.yapc.org/venue-reqs.txt
South Florida and Ottawa have submitted proposals thus far.
The Great Perl Cull Census of 2002
As noted on use.perl.org, Chief Perl Monger Dave Cross has updated the list of active Perl Monger groups at www.pm.org.
If your group is active but has been delisted, send mail with contact information to user_groups@pm.org
CafePress.com Stores Benefit TPF
Some Perl folk have set up stores on CafePress with proceeds benefitting The Perl Foundation. The stores include:
Dan Sugalski's Parrot Stuff at http://www.cafeshops.com/ParrotStuff1
Dave Cross' nms Store at http://www.cafeshops.com/nms
Tim Maher Interview
We recently spoke with White Camel winner Tim Maher about Seattle.pm, also known as Seattle Perl User Group (SPUG) This is the first in a series of interviews that will highlight PM groups around the world.
Q: How did Seattle.pm get started?
TM: I began dabbling with Perl in the early 1990s, but frankly had a hard time feeling comfortable with some of its more unconventional features.
I objected to what I saw as superfluous deviations from UNIX standards (like tagging all scalars with $), an overabundance of syntactically equivalent ways of writing the same thing (e.g., forwards vs. backwards loops and conditionals), and the unnecessary inclusion of radical new concepts (esp. LIST vs. SCALAR contexts).
For me, learning Perl was like watching a movie where I found the initial developments sufficiently disjointed and deranged that I had serious doubts that the writer would ever be able to make sense of it all for me, and ultimately reward me for my attention.
The bottom line is I just wasn't confident that Larry's programming mentality was compatible with mine, and without that faith, I wasn't willing to make the considerable effort to learn a new, and rather peculiar, programming language.
Moreover, as a C, Shell, and AWK guy since the mid-70s, I figured I could do everything I needed with those tools already -- given a sufficient number of User Processes and Development Time! So I didn't really feel the need for a One Language Does Everything solution.
But by 1997 Perl usage was growing by leaps and bounds, and many were waxing poetic about what a joy it was to write in a language that freed them from the micro-management of minutiae and just "did the right thing" most of the time.
And, on top of that, Perl offered the capability of doing UNIX-style network programming, which was rapidly escalating in importance, without resorting to the travails of C.
So suddenly, I came to see Perl as my dream language. It was like AWK with sockets! What more could one ask for?
When I finally decided to get serious about learning Perl, I realized that what I needed most was to improve my capacity for PerlThink. (That's Larry's term for using Perl's features judiciously, and then getting out of the way so it can do its magic.)
I figured the best way to achieve this goal was to
hang out with people who were already
PerlThinking, so in late 1997 I started looking
for a Perl SIG in Seattle. But I quickly learned
there wasn't a group, just a web page dedicated to
the proposition that there should be a group, and
it had been sitting there for a long time,
collecting comments from would-be members!
Many months later, while cooking breakfast in an escaping steam vent atop a smoke-spewing volcano in Indonesia (no kidding!), I gave this situation some more thought, and decided that, if necessary, I'd step forward to start the group myself.
Hmm ... how can I convey to you just how excited I was about taking on this role? I'm reminded of a play by Woody Allen in which a distraught woman makes a moving soliloquy about her desperate need for intimate contact with a Man. Just when she's on the verge of descending into a deep depression, an actor planted in the audience shouts out:
I'll sleep with that girl, if nobody else will!
That's exactly how excited I was about starting SPUG!
I had never created an organization before, so I found that proposition itself rather daunting. And on top of that I was concerned that such unpleasant activities as begging, pleading, imploring, beseeching, and ultimately arm-twisting would be required of me to sign up prospective speakers -- and, unfortunately, I was right!
(I later learned they'd invariably thank me afterwards for pressuring them into giving talks, once they realized how much the exercise helped solidify their knowledge, and how much fun they had sharing it.)
Why did I step forward to create SPUG? Because, to paraphrase Kevin Lenzo, 1999 White Camel Award recipient and YAPC organizer extraordinaire:
We need people who will actually DO stuff!
So I booked a room in a local community center, advertised the inaugural meeting of the Seattle Perl User's Group (SPUG), betting on the "Announce It and They'll Come" model of group formation, and the rest is history!
Actually, I wasn't very confident that many SPUGsters would show up for that first meeting, because the only available date was for St. Patrick's Day (1998). As it happened, about two dozen deranged Perl fanatics waived their rights to irrigate themselves with Green Beer and attended the inaugural SPUG meeting instead.
By the way, although there are hundreds of Perl groups now, at the time, SPUG was only the sixth to form. This is why we still principally use our SPUG moniker, despite the fact that later groups came to be known by "Perl Monger" appellations -- ours, of course, being Seattle.pm.
In summary, I started SPUG because:
- I wanted to find people who'd help me learn more about Perl,
- There wasn't already a Seattle group, and
- I knew that somebody had to take action -- and I was the only volunteer I could find!
I'm happy to report that it all worked out very well for me, and for the group at large. For my part, I eventually came to accept the LIST vs. SCALAR distinction as a Good Thing, I embraced map and grep and started writing "backwards pipelines", and I even wrote, during SPUG's first year, the original Perl Beautifier as my first large Perl project (see http://teachmeperl.com/perl_beautifier.html).
And most importantly, I made a blanket decision to henceforth give The Larry the benefit of the doubt; he seems to know what he's doing! But I still won't write my conditionals or loops backwards -- a programmer's got to have some principles! 8-}
So that's how my interest in Perl developed, and how SPUG came into being.
In retrospect, the SPUG story is really a shining example of enlightened self-interest at its best, working for the benefit of the Perl Community.
Q: What have been some of the more memorable Seattle.pm events?
TM: Here's my list of "Great Moments in SPUGgery":
- March 17, 1998, when 45 people showed up on short notice at a suburban Seattle community center, far from any major arterial road, to establish the group.
- March 25, 1998, when Larry Wall appeared before our fledgling group for an informal talk on Perl and XML, and a Q/A session. Despite the fact that the group was only 9 days old at this point, we were bold enough to invite him, and he was nice enough to come. A shining example of "Ask and ye shall receive"!
- The May 19th, 1998 talk on map() and grep() by Doug Beaver of Amazon.com, who amazed us with how many loops we could actually omit, if we were willing to risk being called "insensitive scoundrels" (see "perldoc -tq map"). This demonstration of "extreme PerlThink" was a real eye-opener for us.
- TPC 2.0 (July, 1998), where our 4-month old group had more user papers accepted than any other (2 out of 16), and the paper by Marty Cudmore and Richard Jetton won the "Best System Administration Tool" award (http://press.oreilly.com/perlconf2.html ).
The other paper was mine. In it, I proved the nay-sayers wrong by demonstrating, with my very first large Perl program, that automatic beautification of Perl source code was not such an impossible dream after all. (For an expression of the opposite viewpoint, see "perldoc -fq pretty".)
Of course, I cheated^H^H^H^H^H^H^H"maximized my Laziness" by disguising Perl as C and running it through a mature C Beautifier rather than writing a true Perl parser and beautifier, but I achieved the stated goal nonetheless (see http://teachmeperl.com/perl_beautifier.html and http://teachmeperl.com/pb2001.html).
I like to think that my development of "pbeaut" paved the way for the later emergence of "perltidy," the Perl beautification tool now prized by all JAPHs, including me.
- Brian "Ingy" Ingerson's May 16, 2000 talk on XS, including why it sucked, and why we needed and deserved a much more convenient mechanism for incorporating code from other languages.
- TPC 4.0 (July, 2000), in which 20% of the programming teams competing in the "Perl Golf Apocalypse" were from SPUG (http://www.seattleperl.com/teams-spug1.html), and "no team beat any of the SPUG teams".
- The November 21, 2000, SPUG meeting, featuring Ingy's first ever talk on his ground-breaking Inline.pm module, which created new possibilities in multilingual programming and went on to earn acclaim, awards, and a large following. The idea of embedding foreign code in Perl source occurred to him during Damian Conway's TPC 4.0 tutorial on Parse::RecDescent. By the end of the next break, Ingy and fellow SPUGster Colin Meyer had already discussed the idea with tutorial-mate Larry Wall and received his bless()ing. Ingy and other SPUGsters developed the idea further at the conference pub after the tutorial.
- One or more presentations per year, starting in 2000, by Damian Conway, who has amused, enthralled, and occasionally stupefied us with his dazzling wit, showmanship, and intellect. The real eye-opener was his "Quantum Superpositions and the First Virtue" talk (July 6, 2000), where we first learned what a wild and crazy guy he really is. We were privileged to be the second group in human history to hear that talk, right after its June debut at YAPC 19100. And some of us are still recovering! 7-}
Q: What advice can you offer other PM groups based on lessons you've learned from running Seattle.pm ?
TM:
1) Tap into the High-Tech Heckler Talent Pool! They know a lot, and
want to show off.
I've been attending high-tech user-group meetings since the early 80's, and the standard format is still as follows. A marketing representative of a Vendor stands in front of a bunch of Geeks, projecting eye-candy slides extolling the virtues of a product, in the hope that their managers will be induced into buying it for them. The Geeks, for their part, intermittently heckle the presenter, muttering or even shouting out technical corrections to his superficial coverage of the topic, and denigrating his pedigree.
My reaction was always the same: I wanted to hear the Geeks, not the Marketing Guy! So SPUG was established as an "Educational Cooperative", with the motto "We Put Our Hecklers on Stage, and Let Them Educate Us!"
2) Don't ever let the members wonder "Is there a meeting this month?" Have a meeting EVERY month!
The problem is that if nobody's sure there will be a meeting, then it won't get on their calendars, and they'll start missing meetings. The resulting depletion of the audience will have a deleterious effect on the social benefits of the meetings, so more people will start skipping them. Pretty soon you've lost your group. So my recommendation is to always have a meeting!
Admittedly, this goal is easier to achieve in SPUG than in many other groups, because I, the leader, happen to do Perl training for a living (http://teachmeperl.com). This means that on a moment's notice (e.g., due to a speaker cancellation), I can present a decent talk on a Perl topic just by whipping out my laptop and projecting pre-fab course materials.
But I strongly recommend that other groups strive to maintain consistent meetings, despite the challenges they might encounter in achieving that goal. And to help out, I'll give them some tips on how to recruit potential speakers.
First of all, the most effective way to ensure that you *WON'T* have a volunteer speaker is to put out a general announcement that "Speakers are Welcome to Propose Talks for the Next Meeting." Prospective speakers generally respond more favorably to being asked to pick a topic from a proposed list, than being expected to generate one.
Members who are outspoken fans of certain modules (LWP, Inline, etc.) or Websites (e.g., PerlMonks.org) may be invited to present talks on them. Members who say they'd like to participate but are "just too busy" can usually be enticed into presenting a "Lightning Talk" of 5 minutes or less. But in our meetings, because there's no MJD figure with an exotic see-through hat ready to bang a gong, we let them run as long as they want. So we get them on stage with the modest expectation of a 5 minute talk, and then we typically get 15 minutes out of them anyway!
We've also had some success in picking a book chapter (e.g., "Perl Cookbook: Arrays") as the topic for a meeting, encouraging everyone to read it beforehand, and having someone moderate a discussion about it.
3) Don't focus on Beer or Britney! Don't have dinner-only meetings! Talk about Perl!
I periodically subscribe to the mailing lists of other PM groups to see what they're talking about, and I generally find that very little of the content relates to Perl. Beer, Movies, Britney Spears, Austin Powers, and High-Tech Gadgets seem to be the most popular topics.
We SPUGsters like beer (and even moreso, hearty ales) every bit as much as they do. This is why we have optional meetings for drinks before *AND* after every meeting. Nevertheless, we have a much better topic to discuss on our mailing list, and during our meetings. Specifically, PERL! (sorry, Britney!)
And we know our focus on Perl is valued, because our mailing list averages about 400 subscribers, which is an order of magnitude higher than most other groups.
The discussions there are primarily technical in nature, which means we could, of course, have posted those messages to one of the well known newsgroups, mailing lists, or web-sites devoted to Perl instead. But then we'd be getting tips from far-flung correspondents we'd never see between conferences! By participating in a local forum instead, we enhance the interconnections of our community a little bit more with every new discussion thread.
Although our current meeting hall holds about 300, an average meeting is attended by from 20-30 persons. Approximately one third of the faces change from one month to the next, along with personal interest in the featured topics. Of course, when we have world-class Perl celebrities like Larry or Damian as speakers, attendance soars. These speakers draw out those who usually participate only on the mailing-list, and they tend to come back for the next few meetings in a row once they see how much fun we're having. Then most of them revert to lurking on the list (sigh!).
The majority of the non-technical messages posted to our list relate to Job Offers, and several SPUGsters have obtained employment through this service. Job offers are few now due to the economic downturn, but back in the days of the "Dot-Com Boom", we had loads of recruiters attempting to post job offers to our mailing list. Unfortunately, many were for jobs dealing exclusively with VB or C++. Some got so mad when I denied their off-topic posts, that they offered me "bribes" to approve the postings anyway! Although I was tempted by this easy source of revenue for SPUG, discussions on our mailing list made it clear that we had such a low collective opinion of the integrity of the people in this industry that we didn't want to enter into any alliances with them. But these discussions certainly helped us focus our policy on posted Job Offers.
Specifically, because of the pipeline we have to the local Perl talent pool, and the strong attraction that holds for employment professionals, we've become very particular about the kinds of information these job postings must contain. And that includes some material many companies don't want to divulge (see http://seattleperl.org/#Jobs). But that's the price they have to pay for reaching our members!
4) Don't forsake the Beginners! Don't let the meetings descend into a Geek-Fest!
I've participated in many groups that woke up one day to wonder "Where have all the Beginners Gone?" One easy yet highly effective technique for eradicating them is to bandy about acronyms and high-level concepts without explanation, thereby sending a clear message of assumed knowledge. This will typically leave the hapless newbie, who had cheerily introduced herself at the meeting's beginning, cowering in frustration by the intermission, wincing as each new acronym is launched from the podium.
As with any other congregation of Geeks, SPUG is highly susceptible to this problem, so we have to be careful not to fall into this trap. One effective solution is for the moderator to politely interrupt the acronym-uttering speaker to request a definition of terms. This helps the audience to understand the discussion, and the speakers to learn to define their terms. A better approach is to instruct attendees to immediately raise their hands when they need acronyms defined, which has the time-saving advantage of "defining only on demand".
Yet another way to make Beginners feel welcome is to schedule special events for them. In the case of SPUG, we dedicate 1/3rd of our meetings to Beginner topics.
5) There's More Than One Way to Do It!
As with all realms of human endeavor, TMTOWTDI applies. What works for SPUG, with our particular Leadership Structure, Talent Pool, Corporate Affiliations, and Guru Alliances might not be possible with other groups. And, although I may have given the impression that we in SPUG always knew what we were doing and were destined to achieve great success and a commensurate measure of notoriety, that's not really how it happened. We got where we are today by establishing goals, trying out different paths to achieving them, and shunning the bad ideas and embracing the good ones.
And that's an approach any PM group can follow! 8-}
Q: Anything else we should know about SPUG?
TM: SPUG wouldn't be where it is today if not for the help of many individuals and organizations. In particular, I'd like to thank all the SPUGsters who shared their knowledge with us, especially Colin Meyer, who's second only to me in the number of talks he's given.
We owe an especially large debt to the indefatigable Damian Conway, who was always willing to make Yet Another Presentation to SPUG, no matter how exhausted or overburdened he was at the time.
The efforts of sometime speaker and oft-times hardware manager Andy Sweger, and his alternate Dora Choi, are also much appreciated.
And, of course, we mustn't forget our sponsors. The Perl Mongers organization has helped us by providing our mailing list service, Zipcon by providing our web-hosting, and Safeco Corp. by providing our current meeting space. And I must acknowledge the unflagging support of Kevin Fink, formerly of N2H2.com, who was instrumental in keeping us alive by always making meeting space available to us during lean times. Also, TPF and my own company, Consultix, for their financial sponsorship of Damian's visits.
To learn more about SPUG:
Web site: http://seattleperl.org
(c) The Perl Foundation, October 2002. Free use and redistribution of this document is encouraged.