Wednesday, January 31, 2007

Sing, O goddess, the rage of Achilles son of Peleus, that brought countless ills upon the Achaeans.

For some reason a memory popped into my mind, and I never want to forget this one, so I'm entrusting it to these servers, owned by Google, and also to the minds of all of you that read this. So if you're listening, Google, and also all of you readers, when I'm old and senile tell me this story and I'll laugh at myself a lot:

I was in the IHOP on Green Street in Champaign, probably with my dad, because most times I'm in an IHOP I'm with him. In the booth across the aisle there was a father with a few young kids. At least two, maybe three. They were drawing on the backs of their placemats with IHOP-provided crayons and one of them wanted the crayon a particular color that one of the others had. If there was a third kid, the third kid was completely uninterested in the whole ordeal and was staring into space. Anyhow, the dad tried to teach the kids that the kid that wanted that particular crayon valued it more highly because it was scarce, and the kid with the crayon valued it more highly because it was in demand.

Tuesday, January 30, 2007

My favorite of all my biases...

is my bias for underproduced music. In the spirit of that, this weekend I recorded myself playing Elvis Costello's Suit of Lights, and I originally intended to make it sound good, but instead I just let it stand after one piano take and one vocal take, mistakes and rough patches left in. Currently lives at

Also over the weekend I managed to pull off a 50-mile bike ride without getting lost or collapsing or anything. This was aided by choosing a route that didn't involve mountains, so it was a significantly less interesting route than the one I did last weekend. But I did get to cross over the Dumbarton Bridge, which was sort of cool. I took my camera but there wasn't really much interesting stuff to photograph, just a lot of water.

The Chicago job hunt moves slowly. I have to make it move faster.

Tuesday, January 23, 2007

A few other things that didn't fit in the other post.

I like to rant about how things suck. Compared to lots of other computer geeks, I don't rant much about how computer software sucks. That's what I'm going to do here.

1. Entering proper HTML-formatted lists in Blogger sucks because there's no option to get at the pure HTML of your post. It throws in <br /> tags at carriage returns and surrounds the whole thing in a <p>-</p> pair. So if you put in a proper <ol> or <ul> list you have to open up the next paragraph with a <p> in order to get subsequent style to match earlier text even though with all those <br />s it's kind of inconsistent. That's why this isn't a proper HTML list, and that kind of eats at me a bit. The same thing would apply to using any other HTML structures that implicitly end paragraphs. I think a table or definition list would do this. Probably lots of other stuff. Boo.

2. Uploading images to Blogger sucks. It uses a bunch of complicated shit instead of a nice simple <img>, resizes your images in a way that I can't figure out how to directly edit, and inserts this mess at the beginning of the <textarea> instead of at the cursor position. Boo.

3. Unix sucks. I'm logged into my computer under my username, aldimond. I want to get some files off my nifty new digital camera. This is the first time I've done this. So I emerge gphoto2 and try to detect my camera. Ha, nice fucking try, geek boy. Thing is, it works as root. It doesn't take long to figure out that I have to add myself to the group plugdev to get access to certain hotplugged devices like the camera. Adding my user to the group is easy enough. But I can't *really* log into the group without logging out and back in. Which means restarting my X session. Which is not that big of a deal, but it's ugly. Obviously, I could start a new login shell. But that means that until I truly re-login I'll only be able to launch gphoto2-based programs from the new login shell; also, that's only really obvious to a Unix geek. Boo.

4. Image Magick's -adaptive-resize option sucks. A little background here. In the 90s there were lots of shitty looking graphics on Teh 'Webs that were made by taking big graphics and downsampling them (that is, taking every nth pixel in each direction to make a 1/n-sized image. These images suffered from aliasing artifacts: jagged edges, lines of uneven width, ugly-looking curves. The solution is to apply an anti-aliasing filter before downsampling. An anti-aliasing filter blurs the image, removing "high-frequency" data that can't be expressed in the smaller version of the image. These days anti-aliasing techniques are widely used to create small icons and fonts from larger drawings, replacing the old technique of drawing sharper-looking small icons pixel-for-pixel; in fact, it's a major stylistic cue that separates old-looking software designed to look good on low-resolution monitors from new-looking software designed to look good on high-resolution monitors. The key to anti-aliasing is that for a given downsampling (image-scaling) ratio there is a mathematically determined frequency threshold. The anti-aliasing filter must (as near as possible) eliminate all frequencies above this threshold before downsampling.

There's another type of filter called "adaptive blur". It blurs the image, like an anti-aliasing filter (they're both basically low-pass filters, that is, they allow low frequencies and block high ones), but it tries not to blur edges. It might be useful if you had a noisy image with some text in it, and you wanted the noise blurred out but the text to remain sharp. Or if you had a close-up of a face with some little blemishes on it, and you wanted to smooth out the blemishes without blurring the features (you'd have to be careful to set the right thresholds in order to keep the features and smooth the blemishes; a human-directed technique would probably yield better results than a purely algorithmic one). At any rate, the result of an adaptive blur is that in high-detail areas of the image you still have lots of high frequency content. The "adaptive resize", as far as I can tell, simply applies an adaptive blur, then downsamples. Stupid. It blurs the areas that don't need to be blurred before downsampling and leaves untouched the areas that do need to be blurred. What's sad is that some poor slob is going to see "adaptive resize" and think, "Ooh, adaptive, that must be good," use it on pictures to post to the web, and think that the jaggies are supposed to be there, when really, it just makes his images look oh-so-Web-1.0. I cannot come up with a use case for this resize algorithm. It just makes no sense to me.

To prove my point, here is an image that's had a normal anti-aliasing filter applied before downsampling to 25% original size in each direction (my camera have many megapixel; seven, to be approximate): (you have to click on the image to actually see it full-size, because of point #2 above)

Here is the image that's been "adaptively resized". Notice the aliasing artifacts in the text on the signs, on the bottom bar of the gate, on the log steps to the right of the gate, on the wooden sign beyond the steps, and in what is really the most classic form of aliasing (classic in that it's most similar to the aliasing typically encountered in the audio world), the pattern in the white fence beyond the gate (similar to the patterns you see when someone on TV is wearing clothes with fine stripes... actually, sometimes on TV it looks like the anti-aliasing is done right for the luminance channel, but the color data, which is sampled at half the rate of the luminance data, has severe aliasing). These artifacts are plainly obvious, even though I'm using a CRT monitor at 1600x1200 (which is high enough on this monitor to significantly blur images). If you're using a lower resolution or an LCD panel they'll be even worse. Again, click on the image to see it in its true Web-1.0 glory.

EDIT: Just for the hell of it, here's a full-sized excerpt from the shot. Seven is a lot of megapixels, and with the full-sized image you can see what's really going on in that section of fence. Also, I don't have very steady hands but the camera has pretty good image stabilization, autofocus and even automatic contrast adjustments (I know next to nothing about photography, and even if I did I wasn't about to stand in that freezing canyon in a short-sleeved bike jersey fiddling with the camera, I just turned it on, aimed, shot and left). But you can see farther back on the fence that even the image stabilization can't work miracles, as the fence is blurred out. Well, actually, I have another shot, out the windshield of a car going 30MPH, that I consider to be a pretty damn miraculous feat of image stabilization, and I'll post that later at some point.

Monday, January 22, 2007

Bike Ride Insanity

First of all, on Saturday I played some of the best Ultimate I've ever played. I was struggling with my throws during warm-up, so once the game started I limited my throws to safe ones and focused on defense, making smart hard cuts, and field awareness. The throws came to me later; since I was making good cuts I generally had space to wind up and throw. Took one really bad fall near the end of the last game; my left leg just didn't feel like taking a step for some reason. Everyone looking thought I'd blown out my left knee. In fact, I thought I'd done something, and I stayed down for a while to make sure I wasn't badly hurt before popping back up (after I blew out my right knee a few years ago I tried to stand back up, not realizing what I'd done, and that hurt a lot and still makes me shudder when I think about it... I really don't remember the moment of impact at all, trying to stand is really my most vivid memory of the injury).

Then on Sunday I went on a crazy bike ride. My originally planned route was something like this (you have to zoom out a lot to see the any significant portion of it... you can also turn on an elevation profile in the left panel) but on Saturday night I changed the route in two major ways (there were a few other changes that aren't really relevant to this writing). First, instead of going south on De Anza Blvd. (a fairly boring, heavily-trafficked multi-lane suburban road with a decent bike lane) to get down to Highway 9, I took Stevens Canyon Road and Redwood Gulch Road through Stevens Creek County Park. Second, on the way back I changed the route so that I'd stay south of the freeway until I was almost home and pass through a corner of Rancho San Antonio in so doing.

Stevens Canyon was cold, as it was last week. And Redwood Gulch Road coming out of the canyon was very steep. It really took a bite out of my legs. Obviously the overall climb would have been the same had I taken De Anza, and Stevens Canyon Road is actually a climb in itself, but I think that the climb to that point would have been less choppy on De Anza and Highway 9. As it was I had to stop a few times on Redwood Gulch. The climb up to the Saratoga Gap at Skyline Blvd. from where I got on Highway 9 was steady and only a few miles, but my legs were so tired by that point that I had to take a break less than a half-mile from the top. Took another break at the gap, because it was the gap. A dude on a motorcycle at the gap was checking out my bike, and asked me about it and about cycling in the hills (Is it hard? Yes, dude, it is hard).

I also took my camera with me (my parents gave me a camera for Christmas). Here are some pictures up to this point in the ride.

This picture is actually from last week's ride. It is the end of Stevens Canyon Road. At least, it's as far as I went on the road. The guy that I met later on in Sunday's ride would have gone right through. I planned to take more pictures on that ride, but Stevens Canyon was so cold that I just wanted to get out of there, and then forgot about picture taking for the rest of the ride.

One picture each from Stevens Canyon and Redwood Gulch:

Also, fun fact for those that didn't know (I am neither a mountaineer nor a geologist, so I did not know until looking it up), a gap is the highest point in a pass, a pass being a way through a mountain range that's typically lower than the surrounding mountains. Highway 9 is a pass through the Santa Cruz Mountains, and its peak at Skyline Boulevard is the Saratoga Gap.

Continuing on the ride, not too far down Skyline Boulevard there was a turnoff with some beautiful views. *Snap snap*

After I took these pictures and was about ready to get back on the road downhill an older man on an old yellow bicycle came up the hill toward me. He said, "Did you have to wear that color shirt?" I was wearing a bright orange shirt. "I forgot my sunglasses today, I'm blinded!" He wore a heavy blue shirt, corduroys, riding shoes, and an old white riding cap in place of a helmet. We talked (well, mostly he talked) for a long time about bike routes through the mountains, the nearby birds and why they "flew so shitty", why propeller airplanes are so loud (it's not the engines, it's the tips of the propellers breaking the sound barrier), why some propellers have more blades than others (if the plane can go faster there can be more blades because it takes less time for the blade to enter "clean" air; "If the blade doesn't have clean air to enter, you're fucked!"), the crazy wind patterns and microclimates of the South Bay, and he identified a Ducatti motorcycle as it sped by behind him by the sound of its engine.

After speeding downhill for a while (Skyline was downhill mostly, but fairly straight so I could pick up quite a lot of speed) I got to Page Mill Road and turned north towards Palo Alto and Stanford University. My first long bike ride out here was to Stanford and back; maybe if I try to find a reasonably flat route I could make it all the way to Cal-Berkeley and back; it would be around 100 miles, but I think I could do it if I found a decent route and packed lots of food. Page Mill Road was curvy, downhill and scenic. Photos from Page Mill Road follow.

These three face out to the northeast overlooking Silicon Valley, San José and the Mount Hamilton range off in the distance.

And these next three are looking (I think) to the west. A couple sightseeing in a car facing south asked me where Page Mill Road went, so I told them that it continued down to Skyline Boulevard, and I didn't know where it went after that, but that Skyline went all the way to the coast. Unfortunately that last part isn't really true. Oops. At the end of Skyline you'd still have to go a long way down Half Moon Bay road to get to the coast, and the stupid part is that I really should have known that, because I drove down Half Moon Bay road to the coast when I was here for my interview with Nvidia. Oh well.

The really crazy part came after getting off of Page Mill. My new route had me noodling around minor roads paralleling the freeway to the "west" (in the valley "north" always means "towards San Francisco", "south" almost always means "towards San José", "west" often means "towards the mountains or the coast"; "east" could conceivably mean "towards Oakland", but nobody ever mentions the word "east" 'round these parts, except when talking about those crazy eastern-seaboard towns like Boston, Denver and Reno). These roads tended to go "south" for a while and then turn left towards the freeway, so I had to make several right turns to keep my course. Unfortunately when I wrote down my directions I skipped a turn and because the roads change names every few blocks I couldn't figure out how to continue the route. I remembered that Altamont road would take me across the freeway, so I backtracked to that point, got on Altamont and figured that once in the valley I'd see a street I knew and pick my way back home.

Unfortunately I have no sense of direction (a situation exacerbated by the wacky and sometimes contradictory directional orientation of bay-area roads and the roads' tendency to curve around). Altamont took me to the Foothill Expressway (note to Chicagoland readers: around here "expressway" is not synonymous with "freeway" like it is in Chicago; expressways in the bay area are semi-limited access roads in that they have mostly at-grade junctions, but only with other major roads, and very little or no direct driveway access). According to my map of south-bay bike routes, Foothill Expressway was not a road to be cycled. But in reality it had a really wide bike lane and was packed with cyclists. I guess the mapmakers just blanketly marked all the county expressways the same. So I turned right on Foothill to go "south" towards Rancho San Antonio and home. But then I got confused and thought that south would have been a left turn. Don't ask me why I thought that. So I turned back and rode a long way the wrong way down Foothill. I started to get suspicious that I was going the wrong way. The suspicion was like Wile E. Coyote realizing that there was no ground under his legs anymore. It made me finally notice that my legs were burnt out after miles of switching back over hills, repeatedly accelerating, trying to find my way. The next street up ahead had a large dirt-and-grass divider between the main lanes and the right-turn lanes. I stopped and laid down there for a long time.

I don't know how long it was; several light cycles went by, and whenever the light was red cyclists stopped at the light would ask if I needed help, food or a phone call. I asked one of them which direction she was going, and she said, "north, towards San Francisco". So I knew I was way off course, but at least I knew the way back, and that I was about 15 miles from home. I rested for a few more light cycles, stretched out, then headed back. It was an easy, gentle downhill for the last 15 miles down Foothill and Homestead. And I made sure to take it slow so I wouldn't be half-delirious as the roads got busier and more dangerous in Santa Clara. At any rate, I tried to watch the AFC Championship game when I got home and slept through most of it, that's how tired I was. Yow.

Friday, January 19, 2007

A light from up above pointing down at the misspelling of the General's name on the orders he carried in his pocket as he stood tall in the chaos

A week or so ago, maybe a little longer than that, I was asked to diagnose a potential driver problem occurring on a cheap laptop. I wanted to connect a kernel debugger to the laptop, because without one the failure was pretty opaque. The laptop did not have a serial port or a firewire port. It also lacked any expansion slots that might host such a connector. But the failure was occurring under Windows Vista. So there was one last hope: debugging via the USB 2.0 port. There are a number of difficulties involved in doing this. I never managed to get it working, but that's not the point. In my search for information on how to properly get the debugger connection working I stumbled upon this web gem: BEHOLD, THE LIGHT OF GOD SHINES UPON IT!

No, really, I don't care if you don't care about debugging via the USB port, click on that link. This guy Hector has a website called Hector's Memos. In it Windows driver developers can pretend like Hector's their boss sending them important memos about how to do their jobs effectively.

Which sounds like a fine bit of role-play, I guess, if you're into that kind of thing. A bit dull for my tastes... I mean, would it be just too much for America to handle if there was a website where you could be the cruel dungeonmaster, with the secrets of Windows driver programming known only by your sexy prisoner, whom you must seduce and torture until she lets you share in that knowledge? Really, would it? I mean, we've come so far!

But I stray from the point. Ah, yes, a fine bit of role-play, if you're into that office stuff, BUT WAIT! If you're looking for answers on arcane bits of Windows driver debugging you almost surely already have a job, an office and a boss. Why the hell do you need this Hector guy? Are you unsatisfied with your job? Do you want a boss as knowledgeable as Hector? Who will treat you with respect like Hector? Who will rub hot oil on your back, his wet bronzed body glistening in the Caribbean sun, strong fingers digging all in, releasing your tensions and cares to the ocean breeze, like Hector? And don't think that Hector's not enjoying his end of the game. A veritable sea of employees before him, who have strayed from their bosses, ready and waiting, on their knees begging for the Windows driver development knowledge that only he can dispense, "Oh, Hector!"

Oh, dear.

Tuesday, January 16, 2007

Near-Midnight Grocery Thing

A few days ago it was almost midnight and I was not particularly hungry but felt like eating anyway, and I didn't feel like eating anything around here (there wasn't much). So I got in my car and drove up Scott to El Camino Real, left on El Camino and past the San Tomás Expressway and to the Save Mart, which is open until midnight.

Is it my car? It doesn't feel like my car, in that I don't feel like I own it for some reason, but that's not why I'm writing.

It's always the same guy that checks me out at the Save Mart when I go there late at night. And some of the other people around the store I recognize also. I think it was Saturday night, but it's the same guy on weeknights. As I started the car to head back home I thought something like, "It must suck to have that shift. But I'm glad someone does it." Of course, that was a stupid thought. I mean, I am whatsoever not capable of being glad about anything, least of all that some dudes are working past midnight on a Saturday night just to make sure that I can keep up some of my worst food-related tendencies (not planning out shopping runs, failing to understand my appetite, shopping while hungry, to name a few) without stealing anything.

Fuck it, Dude; let's go bowling.

Sunday, January 7, 2007

They do the St. Paul Boogie, when the sun goes down

Several months ago I was listening to A Prairie Home Companion and heard the song The St. Paul Boogie, whose lyrics occasionally make fun of St. Paul residents for their early bed-times. I just realized that a lot of those lines could be interpreted as innuendo. As in, “The St. Paul Boogie is such a hot dance move that the people in the clubs can't help themselves. They're ‘in bed by eight’, if you know what I mean, 'eh, 'eh? ‘In St. Paul you can always find a place to park your car’, catch my drift, saynomore, saynomore?”

And now, for something completely different.

When I was in Illinois recently, specifically, in Paxton on the afternoon of Friday, December 29, 2006, my brother Lyndon commented that he tried to rely on technology as little as possible. My brother Lyndon has two computers (a laptop and a desktop box), a portable music player, and a cell phone. I told him this. He persisted, trying to explain that he didn't really rely on these things, just used them for convenience, and he didn't care about having all the latest features, and avoided using gadgets when possible, etc. I saw that a rather silly discussion was about to occur, similar to when computer experts brag about how they “rough it” using older idioms, such as the command line instead of GUIs, as if the BASH shell (I know, “ATM Machine”, whatever) was once hanging from a tree branch in Eden, and Adam and Eve fell to temptation and typed, “ls /”, and got the directory listing of the Universe (then they went on Usenet and looked up some ASCII porn, just like the 1337 haxXx0rz of today... brand loyalty dies hard, especially when it comes to sex). So I told him, basically, “You came here to Paxton in a car. On roads. Listening to recorded music. You're about to eat food grown in fields, a product of agriculture. Technology, technology, technology, technology.” We argued a bit about whether agriculture was technology, and I won (it wasn't a fair argument... it's never a fair argument when one side is right and the other is wrong).

So why, if practically everything we interact with today is technology, from the clothes we wear and the food we eat to the cities we live in, do we specifically call the computing industry the “technology industry”? I think this name has something to it. When people in general think about technology they don't think about it in the broad sense that I do, about all the work of Man. They think about novel things. In every industry the selling price of products is related to their worth to people and the costs of production. And when an industry is mature products don't change much, the differentiating features that could bump up price are things like expected durability; prices are driven down by competition, volumes are high and profit margins are low. The products aren't novel anymore.

The tech industry is like the fashion industry. Designers come up with new ideas, guard their secrets, try to hold monopolies on their ideas as long as they can, sell with huge profit margins as long as they can. And then once the secret is out, once anyone can produce the same dress for a fraction of the price it's no longer fashion, it's just clothing. So the designers work feverishly to stay ahead of the curve, to always be novel, to never mature. For a tech company to mature, to settle into a comfortable niche, is its death. Then all it can do is drive down costs and wait for its niche to vanish.

I don't know if this attitude extends into the established corporations as business operations outside of their real markets. At one time I thought that San José could become a great city once the tech companies matured and built offices downtown. There are a number of reasons this is silly. First, if the companies, like their products, never really mature, this won't happen. Second, it takes more than tall buildings and a train system to make a great city: it takes people that care about making the city, the local community, great (which are hard to come by in an industry whose players largely act in the wider world of global commerce and the imaginary world of the Internet), it takes visionary leadership at City Hall (and San José's government seems to struggle enough with day-to-day problems). Third, Silicon Valley may become the next Flint, MI before it ever has a chance to mature into the next Chicago. There's not much diversity in its businesses: all the heavy-hitters are tech companies (the Business section of the Mercury News on Mondays is called “Tech Monday”, but it talks primarily about the same companies every other day of the week as well). If India and China (cliché, I know, but cliché for a reason) take over chip design, or if a the declining Dollar leaves less real money in American pockets for the novelties of the tech industry, Silicon Valley could crash hard. As inefficient and as expensive as the valley is, that would be ugly.

Also, Here's a link to that Prairie Home Companion episode.


This is not going to be a very well-composed entry, and I don't know why it's going up. A few odd notes.

  1. There is a story behind the previous blog entry (I think it was the previous entry at least) and also one behind the next list item and I can't really tell either story here so I won't (I know, there was that XKCD strip that ends, "Fuck that shit," and I'd like to post the stories in the spirit of that strip, but it wouldn't be prudent). Inquire within.
  2. On Friday I really saw up-close some of the connections between careerism and consumerism and they scared me a lot.
  3. Played Frisbee today and then biked from the field up to a sporting goods store in Sunnyvale where I bought a basketball and an ankle strap that should connect to my apartment's weight set. And everything hurts except for my right hamstring, which means I can start my awesome training plan!
  4. My awesome training plan (for the River to River Relay): January is for strength and flexibility training. Some running mixed in with biking. February is for aerobic base training and hills. March is for interval workouts, tempo runs, more hills. The first week of April is Hell Week. The next two weeks are a two-week taper down to the relay: gradually easier tempo runs and short speedwork.
  5. I have been reading Snow Crash by Neal Stephenson, and it is delicious.

Perhaps for a normal person this would not be such an accomplishment, but I'm impressed with how short I managed to keep this. Yuck, that's an ugly sentence (Orwell would not approve). Oh well, can't win 'em all.