Clear Thinking
I started off the week a little grumpy. I wasn't quite sure why. I thought it might have just been that I'm sick of working on just fixing bugs, plus I got into a couple of trivial little differences-of-opinion with folks at work. I'm not trying to make it seem better than it was - it wasn't an argument or anything. But it might have gotten me a little more wound up.
Tuesday afternoon Anders noticed I was being rather snappish, and Debbi also said I'd been grumpy lately, so I decided I had to do something.
What I decided to do to start with was to stop drinking coffee in the morning for the rest of the week. I think it gets me a little too revved up in the morning, and adds to my stress. And it doesn't really help me wake up in the morning - I just drink it because I like it. Having a morning meal probably does more than anything else to get me going in the morning.
So I wouldn't say I've been the epitome (that's pronounced "epi-TOME", right?) of serenity these last two days, but I've been in a better mood. The coffee might have just been an excuse, or maybe it's the placebo effect. Being aware of the problem might have been the biggest factor of all, just working to adjust my attitude. Or maybe it's because today I finally fixed one of the top three bugs which have been bedeviling me. Whatever it's been, things have been better.
Ceej pointed out this Drunken Blog interview with Wil Shipley. Shipley was a honcho at the Omni Group for years, and is now at Delicious Monster. The article contains some opinionating on the two companies, but that's not really why I appreciated it.
What really grabbed my attention were his comments like this:
One of the rules of writing algorithms that I've recently been sort of toying with is that we (as programmers) spend too much time trying to find provably correct solutions, when what we need to do is write really fast heuristics that fail incredibly gracefully.
This is almost always how nature works. You don't have to have every cell in your eye working perfectly to be able to see. We can put together images with an incredible amount of damage to the mechanism, because it fails so gracefully and organically.
This is, I am convinced, the next generation of programming, and it's something we're already starting to see: for instance, vision algorithms today are modeled much more closely after the workings of the eye, and are much more successful than they were twenty years ago.
Now, whether or not you agree with his point (though I think that I do, and it has opened some other lines of thought for me), what I really admired here was the clear thinking that went into this point of view, as well as his expression of it. I guess it's not really an earth-shattering revelation, but it seems like a connection between how humans like to use things and how we programmers tend to build computer software which isn't the sort of observation that's often made.
It's the sort of thing I wish I could do as incisively. I feel like I often muddle around before coming to a conclusion on the basis of a myriad of experiences and evidence, and then I have a hard time explaining why I actually came to that conclusion. I guess that's not a horrible thing; I just tend to mull things over for a while before I actually reach the end point, unless I happen to have an experience which throws my conclusion into stark relief. And, to be fair, there's no way to tell from the interview how long Shipley has been musing over the heuristics-and-graceful-failure notion before he came up with his formulation in the article. Maybe for years. Who knows?
Of course, I'll never reach the nirvana of clear thinking and expression if I'm grumpy. So I'm going to keep working on that.
|