Entries from December 2005 ↓
December 31st, 2005 — Uncategorized
I like Joel Spolsky. He has some pretty unconventional ideas about how to develop software, but he also has the courage of his convictions and the ability to set them down on paper in a pleasing manner. Really, I’m a sucker for any geek who writes well. They’re so far and few between.
But there are some opinions that, no matter how skillfully rendered, just go beyond the pale. His latest article is a case in point. Its thesis: that university computer science programs across the country are making a terrible mistake in using Java as a teaching language, because it’s not hard enough to understand.
He puts a slightly more delicate spin on this, of course: he thinks that Java is insufficient because it doesn’t force its practitioners to worry about pointers and recursion. He then departs on a long journey into the past, when men were men and compilers were compilers and computer science curricula were vicious murderous psyche-flattening exercises in institutional sadism, when the coursework was so ridiculously hard that it routinely reduced young fresh-faced freshmen into weeping piles of geek goo. He pines for this. He argues that the people who made it through the agony of those terrestrial hellfires are by definition good programmers. Good Lord! Universities these days are turning out unbroken less-than-geniuses! Fie! Fie on all of these fey gutless pampered mental deficients!
Where to begin? I’ll dispense with the obvious first: while it’s true that Java doesn’t have explicit pointers, it’s not in any way true that it doesn’t support recursion. I’m not sure where Spolsky is getting this from, but you can recurse in Java as well as you can in any language. I know. I’ve blown out many a stack in my time. You can send your code down endless recursive rabbit holes quite effectively in Java, thank you very much.
And I would argue that Java does have pointers, because pretty much everything is a pointer. Granted, you don’t have to worry about mallocs and frees and any of those other horrors, but you still need to understand that you’re manipulating references to objects. Yes, it’s no longer necessary to maintain linked lists on your own, but if anyone in even the C world is still writing those basic data structures, then they’ve got serious problems.
But beyond all that, what I really take exception to is his underlying point: that you need to kick the shit out of young computer science hopefuls if they’re ever going to be anything, you need to weed out the chaff and let the cream rise to the top and all that, you need to murder the ambitions of all of those innocent geeks whose computer aptitude doesn’t extend to complex proofs and the insane complexities of binary floating point number theory.
I still remember my first computer science class. Or, rather: my first computer science class is still branded deeply in my mind, an ugly red radioactive gash clearly visible on the surface of my brain. It pulsates. It wakes me in the middle of the night, screaming. It sends cold shivers down my spine and propels me into long sobbing lamentations in the middle of meetings with important clients. I remember sitting down on the first day of class and watching the professor, a lean gangly middle-aged man with a friendly smile, throw a bunch of arcane symbols up on the board and launch into a long explanation of formal proofs and what they meant and how to write them and np complete and theta gamma epsilon and Big O and Little O and Medium Sized O and O squared and O god I want my Mommy. I want my Mommy! But it kept coming, class after class, and I kept squinting at the gobbledegook on the board and writing it down while at the same time refining a suicide note in the margins on my notebook (I love you all I just couldn’t take it anymore please bury me with my Atari 800XL) and looking over at my classmates and seeing my own terror and incomprehension and nascent suicidal impulses mirrored in their faces. I remember getting back my first exam, and looking at the grade, and nearly fainting before I realized that, no no, it’s normal to get only 40% of the answers right, that’s actually a pretty respectable score. Not bad at all! I mean, horrible, but passing. Better than passing!
I ask you: what’s the point of all this? Yes, you have to challenge your students. Yes, you even have to make their lives difficult, because you need to tear muscle to build it up and all that, fine, whatever, but why is it necessary to fillet them and draw and quarter them and pull out their entrails and force them to eat them? Hyperbole, you say? No sir! Not hyperbole! We were forced to perform the spiritual and mental equivalent of tearing out and eating our own intestines every single day of that first semester. So that by the end of it, we were hollowed out shells of our former selves, beaten burned husks of the happy idealistic children who had first filed tentatively into that classroom.
So, yes, we made it through, most of us, and things got better after that: there was no longer this insane need to destroy the weak: chaff had been successfully excised. But, really, I don’t believe I learned anything in that class. I survived it, but I don’t count base animal survival as an indicator of computer science skill. It was raw instinct, the same brute impulse that drives an animal to gnaw off its own leg when it’s caught in a trap. Those paragons of academe, those keepers of the ivory tower, they smiled and ushered us in through the door and sat us down at our desks and then took out their flamethrowers and doused us in fire for three months straight.
I repeat: I don’t know how this says anything about my abilities as a software engineer. Maybe it proves that I can survive generalized academic adversity, but I’m not exactly sure where to list that on my resume. Maybe under the skills section: “Able to do the mental equivalent of walking barefoot across a nail-studded bed of hot coals while wearing an overcoat made entirely of hungry mosquitoes.” I tried that. It just doesn’t fly. They never ask you about the bed of coals.
Anyway. Here’s my point: these kinds of classes probably do turn out very good programmers, but they also destroy potentially very good programmers who didn’t know they were signing up for boot camp when they signed up for college.
December 26th, 2005 — Uncategorized
Paul Graham has some wonderful things to say about the nature of procrastination in his latest article:
There are three variants of procrastination, depending on what you do instead of working on something: you could work on (a) nothing, (b) something less important, or (c) something more important. That last type, I’d argue, is good procrastination.
That’s the “absent-minded professor,” who forgets to shave, or eat, or even perhaps look where he’s going while he’s thinking about some interesting question. His mind is absent from the everyday world because it’s hard at work in another.
That’s the sense in which the most impressive people I know are all procrastinators. They’re type-C procrastinators: they put off working on small stuff to work on big stuff.
I like this formulation a lot, because it kind of makes me feel better about myself. Whenever I make the mistake of peering into the blurry glass of my memory, I realize just how little there is that I actually do outside of work. I have free time and big plans, so why doesn’t anything ever get done?
Maybe this is why: I have some huge grandiose uber-thingy going on that’s squeezing everything else out; I’m working on something that’s going to make a big impact on the world, and I don’t have time to waste on worthless little things like planning vacations or finishing up old story drafts or learning Ruby on Rails or cleaning out the garage or caulking up the cracks in my walls.
The only thing I need to do now is figure out exactly what that big thing is, and I’ll be all set.
December 25th, 2005 — Uncategorized
I love Christmas. I love everything about it: the gaudy lights, the twisted mutant Christmas carols, the obscene materialism, the annual War-On-Christmas canard. I love sitting next to a decorated Christmas tree, love reading good books in its flickering light. I love driving all around on Christmas Day to hang out with my family. I love shopping for gifts with my wife, love watching my nephews tear their presents open with a voraciousness I remember all too well from my own carniverous gift-opening days.
This despite the fact that I don’t really subscribe to the religion that gave us Christmas in the first place. I used to, I guess, in a sort of half-hearted defaultish kind of a way, but I’ve fallen steadily into athiesm over they years, not all at once but rather by narrow gradations of faltering belief.
But my areligiosity has done nothing to kill my love for this season, for everything it represents; for everything it is. I may not believe in Christ anymore, but I still believe in Christmas.
So Merry Christmas, everyone.
December 23rd, 2005 — Uncategorized
Yesterday I went over to Fox News headquarters to enlist in the War on Christmas, and I brought my friend Gronk. Gronk is a massive barbarian warrior with a flat dark eyes and olive skin and shoulders studded with overlapping, mounded convexities of muscle. His homeland of Shadinor was experiencing something of a damsel-in-distress draught, so he’d come to America in search of fair creatures to deliver from peril.
The receptionist drone at the front desk was an attractive woman with blue eyes and blonde hair and a look vapid enough to vaporize the less rigorous pockets of reality. She said: “Hi! Can I help you?”
“Yes,” I said. “I’d like to sign up for the war on Christmas.”
“Fantastic!” She turned to Gronk and said: “Will you be signing up as well, sir?”
“Gronk save you, helpless damsel,” said Gronk.
“Fantastic!” said the woman. “I just need to ask you a few questions.” She squinted down at a laminated sheet of paper on her desk. “Ok. First. Do you believe that the Democratic party is a tool of Satan?”
“Yes,” I said.
“Gronk save you from Demon-cratic party,” said Gronk.
“Fantastic!” said the receptionist. “Second question. It’s a two-parter! Do you believe in God, and, if not, are you reconciled to an eternity of suffering in the fires of hell?”
“Yes to the first,” I said. “Not applicable to the second.”
“Gronk believe in Calaban, God of Cleaving,” said Gronk. “Calaban also God of Herbaceous Borders.” He frowned. “But Gronk doesn’t know what herbaceous border is.”
“Super! Ok, last question. It’s a multiple choice!” She held up a picture of a Christmas tree. “When you see this picture, do you think: (a) Holiday Tree (b) Christmas Tree (c) Xmas Tree; or (d) I love atheists?”
“B,” I said. “Christmas tree.”
“Neat!” said the woman. “You totally pass!”
Gronk nudged me. Since he’s about three times my size, this sent me rocketing across the floor through the giant stained-glass Bill O’Reilly head at the other end of the lobby. After the pain subsided, I picked myself up and brushed myself off and stepped through the me-shaped hole in O’Reilly’s mouth and limped back to the front desk. “Yes, Gronk?”
“Wench ensorcelled.”
“No.”
“Yes! Look at blank eyes. Slack face. Crazy questions. Brainwashed. Ensorcelled.”
“No, Gronk. She’s what we call a Fox News Employee,” I said, holding up two pairs of fingers as quotation marks. “They’re all like that.”
The woman pressed a button on her telephone and leaned over it. “Sergeant Christmas? You have two new recruits.”
Immediately, a door in the back of lobby flew open and a short barrel-chested man in green fatigues and a red Santa Claus hat sprang out. He hurled himself across the lobby and stopped in front of us. “Recruits!” he said. “State your names!”
“Lapsed Cannibal,” I said.
“Gronk,” said Gronk.
“Why are you here?”
“We’re here to save Christmas, sir.”
“And who do you want to save Christmas from?”
“From Democrats, sir.”
“That’s right! Godless filthy scumsucking atheist democrats!”
I nodded. “Yes.”
“Why he yelling?” said Gronk.
“AT WHAT POINT DID I GIVE YOU PERMISSION TO SPEAK, SCUMBAG?”
“Gronk not bag of scum,” said Gronk, and lifted his axe. “Gronk cut off your head now.”
I put a hand on Gronk’s arm. “Forgive him, sergeant. He’s foreign.”
The sergeant glowered at us for a while, his face turning various shades of red. You could see the explosion just beneath the skin, massing like lava.
But it subsided, and he handed us each a black marker. “Your first mission,” he said, “is to go down to the mall and reconnoiter storefronts for ‘Happy Holiday’ signs. As soon as you see one, you are to proceed to the store in question, overpower the manager, subdue the employees … and CROSS THE SIGN OUT!”
“You want us to desecrate Christmas signs?”
“NO! I want you to eliminate heathen pagan ‘holiday’ signs! You can’t desecrate heathenism!”
“But what if someone tries to stop us?”
“They won’t, private. You’ll be wearing these.” He pulled two nametags out of his pocket and handed them to me. They said God Police in alternating red and green letters.
“What do we do with these?”
“You wear them, Einstein! And if anyone challenges you, you hit them with these!” He produced a pair of short, brown truncheons.
“And these are …”
“Jesus Sticks!”
“Of course.” I looked at Gronk. He was picking his teeth with his Jesus stick and staring at the receptionist, who was, in turn, smiling blankly off into space. I turned back to Sergeant Christmas. “So that’s it? We go to the mall and scribble on signs?”
“What? Is that not enough for you?”
“Well, actually, sir … I was thinking that maybe we should try to talk to people, you know, explain why …”
“Oh you were thinking, were you?” said the sergeant, rounding on me. “You were thinking. Let’s get one thing straight, private. There will be no ‘thinking’ is this army. ‘Thinking’ is for godless liberals. Around here, we decide things with our gut. As long as you’re a Christmas warrior, you won’t be ‘thinking’ … you’ll be gutting!”
“Gronk can gut,” said Gronk.
“Ok,” I said. “Fine. I was gutting that maybe if we talked to …”
“You can’t talk to these people, private. All you can do is talk over them. The only language they understand is loud. LOUD!”
“Ok. Well. Thanks.” I put the markers in my pocket. “We’ll get right on it. You ready, Gronk?”
“Ready,” he said, and picked up Sergeant Christmas by the scruff of the neck. The sergeant immediately began to sputter and flail like an tourettesy epileptic.
I sighed. “Put him down, Gronk.”
“But little green man irritating,” said Gronk.
“What do you plan to do with him?”
Gronk ruminated. “Maybe make little Christmas ornament out of him.”
“That’s not a bad idea, actually. A Christmas ornament that starts screaming if you put it on a Holiday Tree, maybe.”
“He probably scream wherever you put him.”
“Well, that’s true.” We were at the doors, now. I turned and waved to the receptionist. “Thanks. Nice meeting you.”
“Happy Holidays!” she said, smiling brightly.
December 13th, 2005 — Uncategorized
One of the most puzzling characteristics of our president, George W Bush, is his tendency to extol the virtues of the Christian ideals he claims to live by, while at the same time embracing a set of policies that are clearly antithetical to those ideals.
Take the personal bankruptcy bill that the Senate Republicans passed some time ago, for example. It significantly toughened the process of filing for bankruptcy, which guarantees that a lot more people who are stuck on the treadmill of endless credit card payments/fees will be stuck there forever. Bush supported the bill, which essentially means that he likes the idea of large amoral corporations inflicting usurious ruin upon thousands of helpless Americans.
What comes to mind, here, is the episode in Matthew where Jesus casts the moneychangers out of the temple. Jesus clearly didn’t think much of loan sharks. But Bush claims to be a big fan of Jesus, and Bush loves loan sharks. What gives?
I decided to go to the White House website for some answers, and found, tucked away in a dusty corner of the Faith and Family area, a section called The Republican Gospels. They appeared to be a new version of the New Testament, updated to correct what the authors called “translation errors caused by liberals.”
I flipped through them until I got to the section where Jesus visits the temple. To my surprise, it was rendered as a sort of dialog. Here’s the relevant excerpt:
Moneychanger 1: I’m sorry, sir. We made the terms very clear at the outset. 400 shekels at 45% interest, compounded daily, with a minimum payment due at the beginning of each month.
Hapless Commoner: But you said 15% when I took out the loan.
Moneychanger 1: Yes, but then you missed a payment, which, contractually, obliged me to increase your interest rate to 45%, and then charge you very, very large late fees.
Hapless Commoner: But my mule died the day before I was supposed to pay! And then the Romans burned down my house! And stole my wife!
Moneychanger 1: I’m sorry, but …
Hapless Commoner: And then a wild dog tore off my arm! And ate it! And then I was struck by lightning! Twice! In the head! I can barely even move!
Moneychanger 1: Listen, Mr …
Hapless Commoner: Job.
Moneychanger 1: Mr Job. The terms of the contract are very clear. Under no circumstances are you permitted to miss a payment. If you do so, I have no choice but to raise your interest rate, and charge you ridiculous, outlandish fees that will guarantee your perpetual impoverishment, and eventual ruin.
Hapless Commoner: I won’t pay.
Moneychanger 1: You will, though.
Hapless Commoner: I won’t. I can’t.
Moneychanger 1: [sighing] Well, then I suppose I should call the lion tamers.
Hapless Commoner: What?
Moneychanger 1: Phil? Do you have the lion tamers’ number?
Moneychanger 2: Yeah, I think so … hold on. [shuffles through moneybag] Ah, yes. Here it is. 555-1231.
Moneychanger 1: Thanks. [screaming] 555-1231!
Hapless Commoner: What are you doing?
Moneychanger 1: I’m calling the lion tamers. [screaming] 555-1231!
Hapless Commoner: Why?
Moneychanger 1: So they can come and pick you up.
Hapless Commoner: Why?
Moneychanger 1: So they can feed you to the lions. I get 600 shekels for commoners.
Hapless Commoner: But …
Moneychanger 1: Look, it’s clearly laid out in …
Moneychanger 2: [in a hoarse whisper] Bob!
Moneychanger 1: … the contract. You are to be rent limb from limb by lions in the event that you …
Moneychanger 2: Bob!
Moneychanger 1: [breaking off] What?
Moneychanger 2: Look who’s here.
Moneychanger 1: Damn it, Phil. I’m dealing with a customer here.
Moneychanger 2: It’s him.
Moneychanger 1: [looking over] Oh shit.
[Jesus enters the temple, looks around, then glides toward Moneychanger 1]
Jesus: Hello.
Moneychanger 1: Er … hi.
Jesus: Is there a problem here?
Moneychanger 1: No problem, sir. No problem at all. We’re just …
Hapless Commoner: He wants to feed me to the lions! Because I can’t pay his crazy late fees!
Jesus: [frowning] Is this true, my son?
Moneychanger 1: No sir.
Jesus: [staring]
Moneychanger 1: Well. Perhaps. It depends on what he means by “feed”.
Moneychanger 2: And “lions”.
Moneychanger 1: Yes. And “lions”.
Hapless Commoner: I mean cause me to be eaten by killer cats! With manes!
Moneychanger 1: Ah. Well, in that case … yes.
Jesus: That is … troubling, my son.
Moneychanger 1: But it was in the contract, Rabbi.
Jesus: [frowning] Show me this contract.
Moneychanger 1: Right away, sir. [disappears into his lending tabernacle, returns with a large wheelbarrow filled with stone tablets inscribed with very small text]
Jesus: Oh dear. That’s quite a lot of contract.
Moneychanger 1: Yes sir. We like to be thorough.
Jesus: Where is the section that deals with being eaten by lions?
Moneychanger 1: Ah. [digs down to the bottom of the pile, retrieves a small pebble inscribed in tiny runes] Right here, sir.
Jesus: Thank you. [squinting] This is very small. [squinting harder] And apparently written in an ancient Indo-European dialect that has been extinct for two thousand years. [squinting even harder] In some sort of code that’s based on the mad ravings of a long-dead Aramaic goatherd.
Moneychanger 1: Yes sir. All very clear and proper, sir.
Jesus: [nodding] Yes. Well, everything seems to be in order here.
Hapless Commoner: What?
Jesus: [hands the pebble back] Thank you for your time, Moneychanger.
Moneychanger 1: My pleasure, sir.
Hapless Commoner: But I’m going to be torn apart by lions!
Jesus: I’m sorry, my son, but the contract is very explicit. And it does give you the opportunity to file a complaint with the Roman government, if you have an issue with your treatment here.
Hapless Commoner: The Romans just burned down my house!
Jesus: Two complaints, then.
Hapless Commoner: And it costs 400 shekels to file a complaint!
Moneychanger 2: I could lend you the money for that. At a very reasonable rate.
Hapless Commoner: But …
Jesus: Well. Nice meeting you all. Good day.
It goes on from there. The Republican Gospels also contain a very interesting translation of the sermon on the mount, which answers a lot of questions about Bush’s position on peacemakers.
There’s a lesson to be learned here, for all you burgeoning morally bankrupt politicians: if you’re going to commit yourself to following in the footsteps of Jesus, make sure you pick the the right Jesus.
December 7th, 2005 — Uncategorized
One of the lesser joys of owning a dog is dealing with shit. I don’t mean figurative shit, of course, I mean literal shit. This is unfortunate. The thought of trailing behind a dog with a leash in one hand and a bag of crap in the other has never appealed to me, on any level. When I agreed to the acquisition of the demon beagle, many years ago, it was with the understanding that I would never be stooping down to collect reeking piles of crap. Ever.
Well, you know how understandings go. Most evenings find me trudging listlessly through the heat/cold with a little satchel of shit dangling from my puckered fingers. It has been thus for five years, and there’s no end in sight. The little bastard just keeps crapping.
Happily, I’ve found a way to ease the icky mortification of it all: a new sport that I call Shitbagball.
The rules are simple:
- Acquire a dog, preferably a large one capable of producing prodigious amounts of fecal matter on command.
- Acquire a shitbag. The bag must have a capacity of no less than one cubic foot. It must have tie handles. It cannot be deodorized.
- Locate a trashcan. Ideally, this is a neighborhood trashcan in the epicenter of the community’s dog-walking nexus.
- Walk your dog.
- When you see someone else walking a dog, stop and make the universal shitbagball sign (an imaginary stoop and scoop, followed by a strangled stork-call).
- If the other owner responds in kind, the game has begun.
- Command your dog to crap.
- When your dog has finished crapping, collect the fecal matter.
- Run toward the trashcan while twirling the bag over your head and ululating the theme to Three’s Company (or any late-70’s sitcom featuring two scantily-clad women and a man pretending to be homosexual).
- When you have reached a distance of no less than ten feet from the trashcan, stop and hurl the shitbag.
- If the shitbag successfully lands inside the trashcan before your opponent has manged to do the same, you score a point.
- Repeat.
Games of shitbagball can go on for a very long time.I have scored 37 points over the course of three years, which makes me far and away the neighborhood champion. My closest competitor has four points. Four! And that’s only because his dog, a doberman pinscher, has a tendency to attack and maul me as I’m ululating toward the trashcan.
I have recently ascended to the rank of Commissioner of the Shit Bag League (the SBL) and am in the process of signing a contract with ESPN 4. It’s just a matter of time before I’m doing shit bag commercials and designing my own fecal collection devices (FCDs).
This sport is taking off. It’s going places. And I’m going places with it, shitbag in hand.
December 6th, 2005 — Uncategorized
Here’s the thing about windows:
You could be looking out your window
At a cold fall of sleet
At black hills of churned slush
At huddled shapes trudging bent and muffled through the chill
At a dim and boiling sky smeared with bilious dark-bellied clouds
Until it becomes not a window
But a mirror
And in the reflection
Behind your storm-tossed and winter-spent image
Is another window
With bright sun and blue skies and dew-soaked grass
And smiling people standing in clear spring light
And horizons that do not fill you with dread
And the other window is a mirror too
Just not the one you’re looking at