Bicycle Goodies (i.e. Info Porn)

While on my seemingly endless airplane rides, I finished up a first draft of my bicycle reporting app, and made it available at the seemingly random address of http://www.barneyb.com/bicycle/.  ; )  Yes, it's Flex, and yes, I chose that platform of my own volition.  It's still a little rough around the edges, but it's all functional, and I used it to record this morning's ride.  Much better than using the command line MySQL client.  Of primary interest is the graphs of the stats.  I haven't gotten very far into them yet (was having some issues – surprise – getting the charts to work right for the more complex cases), but they're there, and the average speed one has a positive slope (yah me!).

There's a couple "weird" characteristics to the UI, but they have sound backing.  First, the entire UI is modal-free excepting the login form.  I didn't want to be stuck editing something and realize that I hadn't created some related entity and have to cancel out to create it.  I also wanted to be able to view the listings while adding/editing entities, so all the forms show up in tabs along with the listings so you can easily switch back and forth.

Second, the whole UI is publicly available.  I didn't want to build a separate admin area, so the editing UI doubles as the detail view UI.  The "Save" buttons are disabled unless you're logged in, and that's backed up on the server-side, of course.

Last, while not easily apparent, is the security of the authentication without using SSL.  Part of the AS3 Core Lib is MD5 hashing capabilities, so when the password is entered client-side, it gets hashed before sending to the server.  This provided a nice solution to password transmission that didn't require an outward facing self-signed SSL certificate (which isn't very friendly) but also doesn't compromise passwords.

Once I get stuff a little cleaner, I'll post source.  I'm also thinking of making it multi-user, but there are some weird issues (like handling public browsing) that would need to be dealt with.  Time will tell what becomes of it.

I also added contextual ride history to the single-entry pages on my blog.  I'd added it to the listing pages a while ago, but realized that a large percentage of my audience reads my blog via the XML feeds, so they never see the listing pages.  So rides within 24 hours of a given entry will now show up on the single-entry pages.

8 responses to “Bicycle Goodies (i.e. Info Porn)”

  1. Jim Priest

    Neat!! What are you using to collect data? I know some folks who ride motorcycles and grab this kind of info using a GPS… I always thought it would be fun to build something like this to display that kind of stuff… I've looked at those small bike computers as well but don't know if they have any way of exporting the data….

  2. erikv

    Garmin makes a nice GPS cycle computer. Polar makes several that you can sync up with, too, but it doesn't do GPS.

  3. Joe Rinehart

    Hey Barney,

    Thanks for this – I've wanted to hack out an app like this for a while but haven't had the time.

    I use mapMyRide.com (Google maps based) to map out routes – you can create a URL for a given route and make it public (ex: http://www.mapmyride.com/ride/united-states/nc/clayton/408947605). Might be a nice addition to the "Routes" editor/pane, or even a possible Apollo addition with the drop-in HTML control.

    I'll download and install soon – would you want any mods submitted back? I may break down the reporting into different types of rides (mtn. vs. road, etc.).

    -Joe

  4. Matt Williams

    I vote for the multi-user enhancement. This would be sweet for a bike club to have access to. Then that opens the possibility to do mileage, speed, etc. comparisons.

    I'd be happy to contribute too.

  5. bob

    What equipment do you use to record your rides? Is it the Garmin one?