Monday, November 3, 2014


I've implemented the VO2-based load metrics for running and cycling, and they come out well. That is to say, they give slightly lower intensity ratios than the metric-formerly-known-as-training-stress-score does, but definitely comparable and backed by the ACSM as opposed to some bickering types.

I put a good hour into the UI every morning, which has given me a much deeper understanding of AngularJS, as well as the magical workings of for MVC. While I find the former to be a nice upgrade over classic asp in its syntactical simplicity (and of course the obvious upgrade of AJAX over server-side processing), I'm still disenchanted with .net's web platform. I love writing in C#, and with several trips back in to the emergency room to check the health of Java I still believe it's the best language going. I understand what Microsoft is going for with their web platform, though, and to a certain extent it's pretty graceful, so long as you embrace Razor. Razor is nothing more than a latter-day implementation of classic asp, albeit with compilation/strong typing. That's a nice win. If you're content to stay in that world, more power to you. I'm *not* in that world, and see the onus of processing capability on the client, not the server. The server should be blunt, fast, and efficient. The UI can be an ungodly mess, but don't clutter the data. Mix the data layer with the presentation layer and you get...Microsoft. Their MVC implementation is the epitome of convention over configuration. It's all magically name based. Why does FooController map to api\Foo? Well, because it implements Controller and it's named FooController. That's stupid. Microsoft does a lot of catering to rapid development, and this sort of garbage is the same old story they always sell...their out-of-the-box stuff will get you 90% there, but the last 10% that you need to tweak will drive you to madness.

On the UI side, there is no UI, really. It's all really stupid html code from two decades ago, binding from angularJs (which a drunken monkey could get right, really), and styling from bootstrap. I'm fully on board now with NuGet and all the lovely third-party libraries available through it, reminds me of the Python community. I've availed myself of bootstrap, angularjs, jQuery, gcal, underscoreJs, moment, and some other nuggets that I've found useful thus far, saving me loads of work. The wheel rolls, why re-invent it.

I've maybe a few of weeks more of work before it really feels 'done', though it's already in a good state. I've yet to do the analysis charting, and there's some styling work left to do. At that point I'll get a proper site set up (running it on a free server farm at the moment), transfer the domain name over, and get the team on board, as well as a few local friends. We'll kick it in the groin throughout the winter and see if we can't make it something worthwhile. At the very least it looks like it will replace my crusty spreadsheets.

To make it public, it either needs to be free or I'll need to charge for HighCharts. That's $390. There's also the ongoing hosting fees, ~$100 a year. These aren't huge fees, just considerations. There's definitely a way I could cover all of that with advertising, and that's probably the way to go. People loathe paying for stuff online. However, support becomes an issue at some point. That point is nowhere near, though. I hate ads, as well. Perhaps I offer an annual fee that eliminates the ads? Can't see many people signing up for it, but it might make sense.