Keeping legacy software alive

I have some old software that I’d like to keep around. Unfortunately, that gets difficult sometimes. Old software often stops working on new operating systems. Software with irritating registration and activation schemes that treat paying customers like criminals are a ticking time bomb that could stop working if a hard drive crashes or if the publisher won’t support it any more. For these reasons, I have jumped on the virtual machine bandwagon.

A virtual machine is a piece of software on your computer that acts like a whole other computer within a computer. For example, I have Windows running in a virtual machine on my Mac. I’ve dabbled with virtual machines in the past, but my new strategy is to have a couple of virtual machines, for the different kinds of software that I want to test or to keep around for a long time. Virtual machines are great for old software for a couple reasons.

  1. You can move a virtual machine from one computer to another pretty easily when you upgrade as time goes on.
  2. You can take “snapshots” of the virtual machine that allow you to undo any changes you make after the snapshot. Something broke? Just roll back to the last snapshot!
  3. It’s less work to maintain a VM than a whole other computer. You still should keep current with the guest operating system’s updates, but that should be pretty automatic. What you don’t have to do is keep as many applications that duplicate functions that you already have on your main operating system, such as web browsers and other daily-use software.

virtualboxThere are several virtual machine packages available for the Mac, including Parallels and Virtual Box, among others. I first used Parallels, which I found to be quite polished. Then I discovered Virtual Box. Virtual Box is not quite as polished, but it is free and open source, meaning that it is not beholden to a software company that could stop supporting it at any time (for example, the version of Parallels that I bought in a bundle no longer runs under Mac OS 10.6). Virtual Box, of course, could become obsolete as well, but it looks a lot less likely. It also has the benefit of working under Mac, Windows, and Linux. So I could take my Windows virtual machine running on my Mac and move it to a Linux box, and it would run fine there. This supports the whole point of keeping old software around longer.

So what am I using virtual machines for? Like I said, I have a few.


  1. One supports my Volkswagen habit. I installed Windows 2000 (no activation hassles!) on a virtual machine, and use it to host the repair manual I bought 9 years ago from Bentley Publishers. The repair manual has the most irritating activation scheme I have run across. It is very unforgiving of hard drive crashes, reinstallation, etc. Hopefully this is the last time I will have to go through the hassle of registration of the Bentley service manual. (The service rep even made a dig at me when I tried to register something that old. She then asked if I wanted to buy an upgrade, but that doesn’t make much sense to this consumer.) I am also working on getting my old VAG-COM Volkswagen diagnostic software from Ross-Tech to work in this virtual machine, as well. I have an old version that communicates with the car’s CPU via a special serial cable, and I need to figure out how to get the serial data to pass through the virtual machine. Then I will activate it for the last time, too. Hopefully.
  2. One virtual machine runs a copy of the schematic and PCB design software that I use at work. (The software’s license allows for this, so chill out). Again, it’s Windows-only software, but I can use it on my Mac or Linux computers thanks to Virtual Box.
  3. I keep another Windows VM that I keep clean. I can make a temporary copy to try out interesting software. Most recently I looked at SportTracks. It looks interesting, but I still like the Mac-native Ascent better for now, despite its faults. SportTracks supposedly will work better on Mac and Linux in a few months, after some updates to the underlying libraries that it uses.

Car-squashing satellites

One of my favorite artifacts in the satellite photo of our area reveals the type of sensor that is in the satellite. There are two formats of image sensors: area and line sensors. Area sensors are used in digital cameras like yours and mine. They capture a fixed field of view at once. Line sensors only capture one line of pixels at once, but the sensor is swept across the field of view, as in a flatbed scanner or fax machine. The satellite photos are taken with a line sensor, and it takes advantage of the fact that the orbiting satellite naturally sweeps across region. The picture below show that the sensor swept in a horizontal orientation, from south to north. See how east and westbound cars are skewed as the travel perpendicular to the direction of the sensor sweep? Look at the black car. The sensor saw the southernmost part of the car sooner than the northernmost part of the car. By the time the sensor got to the northernmost part of the car, the car had moved to the west a bit.


A half mile to the west on I‑69, the sensor swept in the opposite direction: north to south. You can tell because northbound cars are squashed. The southbound cars are stretched because they’re going the same direction of the sensor, so the satellite sees the southbound cars longer. Cool, huh?


Pirated radio waves

I like to wade through the mountain of data that my GPS watch collects during races. I found something interesting while looking at the data from the USAF marathon: someone else’s heart rate. This is not uncommon, especially when there are thousands of people crammed into the starting area of a race. Heart rate monitor receivers pick up whatever is the strongest nearby signal, and if you are not wearing a HRM transmitter of your own, there’s a pretty good chance that someone around you might be wearing a compatible model.


From the graph above, it looks like I picked up three stray HRM signals (shown by the red line). For most of the first mile, I was running near a robot whose heart rate was under 80 bpm (either that or the signal was intermittent). Then a short time later I picked up another signal for another mile or so. Then finally I picked up another for a very short time before the 3 mile marker.

Is this what is meant by a sense of community among runners?

Adventures in fontconfig on the Mac

Like some in the Mac community, I have grown picky about the way text appears on the screen. Opinions on font rendering can be a very personal and deeply held. To each his own. I use a cross platform financial package called Gnucash that runs under X11. For a long time, I had tolerated the ugly way text was displayed on the screen. Now I have finally found a combination of settings that makes text look about as good as X applications in Linux, if not quite as good as “native” Mac applications.

The magic formula for me was to turn off hinting in my .fonts.conf file. Subpixel rendering is a toss-up.

Hinting messes with the shape and spacing of letter to increase contrast, and in the opinion of some, readability. However, between my vision and the high resolution of the display, it just makes text look ugly and uneven to me.

Subpixel rendering takes advantage of the construction of LCD panels to make text appear sharper. I am undecided about which setting is better for X applications, but at least now I know how to change it.

Another big help was to change the default font of GTK applications. I like the Liberation font these days, and it looks pretty nice as the application font. I simply created a .gtkrc‑2.0 file in my home directory with the contents:

gtk-font-name = "Liberation Sans 10"

The contents of the new .fonts.conf in my home directory are below. Changing the rgba section from rgb to none turns off subpixel rendering.

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<match target="font" >
  <edit mode="assign" name="hinting" >
<match target="font" >
  <edit mode="assign" name="rgba" >
<match target="font" >
  <edit mode="assign" name="antialias" >

The pictures below show a before (left) and after (right) look at the improvement. It’s not world peace or anything, but it is more pleasant to look at than before.


Car CO₂ Emissions

Curious about our CO₂ emissions, I decided to look into what our cars put out. CO₂ emissions are directly related to fuel economy and miles driven. According to the Energy Information Administration*, burning one gallon of fuel creates several times the fuel’s weight in CO₂:

Car Fuel lbs CO₂/gal (*EIA) mpg (lifetime) miles/year tons CO₂/year
Beetle diesel 22.384 40.8 6,053 1.66
Prius gasoline 19.564 45.1 15,720 3.42

Google Spreadsheets provides a fun gauge chart tool to illustrate our emissions.


CO₂ emissions, lbs/mi

According to some folks better at the ideal gas law than I, The half-pound of CO₂ associated with driving a mile in our cars has a volume in the atmosphere of about 4 ft³. We’re all filling up the air with greenhouse gases, one mile at a time, unfortunately.

Mileage way down

Getting married, moving closer to work, and having a baby all have a way of reducing the number of miles one puts on a car in a year!

Filling Up the Rain Barrel

5996-khaki_smHow much rain does it take to fill up our rain barrel? A quarter inch should do it.

The rain barrel is installed at the rear corner of our house. The downspout that drains into it comes from the gutter that drains the house’s largest section of roof. Referring to the survey diagram, the area of that section is 26′ × 15′, or 390 ft². Our rain barrel has an advertised capacity of 48 gal, or 6.4 ft³.

6.4 ft³ equals 390 ft² covered to a depth of 0.0165 ft, or 0.2″. Not all of the rain that comes down the downspout is diverted into the rain barrel, because of the way the diverter is designed to pass excess water through once the barrel is full. So, we can pad the 0.2″ figure a little and just call it a quarter inch of rainfall. And now we know.


Pictures from the USAF Marathon

Brightroom published their photos from the USAF Marathon. Note, these are Brightroom’s pictures, not mine. I’m not distributing them, just telling people where to get them. Once again, what a pretty morning we had for a race!

Air Force Marathon 2009

Saturday was a beautiful day for a marathon! The weather was ideal: cool at the start, with a light breeze.

As with most major running events, this one was well organized, well staffed, and well supplied. I only have one minor complaint about the race expo, and that is the selection of the halls of the Nutter Center as the location. We probably went to packet pickup at the peak time, but we had little other choice, because of our arrival schedule in Dayton. 10,000 people do not fit well in the concourse of a basketball arena, especially when the flow of people is choked by vendors filling up the walkway with their merchandise.

Given our experience with the absurdly long 2+ hour waits for buses at last year’s Marine Corps Marathon, I also was hoping for more detail in the printed literature about the parking shuttle schedules for race day. (The last thing you want is to be on the far side of the Pentagon’s 67 acre parking lot when the starting gun goes off!) I tried to just trust that this race would be better, and indeed it was. (The volunteer who was staffing our pickup point on race morning was having frazzled exchanges on her radio because we had to wait almost five whole minutes!) We followed the suggestion to arrive an hour before the start, and we were just fine.

5.  The finish lineWe were treated to an impressive flyover (“the sound of freedom,” as those in the Air Force apparently like to call it), paratroopers unfurling enormous POW and American flags; and the woman who sang the national anthem did a truly beautiful job. I was struck by the respect of the crowd. Every single individual who was present was absolutely silent and attentive during the anthem.

I cannot think of the last time I had so much room at the start of a race. Participants, at least the ones who started near me, did a good job observing the pace lineup, so there was no shuffling and tripping over feet as runners jockeyed for their chosen pace. This made for an unusually pleasant start.

The first couple of miles seemed like one very long and continuous, but relatively gentle uphill climb. While the wheeled athletes were given a few minutes’ head start, the initial hills caused several of them to get a slow start, and I passed some early in the race. I chuckled to myself, because I knew that in just a few minutes, they would be screaming past me again. remainsI enjoyed making mental notes of the things I would have pointed out to my son, had I been pushing him in the jogging stroller: lots of geese, two fire stations, a flock of starlings trying to intimidate a hawk, construction equipment, police cars, rusting remains of old aircraft, and more. Most of the participants were silent, so the early part of the race had a meditative feel, just the sounds of birds and feet interrupted the quiet morning. Perfect!

There was a great turnout of folks in the Fairborn section, with people lining both sides of Main, Grand, and Broad streets. I called out to some diners enjoying a delicious looking breakfast at their the sidewalk table that they were being pretty unfair. Residents had lots of patriotic decorations that boosted the festive environment, as well.

I always enjoy the lap around the Indianapolis Motor Speedway during the Mini, so I expected to enjoy running down a stretch of real USAF taxiway during this race. However, this segment came in the second half of the race, so the long, straight slog with no shade and no breeze was not very enjoyable. pylonsI tried to make it fun by crossing over the pylons onto the taxiway itself, rather than the shoulder, but it was hard to get very excited. (See my track line at right: the other side of the yellow paint line wasn’t all it was cracked up to be.) While I was running this stretch, there was what appeared to be a replica of a Wright Flyer flying overhead. While it was neat to see, it buzzed around so slowly that it reminded me of how slowly I felt I was going.

In contrast, the volunteers staffing the aid stations in this stretch did a wonderful job combating the monotony of the second half of the course. They were amazingly friendly and enthusiastic. After the taxiway, the route along the tree-lined Bayou Road and Patrol Roads was a most welcome change. Four of the last six miles retraced an earlier portion of the route, following a downhill and steeply banked Highway 444. This caused more eccentric motion in my quads and stressed my ankles more than I was accustomed to, so this is definitely an area that I will need to focus on in training for other long races. (The only problem: where to find hills and banked curves in Fishers?)

Dayton area race spectators should be made aware that there was not enough cowbell. We need our cowbell! I had the unexpected treat of seeing my family near the 22 mile marker. David could have been ringing his cowbell, but he had been too busy using it as a digger. Still, what a welcome boost to see them!

This course had a ton of aid stations. I never wanted for more fluids or gel packets. There must have been more than one per mile on average. I could have handled a less offensive flavor than chocolate gel packets, but I certainly would rather have that than nothing, or to fuss with carrying my own with me.

finishWhat a welcome sight the finish line was! As with the Marine Corps Marathon, the finish line was in sight long before we actually reached it, but this year there were no cruel tricks like a steep uphill climb to the finish. Instead, the last tenth of a mile passed under the wings of several of the aircraft at the Air Force Museum, which I found to be a fun way to finish. As expected, the finish area was congested, but not the worst I have seen. After milling around and picking up lots of goodies, I started to look for my family. Because I finished earlier than I thought (yay new PR), I was looking for a while. The slow shuffling wasn’t the wisest thing I could have done, and the price I paid for not stretching better was the sudden onset of the worst muscle cramps I have ever experienced. I was instantly and completely immobilized. Watching the knots form visibly as my calf muscles seized up completely solid and rock hard, combined with the shooting pain, was impressive if not exactly comfortable. I didn’t know that muscles could even do that. Two anonymous good samaritans came to my rescue and helped loosen my legs, and their beating and kneading hurt even worse, but they quickly worked it out. They were yet another example of the great people who make up the running community.

All told, the USAF put on a great event. It was great to be there with my supportive family. We’ll see if Emily plans to write about her experience also.

kmlAir Force Marathon in Google Earth (157 kB)