Wednesday, December 13, 2006
New pictures!
Finally I've uploaded some of the pictures from our trip to Massachusetts & our time so far in Memphis. Check 'em out!
Sunday, December 10, 2006
Oof
Today I was going to run a 1/2 marathon at Squak Mountain in Issaquah. I got up, started getting ready, and just started feeling less and less motivated. I drank my coffee, waffled on whether I should do it, ate a yogurt, waffled some more, re-read the description, continued to waffle, then finally decided I just wasn't in the mood to do an organized run, and decided to do a run I've always wanted to do instead. Said run is at Tiger Mountain, and I've biked it tens or maybe hundreds of times: up Northwest Timber Trail, up the fireroad to Preston Railroad Grade, then up Preston Railroad Grade to another fireroad, then back down. 16+ miles total, wickedly technical, muddy, rocky, rooty , steep and gnarly.
So I did that instead. And I am whooped. Tore up. Wrecked.
But damn I feel good now. And my god it was fun, most of it anyway. As I got off of Preston and back onto the fireroad, a light rain started to fall, and I was feeling strong, and the rain dripping off the dense green trees and the grey gloomy sky and the puddles in the road and the mud splashing off my shoes all felt so right. I was overwhelmed with a feeling of, "this is home". So many rides and runs in this weather, and for all the attendant difficulty of cleaning up afterwards and getting ready beforehand, the damp grey northwest is a beautiful place to be in the wintertime.
So I did that instead. And I am whooped. Tore up. Wrecked.
But damn I feel good now. And my god it was fun, most of it anyway. As I got off of Preston and back onto the fireroad, a light rain started to fall, and I was feeling strong, and the rain dripping off the dense green trees and the grey gloomy sky and the puddles in the road and the mud splashing off my shoes all felt so right. I was overwhelmed with a feeling of, "this is home". So many rides and runs in this weather, and for all the attendant difficulty of cleaning up afterwards and getting ready beforehand, the damp grey northwest is a beautiful place to be in the wintertime.
Tuesday, December 05, 2006
Software and craftsmanship
A few months ago I bought a Laguiole knife for myself. It took about 3 months to arrive, and when I unwrapped it from its packaging it smelled like wood and smoke and oil. It's not perfect -- the engraving on the back of the blade isn't exactly symmetric, and the wood of the handle has a tiny gap against the butt of the blade. Functionally it's like many other knives, and I could use something which cost about 1/10th what this knife did to the same end. But it's handmade and it's beautiful. The blade is forged and the handle carved and the whole thing assembled in the same town, and when you use it you can think about the fact that the blade was made by one guy, and he's probably been doing it his whole life, and he spends enough time on just that blade to sort of get to know it. There is a particular pattern in the handle, made of brass rivets, which is impossible (or at least prohibitively hard) to duplicate by machine, and the guy who carved the handle placed those rivets; again, he had time to think about this particular handle as he was doing it.
I also own a bicycle frame which took about nine months to arrive. One guy designed the geometry and mitred and joined the tubes and sprayed the paint. He had time to think about me while doing this, because he had built another bike for me many years ago, which I rode into the ground and broke, and he saw how the old frame broke and where. When I ride this bike, when I don't completely forget it exists beneath me (because the cliché is true, it really does disappear), I can think about the time and pride that goes into building something like this.
What does this have to do with software?
The software you use every day is in a very real sense hand-crafted. It is simply impossible to mass-produce code because the software is the direct result of the person or people who built it; there is no factory, no assembly line, no repetition of creation. Software is labored over in an analogous way to the brazing on my bicycle or the blade on my knife; the person doing it has done similar things many times but none exactly the same; each problem solved in code is unique, as each piece of steel is unique.
Writing code is and should be an exercise in pride and craftsmanship. It is no exaggeration to say that the best software is written with love. Some of my favorite examples are detailed on Andy Hertzfeld's folklore.org site; for example see the description of the original Mac's sound driver.
Read that again. What he's saying is that the computer is busy grabbing data from memory to display on the screen most of the time. But if you think about how a CRT is designed, there's an electron gun which scans across the display, then moves down and back to the other side. There's a tiny little gap after every line is drawn when the computer doesn't need to do anything related to drawing stuff on the screen -- so the programmers used that little slice to deal with the sound. Ideas like that come from people who are artists, who obsess over their craft, and who truly love doing so.
Of course not every problem you get to solve as a programmer is so magical; most are mundane. But the mundane problems add up, and if you solve each mundane problem with an eye towards the end, you will transcend the mundane. Incredible software -- my personal list includes but is not limited to the original Mac OS, NeXTstep, Excel, and the new Google Reader -- is the result of thousands of mundane tasks done with pride in addition to the few huge magical leaps and bold strokes of genius.
I also own a bicycle frame which took about nine months to arrive. One guy designed the geometry and mitred and joined the tubes and sprayed the paint. He had time to think about me while doing this, because he had built another bike for me many years ago, which I rode into the ground and broke, and he saw how the old frame broke and where. When I ride this bike, when I don't completely forget it exists beneath me (because the cliché is true, it really does disappear), I can think about the time and pride that goes into building something like this.
What does this have to do with software?
The software you use every day is in a very real sense hand-crafted. It is simply impossible to mass-produce code because the software is the direct result of the person or people who built it; there is no factory, no assembly line, no repetition of creation. Software is labored over in an analogous way to the brazing on my bicycle or the blade on my knife; the person doing it has done similar things many times but none exactly the same; each problem solved in code is unique, as each piece of steel is unique.
Writing code is and should be an exercise in pride and craftsmanship. It is no exaggeration to say that the best software is written with love. Some of my favorite examples are detailed on Andy Hertzfeld's folklore.org site; for example see the description of the original Mac's sound driver.
As usual, Burrell's new design was very clever. The Macintosh was already continuously fetching data from memory to drive the video display, interleaving memory bandwidth between the display and processor in a similar fashion to the Apple II. But every 44 microseconds, there was a "horizontal blanking interval" where no video data was needed, so Burrell used that time to fetch data for the sound. That gave us a sample rate of 22kHz, which would allow us to do frequencies up to 11kHz, which isn't too bad.
Read that again. What he's saying is that the computer is busy grabbing data from memory to display on the screen most of the time. But if you think about how a CRT is designed, there's an electron gun which scans across the display, then moves down and back to the other side. There's a tiny little gap after every line is drawn when the computer doesn't need to do anything related to drawing stuff on the screen -- so the programmers used that little slice to deal with the sound. Ideas like that come from people who are artists, who obsess over their craft, and who truly love doing so.
Of course not every problem you get to solve as a programmer is so magical; most are mundane. But the mundane problems add up, and if you solve each mundane problem with an eye towards the end, you will transcend the mundane. Incredible software -- my personal list includes but is not limited to the original Mac OS, NeXTstep, Excel, and the new Google Reader -- is the result of thousands of mundane tasks done with pride in addition to the few huge magical leaps and bold strokes of genius.
Friday, December 01, 2006
Going home
I'm on a plane from Boston to Seattle right now, trying to decompress from what might charitably be called a hectic week.
Lindsey and Amelia and I had a great time visiting my folks: Amelia finally got to meet her great-grandparents Maggie & Jerry, and her great aunt & uncle, and her 2nd cousin and all manner of other relatives. She took her first steps (with just a little help), and got to spend lots of time with her grandparents. Said grandparents of course, as always, amazed me with their generosity and kindness; my mom babysat for Amelia countless times so Lindsey & I could go out to dinner, or go run, or just have some time to ourselves. Plus she cooked for us, gave us gifts, and generally spoiled the hell out of us.
The only downside was that my parents' house is small, and full of people and animals, and consequently Lindsey & I ended up sleeping on the floor in the living room, subject to the seemingly-without-cause mewling of my parents' ancient cat and completely unpredictable behavior of their arguably retarded and perhaps senile English Setter. So I don't think I've got more than 5 hours' of sleep per night since Monday when we arrived on the red-eye.
Of course I was subject to some publicity which I would in retrospect much much much rather have completely avoided. And there was the good hectic-ness of visiting so many people in so little time (and still not getting a chance to spend as much time with anyone as we really wanted to). And I got to experience what it's like to commute two hours each way to work which turns a simple 8-hour work day into a massive 12-hour slog.
The result is that I am thoroughly exhausted and simultaneously wired and of course completely unable to sleep.
Lindsey & Amelia are in Memphis now, visiting Lindsey's family, and I miss them so much already. For the past three days I've only seen Amelia for 20 minutes or so a day and that was killing me; I can't imagine what it's going to be like to not see her for a couple weeks. She will be so different when I see her next, and I'm not sure in what ways. Smarter and cuter, of course, since those traits have been increasing steadily for over a year and I can't imagine they'll stop doing so.
Now for the next two weeks, until I fly to Memphis, I plan to live a more ascetic lifestyle: wake up, run, go to work, go to the gym and lift and steam and soak, go home, sleep, repeat. Please note 'blogging' is not part of that equation, unless it's maybe random notes about my daily runs. I want to be well-rested and happy and stress-free. I'm doing a trail half-marathon in about a week which I am very psyched for and I've got some other long training runs planned.
Good engineering problems to solve at work, a comfortable bed and a good night's sleep await me. I'm out-
Lindsey and Amelia and I had a great time visiting my folks: Amelia finally got to meet her great-grandparents Maggie & Jerry, and her great aunt & uncle, and her 2nd cousin and all manner of other relatives. She took her first steps (with just a little help), and got to spend lots of time with her grandparents. Said grandparents of course, as always, amazed me with their generosity and kindness; my mom babysat for Amelia countless times so Lindsey & I could go out to dinner, or go run, or just have some time to ourselves. Plus she cooked for us, gave us gifts, and generally spoiled the hell out of us.
The only downside was that my parents' house is small, and full of people and animals, and consequently Lindsey & I ended up sleeping on the floor in the living room, subject to the seemingly-without-cause mewling of my parents' ancient cat and completely unpredictable behavior of their arguably retarded and perhaps senile English Setter. So I don't think I've got more than 5 hours' of sleep per night since Monday when we arrived on the red-eye.
Of course I was subject to some publicity which I would in retrospect much much much rather have completely avoided. And there was the good hectic-ness of visiting so many people in so little time (and still not getting a chance to spend as much time with anyone as we really wanted to). And I got to experience what it's like to commute two hours each way to work which turns a simple 8-hour work day into a massive 12-hour slog.
The result is that I am thoroughly exhausted and simultaneously wired and of course completely unable to sleep.
Lindsey & Amelia are in Memphis now, visiting Lindsey's family, and I miss them so much already. For the past three days I've only seen Amelia for 20 minutes or so a day and that was killing me; I can't imagine what it's going to be like to not see her for a couple weeks. She will be so different when I see her next, and I'm not sure in what ways. Smarter and cuter, of course, since those traits have been increasing steadily for over a year and I can't imagine they'll stop doing so.
Now for the next two weeks, until I fly to Memphis, I plan to live a more ascetic lifestyle: wake up, run, go to work, go to the gym and lift and steam and soak, go home, sleep, repeat. Please note 'blogging' is not part of that equation, unless it's maybe random notes about my daily runs. I want to be well-rested and happy and stress-free. I'm doing a trail half-marathon in about a week which I am very psyched for and I've got some other long training runs planned.
Good engineering problems to solve at work, a comfortable bed and a good night's sleep await me. I'm out-
Subscribe to:
Posts (Atom)

