Guru with Perl orb

TeachMePerl.Com  Interview with:
  Tim Maher  

Consultix
> Interviews > on SPUG and White Camel Award
<< on History of SPUG | written, on Min Perl book >>


Home
Training Services
Public Class Schedule
Training Classes
Clients and Endorsements
Publications
Interviews
 - on History of SPUG
 - on SPUG and White Camel Award
 - written, on Min Perl book
 - video, on Min Perl #1

About Consultix
Tim Maher, CEO of Consultix, was interviewed about his background in Perl, how he came to start SPUG, one of the first, biggest, and best Perl User's Groups, and what his 2002 White Camel Award means to him personally.

In this wide ranging and humorous interview, Tim tells us about his early use of UNIX and its utilities in the 70s, why he initially resisted switching to Perl, why we don't currently program in AWK++, what line from a Woody Allen play best describes how he felt about creating SPUG, how his early torment by Catholic nuns has benefitted The Perl Foundation, and how and why we should all support and contribute to Perlity, a term he coins to describe the Perl Community (with a savings of two syllables).

INDEX


How did you get started with Perl?

I'll be happy to tell you, but first let me put a few things in historical perspective.

Way back in 1976, as a graduate student at the University of Toronto, I was using C, grep, sed, expr (yuck!) and the Mashey shell (the Bourne shell's predecessor) on UNIX to simulate neurophysiological experiments on a virtual cat (in Prof. Ron Baecker's Interactive Computer Graphics class).

I became pretty adept with all these tools, but I had some reservations about UNIX's ''tinkertoy'' approach to utility programs, which struck me as an example of a fundamentally good idea taken to an undesirable extreme.

As a case in point, in the Bourne shell you have to use the external expr command to do simple arithmetic. The variable-incrementing idiom was (and still is):

value=`expr $value + $inc_val`

Just imagine how efficient that approach is, at the cost of one extra (synchronous) process per calculation, when you have to total a series of numbers. It's pathetic!

So when AWK came out in 1977, I was intrigued by its potential for improving the state of UNIX programming, with features such as:

  1. Program simplification through an implicit input-reading loop,

  2. Automatic parsing of input into fields (forever ending sed's monopoly on a manual approach, based on cumbersome "\(.*\)" -based techniques),

  3. The Pattern/Action model of programming, which links pattern-matches to code blocks, and

  4. Built-in support for basic mathematical functions, including floating point calculations.

I rapidly became a dedicated AWKaholic, promoting its use wherever I went. And if there had been a Nobel Prize for Artificial Languages, I would have nominated Aho, Weinberger, and Kernighan for it!

The AWK approach is just so good that I'm convinced modern programmers would currently be using languages with names like Turbo-AWK, AWK++, Visual AWK, Objective AWK, and perhaps even JAWKA, PythAWK, and AWK#, if not for an egregious travesty of high-tech justice.

Which is simply that this ingenious 1977 language was not properly documented until 1988, when Prentice-Hall's AWK Programming Language book came out. What a tragedy! But on the other hand, perhaps Larry Wall would have missed his chance with Perl if things had been otherwise. I guess that's the silver lining.

But getting back to my story, I wasn't really affected by the AWK documentational snafu. That's because I got the chance to make a career change from a university ''CS Professorship'' to a ''UNIX Course Developer and Instructor'' position with Western Electric (the branch of the Bell System that owned UNIX). They hired me in 1982 to develop and teach classes on UNIX topics, providing me access to internal documentation and bona fide UNIX ''Subject Matter Experts''. So I rapidly became an accomplished AWK programmer, and developed lots of nifty examples of its use for the training materials I created.

One especially useful program I wrote was a shell syntax checker and beautifier. I wrote this out of necessity, after a huge shell script stopped working due to a misplaced single quote that I just couldn't find. It saved many programming projects for me over the years, and then sadly, it was lost forever in a disk crash.


You have a very interesting background, Tim. But where does Perl fit into all of this?

Believe it or not, I was getting to that. 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?


You received a White Camel for developing and starting SPUG, the Seattle Perl Users Group. What were your reasons for creating this users group?

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 start SPUG? 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:

  1. I wanted to find people who'd help me learn more about Perl,
  2. there wasn't already a Seattle group, and
  3. 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. And I'd have to say it's been a great experience!

Just look at our list of former guest speakers and panel members, which includes many of the most influential people in the Perl community: Larry Wall, Damian Conway, Randal Schwartz, Mark-Jason Dominus, Nathan Torkington, and Gisle Ais. We've also enjoyed presentations by SPUGsters Brian ''Ingy'' Ingerson (the Inline guy) and Brian Akers (the SlashDot guy), who have rightfully earned widespread notoriety.

No other Perl users group has had so many opportunities to bask in world-class Perl wisdom. 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.

By the way, to make it easier to refer to the Perl Community, which I tend to do a lot, I've coined a word: Perlity. So just as one can say ''I did it for (Humanity|Charity|Solidarity)'', we can say ''I did it for Perlity''.


So Tim, what motivated you to give back to, er, Perlity?

I was motivated by one of the most powerful forces in the Universe, which is the same one that's led me to comfort the afflicted, console the distraught, help little old ladies across the street, donate to charities, volunteer as a Big Brother, accurately pay my taxes, and to give good value for my professional services. What else could it be, but: Catholic Guilt!

Yes it's true, I was tormented by emotionally conflicted nuns as a schoolboy (can you say Attila the Nun?), and raised in an Irish-Catholic family replete with relatives who were priests or nuns.

For these reasons, I'm overcome with visions of Hellfire and Brimstone if I don't jump for the phone with my Visa card the instant a PBS pledge-break appears on TV. Or if I don't answer the call of The Perl Foundation (TPF) when Kevin Lenzo threatens yet again to send Larry back to his old System Administration job unless we cough up more dough. 8-}

But more seriously, as I said earlier, my initial motivation in starting SPUG was primarily my personal interest in networking with other JAPHs (Perl hackers). When demands later arose on my time and energy for altruistic contributions, I was happy to give back, out of a sense of duty to Perlity.


What does it mean to you personally to receive a White Camel?

Of course, being equipped with a mammalian nervous system, I'm susceptible to the same influences of reward and punishment as the furry creatures I used to manipulate as a Behavioral Psychologist. So by exploiting this neural wiring, you can entice me, and many other more talented people, to selflessly contribute to Perlity for our mutual benefit.

Which leads me to my new GJG campaign, which stands for Greater JAPH Gratitude, during our monthly SPUG meetings, but Guinness is Justifiably Glorified, afterwards.

This campaign is dedicated to teaching the more ''gratitudinally challenged'' members of our community that Thank-You's cost nothing to the issuer, but can act as very effective motivational tools to the receiver. So if you appreciate someone's work, especially if it's volunteer work, you should let them know. For your own good, as well as theirs.

I'm personally a very Thankful Guy, perhaps to a fault. For example, if you saw me at the St. Louis YAPC in hot pursuit of Kevin Lenzo or Jon Orwant (two of my favorite contributors to Perlity), you should know that I meant them no harm. It's just that they're both modest, easily embarrassed guys who know how effusively thankful I am, and for that reason they blush and flee in panic as I approach. 8-}

And I'd like to invite more JAPHs to join me in this chase! Considering the important contributions of the relatively small group that really makes this community work, JAPHs ought to be in a nearly constant state of thankfulness!

For example, every JAPH owes a debt of gratitude to tchrist, for his magnanimous contributions of world-class online Perl documentation. Most newbies owe thanks to people like merlyn, japhy, and my fellow White Camel recipient vroom, for their valuable contributions to c.l.p.m and perlmonks.org. (Larry's reportedly already received all the gratitude he can tolerate, so please don't thank him anymore.)

So how, you might ask, will this GJG campaign work to get people like these the thanks they deserve? Quite naturally -- through the time tested technique of controlling behavior through Threat of Punishment. Specifically,


I hereby levy the following Financial Penalty on the Ingrates of Perlity, who neglect to discharge their debts to the community, for they are loathsome in my eyes:

For each time you don't thank some contributor to Perlity whom you should, I sentence you to a fine of $10, payable within 24 hours by charge-card to TPF. Late payments are subject to interest at the rate of 1% per week, compounding weekly. 8-}


The beauty of this system is that Perlity wins either way, because both those who are cash poor but rich in gratitude, and the reverse, have ways of helping.

Specifically, if you dole out your Thank You's as you should, your Thankees will be encouraged to work harder on Perl, which benefits Perlity. And if you begrudge them your Thanks, the coffers of TPF will grow fatter as you pay your fines, also benefitting Perlity.

And just in case you think I can't enforce that financial penalty provision, I should make it very clear that I still know lots of Catholic nuns, and their wrath is truly fearsome to behold! Just imagine having your knuckles turned into throbbing mounds of pain, by a few lightning swift raps of a hickory ruler from a mysterious figure in flowing robes, and how that would affect your keyboarding activities! 8-}


Thanks Tim, for promoting more Charitable Giving in the Perl Community -- or, as you call it, Perlity. But, once again, what does it mean to you personally to receive a White Camel?

Huh? Oh, was that the question?

To be honored by one's peers always brings a special sense of personal achievement. It also helps me forget all the times I've felt over-burdened or under-appreciated in my SPUGly duties.

And regarding the White Camel itself, I've got a spot already reserved for it on my Trophy Shelf, in the non-vegetarian section. Right next to the formaldehyde-filled laboratory jar with the brain of an anonymous Rattus Norvegicus floating eerily inside it (shades of Futurama). That's my prized Golden Brain Award for Excellence in Physiological Psychology, from my days at the University of Windsor.

I think they'll look nice together!


How do you think the White Camel awards benefit, er, Perlity?

In three ways. One, of course, is by actually rewarding the people who are Doing Good Things for Perl, which is important because it makes them feel appreciated and encourages them to give more to the community. This is the old tactic of exploiting the programming of the mammalian nervous system, used to good effect.

Another is by bringing attention to the kinds of activities that have been recognized as good for Perlity. This could help others to develop their own ideas about how they could contribute.

Thirdly, by giving people who have been recognized for their contributions a chance to publicize their views on what's needed next. And the point I want to emphasize is that, in these difficult times, we've got to support the people who are working to keep this community alive and moving forward.

That means financially challenged JAPHs should at least offer appreciation, either through verbal Thank You's or symbolic Virtual Beers, and those with disposable income should contribute money to TPF, and everybody should offer their time and energy where they can.

That could mean taking 20 minutes per day to answer newbie questions on perlmonks.org (so merlyn and friends can finally take a breather), uploading a useful module or script to CPAN, asking your boss to match TPF contributions, or volunteering to make a presentation to your local Perl Mongers group.

The future of Perl depends ultimately on us! So if you value this language, and the wacky tribe of exceptionally smart and friendly people who've gathered around it (a cut above your average Geeks, IMHO), we need you to lend your support!

Otherwise, you might have to live in a future world that won't be JAPH compatible. Where inferior corporate languages rule the high-tech landscape, written by people who aren't even linguists, and used by frustrated people who have their natural (Perlish) modes of expression blocked at every turn. Where the only place you can write Perl is in your closet, beyond the purview of ruthless software monopolists.

The choice is yours!


Remember, There's More Than One Way To Contribute to Perlity:


You only get the world you earn -- or less! 8-{