Time to stop talking and start coding

I was in the middle of a lengthy blog post on Java complexity when it hit me: I’ve been opinionating this whole time, with nothing but vague references to my work to back it up. So much for credibility šŸ™‚

Obviously I can’t spill the beans about work, other than in very specific instances of technology use, like I have been. But that is of limited interest. Who really cares what I think about technology X , or that I got in a flame war about Code Coverage? I think more people would be interested in what I’m using for code coverage, how I’m using Spring, or Rails, or Ext or {insert technology x here}.

Something that would be even better would be to document an actual application, one outside of work that I can be completely transparent about.

So…I’m a data geek. I love data, and I love the way it has become so easy to mash up. For me collecting and exposing data is what motivated my early involvement in the project that eventually became a real company. While Evri has a noble mission statement that is applicable to data in general, an itch I have that is not getting scratched right now is the juxtaposition of exercise data with geoloc data in a way that is actually useful to me.

When I strap on my Garmin 305, I want to be able to:

(1) Track my HR, speed and location for any activity that I happen to do outside.

(2) Upload my data, and with little to no extra configuration

(3) View/Pivot on the data in the following ways:

  • I want to be able to view my stats — specifically, how hard am I working over the course? What is my average HR, average pace, average elevation gain, etc, for that run ?
  • I want to see that run/bike/run on the richest map UI possible. Right now that’s Google Earth, tomorrow it might be something else.
  • I want to be able to track those stats over a specific segment of my bike/run/ski. I want to break them out per mile, but also be able to be able to select a segment of my bike/run/ski and view them.
  • If the route I have just run correlates (within an adjustable delta) to a route I have previously run, I want those two to be grouped together.
  • I want to be able to view my progress (or lack thereof) over those routes by graphing the stats over time. If I run course X on week Y, then run it on week Y+1, I want to see how my average HR compares. I want to see how my average pace compares.

That last point was the important one to me. One way to measure fitness is Actual Effort Expended — how hard did I work vs how fast did I go? Ideally, if E = effort and P = pace, you would want E to drop while P increases. In other words you want E/P to go to zero. I might graph it the other way so that it looks good on a graph (going to infinite instead of zero.

Every solution I’ve looked at so far does (1) and (2) above, but they don’t quite do (3). If they do,

(1) they charge you for that kind of calculation.

(2) they make you do the calculation.

First of all, I don’t think that anyone should be charged for that. I think that the ability to mash up and pivot data is very close to being commoditized, and that the cost of that should be underwritten by ads. Additional services, like personal training, should be subscription based. But the ability to view and manipulate your data should be an inalienable right, goddamnit.

Second, I want to be able to view and pivot on this kind of data with little to no effort. I don’t want to do anything more than adjust standard defaults if and only if needed. I don’t want to have to create or update or enter new routes, I want them to emerge from the data. I want my data to tell me when I’m in shape, when I’m out of shape, when I’m having a bad day, when I’ve got a new favorite route, when my route starts to change, etc.

I dont want to think too hard about manipulating my data. I may be a data geek, but I want to have a low to no barrier experience once I upload the data.

Over the next year I want to treat this like a real software project. I want to

  1. determine feasibility
  2. evolve requirements
  3. evolve user scenarios
  4. build a data model that supports those scenarios
  5. start implementing trace route prototypes of the software using things that I want to, and processes I want to.
  6. move the app off of my box to an EC2 stack.
  7. point my friends at it (and make them write their own filters if they use some other kind of GPS).

I want to have some fun, on my own time, with something I might actually use, and sharpen up my total stack skills on the way. Stay tuned fearless reader (even if that fearless reader is the fearless writer šŸ™‚ This one actually excites me.

The first step in the feasibility process is to make sure I can actually parse Garmin 305 data….I’ll update when I get some more details.

5 Responses to Time to stop talking and start coding

  1. arunxjacob says:

    hey, here it is! http://developer.garmin.com/
    when I’m less tired I’ll check this out, apparently they have APIs that enable uploading to sites.

  2. […] I’m not focusing on form, I’m thinking about a problem at work, or the new project. Garmin has done a lot of the heavy lifting to enable uploading to a web site — initial […]

  3. […] I haven’t even started to make progress on my exercise tracking/mapping/etc website, I’m going to have to hold off on this one, maybe put it out there as the carrot that will […]

  4. sallamar says:


    I accidentally stumbled upon this post. I started with similar ideas and goals, and just started Cyclogz to demonstrate some of the features you are talking about. Please try it out and let me know. It does not have all the features you have listed, I would like to evolve it as the users see fit.

    Right now this site is running on a very slow server – so please be gentle. In a few weeks time, this will be upgraded to a dedicated server. If you have any suggestions, please feel to reach me out at the email address on the about page of my blog.

    Subbu Allamaraju

  5. Cool topic Time to stop talking and start coding..
    Yes everything same…less talking more working cheerr

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: