Horological Adventures

I am obsessed with mechanical watches and I blame Apple.

I would have happily walked around watchless for the rest of my life had my interest not been piqued. Funny enough, I have no interest in Apple’s horological offerings.

Great Grandpa’s Ball Pocket Watch

Ball Watch Co. didn’t make any watches but instead devised a standard for watches that were to be used within the Railroad Industry.

Using the serial number on my watch I detemermined it was manufactured by Waltham between 1910 and 1920.

After burning through some YouTube videos on double playback speed (seriously people, you all go too slow on your videos) and receiving some Amazon purchases, I cracked open the case and dove into the clockwork.

I removed the gears plates and screws, dropped everything into some jewelry cleaner, brushed and dried out the parts, applied some grease to the mainspring wire, lubed up the jewels with tiny drops of Moebius, and reassembled it all.

At first it seemed daunting but it became intuitive where all the tiny screws and gears were supposed to go. After it was reassembled I gave the crown a gentle twist and instead of the grinding from before I heard a satisfying click of miniature machinery storing up potential energy.

After a few more winds the balance wheel kicked into action and the second hand started ticking away. It was a proud moment.

I found that the watch would stop intermittently and I had to put additional pressure on the second wheel and free the pallet fork to get it going again. After a few rounds of this over the day I noticed this happened only when the second hand crossed below the hour hand. I popped the hands off the dial, straightened them out, and reinstalled. Not a problem since.

Mechanical debugging and software debugging feel like a very similar activity.


My wife is encouraging my obsession. We dropped into one of her favorite antique warehouses.

I got lost in the maze of displays. Each section its own shrine to a departed soul. I started making up stories about the people based on the things they had left behind. Then I started wondering what my shrine would look like. A stack of antique mobile computing devices most likely.

I was giving up hope that I would find anything interesting. The only watches I came across featured Marvin the Martian or Ren and Stimpy dials powered by quartz movements.

It was time to meet back up so I checked my phone. My wife had struck gold! She had sent a photo with a collection of watches she found.

The shopkeeper let me examine them all. I opened up each case and looked at the movements. Upon seeing the machines within the shopkeeper commented on how it was like popping the hood on an old car. “Not like the watches you buy these days,” she said. I suspect she doesn’t visit the same websites I do.

No purchases were made but I walked away feeling like a kid on a treasure hunt who found a little stash tucked away behind a display case in a store I had driven by hundreds of times over the years.

The game is afoot.

Seiko 5

My obsession with watches is being stoked with daily visits to Hodinkee.

After getting the Ball running I found myself wasting time staring at the clockwork. I want to waste time everywhere I go! So why not get a wristwatch?

I quickly fell in love with the Nomos Metro Nachtblau but I could never justify walking around with a cool $4K USD on my wrist (let alone afford it).

The compromise is a Seiko 5 at $55 USD. With an autamatic mechanical movement and a glass back plate I’ll have instant viewing access everywhere I go. I plan to ditch the nylon strap and fashion a leather one from some supplies I have.

Time to go stare at the Ball movement for a few minutes.

Programming Tools

Android Debugging with JDB and TextMate

For android development I do my best to avoid Eclipse by using TextMate and the command line. The biggest missing piece with this setup was an easy way to get a debugger up and running. A quick trip to Google landed me on Command Line Android Development: Debugging which outlines how to get jdb attached to a running Android app instance.

I quickly grew tired of typing all of the breakpoints out and invoking a handful of commands, so I hacked together a TextMate bundle I named Android Debug to automate the process.

I have never found a use for TextMate’s bookmarking feature so it seemed like a great place to identify breakpoints. When you invoke the debugging command from TextMate it will find all of the bookmarked lines in the *.java files in your src folder and dump them into a .jdbrc file.


To figure out which app to launch I parse the AndroidManifest.xml file for the package id and main Activity then launch the app in Waiting For Debugger mode.


Once the app is up and waiting a jdb instance is launched and reads the breakpoints in from the .jdbrc file. After getting familiar with all the jdb commands I feel pretty comfortable debugging this way.


Now that I finally have a quick way to debug I can go easy on adb logcat. I’m going to try to automate more parts of my Android development workflow in this bundle. There’s probably some good stuff to steal from the abandoned Android TextMate Bundle.

The only remaining pain point for me in this whole setup is ant. I’d really love it if someone could show me how to get ant debug to compile faster. Currently changing a single *.java file requires 30 seconds to get an apk compiled. It looks like dx is taking a long time to merge all of the pre-dexed libraries the WordPress for Android project is using.