The Daily Parker

Politics, Weather, Photography, and the Dog

More about the new bike

First, I promise to take some photos today. Possibly I can convince Anne to take an action shot or two, which I will post, forgetting for a moment that no one—I mean, no one—can possibly avoid looking like a total dork while wearing bike gear.

Second, I've revised and moved my biking stats page. I thought it was only fair to split off my old bike's records into their own table, because my new bike is so much faster it just wouldn't be fair. Case in point: yesterday, I did 40 km (25 mi) along the lakefront, but I wasn't feeling great. It was warm and humid, I was tired, I hadn't eaten very well, there were children and dogs on the bike path, and I had a couple of minor issues with the bike (trouble clipping in, chain slipping off inner chainring, etc.).

Even with all that working against me, I bested my previous 40 km record by more than four and a half minutes. In other words, a bad ride on my new bike was 5% faster than the best comparable ride on my old bike.

As you can see from the chart, though, comparing Wednesday's OK ride to the previous records shows an 8% improvement over 5 km (3 mi) and an 11% improvement over one hour.

Finally, on the chart you may notice my spot-speed record of 52 km/h (32.3 mph), which I set in May 1985. Yes, in 21 years I haven't managed to make a bicycle go faster than that. Well, watch this space, because today I intend to break that record.

Tommy Two-Cats (1988-2006)

My dad's oldest cat died Tuesday night. He was 18 1/2.

Here's Tommy in 1997:

He was the sweetest cat ever. Not the brightest (we called him "Forrest") nor the slimmest ("Tommy Two-Cats"), but definitely the sweetest.

Tom is survived by his best friend, Reggie.

The point of terrorism

Bruce Schneier reminds everyone how we can really defeat the terrorists:

The point of terrorism is to cause terror, sometimes to further a political goal and sometimes out of sheer hatred. The people terrorists kill are not the targets; they are collateral damage. And blowing up planes, trains, markets or buses is not the goal; those are just tactics. The real targets of terrorism are the rest of us: the billions of us who are not killed but are terrorized because of the killing. The real point of terrorism is not the act itself, but our reaction to the act.
And we're doing exactly what the terrorists want.
The surest defense against terrorism is to refuse to be terrorized. Our job is to recognize that terrorism is just one of the risks we face, and not a particularly common one at that. And our job is to fight those politicians who use fear as an excuse to take away our liberties and promote security theater that wastes money and doesn't make us any safer.

Best laid plans

I was going to have action shots of my new bike this morning, but I decided to take the bus to my office instead of riding for some reason:

I'll have more on the bike later, including the results of my first real ride on it (whee!), but right now I have to crunch a few million data points. I'm also suffering from the after-effects of a midnight inspiration last night, which (a) led to two hours of coding starting at 1:00 am, and (b) got the total speed of the application up 40%.

What a dumbass

First, I picked up my new bike yesterday. But that's not the subject of this post.

No, the unfortunate real subject of this post is, "I am stupid."

I had to import about 3.5 million data points recently, and now that I'm using the data, I discovered that this quick-and-dirty construct was dirtier than it was quick. See if you can spot the problem:

const string sqlTemplate = 
   "INSERT INTO data_points (foreign_key_id,year_num,payment,cost) VALUES ({0},{1},{2},{3})";

...

foreach (CustomStruct item in someObject.someList.Values)
{
   string sql = string.Format(sqlTemplate, parent.RowId, item.Year, item.Cost, item.Payment);

   ...
}

That is why I am now executing SQL statements that look like this:

ALTER TABLE items ADD swap decimal(10,2)
GO
UPDATE items SET swap = cost
GO
UPDATE items SET cost = payment
GO
etc.

I am now waiting for the SQL to run.

Longest. Bike ride. Ever.

Today I pedaled my butt off, all the way up to Wisconsin:

The total ride was 130 km (80.8 mi). I had intended only to go 120 km (74.5 mi) to prepare for the North Shore Century in four weeks. But, I took a wrong turn somewhere in North Chicago, and lost the Robert McClory Bike Path entirely. That added about 6 km (4 mi) to the trip. Another 4 km (2.5 mi) got added on when I popped a spoke in the middle of nowhere:

Fortunately, Anne was home and directed me to the Zion Cyclery, and they had me back on the path in under 15 minutes:

So, a good ride, and now I know I'm ready for the full Century on September 17th.

The President's Diary

As channeled through American Prospect columnist Julian Sanchez:

August 11: My anger at The New York Times subsides somewhat as I skim Foucault and Sartre. Surveillance serves its disciplinary function only if the populace is conscious of it. And if Americans aren't wrenched from being-pour-soi to being-en-soi (at least in relation to an observer who is Other) by the objectifying gaze of the state—well, then the terrorists have won.

Read more.