Archive for December, 2005

Ending the year in the red

Saturday, December 31st, 2005

Looking over the final paycheck from my last job, I found

    PERSONAL T   -2.000 HOURS

That’s the first time I’ve ever left a job without a surplus of vacation time. I must be learning something. Alas, that learning won’t apply now that I’m going back into consulting, where “vacation” means “non-billable time”.

Taking in the View

Friday, December 23rd, 2005

For the last year, my “some day, eventually” list has included stopping at one of the scenic views along Highway 280 between Silicon Valley and San Mateo that I commute by daily. This morning, thanks to an early departure and light holiday traffic, I had time to spare and took the exit.

Highway 280

The road winds up to the top of a hill on the South side of the highway to a quiet hilltop that has an excellent view down into Crystal Springs Reservoir and the Crystal Springs Gap–a break in the terrain that lets the coastal fog pour through. The photo shows the Gap, with, of all things, fog pouring through. A pleasant break in a usually hurried pattern.

A goal for next year is to cross a few more “some day, eventually” things off of the list. Vita Brevis.

A Bezier Blast from the Past

Monday, December 5th, 2005

While Googling for something else entirely, I chanced upon a 1989 article on Bezier Curves that I’d written for MacTech (then the Macintosh Technical Journal). I had no idea that they’d put it on the web.

Memory on the details of the article have faded with time, but two things stood out. It was an early experience in how badly a code fragment can get mangled through the magazine editing and publication process. I remember cringing when seeing it in print. It taught me to always, always check with the editor to see how wide code listing or sidebars could safely be. I’d already had the experience of having an editor change my words to what they wished I’d written, so finding a few creative adjustments when the article arrived in print wasn’t a big deal.

I also remember my surprise when I showed a friend my author’s copy of the magazine, which had been sitting around my apartment unopened for two months, and a check fell out. I’d been expecting a check in the mail eventually (magazines are sometimes a bit slow to pay), but I never expected them to be that aggressive about saving postage.

Re-reading the article now, I’m pleased that the technical aspects have held up reasonably well (though the artwork now looks pretty feeble). A few years later I came across a different Bezier Curve algorithm that is better in some situations, but the one I published is “good enough” for many uses, and the article does a decent job of explaining the underlying mathematics.

Agile Considered Unhealthy

Thursday, December 1st, 2005

There’s a non-obvious way in which an Agile methodology, particularly one that includes pair programming among its practices, can be an unhealthy way to develop software.

Achoo.

I just sprayed a several million germs or viruses on the keyboard we’re sharing. In short order, while we continue to crank out code at an impressive rate, any bug I have will be yours to have and to pass on.

This isn’t a theoretical concern. For the last year and a half I’ve been working with a small XP team (6 people growing to 9). We work in close contact in an open office. We sit together. We share keyboards. In that time one cold or flu after another has arrived and made the rounds. Sometimes the cold ping-pongs. Other times it knocks people down like dominos. Isolation is nearly impossible, even when one declares “quarantine!” and works singleton for a day. I just shook off a lingering mild fever that hung on for nearly a week (after a shorter, meaner flu last month). The fellow who sites next to me is on antibiotics after a bad secondary. Even one of the guys who never gets sick was just out for a day. Kleenex is an office supply.

We didn’t make the keyboard connection until today. One of my teamates, who did a stint as a lab technician in the Army, pointed out how unsanity keyboards are. They sit there collecting every cough and sneeze. Doubt it’s a problem? Try turning your keyboard over and shaking. Icky, and that’s just the visible stuff.

Coincidentally, we’ve starting using extra USB keyboards and mice so that each member of a pair can type without having to share a single keyboard and mouse. (Having a second mouse makes it very easy to point to a piece of code while your teamate is typing.) I’m wondering if this, coupled with more hand washing and some way to clean keyboards and mice, will help cut back the cross-infection rate.

Sickness aside, this team is the most productive team I’ve worked with, due both to the people and to our using eXtreme Programming. Take away XP or most of its practices, though, and I’m sure we’d start regressing towards the mean, albeit with less coughing.

 

Updated to point to an interesting suggestion for cleaning stubborn keyboards.

Conservation of Hardware Karma

Thursday, December 1st, 2005

Not only am I not an IT professional, I have in past lifetimes played roles much feared by IT people, one being the Software Development Manager with the root password, a screwdriver, and a quaint notion about how the network should be configured, dammit.

So, with full knowledge that my hardware fu is uneven, I set out to add memory to my laptop and a home Linux box, ordering from the ever-reliable NewEgg, and waiting for UPS to deliver a package into the eagerly waiting hand that wasn’t busy hitting refresh on the UPS tracking page.

Installing the memory was easy. Total downtime for the laptop was less than 5 minutes. The server was down for 10 minutes, including the minute it took to find the can of compressed air to blow dust out of the box. No sudden sparks of chip-killing static electricity, no bloodied fingers from trying to wedge a memory stick in under a stuck CPU cooling fan. I was doubly pleased.

But there must be some Conservation of Hardware Karma Law at play. When I arrived at work this morning, my Dell desktop system was imitating a large, placid brick. We’d had a power outage/spike overnight, and the box’s power supply had died, no doubt restoring some cosmic balance as it went.

(Today wasn’t a good one for power at work. We had several short brownouts, possibly caused by limbs falling on powerlines during a wind storm. The phone system went out once. A nearby tranformer blew up, and a split second later a large part of the office network went dark. Not fun.)