If you race on iRacing.com, then you can use iStatistician to chart your performance over time.
Until the release of v2.7, iStatistician was horribly broken for a couple of weeks. Sorry if you were one of the affectees. Briefly, iStatistician reads your driving record straight from the iRacing.com website, and since iRacing.com was re-organised fairly extensively a couple of weeks ago in the inter-season break, my app was looking for all sorts of information in all the wrong places.
Unfortunately, there’s not a lot I can do to protect against this kind of occasional breakage, without talking to the iRacing.com team to get access to some kind of test environment so that I can upgrade iStatistician ahead of any major breaking releases. Obviously, there’s no guarantee they’d be up for that, and also, I’m not sure having two weeks warning (say) would actually mean I’d find the time to make the necessary modifications in time for a website upgrade :-).
While iStatistician has its fair share of horrible, crufty, brittle web scraping code, there are also a few nice elements I should write up at some point. It’s a WPF app running on the user’s machine, using NHibernate over a SQL Server Compact Edition database for persistent storage. There’s some use of LINQ over the domain model, and a nice charting API (with bitmap export, zooming scrolling, etc.) that’s quite LINQ-friendly too, and moderately reusable.
All that’s below the surface though, I guess. The whole point is that you can generate charts like the one below, which tells me that while I have been improving just a little over time, Sunday at 11:15pm is not the best time for me to race. Apparently.