When we left on this trip, neither of us had an inkling that we'd be documenting our adventure in such exhaustive detail. The original idea was simple: a flickr account, and a nice template at Blogger for our journal—just a little writing and a few pictures sprinkled here and there. I didn't know how to use commas, and neither of us had a clue what an aperture was.
Fast forward a month and things were slowly getting out of hand. Sitting at a coffee shop in England, it dawned on me that the GPS tracks we'd been saving for who-knows-what could be used to show our progress on a Google map! Then, somewhere in Tunisia, we signed up for our dreaded Twitter account, and shortly after, we started taking field recordings too.
By this point, we were generating quite a lot of "stuff" every day: journals, photos, audio, tracklogs, expenses, tweets and more. As the data piled up, and our Excel files got messier, it became pretty obvious that we either needed to give it all up, or start building systems.
I don't want data entry to be a part of cycling around the world!
As luck would have it, the software platform I've been developing for the last few years lends itself very well to this sort of thing. Warning: technical content ahead.
I develop a generalized database management tool which can be highly customized to administer data for things like insurance policies and claims, union employee scheduling and payroll, trucking company compliance, event registration and billing, corporate asset management, customer service systems, employee training, project management, and much, much more.
Basically, I write systems to manage all kinds of super-boring data. It is actually a lot of fun, mainly due to the fact that I like organizing things, and also because my clients rule. In order to support them (and now, us), my laptop is running a full web development environment. This is a big part of what makes working on the road possible for me, as I can program without being connected to the internet.
I develop using Python / PHP (and Node.JS for the next generation of my platform), store our data in PostgreSQL, and host our sites with Apache. I manage my source code and deployment with SVN (I can't wait to migrate to Git when the free time presents itself).
We work on the GSDB (journaling) simultaneously by connecting our laptops with an ad-hoc wireless connection, a network cable with a crossover adapter, or just by being on the same wireless network. Tara edits her hosts file to point the "fake" domain gsdb.local to whatever my laptop's IP address currently is.
In October of 2009, after many hours of coding, and way too much time spent trying to make heads or tails of the mess we'd created, our days, tracks, expenses, pictures and recordings had been entered into my software. (Long after this, we eventually migrated our journal as well; more on that in another our process entry.)
When the dust settled and the kinks were ironed out, we launched what would become the engine room of our website, and what is now the hub of all of our projects together, the behind the scenes section of our website, which we've dubbed the GSDB (Going Slowly Database).
Here is one of the many things we use it for:
Converting Tracks to Travel Data
When we make camp or arrive at a hotel, the first thing I do is fire up my laptop and connect our GPS to it. Then, using Garmin's MapSource, I download the tracklog. This is, in very simple terms, the result of our GPS saving information about its current location to a file every second or so. The points in a tracklog form a long connect-the-dots which shows everywhere we've been.
With our tracklog at the ready, one of us creates a new day in the GSDB, and attaches the file to it. When we hit save, my system automatically uses the track data to enter our current location / altitude, distance traveled, total ascent / descent etc.
From turning the laptop on to completion, this entire process takes less than five minutes.
The track data we store in our database powers our google map, creating the markers that show each place we've slept, the tracks and elevation profiles between them, and the Show Map & Statistics link for our journal (which displays where we were on the date of the entry).
Next up: some example code for our google map, more about our custom journaling platform, and lots of details about how I'm working to automate everything in our documentation process that isn't writing or editing photos.