Regrettable So-Called Food

There’s a new exhibit in the Gallery of Regrettable Food. Actually there are several, but don’t even think of looking for them until you’re sure you can handle the set that I linked to.

Another Work Photo

A few weeks ago, when I went into the area behind the office to pick up trash, I noticed a couple of green shoots that looked familiar, but I’m better at birds than flowers so I described them to Cindy and she ventured a guess. It turns out she was right, and here’s what those little shoots look like now.

daffodils

High-tech Work

original thread

I LOVE developing websites, but I HATE the stress and responsability that comes with a the job. How do you all cope with the stress and responsability that seems to come hand-in-hand with an IT career?

OK, I just have to get this out of my system first: web design is stressful? Try real programming some time. There, I feel better now. ;-)

Whenever I start hating my job, I think about how the non-techie population lives – and how I lived, once.

  • I work in a nice air-conditioned office. I know the AC is there for the machines, but I get to come along for the ride. I don’t have to work outside on rainy days, or worry about sunburn on sunny ones.
  • I sit in a chair, stare at a monitor and type if I’m in my office or stare at other people and talk if I’m in a meeting. My job doesn’t leave me physically tired and sore at the end of the day. The chances of physical injury are extremely low.
  • I have flex time. If I’m fifteen minutes late to work, it’s likely that nobody will even notice let alone care. If I have to run errands or stay home to wait for a plumber I can just do it without having to make special arrangements.
  • I’m very lightly supervised. I’m accountable for results, not time on task. Nobody’s watching over my shoulder to make sure I’m working every minute. If I want to take fifteen minutes to chat with a coworker about the latest gadget, or go out behind the parking lot and watch birds for half an hour, nobody cares.
  • Relatively speaking, I make a ton of money. Believe me, not having enough money to pay the rent creates its own kind of stress. So does worrying about how to pay for kids going to college, or for retirement. As it is, the money I make allows me to surround myself with nice stuff at home and go on neat vacations, and I’ll probably be retiring early.
  • I get to work with smart people. If you’ve ever worked with a bunch of dullards you know how much of a difference that can make.

Sure, my job can be frustrating. The technical challenges are the least of it; sometimes I think Sartre (“hell is other people”) was right. When I start getting annoyed, though, I try to think of what it would really be like to have another kind of job – working on an assembly line, delivering packages for FedEx, picking up trash, … no, thanks. Even the cushy-seeming jobs (doctor, lawyer, stockbroker) and the “fun” jobs (ski instructor, river guide) have their own trials and tribulations. They call it work for a reason. If you really think about it, working in high tech is about as close to a perfect job as you can reasonably expect.

Possum Fur Nipple Warmers

It’s just one of those phrases that you never thought anybody would say seriously, isn’t it? Yes, someone a actually selling them, though they don’t use that exact phrase (Cory did). I’d have to say, having seen a few of the possums in question, that their fur probably is pretty good for warm stuff. It’s also not a big surprise that Kiwis are behind this one; they’re nuts.

Exceptions

Joel recently linked to a new critique of exceptions by Raymond Chen, closely mirroring Joel’s own old one. I’d like to suggest that the problems they describe are attributable to abuse of exceptions, not to exceptions themselves. Yes, some constructs are more subject to abuse than others, or even encourage it. My favorite example of this is the observation that many problems with Microsoft Windows are actually problems with Windows drivers, but the early Windows architectures forced programmers to do things in the kernel that should be done in user space, leading to many people writing kernel code who simply didn’t have the skills to do it properly. Therefore, Microsoft might not have been directly responsible for the problems but did share some culpability because of their awful OS-design decisions. So it might be with exceptions, but I don’t think so. I think most of the problems Joel and Raymond describe go away if people follow some simple rules:

  • Every exception must represent a unique state, either by using unique exceptions or by associating unique information with an exception when it is thrown (as with Python exceptions).
  • Code should only catch exceptions that lead to known and unambiguous states
  • Information about exceptions should be part of a module’s contract. If a module’s upper contract with its caller says that it will only throw certain exceptions representing certain states, it’s responsible for ensuring that other exceptions from modules it calls don’t “leak” through to its caller.

If that last rule means that exceptions from lower modules have to be converted into other exceptions, or into error return values, so be it. Exceptions and other phenomena occurring in those lower modules should not be allowed to change the effective interface to the upper module. If you have to deal with a module that’s profligate with its exceptions and can’t be fixed (e.g. because it came from a third party and it’s too late to find an alternative), that might even mean you have to use a catch-all exception handler, even though those are generally evil. The sad fact is that such a module is going to be a problem no matter how you slice it, so you might as well try to contain the problem.

Break Time

One of the nice things about working in the ‘burbs is that when you step outside for a break on a nice day you’re likely to see something besides concrete and hear something besides traffic. In my case, what I like to see and hear on my breaks is birds. So here’s what I found as soon as I stepped outside the door this afternoon:

Mockingbird I

I know it’s hard to tell, but that’s a mockingbird on the corner of our building. The thing I like about mockingbirds is that when you encounter one you get to hear not just one song but imitations of a dozen or more. This guy does a pretty decent imitation of a blue jay, an even better one of a goldfinch, and several more that I don’t know. I’m a little surprised that he hasn’t started imitating red-winged blackbirds, because there seems to be a kind of RWB highway running right over our building. Just while I was listening to this fellow, I must have seen a half-dozen following exactly the same flight path right over me.

Mockingbird II

That’s the same guy in his other favorite spot in a tree right in front of the entrance, and me testing the limits of my new camera’s zoom. This one (Pentax Optio 33WR) has a 3x optical and 2.8x digital; as you can see, the digital is better than some but still not really very useful.

Hollow

This is one of two hollows right behind work. A couple of weeks ago I went back there and picked up a whole garbage bag’s worth of trash, but new stuff blows in periodically. Nonetheless, it’s quite a nice little spot.

Copse and meadow

This is the view looking further back away from work. The part in the foreground is obviously there because of the power lines overhead; the part behind just seems to be undeveloped. There’s also a small pond to the left of this picture; the combination of water and trees and no humans makes this bird central. At one point there were five grackles visible in the leftmost tree, a couple of field sparrows trying to outdo one another with their calls, goldfinches, at least one cardinal, and I can’t even guess how many RWBs buzzing all over the place.

All in all, a very pleasant respite from indoorsy work…which I should get back to.

Everything is Aikido

A long time ago, I shared a house with several aikido fanatics. While I found the essential idea of directing rather than initiating force quite fascinating, that was a rather unathletic period of my life; I was more interested in heading down to the lab and teaching myself how to program than heading down to the dojo and learning aikido. As a result I didn’t get any more involved than watching my housemates practice moves in the quiet street next to the house, but some of the ideas stayed with me.

As time goes by, I find that those same ideas keep popping up in other areas of my life. As long as I can remember, one of my favorite technical tricks has been to make a subtle change to a program that has far-reaching effects. The one-line fix to a bug that appears to reside in an entirely different part of the system has always seemed like the acme of bug-fixing skill, and it’s an example of code aikido. In meetings, I’m fairly notorious for being silent most of the time and then making one comment that changes the whole course of the discussion – organizational aikido. The list of examples goes on, but I’m sure you get the point.

Most recently, I finished reading Malcolm Gladwell’s The Tipping Point: How Little Things Can Make a Big Difference. You can tell just from the title that it’s likely to be a familiar theme and, sure enough, it is. Basically it’s all about how influence flows through society, using concepts like “connectors” and “stickiness” and full of examples where brute-force approaches to problems failed but more sophisticated ones based (consciously or unconsciously) on these principles succeeded. What he’s really talking about is ki; ai-ki-do means, roughly, guiding-power-way. Gladwell’s tipping point is aikido writ large, as a way of moving society instead of just individuals.

There’s an interesting little connection to chaos theory here. One of the standard chaos-theory concepts is of a butterfly flapping its wings in Brazil and starting a chain of events that eventually leads to typhoons in Asia. They actually call it the butterfly effect, when they don’t call it sensitive dependence on initial conditions. Small stimulus leads to large effects. In a way, the idea behind aikido is to be that butterfly, but with knowledge and intention. Instead of trying to create a typhoon in the obvious way, the idea is to understand how weather works so well that you can just give a tiny little nudge that will cause the typhoon to happen in a way indistinguishable from spontaneity. I even remember reading a story based on this idea once, where two god-like beings compete to see who can create the greatest effect from the smallest stimulus. I think it ended with one of them creating the universe or something, but I don’t remember.

That’s probably enough rambling for now. I’ll probably come back to this concept eventually, but in the meantime if anyone has any other examples of real-world aikido I’d love to hear them. If anyone can identify the story I just mentioned that would be even better.

Milestones

Today was quite a day for reaching milestones. For a start, it’s the 25th anniversary of when my mother and I returned to the States; my brother Kevin stayed in New Zealand for another year to finish his first year of university, and my father wasn’t in the picture at that point. It’s still hard for me to get used to the idea that I’ve now spent over two thirds of my life here. Those childhood years really seem to count a little more than years in adulthood that just fly by.

The second milestone is that I just finished my first “caloric half-marathon.” I hate running and will never do a true half-marathon, so I figured out what the equivalent number of calories would be for my weight and did that number (actually a few more) on my stairclimber instead. According to my calculations, I passed the half-marathon mark in just under 81 minutes including hydration breaks. That’s not a stellar time, but it’s certainly respectable – especially for someone who has never done anything quite comparable before.

The third milestone is not unrelated to the second. After I got off the machine, I weighed in at 174 pounds. As best I can remember, that’s the lowest since about 1991 and represents a great improvement over my high of 210 less than a year ago. I actually care more about cardiovascular improvement than weight, but I’ll admit that it’s nice to have visible signs of my progress. I definitely like the thought that I might very well be in better shape at 40 (a year plus a week from now, in case you were wondering) than I was at 20.

Onya, Godzone

It looks like New Zealand is leading the way to curb the use of mercenaries in Iraq and elsewhere:

“This Bill should make New Zealanders think twice about chasing $1000-a-day jobs in Iraq; as should their local recruiting agents who could qualify to up to 14 years imprisonment,” said Mr Locke, the Green Party Spokesperson on Defence.

“If someone is carrying out a role usually associated with security guards or police, like the New Zealander who has been accompanying a BBC TV crew, they have no worries under this legislation. “However, the Bill now uses the term ‘take part in hostilities’, rather than ‘fighting’, which means that if a New Zealander is effectively supporting the US occupation by, say, guarding military facilities or convoys, they could be deemed to be a mercenary and be prosecuted upon their return.

BTW, “onya” is a down-under contraction for “good on you” and is a strong expression of approval. “Godzone” is a variant on “God’s own country” referring, of course, to New Zealand.

Terminology Change

There’s an interesting article on Slate about the legal and operational problems presented by US mercenaries (or “private military contractors” to their supporters) in Iraq. To be both etymologically correct and consistent with what seems to be common practice among US media referring to similar people in any other country, I suggest that we use the term “American paramilitaries” for folks like Blackwater.