eagerfeet blog

The blog of the eagerfeet website, which allows you to export your GPS run data from Nike+.

Jan 12

Alphanumeric User IDs Finally Working

I have finally implemented some changes to make it possible for people whose user IDs are not purely numerical to use the site. If your Nike URL contains something like 4ac5d135-7700-41c3-b54c-9478f412d051 (I made that up, that’s not an actual user ID), the site used to partially match one of the numbers and then complain that it can’t find the user. This now works.

There will be more changes over the next few weeks, and I will have to take the site down every now and again when I need to make changes to the server. If you see erratic behavior on the site, please try to shift-reload the page and then try again. That should fix any issues with cached scripts that may have been changed in the meantime.


Sep 29

Precision Errors, fixed

I just fixed a problem that caused exported files to have low precision in the latitude and longitude values, due to the way they were stored in the database. This is now fixed.

If you have exported a run using the new version of the site (i.e., the one with the black bar across the top) before 1pm EDT on September 29, you should export that run again. The lower precision will lead to the totals and your splits being off, and it may lead to some problems with programs that think that some of the waypoints contain the exact same coordinates (i.e., it looks like you were standing still).

This does not impact any files that were exported using the old version of the site, and all files you export going forward will be correct.


Sep 27

New Look, Faster Site!

Welcome to EagerFeet 2.0! The site not only looks different, it’s also much better engineered and much faster. If it doesn’t look different, you might need to hit the Reload button in your browser.

The changes to the interface will hopefully make the site more pleasant to use, and make it easier to expand it further in the future. But the big change is in the backend: it now only loads your list of runs initially, and then shows you the runs while it’s loading the data in the background. This is much faster, and you can start downloading the data of your newer runs while the older ones are still loading. This will cut down the wait especially for those of you with hundreds of runs, but it will be noticeably faster for everybody.

Also, once your runs have been loaded, they are now cached on the EagerFeet server, so no more waiting for Nike! This not only means that you only have to wait for Nike for runs that have never been downloaded before, it also makes some of the future features possible that I’m planning for the site. More on that soon.

Now that the groundwork is done, the next feature is RunKeeper integration, which will let you import runs into RunKeeper with a single click (GPX export is not going away though, no worries).


Sep 18

About the recent problems

Over the last two weeks, there have been lots of issues with people’s runs not loading when they entered their data. I first suspected a bug, because I had made a few changes behind the scenes, but the explanation is unfortunately a problem with Nike: their servers are incredibly slow. That’s a problem because it’s not something I can easily fix on my end, and it causes timeouts in my code and in the communication with your browser.

One thing I can do, and that is close to being ready, is loading less data initially. This will make the site a lot more responsive and less prone to problems due to Nike, but it also makes a few things a lot more complicated. I hope to have the new code ready within the next week or so.

For now, the solution has been to make some changes on the server as well as the client to make them more patient. Unfortunately, that also means you will have to be more patient, as it will take several minutes for many users to load the data. This is especially true for those of you with lots of runs. If you have more than about 100 runs with GPS data, you might still run into timeouts (the “server is down” message). If you see this, please wait a few more minutes and then try again. In most cases, this should work.

I apologize for the issues and hope that my stopgap solution will tide you over for the next week or so. Things will get more responsive soon. Also, if you’re a RunKeeper user, you will soon be able to directly transfer your data without downloading and uploading again. More on that when that’s ready, which should be before the end of this month.


May 24

Making the site more useful for power users

I have noticed that people seem to come back regularly to update runs they’ve logged with the Nike+ app but want to see in RunKeeper (or whatever other site they’re using). This was not my original idea about how the site would be used, I figured it would mostly be a one-off for people switching over completely.

In response to that, I’m trying to make the site more efficient to use for repeat users. One thing I just implemented is that the site will now remember your user ID for 90 days. This happens entirely on the client side, by setting a cookie in your browser. The advantage is that you now only need to hit the Submit button, and no longer have to paste in your user ID or URL (as long as you return at least every three months).

The next feature will be to remember the last run a user has seen and only request the data for more recent ones. This will make loading much faster, especially for people with lots of runs, because a lot less data will need to be requested from Nike. Since it makes little sense to export the same runs over and over, this should address a common use case. It will of course be possible to request data for older runs, and first-time users will get all their runs returned right away.

Just as with the user ID, this will be done in a cookie, so no clear-text user ID or run ID will be stored on the server.

I hope that these small changes will be useful to repeat users. More advanced features are also planned, but more on those later. Let me know if there’s anything else that would improve the service.


May 23

Aaaaand we’re back!

This was a bit faster than expected: EagerFeet is live again! Go and try it out, especially if you’re a SportWatch user. Let me know if you run into any issues!

The reason for being coy earlier was that the Nike servers were throwing inexplicable errors. It turns out that they like to report errors when there’s some kind of timeout, so now the program will retry getting GPS data when it’s sure that it’s there, despite error message from Nike. The way it can tell that is that there is a GPX ID in the data, which is only there when there’s also GPS data.

The retries should take care of Nike’s flakiness, but if you’re still getting the “No GPX Data” message and you’re sure it’s there, please try again after an hour or so. It seems that the servers sometimes get overwhelmed, but a little time later they’re responsive again.

Now that this issue is fixed, on to more features! I will talk about what’s planned for the future in another posting in a day or so.


Slight delay, but things are moving

This is taking a bit longer than expected, but that is more due to my lack of time on the weekend than Nike+. It took me some time to figure out how to get to the data, but fortunately they only put in a little roadblock, nothing major. My main fear was that I would need to do full-fledged authentication and require passwords, which I really do not want to do.

The good news is that I am now able to access SportWatch data as well, which I was not able to do before. This will take a few more days, but I’m confident that the site will be back up by the end of this week.

Sorry for the delay, and please stay tuned.


May 18

EagerFeet currently down

The eagerfeet site is currently down, because Nike is apparently changing its API (i.e., the way applications talk to its servers). I am working on restoring the service, and hope to have that completed by the weekend (May 22).

Going forward, this blog will be the place for status updates and announcements about new features. I have quite a few things in the pipeline, but it will take some time to get all of them implemented.

If you are a Tumblr user, you can follow this blog on your dashboard. Otherwise, use the RSS feed at the top in your favorite feed reader.

Also, feel free to post comments below. I will try to answer questions as best as I can.