Entries from October 2004 ↓
October 31st, 2004 — Uncategorized
Neal Stephenson gave Slashdot a great interview the other day, and his answers were vintage Stephenson: intelligent, funny, fascinating, and often-quite-long-without-really-needing-to-be-but-that’s-ok-because-it’s-Neal-Stephenson.
Most of the questions were about the creative and practical aspects of being a novelist, but there were few techie ones in there as well — like Walter Mosely, Stephenson used to sling code for a living. In particular: someone asked about Vernor Vinge’s Singularity theory, which maintains that one day, in the not too distant future, our computers will reach such stunning levels of sophistication that they will quickly outstrip their creators and begin to improve on themselves, setting in motion a sort of technological Big Bang that will instantly marginalize all of humanity. The question was whether Stephenson thought the singularity would ever occur. His answer was no: because no matter how good the hardware gets, you still need software to make it go, and software is crap, and will always be crap.
This hits close to home, because I make a living designing and writing software … but I’m inclined to agree. There are a lot of intensely brilliant people in the industry today who are trying to figure out how to put software development on a more rigourous, rational, and sanity-based course, using design tools, coding standards, best practices, etc. But the problem isn’t as simple as mediocre programmers writing shit code. Despite the efforts of a generation of computer scientists, software is — at its core — an art. Which is to say, it grows organically from the human imagination, and as such does not have to obey any artificial rules of conduct. Hardware, on the other hand, is bound by physical laws, by mathematics and physics and chemistry, and there are certain things you can and cannot do with a microprocessor. The universe has only so much tolerance for creativity.
Not so for software. If you want to write a program that generates haikus with n extra syllables, where n is the current value of the Dow Jones Industrial Average divided by pi then multiplied by the square root of -1, you can do it. It doesn’t make any sense, but you can do it. If you want to write a program that delves into a computer’s memory and changes all the zeroes to ones and all the ones to zeroes, you can do that too — and if you can’t, then someone will write a program to make it so you can. There just aren’t any rules, besides the ones we impose on ourselves, and man-made laws have a way of bowing to expediency and circumstance. Software Laws are like highway lane markers — purely conceptual, and reliant on the programmer/driver to stay within the lines. There are no physical impediments to jerking your wheel left and sliding across the entire width of the road — usually to disastrous effect.
The other reason software tends to suck over time is that it is squishy, malleable, and easy to change. Think what would happen if it was as simple to make physical modifications to, say, your car, as it is to add features to software. Some engineer at Ford decides that it would be neato-wizbang-cool if the new Ford Behemoth had a ring of wheels all around its body, which would allow it to roll sideway into parking spaces, saving customers the ordeal of parallel parking their new auto-leviathans. And it’s easy to do! Just add a little something here, get rid of that thing there, tweak this, bend that, break that unbreakable rule just a bit, and viola! You’ve got yourself a rolling SUV.
But all the things you have to do to make this fantasy SUV roll also make the entire structure more brittle. Hooking the new wheels up to the engine, changing the suspension, rewiring the electrical system around the new bits — all of that breaks the original design in ways that are not immediately fatal, but will definitely make the thing less reliable and more difficult to repair in the future. And when the next genius comes in and adds another new feature, building new bad decisions on top of the old bad decisions, then you’ve got a real mess. That, in a nutshell, is the state of the software industry today. A huge, roiling, barely contained mess.
And the problem is that, in a market-driven economy, it is literally impossible to avoid the temptation to break whatever rules you need to break to get the product out the door — your stuff has to be fast, it has to come quick, and it has to bow to the (often bizarre and unreasonable) requirements of your client.
And so it does, often to ruinous effect.
So software is messy. Maybe it will always be messy. And, while software engineers the world over decry the sad state of their chosen discipline, they are, perhaps, in their most secret places, very glad of it. Because as long as creating software is the technical equivalent of herding cats, there will always be people required to do the herding. Chaos cannot be automated. It must be controlled by a force just as unpredictable and inefficient and illogical as it is: the human mind.
October 24th, 2004 — Uncategorized
When I arrived at Starbuck’s yesterday, I found an interloper, a man unfamiliar to me, sitting at my usual table. I walked past him, eyes narrowed, purchased my beverage, walked past him again, found another, wholly unsatisfactory, seat, and stared daggers at him. When this had no apparent effect, I tried staring stilettos, and when that didn’t work, went with my ace in the hole: halberds. But the guy was impregnable. He just sat there, completely unaware of the visual malice being hurled his way.
So I did what any red-blooded American male would do in that situation: I took a deep breath, squared my shoulders, cracked my knuckles, and wrote a poem.
Here it is:
The Dude in My Chair
That dude’s in my chair
He’s sitting in my chair
Completely oblivious
To the wrongness of his presence
In my chair
He’s tapping his keyboard
Scratching his nose
Sipping his frap
And sitting in my chair
While the angels of Starbucks
Spin ’round his head
And say
Hey dude
You’re sitting in his chair
But he doesn’t react
Because maybe he’s deaf
Or maybe he’s dumb
Or maybe he’s thinking about that guy at that party
You know
The one with the cufflinks
That was one hell of a guy
But dude
That doesn’t change the fact
That you’re sitting in my chair
So I stand up
And I clear my throat
And I straighten my tie
And I open my mouth
And I say
Hey dude
You’re sitting in my chair
And he looks up at me
And he blinks
And he licks his lips
And he opens his mouth
And he says
Hey dude
You’re sitting in my chair
And that’s when I know
That it’s me sitting in my chair
And that I’ve been sitting in my chair
All along
And I look up
From my chair
At the guy standing there
Staring at me
And asking me
What I’m doing in his chair
October 21st, 2004 — Uncategorized
William Gibson, another god in my personal pantheon (it’s getting crowded up there, actually; I’m going to have to lease some more godspace), has restarted his blog. This brings me great joy, especially since he has been devoting much Gibsion prose to the Horror That Is The Prospect of the Reelection of the Current Preznit.
Here’s a particularly choice bit, quoted from a friend of his who was trying to explain why approximately half the country wants to put Bush back in office:
We can see that the person now in office has led us into a terrible situation, and clearly has no idea what to do, and if reelected will continue to do more of the same. But his opponent has not given us a sufficiently exact plan of action indicating what he intends to do during the next four years — regardless of what events might take place in the meantime. Therefore, obviously, the right thing to do is to stick to the idiot we know, who will continue to do the same, but who at least has never been accused of suggesting that Americans committed atrocities in Vietnam.
Yup, that about sums it up. The world. Has gone. Mad.
October 20th, 2004 — Uncategorized
When programmers sit down to write their code, many of them do so under the aegis of an axiom called The Principle of Least Astonishment. This axiom states that you should do your utmost to write stuff that is not going to astonish, dismay, or confuse the next person who has to look at it later. Which is to say: don’t declare and use a variable at the top of a function, then reuse it for a completely different purpose at the bottom of the function; don’t use exception handlers as implicit gotos; don’t cut and paste blocks of code then change them without changing the associated comments; etc.
Today I came across some code that violated this basic axiom, badly, in several places. I was scandalized, enraged, astonished. And a little abashed. It was my code.
The problem with looking at stuff you did a couple of years ago is that you’re looking at stuff you did a couple of years ago. Not only have you presumably gotten better at your job in the interim, you now have the advantage of objective distance, something you definitely didn’t have when you were first slaving over it under the low clouds of an impending deadline. So it often looks not so good when you go back to it, if not downright embarassing.
It seems to me that people who create things for a living (programmers, painters, writers, filmmakers, weavers, etc) are at something of a disadvantage here. If your memory is your primary archival tool, then the past is probably not going to look too bad, because memory has a way of smoothing out the sharp edges and illuminating your misdeeds in a soft, flattering light. But when something is preserved externally, and therefore immune to manipulation, that’s a lot harder to do. Putting a nice gloss on that kind of stuff requires a George-Bushian level of realtime self-deception, something most people can’t manage.
But, on the other hand, this does confer a kind of advantage on the professional writer-down-of-things. Because whenever you commit something to paper/canvas/computer, you’re forced to think about how it’s going to look two, three, five years from now. Which is a kind of incentive to do it right, or as right as you possibly can.
In fact, I think it might be a good idea for everyone to keep a kind of diary, with exactly this in mind. So when you’re about to do something — anything — you’re forced to consider whether it passes muster, Principle-of-Least-Astonishment-wise. Should I buy that sweet new zeppelin-sized .7 mpg SUV for my commute to work? Should I not call her back, even though she’s sweet and smart and attractive, because I’m afraid I’ll be tempted to ask her to marry me one day? Should I eat that entire barrel of ice cream and wash it down with a glass of liquefied cane sugar because, you know, I just worked out so it’ll be cool? Maybe the idea of having to read about these decisions somewhere down the line, and wallow in their essential foolishness, will act as something of a deterrent.
So maybe I’ll start a diary. But later. Right now, I have some code to de-astonishize.
October 16th, 2004 — Uncategorized
I’ll be honest. This Mary Cheney thing is scaring the crap out of me. The Republicans are jumping all over Kerry’s mention of Cheney’s daughter in his answer to a debate question about homosexuality; they’re claiming it was out of bounds, invasion of privacy, slimy and opportunistic, etc. Lynn Cheney says Kerry is not a good man. William Kristol calls it McCarthyism.
This from the party that supports a constitutional amendment to ban not only gay marriage but, in effect, any meaningful kind of civil union between people of the same sex. From the party that uses homophobia as a wedge issue, is using it right now in several house and senate races around the country. It’s ridiculous, hypocritical, outrageous, and it seems to be working.
After the last debate I thought the big talking point would be Bush’s bewildering assertion that he has never said he “wasn’t worried” about Bin Laden. He did say it. On film. That film should be playing on continuous loop on every “news” channel in the country right now, because it says so much about the man and the reasons why he can’t be trusted to be president. But it’s been nearly eclipsed by Kerry’s comment about Ms Cheney.
I’ve been waiting for Kerry to say the thing that the other side could jump on and blow out of proportion, the inflatable fig leaf for the administration to hide its dismal record behind. I twinged a little when I heard Kerry mention Mary Cheney, but didn’t really think it was wrong of him: she’s out, she’s helping to run her father’s campaign, she has no compunctions about mentioning her own homosexuality. There’s nothing shameful or dark or secret about her sexual preference, and this whole issue seems to me to be based around the notion that being a lesbian is an embarrassing defect that must be kept hush hush for the sake of the “afflicted” and their families.
But three quarters of the country disagrees with me, according to the Washington Post, and so does my wife: violently. She thinks that, perception-wise, this is equivalent to the smears that the Swiftboat Liars for Truth have been trying to tar Kerry with; that it looked mean-spirited, crass, opportunistic, base, nakedly political. She was surprised and a little disturbed that I didn’t see it the same way. I just heard Mark Shields say that every woman he’s talked to said pretty much the same thing.
I hope I’m not being insensitive or myopically partisan here. Maybe I am.
In other news: Bush is now four points up in the latest Zogby polls, after losing all three debates, badly.
I repeat: I am afraid.
October 13th, 2004 — Uncategorized
In order to do my job, I often have to read shit like this:
SiteMinder® is the market-leading access management solution for web-based and enterprise applications. SiteMinder software creates a secure foundation for centralized, policy-based authentication and authorization management across heterogeneous environments, providing blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
My brain can usually get through about two sentences of this stuff before it starts to shut down. Although my eyes keep moving across the page, they’re no longer actually hooked up to anything; it’s like revving an engine while it’s in neutral. By the time I’m done, I know exactly nothing more than I knew when I started. So I start over, read the first two sentences, switch off, skate down to the bottom of the page, realize I’ve absorbed nothing. Repeat.
Now, part of this is my fault, of course. They don’t call us Generation X for nothing. We’re feckless layabouts with the attention span of ADD butterflies, all of us. But at least some of the blame goes to the ones who write this dreck. Most marketing summaries actually strive for this sort of buzzword-heavy nebulousness, in order to pull in as many credulous IT managers as possible. Oooo, look it does X! And Y! And then it does Z! It’s laden with functionality! Buy!
So I see the method to their dullness. But still, they could add a little pizazz, a little sex, a little sizzle. Like this:
SiteMinder® will get you laid. It is the sexiest, sizzlingest, naughtiest solution for web-based and enterprise applications in the world. When women find out that you have this secure foundation for centralized, policy-based authentication installed on your server, they will run screaming to your cube and tear your clothes off and have their way with you, repeatedly. We promise, you’ll never look at authorization management across heterogeneous environments the same way again!
Now, I don’t know about you, but if I saw this thing for sale in an IT catalog, I’d whip out my credit card faster than you can say enterprise-class manageability and proven scalability.
October 12th, 2004 — Uncategorized
Slate asked a bunch of novelists who they’ll be voting for in November, and — not surprisingly — most came down on the side of Kerry (or Notbush, in some cases). A lot of their answers are pure gold:
Amy Tan: I’m voting for Kerry, because I have a brain and so does he.
Jonathan Franzen: Kerry, of course. He’s the candidate whose defeat Osama Bin Laden (if he’s alive) is praying for. I trust him not to pour additional gasoline on the fires that Bush has set overseas. Also, since he’s a Democrat, I trust him to exercise a modicum of fiscal sanity and to show a little compassion for the unlucky. Also, his wife is hot hot hot. She’d be a first lady for the ages.
Russel Banks: I’ll vote for John Kerry. His election won’t reverse our nation’s rush to establish a fascist plutocracy, it’s too late for that. But it may slow the process enough to let us over the next few decades build a viable alternative to the two nearly interchangeable parties that together in the last few decades have essentially stolen the republic. It’s the only way we can avoid the necessity down the road of a Second American Revolution—a thing I’d dearly love to see, but I clearly won’t live that long.
Richard Dooling: More than any other election in recent memory, this one reminds me of Henry Adams’ observation that politics is the systematic organization of hatreds.
October 10th, 2004 — Uncategorized
At the risk of committing the blogular sin of over-earnestness, I feel the need to expound on the subject of hope. Because I’ve come to the conclusion, after much serious, brow-furrowed, chin-resting-on-fist rumination, that hope is the most important thing we have, the one essential item we can’t survive without. It trumps everything else, even happiness. Because happiness is an end-state, static and ultimately stagnant; it’s vegetative, defenseless, a simple emotion that lives at the mercy of the elements that surround and feed it.
But hope is a process. Hope gets you from sadness to happiness, from misery to contentment. Hope is a vehicle, a road, a vector. It’s like time, in a way, but instead of leading us from moment to moment, it takes us from ambition to fruition, from desire to reality.
Case in point: things are going to shit at work right now. We have a new CEO who’s been brought in to halt the company’s three-year tailspin, and the prospect of yet more layoffs looms on the horizon, like thunderclouds. Products are being canceled, people disappearing or being shuffled around. And right now, morale is as low as I’ve ever seen it, managing every day to find and settle into a new, extra-nadiry nadir. But it’s not that the situation is bad right now that’s got everyone so depressed, I don’t think; it’s that we see little prospect of anything improving. We’ve been yanking at the corporate rudder for three years now, and the nose won’t come up, and the ground seems closer than ever. It’s the same with everything, really; people are well-equipped to deal with present hardship, for the most part, but have trouble with long-term adversity.
Really, though, I think that’s good news. Because the bad stuff that’s happening right now is real and actual and tangible and not usually susceptible to interpretation; it is what it is. But the future is ours to create.
This isn’t to say that we’re at the reigns of our destiny; I believe in free will, but not necessarily in a world that gives us the means to exercise it. I think it is true, however, that in hoping for something, we make the journey towards a perceived destiny worthwhile, an end in itself. If you pile your family in a car and get on a road that’s supposed to lead to Disneyland, the ride should be great whether you get to Disneyland or not: full of plans and hopes and excitement, full of purpose. If the highway actually leads to the black hole of Calcutta, say, or Detroit, that will definitely suck, but it doesn’t nullify the journey. Suck is an endpoint, a frozen moment in time. The journey to suck isn’t, any more more than it was when you thought it was a journey to Disneyland. It was a thing in itself, not a corollary of the destination. And it was good. The thing to do is to find another road, and get back on it.
This is pretty obvious stuff. But I think it’s important to say it or write it down or tattoo it on your forebrain because it affects the way you think and plan. If all of your maps end at destinations, then you’re setting yourself up for a fall. Because if the destination isn’t what you’d hoped it would be, then you’re lost. And if it is what you hoped it would be, then you’re lost: because you haven’t thought beyond it, and life is motion. Wallowing in contentment will only get you so far, because contentment is a fickle beast, never willing to stay in one place for very long.
Take Jack Kerouac. Douglas Brinkley just published a collection of his diary entries, and the early stuff is filled with feverish dreams of success, hopes and speculations, a kinetic and sometimes despairing but always animated quest for something other than what he had and what he was. And he achieved all of that, and more, and it made him miserable. He wound up where he’d started, in his mother’s house, drinking himself to an early death.
I don’t know much about Kerouac, but maybe his tragedy and tragedies like his have their roots in the same problem: his dreams came true and he found them to be lacking, or fleeting, or not what he’d imagined; he finished climbing his mountain and once at the summit looked around and saw there was nothing else and that it wasn’t all he’d hoped it would be and that the only way out was down.
I saw Frederick Pohl speak at the National Book Festival this weekend. He’s a legendary science fiction writer and editor, in his eighties now, bent and old and smart and vital and full of stories about his work and his life and the people he knew. And one of the things he said was that new writers have a long road ahead of them, because their chances of getting published are somewhere between zero and nil. The field is crowded, publications dwindling, and the odds are very much stacked against you.
And then he said this: “But if your story is good, it will get published. If it’s good, then there’s always going to be someone out there who’ll want to print it.”
Which is exactly what a lot of the audience (apparently filled with frustrated writers) wanted to hear. They applauded, thunderously and for a long time. He’d shown us a way off our island, a road to the next destination, and that was all we needed, really.
October 6th, 2004 — Uncategorized
I have to admit, I wasn’t overwhelmed by Edward’s performance in the debate last night. He didn’t wilt under the perceived weight of Darth Cheney’s experience and “gravitas”, as a lot of the punditry seemed to think he would, but I was expecting more: there’s so much to hit these guys with, and Edwards is such a smooth talker (those damn trial lawyers!) that I thought that he just might be able to steamroll the veep. Alas, steamroll he did not.
He missed hitting Cheney decisively on all the outrageous lies he told on the runup to the war (mushroom cloud, Saddam hearts Al-Quaida, etc), and has been repeating every since. This seemed like low-hanging fruit, and there was certainly time and opportunity to do so. He didn’t explain why Kerry’s nuanced approach to foreign policy is not flip-flopping. And, in general, he didn’t spend enough time countering Cheney’s on-air lies and obfuscations.
But … the snippets I heard on the radio this morning sounded much better than they did last night, somehow, maybe because they picked the good bits out of the general ramble. And the good bits were good. I especially liked his stinging indictment of Cheney’s embarrassingly evil voting record in the House, and his enumeration of the ways in which the Bushies have failed us in healthcare. And he effectively countered the faux scandal that the Bush campaign is trying to create out of Kerry’s “global test” comment, which needed to be done.
So, in retrospect, not so bad. Probably won’t swing the swing voters either way, but not bad.
The thing that really annoyed me about the whole debate though — even more than Cheney’s persistent falsehoods — was the overwhelming dumbness of Gwen Ifill’s questions, especially toward the end. A lot of them were so vague and/or unanswerable that the two just veered off in their own directions, filling in earlier answers, or answering the questions she should have been asking.
Anyway. Slight advantage to Edwards, I think. But we’ll see.