Experiments in Geocoding

For a while now, I’ve been wanting to try my hand at geocoding — attaching latitude and longitude (coordinate) data directly to the EXIF metadata in photographs so they can be precisely positioned on a map.

The easiest way to do this is to use a camera with a built-in GPS. Unfortunately, that’s still a pretty rare feature in cameras, and comes at a hefty premium. Because most people aren’t interested in the feature and never will be, it’s not likely to become commonplace any time soon. Some day we’ll all have high-quality cell phone cameras with native GPS — the Nokia N95 is the current front-runner, and I think it’s a safe bet the coming Google phone will have fully integrated GPS features. I’ve been holding back on taking the iPhone plunge until it has fully realized GPS capabilities (at which point it will also become the ultimate geocaching device).

But the cool thing is, you don’t have to wait for a GPS-enabled camera to start geocoding. Here are the results of my first geocoding experiment, created without a GPS-enabled camera. The icons are clickable; the thumbnails in the balloons are too.

View Larger Map

The photos aren’t great, the interface isn’t perfect, and due to several beginner’s mistakes, only some of the coordinates shown here are accurate. This was more a proof of concept than anything – a way to explore available software and techniques. You’d think generating a map like this would be trivial at this point in the game. Well… yes and no. There are a ton of options, but getting things to appear exactly the way you want them to is still a bit of a pain. Click through for the gory details.

I recently picked up an excellent (paper) map detailing 140 of Berkeley’s hidden pathways – concrete or wooden stairs covering the steep stretches between many of the twisting, heavily wooded streets of Berkeley. These were mostly built at the turn of the last century to help citizens without cars get to the local train systems. I recently explored a few dozen of the paths with my family, and started my geocoding experiment there.

Continue reading “Experiments in Geocoding”

Your Average Stud

Studfinder Veteran’s day… us gubmint employees got the day off. Felt more poignant than usual since Amy and I have been working our way through The War… slowly. Painful and fascinating to watch, learning so much.

Hung a 70-lb. TV on a 50-lb. wall-bracket today, finally eliminating the hideous shiny plastic stand it came on and getting it 12″ farther back from the couch. For a weight like this, hitting the studs was of paramount importance, couldn’t risk missing. Unfortunately, thick lathe walls and multiple repair jobs over time* resulted in getting lots of false readings from the electronic stud finder. For a while there it seemed like chaos, and I was beggining to consider fishing for it, though I didn’t relish the thought of having to patch it up later.

Each time I got a reading for the edge of a stud, I made a mark on the wall. After a while, I had about 40 tiny Xs dotting the LR wall, and noticed a pattern starting to emerge. While no single mark was reliable, in the aggregate I was starting to see implied vertical lines on either side of a 2″ space.

This got me thinking… when placing a geocache, it’s really important to publish accurate coordinates. But marking a single waypoint is inaccurate by definition, since the satellites and the earth are constantly shifting in relation to one another. The first cache we placed, I did the “bee” dance, walking out 30′ and returning repeatedly, marking the spot again and again, then finally plunking down a waypoint in the middle of the cluster to represent the average reading. That worked OK, but later discovered there was an “average waypoint” feature built into the GPSr – set it down in one spot and let the earth move while it takes a reading every few seconds. Let it do that for 200 or so readings, hit Stop, and you get a dynamite average. Conclusion: The world needs an electronic stud finder that does automatic averaging. Just drag the finder randomly around on the wall for a few minutes and let it report well-averaged stud edges.

Aside: Got my stitches out today – hand’s doing well, but will probably have a nice Frankenstein jag in it for life. At least it’s fully mobile again.

* Have I mentioned that when doing wall repair recently (earthquake cracks), I discovered that the living room had once been painted top to bottom with gold glitter paint? I love trying to imagine what the rest of the room must have looked like at whatever point in history that might have been.

Music: Screamin’ Jay Hawkins :: I Love Paris

Oak Hymenoptera

Milesoak     Milesoak2

By the grin on my face, you’d never guess I just got 14 sparkling new stitches in my right hand.

Headed out for Crockett Hills Regional Park with Miles on a gorgeous November morning – felt like late spring, amazing day. Halfway through the day, arrived at a cache under a giant oak … which we just couldn’t nail. Knew it was a tiny camouflaged micro, but it wasn’t about to give itself up. The clue was “Oak hymenoptera,” which of course was all Latin to me, so called Amy for a lifeline. She described a fungal growth related somehow to hornets or wasps. OK, the tree had its share of tumors and testicular outgrowths, and I searched them all while M ate cashews and an apple from his perch in the tree. But this one just wasn’t willing to be found.

A bit bummed, we moved on. Had intended to do a big loop around the park, but suddenly found ourselves at trail’s end. Realized we’d have to cross a road and hop a fence to continue our circuit – either that or hike two miles back the way we came and miss caching half the park, so went for it. Lifted Miles easily over the barbed-wire fence, then went to get myself over. OK, know this: I like adventure, and I’m not what you’d call “risk averse,” but I don’t think I do dumb things at the expense of safety. Studied the situation carefully to make sure there were no alternative crossings, then carefully got my feet into position on the top rung of the fence. Intended to sort of do a light vault over and spin down to the other side (this was only a 5-foot fence).

Continue reading “Oak Hymenoptera”

Land That Time Forgot

Redwoods-2 One of the J-School’s multimedia student teams is putting together a package on geocaching, and Miles and I got to take them out to Redwood Regional Park last weekend. Didn’t go as well as planned – the dense redwoods made getting a signal lock almost impossible for much of the day. But we did manage to find two caches.

At the bottom of the valley, the ferns and moss and fungus grow thick, and the ancient trees rise up impossibly to the sky, gorgeous.

The highlight of the trip, as usual, totally unanticipated: Came across a patch of low weeds about 30 feet long absolutely dripping with ladybugs — tens of thousands of them, clinging from every tiny branch, several bugs thick in places. You could hear them dropping to the forest floor as they lost their grip on each other; they sounded like quiet popcorn. We scooped them up in our hands and let them crawl over our skin. Many inevitably found their way into our shirtsleeves and pant legs, into our hair and ears. It was magical, and we lingered with them for a long time. So this is where bugs are born.

Didn’t take my camera, but the journalists did share a handful of shots with me and said I could post them on Flickr.

Music: Loop Guru :: Stone River Reckoning

gpx2ipod 1.3

Version 1.3 of my “geocaching with an ipod” system gpx2ipod is now available, with an all-new interface for establishing text encoding / international character sets. So all you Swedish and Russian and Chinese cachers should now see your native language rendered with all the proper characters on your iPods!

This update based in part on GPL’d contributions from a volunteer Swedish developer. This kind of collaboration is what open source is all about – on my own, I may never have gotten around to looking into the ins and outs of dealing with non-English charsets in gpsbabel and on the iPod. That wasn’t my personal itch that needed scratching, but it was someone else’s. Working together, everyone itches less :)

Music: The Slits :: Ping Pong Affair

The Other WP-Cache

Miles WP shirt WP-Cache easily ranks among the top five of my most-used (and most critical!) WordPress plugins (static site performance with dynamic site behavior, and all that jazz). But last week, heard about another kind of WP-Cache — developer Ryan Boren planted a couple of ammo cans full of WordPress t-shirts in the middle of Almaden Quicksilver Park — and didn’t list them on geocaching.com. In other words, a little insider training :)

Don’t generally like to drive much for a geocache (it kind of taints the enviro aspect), but made an exception today – this just sounded like too much fun. A huge and beautiful park, and plenty of traditional caches in the area too. Made the trip with Miles this morning and ended up spending almost the entire day hiking.

Tracked down the shirts mid-day and there’s still a ton of ’em. No extra-smalls, so had to drape him in a small. The find was extra special because this was, coincidentally, our 100th find! Happy birthday to us, or something.

Stopped to eat Bunny Grahams and drink the last of the water (when will I learn?). Splashed each other in a creek. Found an entire deer skeleton (and brought the skull home in the bag my WP shirt came in). Dropped off some of the travel bugs we picked up in Minnesota. Ate peanut butter and honey sandwiches in the middle of the woods. Hiked our butts off (Miles did five full miles today!) Amazing views, very few people, great father-son day. Life is good.

Flickr set

Gull Lake, 2007

Gull Lake If it’s been quiet around here lately, it’s because I just returned from a much-needed two-week vacation in Minnesota, relaxing with extended family. Five days of the trip spent on the shores of Gull Lake – canoeing, fishing, reading, golfing (yes, I said golfing!), playing tennis, geocaching, fishing, feasting, relaxing our hearts out. Nice little water skiing injury to show for my efforts – a ski whacked the top of my foot at speed and created a 3/4″ pillow bruise on top of the foot… which forced me to sit on the beach and devour a book and a half* (ah, shucks). Still recovering from that. Did I mention Wi-Fi in the trees, so you can use a laptop from anywhere? Life’s rough.

Back at work now, trying desperately to hang onto the vacation glow, but it’s fading fast. Big semester coming, with me in a new role at the J-School (more on that another day).

Just uploaded a pile of vacation images. Again trying something new – Image Rodeo has been great over the past few years, but never liked the fact that it forces you to output a separate database from iPhoto and then generate an album from that. Decided to give the free Galerie (which generates galleries with custom templates directly out of iPhoto) a shot and loving it so far, though it did take a while to port my template to its syntax.

Rained a bunch in the last few days (and I had my first encounter with a storm of nickel-sized hail – scary stuff!), but didn’t let that stop me – had an amazing experience on the last day doing a 15-geocache run in the rain, on bicycle. I’m almost always caching with Miles – was great to get out on my own. The Land of 10,000 Lakes is just packed with gorgeous meadows and wild lands. Trails run everywhere, ponds around every corner. The vegetation is incredibly lush — I could die of greenery.

* Read Sam Harris’ “Letter to a Christian Nation” and half of Sam Leavitt’s “Freakonomics” – both incredible. Hope to post more on those some day soon.

Music: Porter Wagoner :: Albert Ervin

gpx2ipod: Mac-Based Paperless Caching Redux

I’ve written a script – gpx2ipod – to enable Mac-based paperless geocaching with an iPod.

Mac-based paperless caching for people who own an iPod but not a PDA. Batch-converts a pile of .gpx files to plain text for use with the iPod’s “Notes” feature. Super-fast — cut your geocaching prep time to a few minutes. gpx2ipod handles both individual and Pocket Query (multiple-cache).gpx files. Cache files will display alphabetically on the iPod for easy access in the field. gpx2ipod can inject generated text files directly into your iPod (most users) or into a local “output” folder (you might not have an iPod but might still want the text files for other purposes). gpx2ipod is a Terminal application (shell script), but can be run painlessly with a double-click — no shell experience required.

The script requires gpsbabel 1.3.4 or higher, and can be downloaded either with or without gpsbabel bundled.

For me, it’s been a very fast way to reduce prep time before going caching – I can now build and receive a pocket query from geocaching.com, then load hundreds of waypoints into the GPSr and all of their metadata into the iPod in a few minutes (previously I had to selectively print out data pages for each cache I intended to visit – a laborious and wasteful process).

Just received an email from a super-happy beta tester who’s as excited by this as I am – gratifying to know I’m not just barking up my own tree. A future version will feed gpx files to the GPSr and text files to the iPod in the same run.

This tool is also available through VersionTracker.

This is the official support / comment page for gpx2ipod.

Keep Your Chin Up

Tree Had an amazing day at Angel Island with the family last weekend. Made our way to the 800-foot peak over miles of switch-backs in absolutely perfect weather. Views of the Bay Area from the top like I’ve never seen before, picnic lunch with the birds, lovely ferry rides there and back. Did some good geocaching along the way, including my first 4.5-star terrain rating grab. Amy spotted it first — a camouflaged Nalgene bottle hanging from a limb 30 ft. up the backside of a tree. Pretty much in plain view, but the climb was hairy. Unscrewed the lid one-handed to find a dry pen and a damp log book, which meant another trip down and back up again to get the log signed (it don’t count if you don’t sign). Just scary enough to get the adrenaline going… but resulted in a crowd of muggles gathered around. Not much I could do about that once up there (“Chill out – don’t draw attention!”), but the climb was a nice little nitro boost to an already perfect day.

Music: Black Heat :: Wanaoh

The Cruel Shoes

Old Shoes Farewell, awesome old shoes. You may well be the best friends my feet ever had, but all that hiking and scrambling and geocaching has taken it’s toll. I can’t stand to see you go, but you’re blown out, frayed, fried, bedraggled and besmirched, and pebbles are starting to get in through your sides. Guess I’ll keep you around for lawn mowing or something. You’re way too noble for the trash. Hey there, new kicks! I promise to learn to love you, despite the fact that you make my feet look like they’re bent inwards at an impossible angle, reminiscent of the stars of Steve Martin’s seminal short story The Cruel Shoes:

New Shoes Carlo disappeared into the back room for a moment, then returned with an ordinary shoebox. He opened the lid and removed a hideous pair of black and white pumps. But these were not an ordinary pair of black and white pumps; both were left feet, one had a right angle turn with separate compartments that pointed the toes in impossible directions. The other shoe was six inches long and was curved inward like a rocking chair with a vise and razor blades to hold the foot in place. Carlo spoke hesitantly, “…Now you see why…they’re not fit for humans…”

Music: Zero 7 :: Salt Water Sound