As my bicycle miles per week go up, my miles per hour are going down.
Author Archives: Jerry
Actually, You’re Not
I just saw an ad for an insurance agency whose tagline was “because you’re different”. Bullshit. The entire industry is predicated on you NOT being different; they profit from the statistical norm. The tagline may as well be “because you’re more attractive than your coworkers”. Blind-ass flattery.
My Last Thought
My Favorite World Cup Moment (So Far)
I was sorta-watching the match between Bosnia-Herzegovina and Nigeria over the weekend. Sorta-watching because I was at work and the game was on my phone. Wee tiny soccer.
Nigeria had a 1-goal lead and time was running out for the Bosnians. Suddenly, a rash of horrific injuries swept through the ranks of the Nigerians, injuries so awful that all the poor men could do was to lie on the turf in agony. Play stops in these situations, but the clock keeps ticking!. The ref adds a bit of time at the end of the game to make up for the stoppages, but when a team really commits to lying on the grass, they will chew up far more game time than the ref adds back on.
One of these terrible injuries occurred right by the sideline. The Nigerian was so blinded by pain he couldn’t even manage to roll three feet to get off the field of play. FIFA officials and doctors hovered around the seemingly-mortally-wounded athlete, wringing their hands. FIFA people are under strict orders not to risk exacerbating the injuries of world-class athletes, and the team doctors had no interest at all in seeing this man to a speedy recovery. Not while he was on the field of play, anyway. Once a player reaches the sidelines the restorative atmosphere suddenly improves to the point where the stricken lad is often able to rejoin the fray in a matter of seconds.
If only there was a way to get the wounded man to the sidelines and the instant relief to be found there! To be so close to the sidelines but still unable to get that last couple of feet must be pure torment.
Happily, the Bosnian goalkeeper was level-headed enough to provide succor to his foe. The goalie ran over, grabbed the Nigerian under the armpits, and pulled him bodily off the pitch, to the alarm and consternation of FIFA officials and team doctors. I’m sure the Nigerian player was grateful, however, because in a few seconds he was completely healed. I imagine that after the game he probably bought the Bosnian goalie a beer in gratitude.
Thwarted!
Yesterday morning I had my best ride to work yet. I just felt strong, and my time showed it. Yesterday evening I thought I would be tired after the energy expended in the morning, but I crushed the ride, averaging 15 miles per hour over 14.5 miles (not counting time at traffic lights). For many, that’s not so spectacular. For me, it’s huge. 29 quality miles yesterday.
As I was pulling up to the house last night, my bike suddenly started making a funny noise. I thought one of my panniers was rubbing on the wheel; I thought little of it.
This morning I was ready to continue my streak. I had no illusions that I’d be able to repeat my performance of the day before, but the morning air was crisp, my legs didn’t feel heavy at all, and even if it wasn’t going to be a fast ride, it was going to be a pleasant one.
Except it turns out that funny noise was a flat tire. I drove to work today.
I’ve been really fortunate in my cycling career, I guess; back in San Diego I would ride to work a couple of times a week, and I’ve never had a flat before.
Brief tangent: Unpacking all the stuff I’d put in storage from my time in San Diego, I came across a pair of bike shorts. Back in the day, I realized I was overweight and getting worse, so I resolved to ride to work a couple of times a week — 17 miles and three significant hills. I bought the shorts mainly for the padding in significant places. The thought of putting on those shorts right now is laughable. My target weight is what I weighed the last time I started biking to lose weight. Sigh.
Now I just want to ride my bike. I’ve got the newbie enthusiasm and I’m not ashamed of it. In fact I intend to milk it for all it’s worth. First, however, I have to learn how to change a tube.
Are You Sure You Have the Right Event?
This is the logo for the FIFA World cup:

One of the F’s in FIFA stands for ‘football’, the more-descriptive name for the most popular sport in the world. It is the least hand-oriented sport I can think of.
Yet… look again at that logo. It’s made of hands! It looks like multiple people grabbing for the ball — something that never, ever, would happen in that game. It’s like using swim fins in a hockey logo. I’m sure the folks at FIFA had thousands of designs to choose from; surely one of them actually represented the game being played.
Day of the Hoobajoob: Prelude
Today I opened the box of Moviprep and carefully read the instructions. It sounds benign enough – something you would use to prepare for a movie, right? And that’s exactly what it is.
There are only two problems: Where the movie will be shot, and what is required to prepare for it. Moviprep requires a prescription, and unless there’s something pretty crazy going on in there, it’s not likely to be playing at a theater near you.
Yep, you guessed it. I turned fifty a couple of months back, an age at which men must become more vigilant, which includes letting strangers stick fiber optics where there is no ambient light.
My doctor said, “I’d like to tell you it’s not so bad, but… It’s pretty unpleasant.” Not as unpleasant as discovering cancer too late, though, so here I go.
Numbers, English, and Lazy Programmers
While doing research for an episode you will likely see shortly, I went to YouTube and did a search. This is what I got back:

Note that it says I got “About 1 results”. Obviously, “results” is incorrect. There’s only one result! And About? What’s the standard deviation on that result?
This from a company that was bought by Google for a billion dollars or so. You’d think they’d have someone who could spend five frickin’ minutes to put in
if (results.count == 1) {…“
and to only include the word “About” when the code rounds off the number of results (which it does for very large result sets). Neither of those things should be difficult, and I’d be embarrassed if my program were so sloppy. Yet there it is on one of YouTube’s most oft-loaded pages.
MapMyRide.com made a bit more of an effort, but didn’t test all the cases:

11st place! The rule that works for 1 and 21 doesn’t work for 11. Crazy English and the words we have for the low teens. I sent off a friendly report to MayMyRide letting them know; the bug was in a new feature, and MMR doesn’t have the resources that YouTube does. We’ll see if they fix it before I fall to 13rd place.
I am BOMB
Yesterday as I was riding to work I was making pretty decent time when I heard “on your left”, which is what courteous bicyclists say when they are passing you. I get passed pretty often.
“Good morning,” the guy said as he breezed on past. “Mornin’!” I wheezed back to the receding member of the Spandex Crowd. Just ahead was another cyclist, one I was actually overtaking, and the man who had just passed me did not wish that dude a good morning. Another data point in my current study of human nature.
You see, when I ride for an hour in the morning and again in the evening, it gives me plenty of time to ponder the loosely-knit fellowship called ‘cyclists’. Under that umbrella there are several varieties of cyclist, including but by no means limited to Asian grandfathers riding purple little girls’ bicycles complete with white wicker baskets (that is a very small group), heavily-laden commuters (I’m in that group), hispanic men on fat-tired cruisers, and at the top of the heap, there is the Spandex Crowd.
Soon after I started my bike commuting regimen, the local Bike to Work Day went off, and I saw cyclists of every description. I watched cyclists interact with each other (myself included – I am inscrutable even to myself), and I observed a few patterns.
For instance, there’s The Nod. It’s a little upward head movement passed between cyclists who make eye contact. I didn’t get nods from the Spandex Crowd. Not because they’re snobs, not at all, but because they’re riding. Their heads are down and they’re locked to their pedals and they’re not at some high-school mixer where you say hi to every stranger who comes close. Heck, the design of the bicycles they ride makes socializing more awkward.
There was one group, however, a subclass of commuter, with whom I exchanged many nods. I have dubbed them Bearded Overweight Men on Bikes, or BOMB. In the days following Bike to Work Day, the BOMB population slowly dwindled, until I rarely see another BOMB anymore. For a while I was a BOMB, now I might be the BOMB.
So how did it come to pass that a member of the Spandex Crowd wished me a good morning? I think it’s because he honestly wanted me to have a good morning. I think he also remembered passing me a few days before, and a few days before that. I think he said ‘good morning’ but also said, ‘Welcome to the brotherhood, Bearded Overweight Man on a Bike. I hope to pass you many more times in the future.”
I’m looking forward to it as well.
E-mail Privacy
Apparently, it is simply not possible for an American company to offer secure email. Sooner or later the United States Government is going to come knocking, and they’re not above judicial film-flams to get what they want.
Google doesn’t want your email encrypted, either. They want to read it and sell what you’ve written to advertisers.
But there’s nothing stopping you from encrypting your own email, except the inconvenience of getting your communication channels set up with your friends. Unfortunately, that’s still a PITA, especially for friends who cling to browser-based email reading.
My perfect world: every email is encrypted. There is no reliance on a central authority for the encryption. No email company or certificate authority that can be hacked or subpoenaed.
My perfect world may be a tiny bit closer to reality: Apple has announced that the next version of the Mac OS will have streamlined email encryption. S/MIME is already supported in Apple’s Mail app, but it’s not nearly as simple as it should be. If I were in charge, setting up your computer would automatically generate your own identity certificate, and every email you send would have it attached. With a single click anyone who got that email would set up a secure, encrypted email connection with you. And that would be that.
We’ll see how close Apple comes. But it gladdened my crusty old heart to see a big company at least talking about the issue.
The Cost of Driving
One of the justifications for my new bike was that in the long run it would save us money. But how much? How long will it take to recoup the large wad of cash I just jettisoned at the neighborhood bike store?
I spent a few minutes last weekend poking around on the Internet for help calculating the cost per mile I drive in the Miata. I found some sites that were helpful, and some that were disingenuous at best. They all come to a false conclusion after they do the math.
Let’s start with this site: The True Cost of Driving, which undertakes to find a per-mile cost that considers everything, including the economic impact of paving over stuff to accommodate cars. While I applaud the effort, let’s face it the numbers they use vary tremendously by where you live and are worthless without showing the math. Societal cost is really foggy. Important, but foggy. Apparently every mile I drive costs us all about a nickel for cleaning up accidents. And am I to take it seriously when it says that every mile I drive costs pedestrians and cyclists 1.4¢ for “barrier effects”?
Not mentioned is the value of the time saved by driving compared to alternatives. That’s why we drive. This assumes my time has value; arguable considering the amount of time I spent on this little research project. But if the time lost by inconvenienced pedestrians has value, my time should have value as well, and should be factored as a reduction in the cost per mile.
Almost all the calculators I found include the fixed costs of owning a vehicle in the cost-per-mile calculation. Makes sense; the cost of getting my car insured should be amortized over the miles I drive.
So then we have a cost per mile that includes those fixed costs. I can’t find the calculator page for the more level-headed AAA cost-per-mile estimator, but here it says the average is around $.60 per mile.
But here’s the problem: those same people who guided you through the calculation will turn around and tell you that you will save sixty cents for every mile you don’t drive. That is false. Your fixed costs are, well, fixed. It costs the same to register your car no matter how many miles you drive. Drive fewer miles, and your cost per mile goes up.
So, while recognizing that driving less will benefit society as well by a difficult-to-measure amount, how much actual pocket money do I save for each mile I choose a bike over a car? (Note: all the bicycle folks out there apparently consider each mile on a bicycle to be absolutely free, even the advocates who have $10,000 bikes or who have had insurance-funded knee surgery.)
I found myself going back to the drawing board. I know that with my older, smaller car, my out-of-pocket cost per mile will be lower than average, but maintenance is the big variable. I’ve saved a few hundred bucks doing some repairs myself, so if you don’t count the intangible value of my time, maintenance costs are under control — for now. There’s a clutch out there with my name on it.
I had a long, rather tedious paragraph here showing my math, but to summarize: fuel, mile-based depreciation, tires, maintenance, and “other” comes out to about 25¢ per mile in savings that go straight to my bank account for each mile I don’t drive. That’s a little over six bucks per commute.
The answer to “how long will it take to recoup the investment?”: a long time.
If driving less extends the life of my car by a year, however, then all these calculations are moot; I end up saving a ton of money. The cost per mile of my next car will be MUCH higher — at least for the first few years. Delaying that uptick in expenses is also money in the bank, but harder to quantify without a time machine.
Remember, 25¢ per mile does not include the cost of repairing (or adapting to) the harm I do to our planet for each mile I drive. I may well save the world as a whole more money than I save for myself.
Finally, if all this riding extends the life of my heart for a year (a reasonably likely outcome, actually), the savings go off the chart. But that’s a different sort of calculation.
New Diet Plan
Got to work yesterday and I was starving. So by lunchtime I had eaten all the food I’d brought for the day. Still hungry. So, I went out with friends and ate a second lunch.
Weighed myself this morning and I’d lost half a pound. The conclusion is pretty obvious: If two lunches can take that much off my waistline, imagine what three can do!
So, the Bike
I’m a hippie at heart, and not ashamed to be one. I’m also a cheap bastard. People seem surprised sometimes that a fiscal conservative can be a social liberal, but to me that spells ‘rational’.
I formulated a simple plan: get a decent-but-not-too-expensive bike, emphasizing durability over performance. After all, a heavier bike means more calories burned. Ride that bike to the train station each day, where a company-sponsored shuttle will scoop me up and take me through the worst of the traffic. A few calories burned, about 10kg of greenhouse gas avoided (minus the 100+g I emit while pedaling), and lower blood pressure when I sit down at my desk. Before long the bike pays for itself.
Well, unless you get big eyes at the awesome family-owned bike store and spend far more than you planned. I bought a really nice bicycle that cost more than I have spent on all other bicycles over my entire life. But dang, it’s a treat to ride.
For the curious, I got a Giant Escape 0, and paid thirty of the smartest dollars of my life for a cushier seat. After all the accessories (on-bike pump, home pump with gauge, helmet, water bottle cage, water bottle, big-ass lock with extra cable, rack, bags that attach to the rack, and I’m sure there was more) I was looking at more than $1300. It’s going to take a while to pay that off in savings.
In my defense, I could have spent a lot more. My “really nice” is another person’s eye-roller. No suspension? No disk brakes? Pf.
Greatest fear: plunking down all that lovely lucre and having my knee veto the whole plan.
I bought the thing on a Saturday, and rode it home from the store. I took a test trip Sunday to the CalTrain station and back, to get an idea how much time I should budget in the morning to get where I need to go. Monday and Tuesday I was a bicycle commuter, logging a sweet 13 miles each day.
My legs were pretty tired after four straight days in the saddle, and when I got up the next morning I recognized that I could ride, but that I probably shouldn’t. I gave myself a rest day. This is an offshoot of the “don’t be stupid” part of the plan.
On that topic, that day while driving to work I saw a kid on a bike do something stupid and get bumped by a car. He wasn’t hurt, but his front wheel didn’t work anymore.
Repeating the note to self: don’t be stupid. Left turns at large intersections are the most important times to heed that mantra.
I’ll leave my discussion of fitness apps for another day. There are a lot of apps. But if you’re into the whole social media thing, we can hook up at MapMyRide.com.
My knee has been quiet, but I try to remember to ice after each ride. I have an ice pack at work and more at home. I think the fact I forgot to ask for toe clips is actually good for my knee; the part that gets sore feels like it would be unhappy when I pulled up on the pedals. Unscientific, but if my knee is happy, I’m not changing a thing.
So now I’m three weeks in, almost 200 miles logged, butt and knee not complaining. I’ve driven to work four times, and ridden all the others. Ten more miles will go on the bike today, as I ride it over to Ye Olde Bike Shoppe for a free tune-up (and to buy some more accessories).
So far, so good.
Fun with names
Esoteric Programming Languages
Most readers of this blog are probably familiar, at least by name, with some of the more common programming languages out there. This blog is brought to you courtesy of PHP, and then there are the seminal C and FORTRAN (after all these years, still king of the number-crunchers), the infamous COBOL, well-structured PASCAL, ground-breaking SmallTalk, Sun’s heavily-marketed Java and Microsoft’s counterploy C#, and newcomers like Ruby and Javascript.
There are a lot of computer languages. While there are some pretty striking differences between the above, they all have two things in common. They all involve controlling a computer by writing lines of code, and they were all invented to be useful.
There is another category of language that is not burdened by that second attribute. Useful? Pf. Not bound by the constraints of utility, the whole ‘lines of code’ thing often ceases to apply as well. These non-utile outliers fall under the general category of “esoteric language”, sometimes shortened (but not by me) to esolang.
While I have long been peripherally aware of this category of languages, in a small email discussion recently a friend of mine mentioned the language Brainfuck (sometimes written b****fuck to avoid offending people). Another member of the discussion linked to an amusing top-ten list of odd languages. I read the article and my brain started fizzing.
A programming language that is written as a musical score? Blocks of color that simultaneously convey quantity and program flow*? A program specifically designed to be as difficult as possible to write code in?
Some might ask, “why would anyone bother with such useless languages?” I don’t have an answer to that. I could go on about Befunge and the wire-cross theorem, or about Turing Completeness, but at the end of the day, I think it’s the same answer as one might give to the question “why does one bother writing poetry, when prose is so much clearer?”
Some of the languages are just for fun. INTERCAL (Compiler Language with No Pronounceable Acronym) set out with only one goal: to not be like any other language. For instance, since all coders have long been taught to avoid the GO TO command, INTERCAL instead uses COME FROM. And every now and then you have to say PLEASE. You don’t have to be a geek (but it helps) to enjoy this article about INTERCAL and Befunge (includes a Befunge program to generate Mandelbrot sets).
One can only read about esoteric languages for so long before one must scratch the itch and find a new way to write “Hello, World!” on a screen. I became intrigued by Befunge, a language that is not written as lines of code at all, but as a grid that a pointer moves around on, steered by >,<,^, and v characters. The program appealed to me for two key reasons: the characters the program cursor encounters can mean different things depending on which direction the cursor is moving at the time, and, even better, you can have the program alter itself by changing the characters in the playfield. So, here’s my Hello, World! in Befunge:
095*0 v 0*59 <
This 'Hello World' program is written in Befunge, a
language invented expressly to be as difficult to compile
as possible.
In fact, with this code, control flow goes straight through
this block of text and uses the p in 'program' as an instruction.
+
v g0*59 < 1
> "H",^
>:0-!|
v <
> "e",^
>:1-!|
v <
> "0"+292*p > "l",^
> :6*9- :9`!|
>:2-!| > $ ^
v <
> 7"0"+273*p "o",^
>:4-!|
v <
> " ",^
>:5-!|
v <
> "W",^
>:6-!|
v <
> "r",^
>:8-!|
v <
> "d",^
>:52*-!|
v <
v<
"
>:65+- !|
"
v "error!"$ <
>:#,_ v
restore the code to the starting state:
> "2"292*p "4"273*p @
Of course, it was absolutely required that the code alter itself at least once, and occasionally have the same symbol mean different things. This program is based on a counter, and when the counter is 0, it outputs an ‘H’. When the counter is at 1, out comes an ‘e’. ‘l’ is a little more complicated; after it matches the 2, the program does a little algebra (6x-9) to come up with 3, with which it then overwrites the 2 in the code. That way, on the next loop, when the counter is 3, we get another ‘l’, and the same equation replaces the 3 with a 9, ready for the ‘l’ in ‘World’.
In the language, ! means ‘not’. At the very bottom, this code evaluates the ! as ‘not’, which causes the program to loop around and pass through “!” (with quotes), turning what had been a program instruction into the exclamation point at the end of “Hello, World!” A nice little exclamation point on my program, as well.
I have now gone back and added an error message should something go wrong, but of course you have to alter the code to make an error actually happen, things being deterministic and whatnot.
You can watch the program execute in Super Slow-Mo with this Javascript Befunge interpreter. It’s kind of fun to watch the Instruction Pointer zip around the code. Paste the above code into the top box, click ‘show’, then click ‘slow’ below. I recommend setting the time to 50ms rather than the default 500.
Wooo! Big fun! While this language is nearly useless for actually accomplishing anything, I like the way you can make your code physically resemble the problem you are solving. A coworker mentioned writing a tic-tac-toe program with Befunge, and I immediately thought of building a program that is a grid of nine segments and the program alters the paths through the grid as moves are made. It would be awesome.
If I went back to college and majored in computer science, I could get credit for writing it.
In my wanderings, there was one program that completely blew my mind. You remember Brainfuck? There are only eight commands in that language, which makes it relatively simple to write an interpreter. An interpreter is a program that reads the code and executes the instructions as it encounters them, translating them from the (allegedly) human-friendly programming language into machine-friendly instructions for that particular processor. (Compilers do all the translating at once, before the program is executed, while interpreters do it on the fly.)
So here, ladies and gentlemen, is a Brainfuck interpreter, written in another esoteric language, Piet:

(courtesy Danger Mouse — if I’m not mistaken, the inventor of Piet)
That picture right there? That’s a program, written in a Turing-complete language, that implements another Turing-complete language. (**)8-O (the sound you heard was my head exploding.)
______
* In Piet, you can write a program to calculate pi that is a circle.

