Suburban blight
March 12th, 2010 at 10:48 pm
As I mentioned last week, I’ve started biking to work again after the winter layoff. This is the first year it’s been consistently warm enough1 to start bicycle commuting in March, and because the frost is still working its way out of the ground, I’ve been leery of taking my normal route on the crushed limestone paths through the Springbrook Prairie Preserve and along the Southern DuPage County Regional Trail. So my way to work has been mostly on sidewalks adjacent to busy roads in Naperville and Aurora. And it’s unrelentingly ugly.
Much of the ugliness is a winter’s worth of garbage that’s floated down gutters and blown up against fences and shrubs and hasn’t been cleaned up by street sweepers and property owners yet. The sidewalks are filled with broken glass flung out of passing cars. In one spot, I pass a dead woodchuck, recently uncovered by the melting snow.
South of the Fox Valley Shopping Mall is a particularly ugly stretch, where a trenching operation dumped mud over half the sidewalk and left the site without cleaning it up.

Some parts of my route aren’t actually ugly, but are signs of decline, nonetheless. West of the muddy sidewalk, still adjacent to Fox Valley, is a blocklong stripmall that was built two years ago and is absolutely pristine because it hasn’t had a single tenant.

Local kids come to skateboard in the parking lot and do tricks on the concrete planter walls. Police park at the end of the strip, filling out paperwork and pointing their radar guns out into the streets that border the mall. I ride through the parking lot to get a break from the bump-bump-bump of riding on sidewalks. The big glass storefronts make good mirrors.

On my way home this evening, I decided to get off the busy streets and try the path in Springbrook. The trail was mushy in only a few spots; mostly it was bumpy from the solidified footprints of joggers who had run along the trail when it was all soft. It was slow going and hard pedaling, but it was fun to be away from the streets, if only for a couple of miles.
I stopped to take a picture of this tree.

Last year, I took weekly photos of a few places in Springbrook, hoping to create some interesting sequences. The only subject I was happy with was this tree, and unfortunately I didn’t start photographing it until late June, so the sequence doesn’t cover as much of the tree’s seasonal changes as I’d like. This year I’m getting an earlier start.
-
If the global warming deniers were intellectually honest, they’d be making as big a deal out of the recent warm weather in the upper Midwest as they did about the East Coast snow in February. But if they were intellectually honest, they wouldn’t be global warming deniers, would they? ↩
TextExpander 3
March 11th, 2010 at 10:59 pm
Smile On My Mac released a new version of TextExpander this week. It has some distinct improvements over the previous version and one disappointment.
TextExpander is a utility—it was a Preference Pane, but now it’s a regular application—that expands abbreviations automatically as you type. You define both the abbreviations and what they expand into to fit the type of writing you do. So if you do a lot of writing on, say, Castigliano’s Second Theorem, you could define an abbreviation like “c2t” that would expand out to the full expression. You can also define snippets (that’s what TextExpander calls its abbreviation/full expansion combinations) for the current date and time, as well as snippets that insert the output of AppleScripts or shell/Perl/Python/Ruby/etc. scripts. It’s a great utility, and I use it a lot.
(TextExpander is, I think, not quite as versatile as the snippet facility built in to TextMate, but it’s getting closer with every update. And it can be used in any application.)
The two big improvements in TextExpander 3 are multi-computer syncing of your snippet library via Dropbox and snippets with several fill-in-the-blank fields.
Syncing via Dropbox is pretty self-explanatory. If you work at more than one Mac, you can keep your snippet library in your Dropbox folder and it will automatically sync across your machines. I haven’t been able to test this, for reasons that I’ll explain later, but if it works it will remove one minor frustration: typing an abbreviation defined on your other computer and not seeing it expand.
Snippets with several fill-in-the-blank fields will be great for certain types of boilerplate text. When one of these snippets is triggered, it pops up a window with the text, and you fill in the empty fields, tabbing from one to the next as you type.

Earlier versions of TextExpander had a less useful version of this. You could create a snippet that put the cursor at a spot in the middle of the text after expansion; this gave you the effect of a single fill-in-the-blank field. Multiple fields will let you use a single snippet to the do the work that used to take several.
So I’m generally happy with the upgrade, but there is a sore point: TextExpander 3 requires Snow Leopard, and one of my computers is a iBook G4, and it can’t run Snow Leopard because it doesn’t have an Intel processor. I don’t know if the Smile On My Mac folks have been listening to Brent Simmons, but this restriction is very disappointing to me. I haven’t replaced the iBook with a newer MacBook because I like its form factor and much of what I do on it is text-based, which doesn’t need a lot of computing power. Now, the latest version of one of my workhorse utilities for text won’t run on it.
Of course, TextExpander 2.x still runs just fine on the iBook, so it’s not like I’ve lost anything. But I can’t take advantage of the Dropbox syncing if only one of my computers has that feature. And it’s really annoying to see this update sheet appear on a machine that can’t install the update.

That’s just rubbing it in.
Dumping MobileRSS
March 11th, 2010 at 9:48 pm
Based on an article surveying iPhone newsreaders1, I downloaded the free version of MobileRSS and began using it last week. Tonight I’m deleting it.
It has some good points:
- Like many newsreaders now, it syncs with Google Reader, so you can do your feed reading on different devices and not have to think (much) about repetition.
- Its user interface is very Tweetie-like, which I consider high praise.
- It allows you to set a nice big default size, very important for us geezers with
bifocalsprogressive lenses.
But it’s terribly unstable, especially when you have more than a handful of unread items. Tonight it must have crashed—screen goes black, then back to the home screen—a dozen times as I made my way through about 20 items. That’s absurd. I suppose it’s possible that it’s bad code in the ads in the free version that’s causing the crashes, but with such bad performance I’m certainly not going to buy the ad-free version to find out.
Less important, but more comical, MobileRSS often got confused as to how many unread items I had in the queue. When I saw this, I had to take a screenshot.

Yes, it thinks I have -8 unread items. Apparently, I’ve read posts that are still rattling around in P.Z. Myers’ brain.
-
I’ve lost the link to the article and can’t identify it in my browser history. I don’t think much of its recommendations, anyway, so it’s no big loss. ↩
Google bike directions
March 10th, 2010 at 11:59 pm
I’ve been using Google Maps to choose bike routes for years. The route I took today from my office to downtown Naperville, for example, uses a set of residential streets and sidewalks along busy roads that I first found by studying its aerial photos. Now Google has a specific option for getting bicycling directions.
I tried it out by entering my home and work addresses. Most of the route it came up with matches my regular path, but one spot was horribly wrong.

First, Google wants me to ride along Ogden Avenue, which is suicidal, although this instruction may not be as bad as it seems, since no one would be stupid enough to ride in a busy street when a there’s an asphalt path (that’s the bright green line) that’s not only close by, but actually cuts a corner.
No, the real problem is crossing Ogden at Meadow Lakes Boulevard. During rush hour, cars can barely cross that intersection. There’s no traffic light, and Ogden—the main east-west street in the area—has two through lanes and one turn lane in each direction. And there’s no median, so there’s no way for you to cross halfway when one direction is clear and wait in the middle until the other direction clears. Google’s Street View for the intersection shows cars in every lane, and I can guarantee you the Street View photos weren’t taken at rush hour. Just riding on the bike path parallel to Odgen is a pain at this intersection, because drivers on Meadow Lakes are always pulling forward to block the path.
Weirdly, there are traffic lights a block east and a block west of this intersection. Either would be better than trying to cross here.
Google recognizes that its biking directions may be wrong. Here’s the warning/disclaimer that comes with them:

I filled out the little web form that pops up when you click that link, and I have little doubt that Google’s bicycling directions will improve quickly. Still, I think it’s odd to use the term beta for this product. Losing your data is a risk beta testers are used to. Here, you stand to lose a bit more.
What’s wrong with Roger Ebert’s blog
March 9th, 2010 at 12:21 pm
It’s not the content, of course, it’s the formatting. Have you tried to read his RSS feed on an iPhone?
I started reading Roger’s latest blog entry this morning and ran into the same problem I always do when reading him on my iPhone.

The screenshot above is from the MobileRSS feed reader, but I get basically the same horrible formatting when reading it through NetNewsWire

and through the Google Reader mobile page.

Everything past the first couple of paragraphs gets squeezed down to pass through a narrow chute.
Grabbing the feed via
curl http://blogs.suntimes.com/ebert/atom.xml > ebert.rss
and isolating the area where the formatting goes crazy, we get
<p> Todd McCarthy reviewed films for Variety for 31 years.
He was the ideal critic for the paper -- better, we now
realize, than it deserved. His reviews and the reviews of
Kirk Honeycutt at the Hollywood Reporter were frequently the
first reviews of a new film to see print. Honeycutt
fortunately continues. <br /> </p>]]>
<
and here’s the page for the latest entry

Each entry on main page has an image and a paragraph or two of text. You’ll note that the length of the text matches the height of the image almost exactly, a feat that probably comes easily to a guy who’s been writing newspaper copy for five decades, but which seems amazing to me.
The triple <blockquote> comes right after those lead paragraphs and is what gives the subsequent text its left indentation. And turns that text into a thin trickle running down the center of my iPhone.
(The indentation also appears when I read his feed on my computer, of course, but it’s not as annoying on a full-sized screen.)
I don’t know whether it’s Roger himself that’s putting in those <blockquote>s or whether it’s some blogging program he’s using, but whatever the source, it’s the old problem of using HTML for formatting instead of semantics. I wish one of Roger’s web-savvy friends—Andy Ihnatko, say—would step in and give him a little CSS assistance.
-
I call him Roger instead of Mr. Ebert not just because his persona in print and on TV makes everyone feel like his friend. And not just because we share an alma mater and happy memories of Champaign-Urbana. No, there’s a deeper bond.
Back in the late 80s, my wife and I were driving down through the center of Illinois on I-57. We pulled into a rest stop and noticed a BMW with the license plate ROSEBUD (or maybe ROSEBD) in the parking lot. As I went into the men’s room, I passed familiar-looking portly guy with big glasses coming out the door. It wasn’t until I got back to my car that I realized I’d just had a brush with greatness.
It’s the intimate relationship that comes from nearly sharing a rest room that puts Roger and me on a first name basis. ↩
Biking begins
March 5th, 2010 at 7:58 pm
The first full week of March has me moving out of winter mode and getting more active. I had my last two session of physical therapy for the slipped disk I suffered right after Christmas1 and started riding my bike to work again.
March typically isn’t a great month for riding, and I don’t expect this one to break the mold. Although temperatures this week got up into the 40s, we still have snow on the ground, especially near intersections where the plows piled it up. My usual route to work through the Springbrook Prairie Preserve probably won’t be ready to ride on for a few weeks. Even after the snow melts, its crushed limestone bike path will be impossibly mushy on warm days until we get further into spring. Last year I tried to ride it too early and the glop oozed up over my rims and stopped me cold.
So I’m taking an alternate route to work, one that has me mostly on sidewalks along busy streets. The way is mostly clear, and getting better every day, but there is one low spot of snow that forces me off the bike

and another place under a bridge where, in the morning, the refrozen meltwater is so smooth and slick that I can barely walk across it.
If you’re an urban cyclist and thinking about chastising my for riding on sidewalks, don’t. Suburban riding is not what you’re used to; I can go weeks without passing a pedestrian. Also “sharing the road” is not a concept familiar to drivers out here.
I didn’t plan to start riding quite this soon, so my bike isn’t in the best shape. The frame is still dirty from the wet, messy rides of late November (it was too cold to give it a good washing then), the tires are nearly bald, and the brake pads need replacing. I’ll start fixing it up this weekend.
My replacement tires, by the way, will be the same as what I have on the bike now: Continental Contacts. I’ve ridden about 4000 miles on the current set, over twice what I got out of the tires I had before that.
The commute to work is pretty chilly—this morning’s windchill was in the teens—but the sunny ride home in the late afternoon makes it worthwhile.
-
I don’t want to complain, but the past 12 months have been a musculoskeletal nightmare. In April, I was knocked off my bike by a pickup truck, which messed up my left hip an wrist for over a month. Then in July, my tires slid out from under me on a patch of wet grass and my right shoulder slammed into the ground for another six weeks or so of pain and discomfort. Finally, the slipped disk after ice skating on the day after Christmas. I didn’t fall, but I think jerking my upper body around to keep from falling put my spine out of whack, my worst back injury in almost ten years. Much worse than my celebrated Guitar Hero injury. ↩
Iraq and Afghanistan, February 2010
March 2nd, 2010 at 9:58 pm
US military deaths in Iraq stayed low last month.
US military deaths in the Afghanistan war went up and passed the 1000 mark. I don’t recall seeing anything in the news about this sad milestone.
Strictly speaking, these numbers are for the whole of Operation Enduring Freedom, not just Afghanistan and the neighboring countries. The folks at icasualties.org point out that this includes deaths in (or due to wounds received in) Afghanistan, Pakistan, Uzbekistan, Guantanamo Bay, Djibouti, Eritrea, Ethiopia, Jordan, Kenya, Kyrgyzstan, Philippines, Seychelles, Sudan, Tajikistan, Turkey, and Yemen. I’ll continue to refer to OEF as the Afghanistan war—the war started in response to the attacks of September 11.
I’m increasingly pessimistic about our chances of being out of Afghanistan before September 11, 2011.
Playstation 3 leap year bug
March 1st, 2010 at 9:46 pm
As a big fan of Reingold & Dershowitz’s Calendrical Calculations, I’m always on the lookout for calendar-related programming news. This morning I heard (via @jamesthomson) that the Playstation 3 has a leap year bug that screwed up a lot of users yesterday when it became midnight GMT and the calendar flipped from February 28 to March 1.
In addition to my nerdy calendar interest, there was a family angle. My son plays Modern Warfare online with many of his friends. Last night he told me that a few of them were locked out because they couldn’t get online. It seemed weird that 3-4 kids would have network problems simultaneously, but now we know it wasn’t a coincidence.
Unless there’s a leak out of Sony, we may never learn the precise cause of the bug, but it must have acutely embarrassing for an international electronics giant to have to post this:
We are aware that the internal clock functionality in the PS3 units other than the slim model, recognized the year 2010 as a leap year.
Let’s first note that recognized is the wrong verb; you wouldn’t say you saw Ernest Borgnine in a restaurant and recognized him as Brad Pitt. How about mistook? More to the point: can you imagine spending millions of dollars to develop a product that can’t figure out whether a given year is a leap year or not?
My guess is that the firmware takes every even-numbered year to be a leap year. The PS3 came out in late 2006, too late for the bug to have an affect that year. 2008 was, of course, a real leap year, so the faulty code worked. Yesterday was the first time in the PS3’s product life that the bug would cause a problem.
I’m pretty sure that Sony has no real fix. The solution, like Microsoft’s solution for the Zune’s leap year bug back in 2008,1 was to simply wait until the calendar flipped again. Now that February 29 March 1 is over in the GMT zone, the bug is safely tucked away. If my guess is right, it won’t resurface until 2014, by which time most “fat” PS3s will be out of service.
-
Yes, that was a self-link. I’m positioning myself as the go-to blogger on leap year bugs. ↩
iPhone death and resurrection
March 1st, 2010 at 8:00 am
This is a tale of stupidity and bravery. A harrowing trip from the depths of sorrow to the pinnacle of triumph. A rousing adventure of our modern world with an important Lesson For Us All. It’s how I killed my iPhone and brought it back to life.
I’d put on an old pair of jeans to paint the bathroom, and when I was done I gave them to my wife, who was about to start a load of laundry. I was, of course certain that my iPhone wasn’t in the jeans’ pocket, because I wouldn’t want the phone on me when I’m painting, so I didn’t check the pockets when I handed the jeans over. This is the stupid part of the story.
A couple of minutes later I ran down to the laundry room and opened the door to the washer. As I pawed through the clothes, I saw the phone’s screen glowing through the denim. The jeans had barely gotten wet, but enough moisture had gotten into the dock connector to make the iPhone think it was plugged in. It had put up the warning message that I’d plugged it into an unapproved device.

I shook the phone and blew into the dock port until the warning message went away. I tried to turn it off, but it wouldn’t respond to the power button. The screen told me I had no cell service, so I dug out a paperclip and popped the SIM card from its slot so it could dry. I was hoping the extra opening on the top would help dry out the power button, too.
At first, the phone seemed to be working pretty well. I could flick to change screens, the home button worked, and most of the apps launched without a problem. Buttons near the lower right corner—iPod, Google Reader, and PCalc on my home screen—were iffy; sometimes they responded and sometimes they didn’t. Soon, though, the phone began to run amuck. Apps were launching on their own, mostly those same apps near the lower right corner. The iPod app would not only launch, but begin playing music or videos. I’d hit the home key to stop it, but a few seconds later another app would launch. Basically, it was acting as if someone were tapping randomly on the lower right quadrant of the screen.
I got out a blow drier and ran it around and around the phone to speed evaporation. All the while, I kept pushing the power button, hoping to get the phone to shut down so it wouldn’t damage itself any further. But it wouldn’t go to sleep on its own, because the phantom tapping kept launching apps and keeping the phone awake.
After a reminder via Twitter from @kshanemcfarland, I put the phone in an airtight plastic bag with some rice, a sort of poor man’s desiccator, and left it there until morning. Eventually, it stopped launching apps and went to sleep, but then it started flashing the Apple logo every 15-20 seconds. I was reminded of HAL:
I’m afraid, Dave.
Dave, my mind is going.
I can feel it.
I can feel it.
My mind is going.
The next morning the battery was dead and there was no more flashing. I plugged it in and waited. Several minutes later, it was charged enough to start up. It worked! Every app worked, although the power button was still dead. Not so bad, I thought. If I shorten the autolock time down to one minute, battery life won’t be too bad. I unplugged the phone, put it in my pocket and went off to work.
Unfortunately, this is not the end of the story. When I got to work and pulled out the iPhone to dock it, it was flashing the Apple logo again. Shit. I talked to one of my coworkers about it, and she set me up with a real desiccator that she’d been using on a project a few weeks ago. And that’s where the phone stayed the rest of the day, under a plastic dome, cut off from the rest of the world.

I removed it from the desiccator that evening and plugged it in overnight to give it a full charge. The next morning, its behavior was the same: perfectly fine when plugged in (except for the dead power button), perfectly fine for a little while when unplugged, then back to the flashing logo.
I did a full restore, which took over an hour, but in the end the result was the same: an iPhone that would work only when plugged it—basically unusable. I was resigning myself to a a trip to the Apple Store for a replacement.
Let me interrupt the narrative here and give you some background. This is a first generation iPhone, bought about two years ago. Although it was working well before the incident, I had firm plans to replace it with a more modern model. But I didn’t want to replace it with a 3GS, not, at least, until I saw what the fourth generation iPhone was going to be. My expectation was, and still is, that this summer’s iPhone will blow the 3GS away, probably using the A4 chip that’s in the iPad. My goal was to hang onto my old phone until June or July when the new model arrives. Getting tangled up in a new AT&T contract this close to the launch of a new iPhone was the last thing I wanted.
I did have a safety valve. My daughter has been agitating for an iPhone for months. If worst came to worst, I could get a 3GS now, then give it to her when I got the fourth gen phone.
OK, back to the story:
I felt certain the dead power button was the key to the phone’s failure. Something was in there, screwing up the connection. That, I reasoned, was the cause of both my inability to turn the phone off and the flashing logo (which looked like an interrupted reboot). Since the phone was useless as-is, I decided to crack it open and try to clean out the power button. I had nothing to lose.
I followed the instructions on ifixit.com and soon had a few pieces of iPhone laid out on the table.

The power button is in the upper right corner of the aluminum back piece. I dug around in some crevices there with a thin stainless steel pick. I blew compressed air in and around the area. I swabbed the area with isopropyl alcohol. And when I put the phone back together the power button worked! And so did the rest of the phone—no more flashing logo.
I have no idea which part of the cleaning did the trick, and I don’t care. My iPhone is working again, and if I can baby it through these next few months, I’ll have a new phone in my hands and can put this ugly incident behind me.
I should mention that the phone did not make it through the case cracking unscathed. I left a couple of scratches on the aluminum back. More important, the black plastic antenna cover didn’t snap fully into place when I reassembled the phone. Fortunately, I have an Incase Slider Case that fits tightly around the phone and will keep everything together no matter how much it gets jostled.
Update 3/4/10
The other day, I pushed up really hard on the lower part of the Incase Slider and the iPhone’s antenna cover snapped in the rest of the way. Now the scratches and slight distortion in the aluminum back are the only evidence of my phone surgery.
So there you have it. Monumental stupidity rescued by perseverance, pluck, a set of instructions posted on the internet, and a heavy dose of blind luck.
Chile’s earthquake
February 27th, 2010 at 9:59 pm
I’m not surprised that—so far, at least—the death toll from Chile’s earthquake is so low compared to Haiti’s, despite the much stronger quake. I was trained as a structural engineer, and my department was loaded with graduate students from South America. Latin American countries tend to take earthquakes very seriously, and their engineers are highly educated, both at home and abroad.
News reports will, of course, focus on the devastated areas, but most of the buildings must have done an excellent job of protecting the people within. This is not to say that the buildings weren’t damaged; there’s too much energy in a big quake to expect most buildings to escape unscathed. But I would expect to see most engineered buildings1 to have absorbed the energy without large-scale collapse.
-
Buildings that were designed by engineers, like office and apartment buildings. Older, smaller residences are typically not engineered and usually suffer the most damage. ↩












