I tend to do a decent amount of technical work just to see if I can do it. Compile my own Linux kernel now and again just to make sure I know how things work, write an IM bot in each programming language as I learn it (current version is in Ruby, previous version was in Scheme), install the Maemo SDK and compile and install one of the examples, setup one of the machines on your home network to do load balancing across some of the others, etc. There’s usually no good reason to do it, especially when you lose a few hours to some esoteric problem you might never run into again. But then again, there are the times when that esoteric issue you happened across while screwing around saves you a few days of debugging when you run into it in production.
I know a whole ton of people who err too much on the side of never doing new things. They just kinda stagnate and do the same thing year after year, and they probably will until they retire. But I also know a few people who seem to always just be playing around with stuff for the hell of it and NEVER have an end goal in sight. I might even be one of them, I’m sure it’s hard to tell from the inside which is which. Oddly enough though, the more random stuff I do the more that stuff seems to pop up in practical usage. And the less random stuff I do the less I seem to need to do it. I wonder if this is one of those things that’s perfectly elastic. You can choose where you want to be on the curve, and no matter what, it’s the right spot.