On a good week, I consider myself an avid runner. Right now I’m training to run a 5k in the spring. Ideally, I’ll be able to get it under 20 minutes. Now, two of the keys to exercise are to set goals and to track your progress. Clearly I’ve got the first half under control, but the second half? Well, it turns out that’s where a lot of people falter, lose motivation, and ultimately fail. I’m no exception – I’ve tried running without really tracking my progress and I found that eventually I just gave up. Manually drawing routes, estimating distances, and keeping time take effort, and frankly I didn’t have the wherewithal to do it. Thankfully, modern technology has come to save the day. I use a Google Nexus S, which comes with a GPS and dozens of apps on the Android Market for tracking exercise.
Google My Tracks
Google happens to make an open source app that tracks runs (My Tracks). It supports waypoints (so you can get data on each mile or kilometre of your run), and it records your speed and altitude. All in all, it’s a very handy app and I use it regularly for my runs. The software integrates with Google accounts and lets you upload your runs to Google Maps and track statistics via their spreadsheets in Google Docs. And if you’re the sharing type, it also exports your runs through .gpx files .kml files and supports sharing through Twitter.
Main My Tracks spreadsheet
My Tracks summary statistics
i discovered Pytrainer through an entry at another blog. If you’re more inclined to keep your data offline, it might be a better solution for you. In order to use Pytrainer, you’ll have to import your .gpx files from your phone and specify the types of activities you were tracking (running, cycling, etc). In order to get the mapping to work properly, I had to install the gpsbabel package. Once that was set up, I had the option to use either Google Maps or the Open Map Project. The program allows you to enter information about heart rate, calories, and equipment as well, but I didn’t have any of that information available. Gathered statistics are aggregated and can be examined for specified time periods, activities, and athletes.
Uploading a new run into Pytrainer
Mapping my run
Summary statistics in Pytrainer
This doesn’t technically fall into the category of open source, but I feel compelled to add it because it’s actually my preferred tracking solution. Endomondo is a website (with associated Android app) that allows you to track routes with the added benefits of calorie estimation, social integration (such as competitions and commenting/”pep-talks”), and a general smoothness in functionality that the other solutions don’t really reach. It also has a “coach” available and workout playlists, but I don’t make much use of those. Not that I have anything against the functions, but for personal safety reasons, I prefer not to run with headphones.
Endomondo workout imported from My Tracks
After testing out the programs and apps mentioned here, I’ve decided to go with My Tracks and Endomondo. I chose My Tracks because it integrates seamlessly with Google Maps and Docs (I like screwing around with spreadsheets) and because despite looking stripped down and simple, it’s actually excellent at what it does. As for Endomondo: its functions overlap considerably with My Tracks, but the social environment and the excellent website make it very appealing and easy-to-use. The main reason it won out over Pytrainer is because the app takes away any uploading – the second I’m done my workout, it’s available online.