Race Shape for Strava and a Bookmarklet to link them

Race Shape is a nice polished mashup for Strava that allows you to compare efforts on a segment in much greater detail than the Strava interface allows.  It can be very interesting to see how and where your opponents stole time on you in their KOM efforts.

To make it a little easier to use, I whipped up a little bookmarklet (not very well written) that you can add to your Bookmarks toolbar.  When looking at the list of segment efforts in a Strava activity, click the bookmarklet and a little Race Shape icon will appear next to each segment in the list.  You can then just click on that icon to open the segment in Race Shape!

Drag this link to your Bookmarks toolbar to install the bookmarklet: Race Shape

Here’s what it looks like — the icon is pretty subtle…:

The raw code, for those who like such things (or want to fix or improve the bookmarklet):

  while(e.firstChild.className == ‘raceShape’) e.removeChild(e.firstChild);
  var segment=id.match(/-([0-9]+)$/)[1];
  var activity=location.pathname.match(/\/([0-9]+)/)[1];
  var a = window.document.createElement(‘a’);
  var img = window.document.createElement(‘img’);
var e = document.getElementById(‘segment-efforts-table’).getElementsByTagName(‘tr’);
for(var m = 0; m < e.length; m++)
  if(e[m].id) { this.i(e[m].id,e[m].cells[1]); }

My blog hit 100,000 visits a couple of days ago.  Wow…  Thank you for reading!  I don’t know how you find anything interesting in all the twaddle… 😉

4 thoughts on “Race Shape for Strava and a Bookmarklet to link them

  1. Marc, I thought this was a great bit of work. I was inspired to extend your code to the Strava Leaderboard so that I could use the Race Shape analysis of my ride against anyone in a leaderboard (including the “overall”, “my results” and “people I’m following”) leaderboards.

    The resulting code is here on GitHub. I don’t claim to be any kind of Javascript coder so I am sure there is plenty of room for improvement.

    Thanks, Andrew

Leave a Reply

Your email address will not be published. Required fields are marked *