Sunday, April 24, 2011

Cash for Kids

When my first child was born, I started giving him an allowance.

He was born on a Tuesday, and, the very next Tuesday, I set one dollar aside.  And the next Tuesday, another.  This was not for his future: on the contrary, I’m a firm believer in having kids do those sort of things for themselves.  As far as I’m concerned, if my kids want to go to college, they can pay for it themselves.  This is primarily because I went to college twice: once, for two years, right after high school, and then, three years after that, for three years to finally complete my B.A.  The first time, my parents and grandparents paid for everything, and I got very little out of it.  I screwed around, I dropped half my classes my second semester of freshman year, and I generally didn’t care about my grades.  The second time, I paid for it all myself (well, I took out a lot of student loans, which I’m still paying off), and let me tell you: that time, I took it seriously.  Perhaps it was because I was older, but I think it was mainly because, when it’s your money, you don’t want to waste it.  So I think it’ll be a good experience for my children to do that too.  (Their mother doesn’t agree, but I suppose we’ll cross that bridge when we come to it.)

So what was this money for?  This was to be his money.  His personal stash, to be used for whatever he wanted.  The first year of his life, he got a dollar a week.  The next year, two dollars a week, and so on and so forth, until he’s getting eighteen dollars a week until his eighteenth birthday, at which point he’s on his own.  On each birthday, he gets a bonus; my original plan was to give him $100/year, culminating with $1,800 on the final birthday, but happily his mother talked me out of that.  Not particularly practical, unless I was planning to become super-rich at some point, and especially if there were plans for future children (which, as it turned out, there were).  So we backed it off to $25/year—that is, $25 on the first birthday, $50 on the next, and so forth to a maximum of $450.  Any cash gifts from relatives for birthdays, Christmas, etc are just added to the pot.

When my elder son was approximately two years old, we took him to a petting zoo.  He had a great time petting goats, ducks, and various and sundry other animals.  To exit this zoo (as with pretty much any attraction these days), you have to pass through the frightening gauntlet of the gift shop.  By this point, the kid was back in the stroller, having (in his opinion at least) walked under his own power quite enough for one day.  As we rolled along through the shelves of pointless knick-knacks and stuffed animals, he suddenly reached up and grabbed a small purple orangutan.  I tried to take it and put it back on the shelf.  He wouldn’t let it go.  “I think he’s just spent the first of his money,” his mother said.  So he bought it.  I think that stupid purple organutan is still around here somewhere, a living testament to the first lesson in financial responsibility.

And that’s the way it’s gone, for both of our children.  They start when they can barely speak, buying small things, not even truly understanding what they’re doing at first.  Each time, I say, this costs X dollars, and I translate that into time: this costs two weeks’ worth of your salary, or whatever.  At first they just nod: yeah, yeah, whatever I need to say to get me the toy I want.  But it sinks in.  By the time they’re five or so, they’re starting to understand that their money is a finite resource, and, if they spend it too fast, they won’t be able to buy the next exciting thing they want.  As with nearly all my parenting philosophies, there is no waiting until they’re “old enough.” By the time they’re “old enough,” I need the groundwork to be laid and we need to be moving onto the analysis and exploration of larger issues.

Notice that we don’t call it “allowance” any more.  That was what I called it at first, but we switched paradigms somewhere along the line.  Now it’s a “paycheck.” You get paid every week, with an annual bonus, for fulfilling your duties as part of this family.  At first, your only job is to be a kid.  Have fun.  Enjoy life.  What the hey, you’re young and foolish, may as well have a good time with it.  As you get older, you gain more responsibilities: perhaps taking the trash out, or cleaning out the cat’s litter box (after all, that’s your cat, not mine).  These aren’t technically “chores,” although we do refer to them that way sometimes.  These are your work duties; it’s what you’re getting paid for.  Everyone in the family has certain things they have to do, and you’re no exception.

Another thing that’s changed from the early days is that I don’t actually set physical cash aside any more.  Nowadays it’s all electronic: I keep a running total of their income and expenditures on the computer.  This is referred to as the “Daddy bank.” I know roughly how much each one of them has in the Daddy bank at all times, and I can easily get an exact figure upon request.  If one of them wants to buy something when we’re out and about, they don’t have to worry about having actual dollars; they just tell me and I purchase it for them and then subtract that from their balance later.  Basically, I’m their ATM machine.  Technically, they can demand all their cash at any time, but we caution them against making a run on the Daddy bank.  Don’t want their financial institution going belly up, now, do they?

The idea behind all this is simple.  You’re going to buy your kids a bunch of crap they don’t need anyway.  Let’s face it: we’re Americans (or at least I and most of the folks I hang around with are), and we’re consumers, and we’re parents and we love our kids, and we have a burning desire to spoil the crap out of them, so, when they want a toy, we’re gonna buy it.  We’re suckers like that.  With this system, you’re still buying them all the same crap, only now you’re making them think about it.  You’re putting the responsibility for what to buy and when to buy it back on them.  Instead of spoiling them to no gain, you’re forcing them to consider monetary issues and manage their own money.  What you’re setting aside for them is plenty of money for a kid that age, and, if they manage to spend it all anyway, then maybe they really don’t need to buy that whatever-it-is.  Or possibly a loan could be arranged ... we have very reasonable interest rates at the Daddy bank.

My kids don’t have to buy their own clothes, and they don’t have to pay rent, and they don’t have to chip in for groceries.  They don’t have pay for their own presents on holidays, obviously, and books are always a family expense.  They still get plenty of swag for free.  But if they want a new toy, or a new video game, or a new video game console, or a new computer (my elder just bought half a laptop, since his Christmas gift budget would only cover half), that comes out of their bank.  They do have to pay for the presents they give to other family members, starting at a fairly young age.  And if they want to go to McDonald’s or somesuch, they may have to agree to buy dinner for everyone.  How bad do you want a Happy Meal anyway?  Maybe eating in is not such a bad choice.

They’ve both been flat broke, and they’ve both been flush.  Right now the elder has almost $500 in the Daddy bank, while the younger is in the hole and has been for the past month.  They learn generosity, and stinginess.  They spend recklessly and regret it; they hoard and are pleasantly surprised when they can afford big items.  I believe they have a firm grasp on the concept of money already, and it’s only getting better with time.

I honestly believe this is the right thing to do for my children.  Perhaps if I were richer, I’d give them more every week and more every year, or perhaps not ... certainly, if I were poorer, I’d give them less.  But I believe I’d still do it this way.  Because I think this is something that I was lacking as a child: the concept of working for a living, and having a budget for spending money.  In fact, their mother and I are now on the same plan for our hobby expenditures and luxury items such as personal electronics or music downloads.  It’s a convenient way to insure we too live within our means, and it has the added benefit of being a simple rule that we can apply to ourselves just as it applies to them, but it scales for our more expensive tastes.  Now everyone in the family has an account at the Daddy bank ... even Daddy.

Sunday, April 17, 2011

What's in a Title?
(or, Feminist Manifestos in Swedish Crime Thrillers)


or, Feminist Manifestos in Swedish Crime Thrillers


I just finished reading the Millenium trilogy for the second time.  When you read things for the first time, you have to put a lot of energy into just understanding what’s going on.  But when you reread, you get to look beyond the basics of the plot, the character development, the setting exploration, and so forth.  That’s when you really get to think about the themes.

Now, I have a bit of a love-hate relationship with “themes” in fiction, which perhaps I’ll explore in a future post.  For now, let’s just just say that, when I’m a writer, I don’t bother trying to put themes in everything I write.  But, when I’m a reader, I can’t resist looking for those themes, even if I’m reading my own work where I know damn well there oughtn’t be any themes, ’cause I didn’t bother putting any in.  This is sort of like how, when you’re driving, you curse those ignorant pedestrians who just blithely step out in front of you, and then, once you get out of the car and start walking, you curse all the moronic motorists who don’t have the good sense to stop when you step off the curb.

So when I read I look for themes, even though as a writer I don’t really believe in them.  And I usually find them.  In the Millenium trilogy, the themes aren’t exactly subtle, but I was struck by how much the original title of the first book would have been more appropos: Men Who Hate Women.

For those who haven’t read these books, I’ll try to keep my comments spoiler-free, since spoilers aren’t necessary for the point I want to make anyway.  (Of course, if you go around clicking links in this post, then you’re on your own.)  Basically, the trilogy consists of three books: The Girl with the Dragon Tatoo, The Girl Who Played with Fire, and The Girl Who Kicked the Hornet’s Nest.  Well, those are the English titles anyway.  It turns out that the original titles in Swedish would translate into something like Men Who Hate Women, The Girl Who Played with Fire, and The Aircastle that Was Blown Up.  Now, that last one is a bit clumsy (when translated), granted.  It’s apparently because we don’t have a great approximation of the Swedish concept of “aircastle,” although the English expression “building castles in the air” gives us a hint what it means.  Some Wikipedia editor has suggested that a good translation might be “The Pipe Dream that Blew Up.”  Still a bit clumsy, in my opinion.  All in all, “The Girl Who Kicked the Hornet’s Nest” isn’t a bad choice at all.

But how about “Men Who Hate Women”?  What’s wrong with that one?  Couldn’t be more clear, it seems.  And it has two major advantages over “The Girl with the Dragon Tatoo.”

The first (and less important) is that, if you were to go along with “The Girl Who Kicked the Hornet’s Nest,” the titles would then somewhat mirror the structure of the trilogy.  Your typical trilogy is really one big story arc that’s just been stretched out across three books.  But the Millenium trilogy is a bit different.  The characters and setting are very consistent across all three books, but, in terms of plot, the first book is really a self-contained story, while the second two books are one big story.  In fact, coming to the end of the second book is somewhat like those cliffhanger season enders of your favorite TV shows.  If you’re prepared enough to have purchased the third book ahead of time, there’s just no way you can put down The Girl Who Played with Fire and not immediately pick up the next installment.  It’s a pretty clever structure, actually.  It means that the first book of the trilogy allows you a gentle introduction to the characters and the world they inhabit, while not having to bother with setting up the important plot points (that’s relegated to the first third of the second book, which is actually somewhat slow going; once that part is over, the remaining book and two-thirds takes off like a shot).  But you wouldn’t want to have a book that does nothing but introduce characters and setting, right?  So Stieg Larsson creates a whole separate plot to keep you engaged.  The first book in the Millenium trilogy reminds of the old Bill Cosby line: “Now, I told you that story so I could tell you this one.”  So, a set of trilogy titles where the last two of the three follow a pattern, making them similar, but the first one doesn’t, making it stand out somewhat, would be very appropriate, all in all.

But the larger reason is that this is really what the book— nay, the whole triology— is about: men who hate women.  Wikipedia tells us that Larsson witnessed a gang rape when he was a teenager, and was thereafter haunted by his inability to go to her aid (or reluctance, if you prefer, but I think a 15-year-old kid should generally be forgiven for not jumping on a gang of violent rapists).  This, opines an unknown Wikipedia editor, “inspired the theme of sexual violence against women in his books.”  It’s safe to say that there’s a theme of sexual violence against women in the books, and that’s why Men Who Hate Women is such a perfect title.  But I’ll go farther: it’s not just about men who hate womena, it’s about men who marginalize women, men who condescend to women, men who ignore women.  It’s about men who think women are inferior, and the things they do every day, which range from the banal to the sensationalistic, to put them down.  Nearly every female character in the series, from the major to the minor, faces some level of discrimination from male colleagues: Lisbeth Salander, the series’ true hero (Mikael Blomkvist is really just an author stand-in, in classic Mary Sue fashion), takes the brunt of it, certainly, but look at the others.  Monica Figuerola has to put up with derision from her peers because she’s a tall strong woman.  Miriam Wu is accused by the police of being a dangerous deviant because she’s a lesbian.  Sonja Modig is subject to all sorts of ridiculous prejudice.  And others, such as Harriet Vanger, are in nearly as bad a position as Lisbeth herself.  Even Erika Berger has to suffer through a largely unnecessary subplot, seemingly just so we can learn that even the editor in chief of Millenium is not immune to male condescension.

So it seems to me very clear that there is a strong feminist message in the Millenium trilogy.  (If you want a competing viewpoint, you could check out this blog post; I disagree with many of her conclusions, but she has a major advantage over me in that she is an actual woman.)  Thus, it seems that Men Who Hate Women is not just an appropriate title, but a perfect one.  Why was it changed?

Well, a Publisher’s Weekly article gives some insight into the US publishers’ thinking, but note that they were discussing whether to change it back to Men Who Hate Women; the original change to The Girl with the Dragon Tatoo was made for the UK version.  Not much official insight on why that was done, although there are some apparent comments by the English version translator (although certainly that can be considered non-authoritative on several levels).  The common guess that everyone makes is, “marketing.”  After all— so goes the reasoning— who would want to buy a book called “Men Who Hate Women”?  Sounds like a self-help book.

In 1997, J. K. Rowling published the first of the Harry Potter books: Harry Potter and the Philosopher’s Stone.  If you are American, you may not even realize that that is the proper title of the book; you almost certainly think that the first HP novel is Harry Potter and the Sorcerer’s Stone.  But what you don’t realize is that Scholastic, who bought the American publishing rights, decided that no self-respecting American kid would buy a book with “Philosopher” in the title.  What is that, some sort of textbook?  No way dude!  American kids, of course, are too stupid to realize what the philosopher’s stone is, or to have any concept of the history of alchemy.  J. K. Rowling has said that she regrets agreeing to this change.  Had she but known she would soon be the world’s richest author, she could have told ’em to go stick it.

For a sillier example, IMDB tells us that the original title of Zombieland was “Another Day in Zombieland,” but the studio was worried people would think it was a sequel.

If you want to know why marketing is destroying our society, you don’t need to listen to me: go ask Craig Ferguson.  But it does seem a shame that marketing has so low an opinion of our intelligence that they pre-pablumize even our book and movie titles for us.  Here’s an author gone and put out a perfectly lovely book, just for us to read, and put a perfectly lovely title on it, which sums up all its themes and aspirations perfectly, but we have to change all that, so people will realize that they want to buy it.  And I don’t want to lay all the blame on the advertising executives.  I think the lawyers bear some responsibility as well: often titles (and many other things about a book or movie) are changed preemptively to avoid legal hassles.  That is, they are changed not because someone has been sued.  They are changed because someone might be sued.  You know, just in case.  Similar to my theory on how political correctness results in self-censorship, here it seems like we don’t really have to worry about people mucking up our entertainment for us because we’re perfectly capable of doing it ourselves.

I do think it’s important to know the proper names of things.  Original names are often lost, but they signify something.  Does not semiotics teach us that all a name is is a signifier?  It’s an arbitrary sign that we hang onto a concept in an attempt to clarify it, to communicate it, to assign meaning to it.  The name of something as given it by its creator is surely more meaningful than a name assigned after the fact by someone attempting to sell that concept to as many people as possible.  Although I suppose you could argue that all advertising is communication, really.  Well, sorta communication.  Demented and sad communication, but communication.  Right?

There are good reasons to change titles.  “The Aircastle that Was Blown Up” definitely needed a change.  But “Men Who Hate Women” was pretty spot on.  I’m a bit sad to have lost it.

Sunday, April 10, 2011

"Yeah, but that's not ... politically correct"


I don’t mean to piss you off, with things I might say
But when I try to shut my mouth, they come out anyway.
And if you spoke your mind, you might feel more connected ...
Until you stand politically corrected.

—SR-71, “Politically Correct,” Now You See Inside


I’m not sure why, but I distinctly remember the first time I ever heard the term “politically correct.” I was a freshman in college, just barely 18.  I was not a political creature; I barely understood the difference between “conservative” and “liberal,” and certainly wasn’t perceptive enough to understand that my new roommate was one and I was the other.  When this guy starting saying bad things about people who were “politically correct,” I had to stop him and ask what the hell that even was.

He tried to explain it to me, but, honestly, he wasn’t that much brighter than I was, politically speaking.  All I could get out of him was that it was definitely bad.  It didn’t sound bad, from the way he vaguely described it, but I should take his word for it.  I barely knew this guy, but I knew enough not to do that.

So I looked it up.  And basically what I found was the following definition, which has stuck with me forevermore: “politically correct” means that you agree to refer to people in the way that they refer to themselves.  So, for instance, women don’t generally refer to themselves as bitches and ho’s. So, you know, it’s not polite for you to refer to them that way either.

Such a simple definition.  The great thing about it is, how can you possibly argue against that?  It’s one of those things that seems so obviously a great idea that it sort of boggles your mind when you find out that, in reality, it isn’t.  Sort of like communism, or labor unions, or the free market: it seems like an idea almost too good to be true ... which it is.  Implementation is the sticking point.  The devil is in the details.

Let’s take the term “African American.” This seems basic enough.  Before this term came along, the acceptable term was “black,” so let’s look at it from that point of view.  You know a lot of “black” people, and you call them “black” people.  But then one day you find out that they actually refer to themselves as “African Americans.” So, simple enough: now you refer to them as “African Americans” too.

But there’s a problem here.  Let’s take me as an example.  I’m not black.  But I have (and/or have had in the past) black friends, black rommates, black schoolmates, black teachers, black co-workers, black employees, black sexual partners, and even—depending on how liberal you’re willing to be with the definiton of “in-laws”—black family members.  I have on many occasions been the only white person in the room, at parties, in bars, and at family reunions.  I’ve known black people of every age, every economic status, and all four combinations of gender and sexual preference.  I don’t tell you this to impress you with how open-minded I am.  I merely point it out to give the following statement more weight: I have never heard a single black person who wasn’t on television refer to themselves as “African-American.” All these people I’ve known, many of whom I consider my friends and at least one of whom I consider one of my best friends in the world, refer to themselves as “black.” And so I refer to them as “black” as well.

I could have a similar discussion about gay people I know as well.

So, the question is, am I being politically incorrect if I refer to “black” people or “gay” people?  This is how they refer to themselves—and not just how they refer to themselves among themselves, but how they refer to themselves to me, someone who is not black, or gay, someone who is essentially an outsider, no matter how much I’d like to believe that we’re all comfortable around each other.  So it seems to me that I’m actually fulfilling the rules of political correctness.  Although I confess that I often have a twinge of worry when I use those terms in front of other people.  They, after all, haven’t had the benefit of reading this post.  They don’t know that I have perfectly rational reasons for using the terms.  They, perhaps, think that I use those terms out of ignorance, or, worse: prejudice.  You know what’s really strange?  I am never uncomfortable talking about “black” people to black people.  Only to white people.  I have even, upon rare occasion, let the term “African-American” pass my lips, even though I don’t really believe in it.  (And I’m sure I’ve said “homosexual” rather than “gay” to dozens of straight people.) And then, of course, I feel guilty for saying that, because I feel somehow I’ve compromised my principles.

But mainly I don’t worry about it.  ‘Cause, you know what?  All this boils down to one thing: people getting offended on behalf of other people.  I don’t need to worry about black people being offended by my language: they’re all comfortable with the terms I use (or at least they all have been in my experience).  No, I’m for some insane reason worried about white people getting offended for black people.  What the fuck is that??  How in the hell does that even make sense?  Are we so full of ourselves that we think we can be responsible for other people’s reactions to words?  Do we feel they’re not capable of knowing when to be offended on their own, so we need to step in and do it for them?  ‘Cause let’s think about it rationally for a minute: what’s more likely?  That a black person will be offended because I referred to them as “black,” or that a black person will be offended because you decided they were too stupid to know when to be offended for themselves?  Somehow I don’t think they’re going to appreciate you stepping in and taking care of that for them.

Occasionally you have friends who do that too: get offended on behalf of your other friends.  Has that ever happened to you?  “You know, I don’t think you should have said that in front of her ... I mean, I know you didn’t mean it that way, but I’m sure she was very upset by it.” Except that you’ve spoken to “her,” and she doesn’t seem upset at all.  So now you’re wandering around trying to figure out if your one friend is mad at you but pretending not to be, or your other friend is just a lunatic.  What is this, an episode of Seinfeld?  How about if we all just talk to each other, and let each other know if we’re mad or not, and leave other people out of it.

Because I think there’s something wrong with this attitude.  It’s altruism run rampant.  It’s being so anxious to prove what a good person you are that you need to rush in and demonstrate your sensitivity.  It’s trying to weasel out of admitting that you actually were offended by shifting the offendedness to someone else.  It is, to use a phrase a friend of mine is fond of, intellectually dishonest.

Kurt Anderson, the host of NPR’s Studio 360, once said:


Americans used to be famously plainspoken.  But we’ve gotten into a bad habit in this country of defaulting to euphemism, reflexively replacing any word that somebody might find disagreeable with a word that is sure to upset nobody.

Always resorting to euphemism is a bad habit, a way of infantilizing the culture by artificially sweetening the language.  Euphemisms are lies—maybe white lies, nice lies, polite lies ... but still, not the plain truth.

In other words, the impulse to euphemize amounts to a kind of infectious Orwellian new-speak—censorship lite.  And euphemism becomes so entrenched so quickly we don’t realize our language is being switched on us in a million tiny, everyday ways.


And there’s the real problem: defaulting to euphemism.  Not even watiting to find out if anyone will be offended ... just assuming that of course someone will be, and changing the original words before they’re ever even uttered.  Because there are folks out there fighting to keep other people from censoring you.  But only you can prevent self-censorship.

Sunday, April 3, 2011

Perl, Procrastination, and the CPAN

I just uploaded my first CPAN module today.

If you’re a technogeek like myself, that may mean something to you.  If you’re not, you’ll wonder what the hell I’m on about for the remainder of this post, so let me see if I can explain it to you.  (Some of this some of you will undoubtedly know, so please don’t get offended if I overexplain.)

So I’m a computer programmer, right?  And, when you program, you use a certain language: just as we humans speak different languages depending on when and where we’re raised, computers and programmers speak different languages too, and that often has to do with when and where they’re raised.  My first computer was a Commodore 64, and it only spoke BASIC, so I learned BASIC so we could communicate.  And then I learned that BASIC wasn’t the only language it spoke: in fact, BASIC wasn’t even its native tongue.  And all the misunderstandings we were having trying to talk to each other, and the reason it took my poor computer forever to figure out what I was trying to tell it to do was that it actually spoke 6502 Assembly (and, yes, I know the processor was actually a 6510, but the Assembly dialect was the same, that’s the important bit).  So I taught myself that.  This was around high school time.

Later, in between college and college (I took an extended break from college at one point), I ended up getting my first programming job, because one of my neighbors told my new boss that I was a “computer whiz.” She thought this, of course, because she too had a Commodore 64 which spoke BASIC, and her computer and I were on good terms.  My new boss was a salesman, and he had people to talk to computers for him, so he had no idea that being able to talk to one computer doesn’t mean you can talk to all computers, and he hired me.  Now here I was presented with an IBM 8088 PC, and I was told I had to speak to it in a new language: C.

So I taught myself C.  And then, later, I taught myself C++, which is kind of like going from Spansish to Portuguese: many of the words are spelt the same, but it sure doesn’t sound anything like it.  And I loved C++.  I loved the expressiveness of it, its elegance ... writing C++ was like writing a technical paper where you get to use all sorts of really big, impressive sounding words that you typically don’t use because normal human beings have no idea what they mean, but somehow when you’re writing for PhDs none of that matters.  You know, those five-syllable words that express a concept that otherwise would have taken a paragraph to explain.

But the problem is that writing that stuff is tedious.  Writing technical papers can be partially fun, but there’s also lots of boring bits: you have to define all your terms at the beginning, and you have to provide a detailed bibliography at the end, and in the middle there’s footnotes, footnotes, footnotes.  After a while, you wonder if you spend more time writing references than writing text.  In C++, it’s libraries instead of references, but the concept is very much the same.

Then I discovered Perl.  And the thing about Perl is, it was designed by a linguistics student, and linguistics students understand something that most people who write computer languages don’t: humans like to have different ways to say the same thing.  Most computer languages want everything to be very cut and dried, with exactly one way to say everything you can say.  This is convenient if you’re writing a compiler (that is, the computer program which changes a given computer language into the computer’s native tongue), but not so much when you’re a programmer.  In other words, most computer languages were created by translators, not speakers.

Translators hate ambiguity.  They hate connotation vs denotation, and abstract idioms, and subtleties of context, and nuances of conjugation, and all the other things that make it hard to say “this Mandarin phrase means exactly this in Italian”.  But speakers love ambiguity.  In English, I can give you a “gift,” or I can give you a “present.” What’s the difference?  Some people would say nothing.  Some people would find tons of very subtle differences.  If I know you, and I know that you know me, I could conceivably communicate worlds to you with my choice of words that have “identical” meanings.  And, sometimes, you’ll spend weeks worrying over what I meant by choosing this word instead of that one even when I didn’t mean for there to be any difference.  This is just part of the joy of language.

And Perl really gets that.  It’s a language with not only verbs and nouns, but adjectives and adverbs, with indirect objects, even, and, most importantly, with context.  How do you know the difference between “bat” and “bat”?  One’s a small flying mammal and one’s a hunk of wood you hit a baseball with, but how can you tell which one I’m talking about?  They sound the same.  They’re even spelled the same.  But, 99% of the time when I say “bat,” you’re going to know exactly which one I meant.  Because of context.  Perl’s got that, in spades.  In fact, many programmers hate it for that very reason.  Many programmers have fled to computers precisely because they didn’t like having to talk to people, where language was messy and easily misunderstood.  Reproducing that for the computer seems horrific to them.

But I’m an English major; I’m a wannabe writer.  Words and language are everything to me; their subtlety and beauty fascinate me.  So while I may be a technogeek programmer and I may have just as much desire as the next technogeek programmer to have my computer understand what I’m saying in a very precise manner, I also appreciate a computer language with context, a computer language where There’s More Than One Way To Do It (which, as it happens, is one of the unofficial mottos of Perl).

So I loved Perl from the moment I learned of it, but the real reason I switched to it from C++ is because all those footnotes and references and bibliographies that I’d spent ever so much time writing in C++ ... they were all written for me in Perl.  Oh, sure, they might not be written exactly as I’d have done them, but they’re close enough for a quick copy and paste.  If I need to tweak them a bit, I can do that: after all, I have the full text of the references right here.  And there’s a full set of references, formatted any way I can imagine, combined with other sets in any way I can imagine, set out according to as many different style guides as I can imagine.  Remember that in my analogy, “references” are libraries, and, in Perl, libraries almost all come from one place: the Comprehensive Perl Archive Network, or CPAN.

But how do they get there?  You can certainly imagine how wonderful writing research papers would be if practically every possible set of references you might need were precompiled for you and put into a giant collection for you to pore through and pick out the one that was perfect for you, but wouldn’t you wonder who had actually put them there?  Sure you would.

To really beat this analogy to death, let’s imagine that you’re a new graduate student.  You’re in the campus library, working on a research paper.  With you is your good friend who’s been a graduate student for years now, so she’s an old hand at writing research papers.  Imagine a conversation like this:

“Man, I don’t mind writing research papers, but doing all these bibliographies and junk is boring.”

“Why don’t you just use the RPRAC?”

“The what-prack??”

“The RPRAC.  You know, the Research Paper Reference Archive Collection.”

“WTF is an RPRAC?”

“It’s the ... look, I’ll just show you.  Here, look at this.”

“Hunh.  This is ... oh, that one’s nice.  Yeah, this is ... wow, I would’ve spent days ... holy crap!  This thing is awesome!!”

“Duh.”

“This’ll save me shitloads of time.  Where does all this stuff come from, anyway?”

“People like us.”

“Henh?  Whatchoo mean, ‘people like us’?”

“I mean, people like us, of course.  Anyone who wants to can add references in there.  Original ones, or ones derived from others in there.  I’ve got a couple in there myself; nothing too exciting, but they’re useful from time to time.”

“But ... well, if anyone can put stuff in, there must be lots of really crappy ones in here ...”

“Oh, sure, some of ’em are.  But not as many as you might think.  Look right there: your name’s on it.  So, if it’s crappy, everyone knows that you put some crap in the collection.  Poof! there goes your reputation.”

“Yeah, but some people won’t care about that.  Some people are just dicks.”

“True.  But most people do care.  And the ones who are dicks wouldn’t take the time and effort to add to the collection anyway.”

“Yeah, that’s another thing: why do people spend the time and effort.  I mean, these people are all graduate students, like us, right?  They’ve all got lives, and other papers to write, and families and shit ... why spend your free time putting crap in a book just so other people can save time?”

“Because some people just like being helpful.  Some people like to know their name’s in the book.  Some people like to show off their stuff in the book when they’re applying for grants, to show how good they are.  Some people just figure, hey, I spent all this time putting this together, seems a shame if other people have to start from scratch.  I think all those reasons come down to one thing, though: pride of ownership.  Here’s something you can point to and say: see, I contributed.  I gave something back.  And this is mine, and I’m proud of the work I did.  And I want everyone to see it.”

“Wow.  Maybe someday I’ll add something to the collection.”

“I’m sure you will.  Someday.”

So, do you see?  That’s what CPAN is to Perl programmers.  And I’ve been a Perl programmer for nearly 15 years, and I have used dozens—nay, hundreds—of CPAN modules to help me write my own programs faster and more easily and more efficiently.  And never once have I taken anything I’ve written and put it on the CPAN.  Until today.

In some ways, this is almost a rite of passage for a Perl programmer.  In many ways, I just now “became a man” in the great Perl tribe.  And, like so many rites of manhood, the first time you do this one is pretty terrifying.  And, after that, it’s no big deal.

I’m pretty sure the reason it took me so long to get something up there was just plain fear.  As I indicated in my imaginary conversation, there is a certain amount of useless crap on CPAN, but not nearly as much as you’d expect.  And part of the reason for that is your name gets forever associated with whatever you upload.  Like any facet of the Internet, whatever you put up there is there forever—even after it disappears from CPAN, it’ll still be on the BackPan.  Any time you apply for a Perl job, they will inevitably want to know what you’ve contributed, if anything.  And your fellow members of the Perl tribe, they shall know you by your CPAN modules.  Any person you meet online in a Perl capacity is going to judge you by what you have on CPAN, and how well written it is, and how well documented it is, and how popular it is, and how many stupid mistakes it contains.  They may not even mean to, really ... but they will.

So it’s definitely not the case that having something—anything—on CPAN is better than having nothing.  Having something stupid could well be worse than nothing, by a long shot.  It’s also not necessarily easy to get something onto CPAN.  Like any system run by volunteers, there are many different ways to do it.  If you want help figuring out how to do it, there are hundreds of guides out there ... and they all give you slightly different approaches.  You have to apply for an account, and you need to format your stuff properly or other people won’t be able to use it, and you may need to register a namespace, and you’re supposed to talk about the name of your module first so that everyone can tell you what a stupid name it is and what a much better one would be (I freely admit I skipped that step).  And then after you submit something, there is a huge network of people who (completely automatically) download your contribution and test it out, on different operating systems, using different versions of Perl, with different configurations, and, if anything doesn’t work right, they post it up on a web page so you (and, of course, everyone else in the world) can see it.  And, assuming you survive all that, there’s a rating system, so someone can still come along and tell you suck.

All in all, it’s rather daunting.

And I think I let my fear of not having it “just right” cripple me.  Supposedly Meg Whitman (former CEO of eBay, one of whose subsidiaries is thoughtful enough to provide my biweekly paycheck) was fond of saying “perfect is the enemy of good enough.” I’m not sure I agree with her 100%—I think often “good enough” is the enemy of “not going to collapse on you when you least expect it”—but in this case she really had me pegged.  As part of my CPAN upload, I have to provide a “Changes” file, which documents all the versions of the module on CPAN.  But, since I was making a big point in my module’s documentation that I’d been using this thing in production code for over 10 years now, I decided that I should provide the change history of my module even before it finally got to CPAN.  That meant scratching around in 2 or 3 different places, digging up historical data, and actually putting dates to all the changes I’d made in the past 10+ years.  And I also figured out the date when I first started the version that exists today, the version that I specfically built from the ground up to be my first CPAN release.  It was August 7th, 2008.

I’ll pause while you check the date of this post and do the math.

Yes, that’s right, it took me almost three years from the point I decided I would create a CPAN module to the point where I actually uploaded the first, neotonous, cautionarily designated as a developer release, version.  That’s just insane.  And, sure, I can make other, perfectly good excuses: I have two beautiful children that I love spending time with, things were going on at work, including the lauch of two major initiatives during that time that I was responsible for leading on the tech side, I was buying my first house, which was certainly something that demanded a lot of attention ... but you know, all that comes down “I didn’t have time,” and the only thing I didn’t have time for was getting things perfect.  Getting things good enough, I could have done months and months ago.

But now it’s done, and I have my first CPAN module.  And, you know: it wasn’t that hard.  Hopefully my next one will take much less time.