A few more notes on bike commuting (& that inflatable spa)

I had to go to a customer site out by the airport today. I wasn’t sure what the bike storage situation would be there, so I took the Max and broke the 100 percent bike commute rate I’ve been maintaining since the last week of August. I’m going to compensate by jotting down a few things that have occurred to me since my last post.

On Rain Gear

@nathanrawlins quoted C. William Pollard to me once:

“Marketing battles are fought in the mind; […] a battleground just six inches wide.”

That is also the case with the battle against moisture.

My first crack at regular bike commuting two years ago went poorly once the weather turned, partially because I didn’t understand the battle I was fighting. I thought I was fighting a battle against ever being wet, and dressed accordingly. I got super sweaty in ways you don’t want to be sweaty, with the wrong kind of clothes: Base layer stuff that clumped and bunched on the inside, and an outer layer that kept the sweat completely trapped.

This year, I thought that through a little better and I invested in some proper biking rain gear: A helmet cover, a good jacket with pit zips and a back vent, convertible biking rain paints that let me unzip the lower leg and use them as knickers, and waterproof socks. It all goes over either a merino base layer for cold days or some light synthetics on warmer days. I’ve got some waterproof shoe covers, but I’m keeping them in reserve for when it’s just constant, steady rain.

I still sweat, but I’m able to regulate my temperature better, and the wicking base layer means I don’t feel like I’m squishing down the trail by mile six. I also don’t try to have perfect coverage. There’ve been a lot of gently rainy days recently, and I generally use my pants in their knicker form unless the rain is a legit downpour. It’s way more comfortable that way.

I also finished up my bike rain outfitting by putting low-hanging flaps on the backs of my front and rear fenders. The front ones keep road gunk off my legs, the rear ones are because someone passed me and cut back in front of me going through a puddle, giving me a face full of education on why rear flaps are polite.

Anyhow, the trick is not minding that you’re wet. You just have to be wet on your terms.

The Light Question

I was sort of conflicted about how to ride with lights on the Springwater at night because people would sometimes yell at me about them. I’ve just opted for using the lowest possible setting (which is still bright enough) and angling them down so I can see the path quite well maybe 12′ in front of me. People can yell. The Springwater is a wonderful thing to have, but it is legitimately dangerous after dark if you can’t see well: Way too many people with no reflective gear walking toward the middle of the path, pushing along shopping carts or whatever, combined with a breed of sociopath bicyclist who will run flat out with no lights on an unlit trail.

Since my headlight is USB-chargeable, and because I don’t always remember to charge it, and because there are people in the world who just go around stripping bikes of accessories if you forget to take them off, I bought a set of cheap Bell LED lights that use button batteries and deliver 50 or 60 hours when blinking. I put them in a small hard case and keep them in the bottom of my pannier in case I run out of juice or someone takes a light I forgot to secure.

The Springwater vs. Through Town

Google Maps and colleagues suggested several routes through the southeast to get me to the new office. I tried a pair over the course of two mornings and learned a few things:

First, what the Springwater adds in commute distance (a bit under two miles, or 10 minutes at my average speed), it gives back in being able to just go and only stop a few times. Going through the southeast neighborhoods adds a lot of lights and a lot of stopping for construction vehicles or delivery trucks parked in the bike lane. I didn’t save much time in the end.

Second, the Springwater confers a pretty marvelous gift in the form of a relaxed ride. You have to be alert for people and other bicyclists, but it’s a route of long, straight stretches where it’s hard to miss other people coming up from a good distance away. Going through town involves the constant threat of being doored, backed into, or just getting hit by a car misjudging your speed and trying to peel out into an intersection. Other bicyclists with better adapted in-city reflexes and better tolerance for close shaves add to the occasional sense of chaos as they squeeze in between you and cars, or pass on the right.

There’s a part of me that wants to “do it right” and try to build up those reflexes and tolerances, but after a few days of trying, it isn’t nearly as persuasive as the part of me that prizes those long, quiet, slow rides back and forth to work. Am I smiling at you when you thought I’d be walking into that meeting loaded for bear? It’s because I took an hour and spun up five or six virtual instances of you between home and office, and figured some things out. Several of those instances have made excellent points I would not have considered had I been dodging a UPS driver.

So, extra 10 minutes and all, it’s the Springwater for me. I will carve out the occasional exception to meet colleagues down at the Division Street Pine State Biscuit.

The Hawthorne Bridge Is a Marketing Triumph

The Hawthorne Bridge is sold as emblematic of Portland’s laid-back bicycling culture. It’s the worst part of my ride, every single day.

I didn’t get why until I rode through town and came down onto the bridge from the east instead of pedaling up onto it from the esplanade: The people who just ride down onto it are flying off a downhill slope. The people coming up onto it are cranking up a steep ramp. Two completely different states of being are meeting on that bridge.

So there’s lots of close passing and impatient weaving in and out of pedestrians and bikes. People tell me they’ve seen bicyclists shove each other, and I was grazed once by someone who wouldn’t give me the time to get back in front of a pedestrian I’d passed. As it’s marked, I don’t think you’re even supposed to get in front of pedestrians: They’re supposed to have their own lane. You could try shouting that at the spandex rage monkeys trying to run you down, but they’re too busy winning a race against their inner demons.

The Tillikum Crossing can’t open soon enough.

My Inflatable Spa

And that brings us to the odd thing out in this survey, which is my recently purchased inflatable spa (way cheaper on sale a number of places).

People give me a look when I mention it because it sort of sounds like a heated kiddie pool.

So, it’s a spa.

You blow it up with a motorized pump, and it’s rigid enough that you can sit on the edge and it won’t flex. It comes with a pump/heater assembly, a control unit, and an inflatable cover that can be buckled down and locked when it’s not in use.

It holds 200 gallons and it can seat two adults and a 10-year-old on the bottom, which is super cushiony and comfortable, even on our concrete patio.

It can heat the water to a maximum of 104 degrees, which feels pretty good (though I could go for 106 or so, I think, no matter what the government safety people think my chances of stroke might increase to). It also has a massaging bubble action setting that creates a sense of firm (but by no means Jacuzzi-like) massage. The tradeoff with the bubbles is that the pump is just forcing the outside air through a chamber, which means the water will drop about a degree every 10 minutes or so.

I bought it after we spent a weekend at Kahneeta, where there was a spa that looked out over the mountains and I realized that I have a definite gift for lolling around in hot water. I mean, I can completely crush lolling around in hot water.

I’ve guess I’ve always known that about myself. At least, I’ve known it since eighth grade, when I took a copy of The Hitchhiker’s Guide to the Galaxy into the bathroom with me and didn’t come out for two hours, just giggling and occasionally managing the delicate operation of draining off the cool water and adding the hot water with just my pruned toes.

It takes a little maintenance in the form of alkaline/ph balance and chlorine management, but it’s completely worth it. I’m in it most nights, a bit before Ben’s bedtime so we can hang out and talk about whatever’s on his mind before I tuck him in. Yes, several virtual instances of you have probably been in there with me, arguing about something, but in quiet and relaxed voices.

I don’t know if I’d go so far as to call it life-changing, but it’s been a definite life improvement. I mean, I really, really like lolling around in a tub full of steaming hot water. Getting to go out and do that under the stars on my own back patio is pretty great. I think I might need to start saving for a permanently installed one, because I’ll have to pack this one up once it starts getting consistently under 40 at night.

Not so much after all

IMG 0782 1

I’m not going to say the whole Octopress thing was a bad idea. It was a fine idea. It was just a fine idea premised on the notion that it might be fun to manage a blog with git, and that did not prove out. The whole build process is a drag, mobile blogging wasn’t something I felt like working out, and the whole “make a new post, go to it in the filesystem, edit it, remember the thing in the YAML frontmatter to toggle its liveness if you’re not done” wasn’t cool.

I’ve got a few entries to bring back, but they were more bloggy than densely informational, so I don’t think anyone’s attached to them but me. I mostly worry about people being able to find the entry about converting Mail notes to Evernote notes, because four years later, people keep finding it and appreciating it.

IMG 0785 1

Also the org-mode one one, because it really seems to make people happy.

And I’ve been thinking about pie diplomacy a lot lately.

Hey, let’s make it about something more than how the blog is run:

  • contemplative photography
  • ukulele

I did contemplative photography on my last visit to Las Vegas. I have never played a ukulele.

The contemplative photography thing sounds enticing, because I’m working outside my home and have four walks a day where building in an extra ten minutes to get to the Max stop could yield some nice results.

The ukulele thing sounds enticing for no reason I’ve managed to hold down and inspect.

IMG 0739

Shape of the problem, better colored ls output on Macs

BBEdit tells me it found 439 occurrences of “img src” in 317 files in the Markdown archives for dot unplanned, so this is starting to feel kind of doable. 122 of those occurrences are flickr images, only 27 use the ancient Movable Type 3 “click the thumbnail to pop up a window with the full image inside” markup, and 142 are consistently organized WordPress uploads I can manage with a little find-foo and a BBEdit text factory.

Hey … here are some things I learned to do, figured out or got around to:

Better color ls in Mac:

You can do ls -G in a Mac right now, without MacPorts or Homebrew installed, and you’ll get BSD-style colored output, which is to say “not as good as GNU-style colored output.” Directories, symlinks, and executables will be colored. That’s o.k. But I remembered back in Linux times where I could get things colored down to the file type. That’s what I prefer. I did some things one might reasonably do expecting to get that GNU-style output back on my Mac, missing a few key steps and badly aggravating myself, then stumbled across a missing piece last week while trying to figure out better bash prompts. So here’s what to do:

  • Pick one of MacPorts or Homebrew. I do Homebrew, so the steps after this one should be read as vague guidance by MacPortists.
  • Install the GNU coreutils package: brew install coreutils
  • Download this gist and save it to ~/.dir_colors
  • Make sure your new ~/.dir_colors file has a line in it that starts with “TERM” and then matches the output of the command echo $TERM
  • Get this into your ~/.profile or ~/.bash_profile or whatever it is you do*:
  • source your ~/.profile or ~/.bash_profile
  • Try it out in a directory full of different kinds of things:

Better ls colors

Is it awesome for you? Hope so!

More informative ls

I also learned about a few more nice ls options while I was mucking around, and now I include these in my ls alias:

  • -F (classify): Which marks symlinks and directories with a @ and / respectively. Yes, they are also colored, but I like seeing the trailing / after a directory.
  • --group-directories-first, which does what it says on the tin.
  • -h, for “human readable output” when displaying file sizes. I finally, after years of just typing it out, realized I never use ls without, so I canonicalized it. I eagerly await the first horrific misunderstanding that is going to cause me on some system that is not mine some day.

*Do I sort of hate the hall of mirrors that is .bashrc, .bash_profile, and .profile? Boy, I sure do. Especially in the age of things like rbenv/rvm and whatever else quietly diddles what they think your shell’s init file oughta be to make whatever blood magic they’re up to work correctly. I thought “just switch to zsh” would fix that, but then you start getting into bizarre “oh, that doesn’t work with zsh during install” situations that make you realize you’re losing all the time you thought you’d get back with obscure little shell workflow optimizations trying to figure out why suddenly which doesn’t work anymore.

tentacled gardener

Yesterday at work I demoed some things I’ve been doing to make dealing with a Jekyll/Markdown-based workflow easier. It was all about knowing how to use existing stuff better, not inventing new stuff. Two things are thanks to BBEdit being so goddamn awesome, and took just a little time to discover then apply to our own environment:

  1. Custom HTML preview templates (so you can see your Markdown looking like rendered HTML in the same templates in use on your live site)
  2. Custom Markdown interpreters, so if you’ve strayed from vanilla Gruber Markdown, you can preview things like table markup rendered correctly.

Those two things make day-to-day Markdown authoring in Jekyll 90 percent livable.

Jekyll also has a preview server and filesystem watcher that’s supposed to give you the ability to run a little Webrick instance and have your site automatically regenerate when changes are made. That would address a pain point we have when we’re writing docs or trying to deal with a bit of Liquid and need to see how things will look for real rather than in Markdown and code. The problem is that our docs site is pretty big and there’s a lot for the filesystem watcher to keep track of, and it takes forever (o.k., 3 minutes) to build the site. So I tested Jekyll’s preview server and found myself making a change to a file and waiting as long for Jekyll to redraw that one page as I would have anyhow just to preview the whole site.

Last week, with the release of Puppet 3.1, I had to work with the Liquid in the templates to selectively show or hide links to the newly incorporated YARD developer documentation we’re maintaining. Being new to writing Liquid, I was doing a lot of stumbling around and experimenting, and it was driving me nuts. The immediate solution to the problem was actually to just make the minimum viable bit of Ruby needed to parse and render a here doc with Liquid markup in it. That would be something like this:

Both BBEdit and Textmate will run code with ⌘r, so it just takes a second to paste that into a window and run it and see what Liquid will make of it.

So that got me over the hump of not wanting to wait to regenerate our site just to make sure I was handling a few little conditionals correctly, but there are a other places where practically live rendering of Liquid would come in handy. For instance, our syntax highlighting doesn’t preview well.

So as I was fiddling with Octopress last week, I noticed one of its Rake tasks was isolate, which allows you to specify a specific file (or a fragment of its name). Rake moves all the files in the _posts directory to a stash directory except for the named file, then the little preview server spins up and the file is watched for changes. It makes previewing changes exactly as they’d be rendered almost instantaneous.

The Octopress solution wasn’t exactly right for us because it assumes a flat collection of files: No directories. And it also wasn’t exactly right for us because I think we tend to work on groups of files that may or may not share names but will probably be in a common directory.

So I took Octopress’s isolate and turned it into preview: Instead of specifying a file, you specify a directory, e.g. rake preview[hiera], and then let the little Webrick/fswatcher bits of Jekyll run. While I was in there, I added a here doc that provides an index of files available for preview/edit at the docroot of the preview server (so you don’t need to guess URLs to find what’s available). Even with a dozen or so files to watch and re-render, it only takes Jekyll about a second to catch on that something has changed and spit out an updated version. I modified Octopress’s isolate workflow a little further by automatically restoring the stashed files when the server is shut down, so there’s no need to run isolate‘s companion integrate task. It also invokes the Webrick preview automatically. So what Octopress does in three commands we can do in one.

An optional extra touch for the whole thing involves the LiveReload browser plugin, which makes it possible to monitor a given URL for changes to the associated file and automatically reload it. So I can stick Safari in my second monitor, make edits in BBEdit, and each time I save the file Jekyll re-renders it and LiveReload updates Safari without me having to reach over and refresh. That’s handy.

But really, learning about Octopress’s isolate task gave me a small nudge in the direction of just pulling the trigger on using Octopress for real, bringing me to a small list of things I’ve got to do to make the 1,865 (1,866 once this post is live) posts work o.k.:

  1. Scrubbing as much block-level HTML as makes sense. Mostly that means dropping naked paragraph tags because stuff just goes wrong with them in Markdown parsers. Hey … it’s version controlled, so I can even pass that stuff through kramdown’s html-to-Markdown function and see what I get.
  2. Scrubbing a bunch of poorly encoded characters that made their way through the several generations of software and operating systems involved with writing for the site. Fortunately, there are some fairly consistent ones, and BBEdit’s project search/replace will work fine for this.
  3. Getting the 301s proper. I wrote just enough Ruby to reassure me that the filenames Jekyll’s WordPress extractor created matched the SEF URLs WordPress was using, so it looks like I’ll be able to get away with a single 301 built on a regexp instead of some greater number of individual 301s.
  4. Straightening out syntax highlighting: I’ve got three or four different kinds of code markup on the blog, and since it isn’t even really a “code blog,” that’s sort of sad. I’ve got gists, <code> and <pre>, plus one or two false starts with WordPress plugins. Octopress has some plugins to support gists, which I’ve come to favor, but I think the more future-thinking approach is to convert non-gist code blocks to Jekyll/Liquid’s native method or CodeRay and leave existing gists embedded with JS alone.
  5. Images.

Wow. Images. What a mess. The WordPress part of the blog legacy won’t be terrible to sort out because they’re in consistent places, so no big deal to move them somewhere appropriate and either write a generic redirect or do a BBEdit mass replace. The Movable Type part of the blog’s heritage is sort of concerning, because I think I picked some of MT’s busier image display options and there’ll be some markup to find, parse, consider and rework.

Why’s it even matter? Mostly just the reasons for the ongoing trickle of traffic the site sees:

  1. org-mode In Your Pocket Is a GNU-Shaped Devil
  2. Put the current Chrome URL in your Safari reading list
  3. Import “Notes” Into Evernote
  4. Scripting iWork Numbers ’09 With Appscript
  5. Back to BBEdit with a Unix Accent
  6. Dumping Your Safari History With Ruby (Apple’s Curious Epoch)
  7. Evernote and Repeatable Checklists

Those are the posts out of the top 10 for the past year that aren’t either the front page or an index page of some kind. Out of the top 20 or more, a small proportion of “personal” entries creep in. So, I look at the list and think that I’m responsible for information people are at least hoping will be useful. If I scope in on the date, the list is made up of pretty much the same items. There isn’t a ton of traffic coming through, but it’s not nothing. So I’d like the information to be accessible and halfway pleasant to look at; and I’d like it to continue to be discoverable. Making that effort feels like it’s just part of the social contract. Especially since I feel privileged to do the sort of work I do, and that having that privilege is a direct result of other information gardeners keeping up their own plots.

Rummaging Through the Basement

There was never going to be a good way to do this, so I just bit the bullet and ran the WordPress importer on 1,038 entries from the old Movable Type-based Puddingtime! blog and removed the 177 that were not mine from the resulting import. Something about the WordPress Markdown plugin I’m using is really screwy, so there are some glitches in the way some posts render, but the words came over o.k. So now I’ve got all my blog entries going back to late 2002 on one site.

I’m pretty fuzzy on what my web presence was like prior to blogging on Movable Type:

There was a greymatter blog that I had a few entries in, and for a while I was keeping a thing sort of like a blog in phpwiki. All that stuff is lost.

Before that? I guess before that, there wasn’t a I had some web space at my ISP in Charlottesville and I called the site I had there “pudding bowl.” There’s writing original to that site dating back to 1999, plus some I saved from my GeoCities site (which dated back to 1995 or ’96).

Prior to Geocities, I think I had a Tripod site, but nothing survives from that.

Main point, I guess, is that I have a handle on almost all of my web presence from 1995-6 up through today, minus a brief gap when I was fiddling with PHPWiki.

One thing that entertains me is the tools page from the pudding bowl, which notes the use of Emacs in conjunction with a static site generator called genpage. So the other day? When I mentioned “the deathless novelty of static site generators?” That’s what I was thinking about.

Once I had all the old entries into the WordPress database, I ran the Jekyll importer on the complete puddingbowl/puddingtime corpus, and it was kind of cool to see all 1,863 posts sitting there in plain text. I ran a quick, sloppy script against them to see how much writing I did in my blog each year:

YearWords WrittenPosts Written

2007 was the year of Peak Blog. The counts for earlier years are thrown off a little by the presence of automated posts that were rounding up delicious bookmarks and such, and for other years by a posting style I adopted that involved just one entry with several subjects per day.

Update: Fascinating Jekyll fact: The site build time (and this is without me doing anything to trigger syntax highlighting in the markup):

rake generate 242.75s user 22.06s system 96% cpu 4:35.03 total

Remember how everyone wanted to get rid of Movable Type and move to WordPress because the site build times under MT were so agonizingly long and it was sooo much nicer to go to a database-driven site to wipe out build times? Right.

Some Thoughts on Biking and Grant Petersen’s Just Ride

One thing that really excited me about working outside the house again was the opportunity to bike to work.

We live really close to the Springwater Trail, and the Puppet Labs offices aren’t too far away from the west esplanade, so I don’t have to worry about dealing with a lot of traffic: There’s a stretch of street riding going through Sellwood, but there’s very little traffic through there. Once off the esplanade on the other end of the trip, there’s another stretch of about a mile where I have to go down Naito Parkway and take a left turn to get into the Pearl District, but that’s not so bad either: When the cars get on my nerves, I can just dismount at 9th and Naito and walk my bike across the street.

When Al & I lived in Charlottesville, we went without a car for a while and ended up biking almost everywhere. I had a cheap hybrid that I kept until just a few years ago, and I spent a period using GIMP layers to make an overlaid biking map of routes I discovered in C-ville, which wasn’t very bike friendly at the time. Once we moved to Portland, I didn’t bike as much, but there was a period where I used the bike to get Ben back and forth from daycare (four miles round trip) each day, and for a while during my time at PSU I was biking frequently.

So, the shift to bike commuting was a pretty big change: It’s 12 miles each way from my front door to the office, and I started during the winter. I’ve been taking it pretty easy, and it took just a few trips back and forth to start making adjustments.

Gretchin loaned me a copy of Grant Petersen’s Just Ride a few weeks ago, and I’ll spend some of this entry referring to it as I write some notes about my first few experiences as a bike commuter. In the spirit of being wrong in public, I’m expecting that Future Me is going to disagree with Present Me about a few things.

My main goal with this book is to point out what I see as bike racing’s bad influence on bicycles, equipment, and attitudes, and then undo it.

— Grant Petersen, from the introduction to Just Ride

Petersen coins the term “unracing” to describe the sort of bicycling he’s advocating, arguing that bicycling has been made overcomplex by racing enthusiasts and a bicycling industry that pushes needlessly optimized equipment onto people who should be left to more casual riding. I don’t know much about bike racing culture, so I decided to take his word for it and weigh his advice against what I’m for (bicycling being safe, relaxing, enjoyable and optimized around comfort, not speed) rather than deciding I’d found a champion to help slay a dragon I can certainly imagine but am not sure I’ve experienced.

So, on my first few commutes I wasn’t sure what to expect in terms of how I’d feel or what sort of gear I might need. I felt a little strange being out on a bike for a protracted period, and I hadn’t spent a lot of time around other bicyclists, so I wasn’t sure what to expect from them.

For my very first ride to work, I got my bike tuned up, packed a clean shirt in my bag, and rode to work. It wasn’t the surest riding in the world: My mirror was loose and kept sliding out of adjustment. The stock plastic pedals on my bike were fine for flat stretches, but my feet would slip off of them on hills if I messed up with my shifting or if it was a little wet. Hills were pretty tiring because I couldn’t find a balance between exerting with my legs (high gears) or exerting with my lungs (low gears).

Still, the first ride in to work wasn’t bad: The hills were pointed down and I’d been careful to plot my route, so there weren’t any surprises for me. It was a daytime ride, so I could see people coming and going well before they were on me. The worst part probably involved crossing the Hawthorne Bridge, because I was really tired by the time I got there. The short push up the ramp and onto the bridge had me panting, then I had to deal with the other bicyclists, getting around pedestrians, and not getting in the way of people who were moving a lot more quickly as I did so.

The ride back that night was pretty bad because I was sore and tired and it was dark, and I had a few hills to climb. On the mixed paths around OMSI, in particular, I had my first run-in with some bicyclists who were a little alarming. There are a lot of narrow spots and blind corners, and I wasn’t very familiar with what was coming up next. Even with a decent light it was hard to make out much. People around me were moving pretty quickly, and some people made it a point to pass me going around some of those tight, narrow corners, which struck me as loony. It just didn’t seem like a place to be cranking past other bicyclists, especially since you get the occasional pedestrian through there. On another ride, a mobile soup kitchen was parked in that area, and it was just nerve wracking watching other riders buzzing past tired street people just trying to balance their food and find somewhere to sit.

Petersen talks about the etiquette of bicyclists blowing past pedestrians, and I was glad to read a book that agreed with my suspicions: It just seems brusque and rude. At the same time, he opens his chapter on that sort of behavior by noting that racers avoid mixed-use paths, and I’m not sure what to make of that: I’m pretty sure I’ve seen racing-influenced behavior on the Springwater (though not as much during commute times as on weekends, when an occasional pack of riders shows up moving pretty quickly). Maybe it’s the sort of thing those people only try once.

Either way, I’ve come to appreciate riders who pass with a friendly “good morning” or a light *ping* of the bell instead of a barked “on your left!” Especially when they make it a point to look over the shoulder before moving back into a lane, instead of slotting back in as tightly as possible. I try to do the same. I like it when other bicyclists are friendly with other people, the same way I like it when people smile at each other on the sidewalk.


Petersen frames a lot of his book around the idea that much of the bicycling gear being pushed on non-racers is absurdly over-optimized for the task of casual bike riding.

He advocates wearing comfortable street clothes instead of stretchy racing gear and special underwear. Since it’s winter right now, I’ve diverged from that literal advice a little: I know I’m going to be working up a sweat on my 12-mile ride, and I know I’m going to shower once I make it to the office, so I’ve taken to wearing some cold-weather running gear I bought a few winters ago (an UnderArmor Warm top and cold-weather running tights) under a rain jacket and some cargo shorts. That way, I get a warm base layer that dries out before I bike home, or just packs down a bit lighter than a whole second outfit would if I decide to ride home in my street clothes.

In warmer weather, regular clothing and boxer briefs will be fine for the miles I put on in a day’s commuting. I’m looking forward to May, when I won’t have to wear sweaty rain gear, and even more to being able to just wear shorts and Keens to work. A few years in the army gave me a grounding in day-to-day comfort while exerting myself: It’s not really about having special stuff, but knowing how to wear what you’ve got, paying attention to small discomforts so you can learn which ones will blossom into big ones, staying dry, and — if that’s not possible — at least staying warm.

Petersen also advocates against cleats and click-in pedals, somewhat in favor of toe clips and straps (at least for people on fixies). I briefly considered buying click-in pedals, but once I considered the expense of the pedals themselves and the shoes to wear with them, it just seemed like overkill. My big concern was gaining a little efficiency and a lot more stability. It’s hard to judge whether adding clips and straps particularly improved my efficiency because I’m still in a period of steady improvement in terms of muscular endurance and wind. I took five minutes off my ride each way the first day I had my clips and straps installed, but it was also a little warmer that day and I was coming off a break of several days. One thing I do know has improved has been how well my feet stay on the pedals in rainy weather, especially on hills where they sometimes slip off when I push down hard. Now they don’t, which has made my progress up hills feel more smooth, and which has had an extra benefit of not causing as many accidental shifts when I slip off a pedal and adjust my grip. I don’t keep the straps tightened down much, either.

Besides improvising some cold weather gear and adding toe clips and straps, I’ve also added:

  • fenders

  • a rack

  • panniers

  • a light I can charge with a USB cable

  • a flat repair kit with CO2 to fill the tire

  • puncture resistant tires and tubes

Petersen would tell me to get a short air pump instead of the CO2 cartridges, but I’m not sure what to make of that advice. The last time I had a bicycle pump meant to be carried on the bike, it wasn’t very good and took forever to fill a tire. He maintains that such pumps are better, now.


I’ve been pretty conservative about the conditions I’ll ride in. I check the weather forecast not only for temperatures (I don’t care to ride if it’s not going to be above freezing by around 7 a.m.) but predicted wind speeds. Portland winters are such that “coast days” can be wet but relatively calm while “gorge days” can be bitter and windy. I avoid riding on days where it’s looking like there will be gusts of 15 mph or more. It’s just not very fun. I’d rather take the Max and read a book on those days. And that’s something pretty cool about my overall commute situation: I haven’t taken a car to work a single day I’ve worked at Puppet Labs, so even on days I decide not to bike, I feel like I’m still ahead. Either way, Max day or bike day, I walk into the office either having biked 12 miles or walked a mile from home to station to station to office, and I feel pretty good.

When I bike, I stick to bike paths and bike lanes as much as I can. According to the route information provided by Google Maps, that decision costs me about ten minutes each way. It also drastically reduces the number of intersections I have to pass through, and reduces the number of potential encounters with motorists.

A friend in my neighborhood who’s also a biking enthusiast told me he didn’t think that sticking to bike trails (or even having bike lanes) was a good policy because, he argued, bicyclists need to assert their equal status with drivers as “real traffic,” and that motorists need to learn that bicyclists are a fact of life they’ll have to deal with sometimes.

I see his point, and I agree with much of it in principle, but I do not care to take routes where there’s a lot of opportunity to interact with motorists. The last stretch of my ride, down Naito, involves getting across a lane and into a turn lane, and just that part of my trip has exposed me to some genuine idiocy and one near miss from a driver trying to turn right on red right in front of me as I took the protected left.

When I take the Springwater and stay off the streets, I lose a little time, but it’s time spent on a safer, more quiet ride where I can relax a little. I’m being most of the change I want to see when I get on a bike and ride it to work instead of driving a car, and that’s good enough for now. Having thought about it a bit more since I started typing, I’m also not sure the change I want to see is completely mixed bicycle and automotive traffic. I think bicycle lanes should be the norm, even if they’re just gentle reminder dotted lines on streets too narrow to accommodate both cars and bikes; and I think a substantial number of streets should be either closed or made inhospitable to automotive traffic in some meaningful way. I don’t know how you enforce that kind of thing in a society built around the idea that cars are a given, but one of my Christmas gifts this year was a membership in the Bicycle Transportation Alliance, so I’m happy to let them reason that out on my behalf for now.

Them and Me

I’ve tried really hard to adjust my language as I write this, as part of a larger program to adjust my thinking. The language I’ve worked hardest on is the language of describing motorists and their cars. A few times I slipped and typed that I wanted to “avoid interactions with cars,” but I’ve tried to look back and correct that to “avoid interactions with motorists.” It’s still imperfect, but it removes a ton of metal and glass from between me and those people.

One of the things that makes car culture toxic is its depersonalization. It’s always strange and stomach turning to look in the rear view mirror and see someone freaking out — pounding the steering wheel, gesticulating, shouting at the air — because I didn’t take that left when they thought I should have. I remember once in Charlottesville when I took a right and the woman waiting to pull out from the street I turned onto leaned out her window and screamed “FUCK YOU!” through my open window. Why? No idea. It’s just the kind of thing being in a car makes permissible. There’s my run-in with an apple that was thrown at me by somebody who didn’t stop to think how badly they were going to hurt me. They were in a car, I was on a bike, that made it o.k. I went to the emergency room, they might have yelled “oh shit!” and laughed when I went down, or they might have just kept driving without comment.

Even with those examples, it’s hard to credit the alienation, paranoia, and casual hostility bred into us by the hyper-individualism of car culture until you read a story about one motorist shooting another in the face through a partially rolled down window because of a confrontation over one cutting the other off.

I’ve had two good scares from motorists in the past month, and it has been very hard to pause inside to let that fear and anger drain out of me. As a matter of simple physics, there’s little a bicyclist can do or say that will be as bad as what a motorist can do by not paying attention. But it’s not all about physics. It’s about what we want.

One thing I want is to not live in the headspace car culture would have me live in, and to not look at other people the way car culture encourages me to look at them. Car culture is part of a broader consumer culture that increases atomization and fine distinctions, designing market identities then selling our selves back to us with the sense that we’re not fully ourselves unless we buy the accompanying accessory pack.

When I read the language of other bicyclists, it’s a little dismaying because it’s also loaded with alienation and atomization. “They” do this to us, or “a car” did that to me. On one level, that kind of talk is a little off because I know few people who are full-time bicyclists. The one person I know who doesn’t even own a car drives a bus for his day job. So, most of us have taken a turn behind the wheel at some point, or continue to do so during the week for whatever reason. Many of us have had a lapse in attention that probably frightened someone else. Some of us have even had such a lapse and realized it.

When you talk about people in us/them and bike/car dualities, you lose your ability to think of them as fellow people, and their concerns and cares matter less to you. Zero-sum language and thinking become easier because they shouldn’t even want what they want. You lose touch with your own fallibility and imperfection, because you contemplate the fallibility and imperfections of those others — “the cars,” “them,” — through the lens of their otherness. So by the time you meet those people, or talk about how to get them to agree to things you want for yourself, they can hear and see your contempt for them, and they’ll take pleasure in thwarting you.

Odds and Ends

All that is most of my biking experience right now. A few more things worth tossing in to complete the picture:

  • Puppet Labs has a room where we can hang our bikes (and sweaty riding gear). It’s really nice to know I don’t have to worry about my bike during the day, or finding somewhere to put my riding clothes to dry.

  • We’ve also got a shower — just one — but I come in relatively early and nobody else is ever in there. Another nice thing to have that beats a quick pit-scrubbing and change of clothes in the employee bathroom.

  • We also get a monthly bike commuter allowance. It’s not a lot of money, but it will certainly cover six-month tuneups.

  • My bike is a four-year-old Trek 7000 (a hybrid). It’s not bad, but I’d like to think about replacing it later this year for something a little more suited to my ride. I used to think twist-style indexed shifters were great, but I’ve had enough accidental shifts and partial shifts with this set to not like them so much. I’m not sure how much sense it makes to keep the frame and just try to change the handlebars and shifters, or if that’s even possible, but I’m going to defer thinking about that for a while.

  • I’m really torn about keeping track of my rides. I’d like to measure the miles I travel, and it’s fun to see where I’ve been on a map, but I have a love/hate relationship with pace and speed information. I’ve got an app for my iPhone that tracks all that stuff, but I’m considering a cheap bicycle computer that’ll just keep a running mileage tally and maybe tell me my current speed. I’ve just definitely got a problem with trying to go fast and shave time and all that, and I think it might be nice to spend my rides thinking about other things.

Just Ride

About Just Ride: I considered doing a long review of just the book, but don’t think I have that in me. Here’s the pocket review:

It’s an enjoyable book that can be read in a short sitting. Most of the advice seems sound and oriented toward ameliorating the status anxiety casual bicyclists might feel when confronted by people kitted out in expensive racing gear. Besides talking about gear, Petersen talks about proper technique, bike fitting, and nutrition, all of it toward the goal of deflating the most extravagant behavior and claims around bicycling.

One thing that makes it seem a little less urgent to me, I suppose, is that most of the bike shops I’ve dealt with have been staffed or run by people who weren’t interested in pushing racing stuff on me. The worst shop I’ve ever been in for that was in Charlottesville, at a Performance Bike where the condescension and snobbery was hard to swallow. In Portland, I’ve always felt like the advice I got at the shops was practical and utilitarian. That’s not to say people haven’t tried to upsell me, but never on the basis of “performance” and always on the basis of simple quality and durability.

Still, I appreciate Petersen’s angle. A few years ago, when Electra was getting attention with the Townie series and Trek was launching the Lime, I appreciated the stated intent of democratizing riding, but thought it was a little weird that democracy needed to arrive in the form of more expensive bicycles with condescending marketing campaigns (Trek). When I talked to bicycle shop employees, I could sense some mixed feelings about the casual revival bikes (some, perhaps, from snobbery; some from discomfort with the marketing push), and picked up a distinctly gendered vibe to the whole thing. Some of the sales people seemed to be operating under the principle that Limes and Townies were for girls, while hybrids were for boys. It wasn’t that way everywhere, but it was that way a few places. I didn’t care for that much, because it smelled like a board room.

Petersen has his own business angle, but the book feels relatively understated for marketing material, meant less to get you onto a particular brand than to get you interested in a certain niche. Just Ride encourages ridership by deemphasizing the need for special gear and elaborate or expensive rigs, which is an oblique enough sort of promotion that I can live with it.

If a recommendation is required, I guess I’ll offer just that I’m interested in getting my own copy now, less as a daily reference and more as a tool to help me consider my bicycling decisions as they come up.

Notes on Migrating to an Open System (Ubuntu 12.04)

I may move this into a real page at some point, but for now I’m making it a blog post because I don’t think Ubuntu 12.04 and I have a future. I gave it a few hours last night, taking notes as I went. The big killers for me were the window manager’s confusing menu bar and really awkward window resizing, which suggested that it was possible to grab a window on any side and pull it wider or narrower. In practice, the mouse kept falling off the edge of the window, sometimes sending a click to an application under the current one.

I don’t want to give up some of Ubuntu’s genuine accomplishments, though, so I think my next stop will probably be Xubuntu. When I had an eeePC, I ripped out the stock distro and replaced it with Xubuntu and had a decent time with it: It didn’t over-promise, so it never felt like it was under-delivering. Ubuntu and Unity are currently over-promising, and they’re reminding me of the whole “Martian user interface” problem we used to talk about back in Red Hat 4 days: Close enough to something you know (a Mac) to look inviting, but not close enough to use that way. It’s just disorienting. 


1 Migration Desktop Notes: See notes on migrating to an open system


1.1 Setup

I set up a VMWare Fusion VM with 2GB of RAM (for now, more to come as I use it more) and 20GB (no need for more: the broader iMac filesystem is right there and shareable)

Hardware specs:

  • 2.66 GHz Core 2 Duo iMac, 8GB of RAM, NVidia GeForce 9400 w/256MB, 24″ screen (early 2009)

My promise in this document: I won’t complain about performance until I upgrade the VM to at least 4GB. 2GB is an initial setting to allow me to get settled in and try things out

The purpose of this exercise is to have an open desktop running in a virtual sandbox and using it for day-to-day work.

1.2 Installation

Installation is easy. That’s been a solved problem for a while, but it went smoothly and Ubuntu does a good job of suggesting the ecosystem waiting for you on the other side. There’s the option to click a reveal arrow to show lots of installation noise.

On startup I got a notification from the software update tool (Update Manager). 221.6MB of updates.


1.3 Software (See Application List)

I’m going to go from my migration checklist to see which things I can solve right away.


1.4 Experience

Notes on how things seem to work.

1.4.1 Initial desktop is pleasant enough.



1.4.2 Wanted to change the default font to something less demanding of my attention.

Learned that I need to install something called MyUnity:

It didn’t work. Icon with a question mark, won’t launch after grinding a bit.

Update: After a reboot, it disappeared from the system. On reinstalling it, it started working.


1.4.3 Window resizing is frustrating.

Hovering the mouse over the edge of a window suggests it can be pulled to resize, but the only reliable way to get a handle on a window was via its titlebar. The mouse just “slipped off” everything else.


1.4.4 There’s a Mac-like influence on the way windows work, with a consistent toolbar for each application.

Firefox is my example app here.

What’s weird is that the menu items disappear when you’re in the actual app window. There’s no hint of where to go to do anything via a menu. e.g. in Firefox, you get “Firefox Web Browser” but no guidance on what you can do. Only by leaving the window you’re in and mousing over the menu do you get any sense of what the menu can do. That’s not great. Metaphorically speaking, I’m starting my journey without knowing where I want to go: I just know I’m going “north” to the menu bar, but I’m not sure where, specifically, I need to be pointed. Once I arrive up there, I might have to go a bit in either direction.

Also, there’s no provision for multiple windows of the same app in the menus.


1.4.5 Installed Chromium.

That was simple, but for whatever reason, the new browser doesn’t actually show up in the dock (Launcher). You have to “dash home” then search for the new app, then launch it. Once launched, you can right-click its icon to “Lock to Launcher.”

Chromium pulled in all my bookmarks, extensions and saved passwords.

Again with the weird “more than one window, not exposed in menus at all” thing.


1.4.6 Installed Dropbox

Pretty confusing experience. I had to ignore its complaints that it wasn’t installed correctly to finish installation. Once running, it seems fine. Nice hooks into the file manager (still Nautilus, if I understand correctly.)


1.4.7 Installed Skype.

Went smoothly. The one thing I had to do was enable my USB speaker/mic device in VMWare. Skype picked it right up and used it. Super bonus: Skype’s status icon actually uses color.


1.4.8 Miss the Mac’s “select an icon, tap the spacebar” instant preview of documents.



Author: Michael Hall

Org version 7.8.11 with Emacs version 24

Readability Continues Iteration Toward Zero

Readability provides a bookmarklet and mobile apps that allow readers to strip the ads from web pages. Its tools provide a cleaner copy of the content for later reading. 

There are a number of services like Readability, and there are a number of opinions about those services, since they combine a benign function (saving content for later reading, even if you’re down in a subway tunnel or up in an airplane) with a more contestable one (getting rid of all the ads) that makes it harder for publishers to make money for their content. Most of these services make money by offering a free Web service but selling a mobile app, or by offering additional subscription features such as the ability to send content to Kindles or other devices.  

Readability added another layer to the controversies surrounding services like it with its business model: Rather than selling an app, it offered a kind of  subscription, where users would pay Readability as little as $5 a month. Readability would, in return, keep track of what the users were reading with its service, and then divvy up 70 percent of each user’s subscription among the publishers whose content the reader was consuming via Readability. The publishers, in turn, had to register with Readability to get their cut. It’s not too far off the idea batted around from time to time that musicians should give away their music for free and institute a tip jar of some kind that they can use to supplement a life lived on the road, gratefully peddling merch to their fans, whom they are to understand are now their patrons, and not their customers.

Readability today announced that it has decided to end its payment collection service. According to the announcement, only 2,000 publishers ever registered to collect their cut of payments Readability was collecting in their name. Ninety percent of the money it collected from subscribers ($150,000) has gone unclaimed and will be donated to charity unless publishers present themselves to Readability by July 15. 

I never felt comfortable with Readability’s model. Even though a lot of publishers are making their own content unpleasant to read, Readability was operating from a naive conception of the business models behind ads. Pretending that an ad is nothing more than an image rendered into a bit of money by virtue of a browser loading it certainly simplifies the conversation, but it’s not the whole picture. Yes, lots of display advertising is untargeted and dumb; some of it is somewhat targeted and dumb; and some of it is pretty damn targeted and maybe even kind of smart. There’s more to the economics of advertising than getting paid for impressions. 

In devising its subscription service, Readability didn’t really care about those distinctions. Because it had decided to make itself an uninvited middleman and create the impression among its users that it had managed to create a contract where none had previously existed, it wasn’t in Readability’s interest to dwell on those distinctions. And because you really can’t have a contract without at least two willing parties — no matter how you gloss the details with your subscribers — Readability  held on to any money it collected if a publisher didn’t step forward to claim it. $150,000 as it turns out.

We each have the ability to decide whether or not to we think display advertising is a good model. We have the ability to  use technology to help us enforce our own decisions about whether we want to participate in the attention economy. Publishers will eventually have to come to grips with what will be an increasing number of people opting out of that request to contract for content in exchange for attention, especially with the uptake of tablets and proliferation of services and apps like Readability’s. But Readability’s subscription model — despite all the flowery language about “helping” and “loving” publishers and writers — didn’t help with any of that: It dumbed down a discussion on just how advertising models work so it could erect a (cheerful, well-lit) toll booth and wet its beak.

Scratch That

So, BBEdit 10 has a special, persistent “scratchpad” file, same as Emacs has a scratch buffer, and I have found it useful. I think it’s newish, but I spent some time away from BBEdit for a while there and cannot say. It occupies a place in my head well away from “file I want to save for all time” or “something that ought to go in Evernote,” but somewhere Sticky Notes lack adequate text processing power.  It’s more like “I need to curl down this RSS feed and see what it says, and I want to navigate it with relative ease, compared to the scroll back area of a terminal.”

BBEdit has also long had a command line utility to get stuff from the shell into a new BBEdit file. It goes like this:

$ ls | bbedit

and you get the output into a new window. 

If you hate those output files coming into the world marked as modified, BBEdit has your back:

$ ls | bbedit –clean

So with the –clean argument you can close the file without getting nagged about it. 

But I don’t usually want much of anything I’m passing into BBEdit to last very long, and it looks like BareBones thought about that, too:

$ ls | bbedit --scratchpad

One thing the scratchpad can’t do is take “Save As,” which makes sense, since that’d mean the version you were working on would no longer be the persistent scratchpad, but something else. I’ve mapped the menu item “Save a Copy …” to control-opt-s, in case I ever get it in my head that I need a permanent copy of the scratchpad.

… or, you know, just keep the power tools in the garage where I can find them

Nick Bradbury: Screw the Power Users:

At first I built FeedDemon as though my customers were geeks like me, since that was what I was used to. Power users were happy with all the features and all the options, but the extra baggage made it harder for less technical people to use the product. It scared them away.

So with each new version I tried to simplify the user interface, and dropped features & options that complicated the product. FeedDemon became more popular as a result, but you’d never know it if you visited my online support forums.

I’d come out with new versions that I thought dramatically improved the product, only to find my forums filled with complaints from power users who wanted the return of some obscure option, or were upset that I wasn’t adding the geeky features they wanted.

Sales went up, but positive feedback went down. I had built FeedDemon with the wrong customer in mind, and I paid for it by spending a ton of time defending each release.

I have no idea what the Windows scripting world is like, so it may be Nick Bradbury had no good choices here, but in the Mac world, at least, there’s a way to give power users lots of good features in return for a bit of the gumption Power Users are always bragging they have anyhow: Build out the scripting dictionary and maybe add a few Automator hooks. 

Take NetNewsWire, which has (or at least had, haven’t looked lately) a pretty robust scripting dictionary. Almost anything anyone could want to do with that app’s basic components (feeds and news items) is down in that dictionary. I was a content NNW user for years because things I wanted to do with it that were not immediately available from a menu (e.g. sending a news item to Instapaper), were easily available with a simple script. And NNW also supports Automator, which takes a lot of the programming out of problems you might want to solve with it.

One of the worst sins of the GNOME project back in the early GNOME 2 days wasn’t that they set out to simplify GNOME, it’s that in the process of simplifying, they took away the traditional places their more sophisticated users could go to extend and modify the environment. One of the relative strengths of OS X, believe it or not, is that a lot of the choices Apple makes that are bad for its more sophisticated users are still exposed for correction through the defaults interface

In other words, it doesn’t have to be a zero sum game between “newbies” and “power users,” and probably shouldn’t be. Power users are a pain in the ass, but a lot of them are also natural helpers if they happen to be in earshot of someone who could use some help. As newbies stumble into situations where they’d like to do something the app doesn’t expose in the UI up front, making the app scriptable or configurable behind the scenes  increases the chances that you get to retain a customer who’d otherwise decide they outgrew you and keep your power users happy.

A good example of this dynamic is Evernote, which has user forums full of people identifying gaps in the up-front interface and power users who have a script handy to help out with those gaps. I get a steady trickle of traffic from those forums thanks to a three-year-old post I wrote about converting Apple’s notes to Evernote notes, which is the sort of problem no developer wants to solve right there in the menus of an app, but that plenty of people interested in a better note-taking solution will want to solve right away if they’ve been using another product for long. People have been searching for that post several times a day for the last three years. It’s an established issue a number of users have, there’s a solution available that won’t confuse or bother anybody who wasn’t looking for it, and that solution’s presence has probably encouraged people to go ahead and move to Evernote’s paid service from something that just came with their computer. 


© Michael Hall, licensed under a Creative Commons Attribution-ShareAlike 3.0 United States license.