Tuesday, December 23, 2014

Suunto Movescount outage

Entering day of a complete outage on Suunto's Movescount site, one has to wonder what the heck is going on there? Working in IT as a I do, it's tough to believe fully what's been released publicly, which is that there was database corruption and they need to restore from a backup, because doing so takes a matter of minutes, not days.

Looking back on the twitter account for Movescount, it would appear they have no UAT or testing environment in which to stage releases. This is standard practice, not even 'best' practice. I'm surprised.

I'm doing my best to be a Suunto cheerleader, but this type of event and subsequent response is making it very difficult.

Monday, December 22, 2014

Skiing For Parents, or How I Torched My Legs

Thankfully, the kids are all old enough so that the Mrs. and I decided it was a good year to finally bring skiing to the Fisher family. We committed fully, renting kit for the entire season and buying season passes to the closest decent mountain, where I had skied many a time as a kid myself. Winter weekends with a family of 5 are too much to make it through without an activity that everyone can really get behind - we'd tried ice skating with no real success, and there really wasn't a good alternative than skiing since you can't rely on there being snow on the ground, which would allow sledding, snowball fights, etc.

The oldest one took to it immediately, and was safely turning and stopping within an hour. No worries. The middle one needs a bit of work on slowing down and gaining control, but after a couple of weeks seems like she'll get it no problem after an hour or so of concerted teaching on my part. No confidence issues, just some technical stuff to get through. The littlest one is actually pretty good, but being that he's little it made sense to get something we could control him with - a pair of straps that attach to a chest harness, allowing a parent to 'steer' him from about 10 feet behind. Looks like this (not mine, but a good idea of the image):

The system works pretty well - he gets to ski without me holding him between my legs, but he's still got a safety device so he knows I'm near. The only problem is that it requires the parent to ski a wedge not just for themselves (you can't ski slow any other way really)  but also on behalf of the child's weight, enhanced by the force of the slope and gravity. The short summary - after two runs on the most gradual long trail we could find, Daddy's quads were en fuego. I didn't do the smartest thing by knocking out an interval set on the bike that morning, but regardless....ouch. When I climbed out of the car later that day, it felt just like I had run over 15 miles...clearly very tired legs. It forced my hand on an easy session the next day, but I keep telling myself it all just fits inside a well-planned polarized training plan. Riiight.

Friday, December 12, 2014

Gear Review: Jarv\iGotU POD-30 Foot pod

This is a pretty simple review, which I'm sharing so no one else has to make the same mistake I did. I bought this
from Amazon.

It's *supposed* to be a stride sensor that transmits bluetooth smart data. It pairs with the iPhone, and with my Ambit3, but it transmitted zero data. I changed the battery, and alas, still nothing. I changed the orientation in all imaginable ways, nothing. Calibrated it with the iPhone app. Nothing. It didn't work with the iPhone app either. Nothing. So don't be tricked, it's certainly low cost, but it's a $25 hunk of plastic with a battery in it. Bummer!

Wednesday, December 10, 2014

Gear Review: Suunto Ambit 3

A bit of advanced warning - this will far and away be my longest post to date, so if you're not into reading lengthy and detailed reviews...I'll give you the high level review:

The Suunto Ambit 3 is a beast of a watch, and is now very happily my primary training data device for triathlon.

There. You short winded readers can fall off and leave the rest of the review to the voracious readers out there.

Still here? Wonderful, let's get started for reals this time.

In the beginning....

I've long been a big fan of training and racing data, and it would be fair to say I rely on it to make decisions about how to train. That's not to say I don't rely on feel, but it's not the sole factor. When it comes to my body, I'm a combo of Missouri - show Me! - and Donald Rumsfeld -trust but verify. For a few years, I've been using a Garmin Forerunner 305 with a Garmin foot pod for treadmill and outdoor running, as well as for open water swims. I used a Swimovate Poolsense as a swim lap counter, then recently a Garmin Swim for even more detailed data. Lastly, I use a Powertap Joule for gathering my power data off the bike, faithfully transmitted from my Powertap G3. I don't commonly wear a watch for everyday use. 

I've had beefs with the Garmin components. I didn't like having to wear different watches for different things, and felt that the 305 was enormous size-wise. The upgrade path presented by Garmin - the 910XT - solved the multiple device problem, but I still felt the watch looked ridiculously huge. Suunto's Ambit2 and Ambit3 presented an interesting alternative. The watch looks much more like a regular watch, but with all of the same capabilities of the 910XT. As I was deciding to move toward Suunto, the Garmin 920XT was released, which cemented the choice for me in the Ambit3, for two main reasons - 1) The 920XT looks more ridiculous to me than the 910XT did, which is no small feat, and 2) Comparing the features between the 920XT and Ambit3, I didn't feel that the additional cost of the 920XT was warranted by the price difference. The one hangup I had was with the Ambit3 being Bluetooth Smart *only*, but I'll cover why I moved past that later on.


We start with a box:

And we find a watch, blue as it is.

Also the heart rate strap and charger:

The heart rate strap device is small, at least smaller than I'm used to. I have large-ish hands, but nonetheless, here's a decent approximation of the size:

Size-wise, it's bigger than most wristwatches, but not as bulky as my old 305, nor as bulky as a 910XT, which I've tried on before. Putting it on, it's immediately apparent this watch is of very high quality - the back of it seems to weight itself into place on your wrist, and the silicone material the watch band and chassis are made of feels sleek, flexible, and durable. I found myself saying out loud that the watch is well made, and have heard the same comment from others when they check it out\try it on. It's also...blue. Its blueness is mostly a mixup, and one I initially recoiled from (eh? not black??), but I've come around on. If you plan on wearing this as your everyday time piece, depending on your workplace it may cause some awkward stares. In my case, I kinda like being a little different here and there, and the blueness starts a conversation (what the heck is THAT? is usually how it starts), which I like engaging in. Here's how it looks on my wrist (the cut across the front is the partially removed plastic covering, nothing cracked!)

I also found the watch doesn't cause uncomfortable sweating underneath the band or body, which is a dramatic change from what I previously had, either with fabric straps or rubber\silicone straps. I get the feeling a lot of thought went into the physical footprint of the design, not just the insides. With that though, let's start playing.


 I appreciate the little things, like covering up the USB charge cable from dust and stuff. Attention to detail:

I'm not exactly a luddite, but I pretty quickly figured out what each of the marked buttons can do, and the on-screen highlighting is clear as to what happens next. I tried very hard to steer clear of the manual completely and get a sense of how naturally I could navigate the features. Happily, it's quite easy. As with anything, I started by charging it fully (which wasn't necessary, as it arrived at 50% battery).

It took 2 hours to charge to 100%, which extrapolates to 4 hours to charge from dead. That's not a short amount of time at all, but considering that the battery will last up to 8 hours in 1-second GPS mode and 150 hours in watch mode, I think it's fine. After a couple of weeks, I charged it only twice, using it daily.

The Quick Start manual is just that - and it's pretty quick. You pick a language, decide whether or not to pair to the Movescount app on your mobile phone (which of course you do and takes about 2 minutes), choose metric or imperial units, and go. The Movescount app itself I'll cover later on, but quickly, it allows you to sync your data from the watch and also to control the myriad user settings. 

I didn't figure out right away that holding down each button for a few seconds resulted in a different mode, but eventually it clicked and I found I was able to navigate easily and intuitively. This is of course in comparison to the ultra-confusing menu tree in the Garmin world, where even the lowly Swim crippled my brain. I felt instant relief.

In use - Running

Selecting Start >Exercise>Running, and the watch asks if you'd like to pair your heart rate monitor. You say "Yes" or "Later" and it follows instructions. Simple. Now the big unveil...will it find a satellite or will it leave me waiting on the side of the road for 2 minutes? Gang, it found a satellite in less than 5 seconds. The second time I ran from the same start location, it was nearly instant. This, to me, is one of the strongest features - the GPS acquisition is amazing. It also has yet to have me run 400 meters into the ocean before finding my way back on shore - meaning it's also apparently accurate, which my 305 wasn't all the time. 

I went for a nice run and found that the pace display was rounded to 5 second chunks, which I felt was nicer to look at than choppier data I was used to. The View button allows me to cycle through a variable display, all of which can be customized in every imaginable way through the Movescount app. You get a 'Main' data field, with a smaller header field, and a scrollable footer field. Like Alice's Restaurant, you can get anything you want.

Indoors, I had high hopes after hearing I wouldn't need a foot pod on the treadmill. Alas, this proved not to be the case. On a known, calibrated treadmill, my pace was overestimated by 1:00 per mile in the beginning of my workout, fluctuating erratically at first and then wildly near the end. I found after multiple trials that it did a pretty decent job of figuring my pace in the 8:00-9:00 minute per mile range, but anything faster or slower it couldn't figure out. This isn't too surprising once I thought about it though - my particular gait is such that my arms don't move differently the faster I go, I just apply more force as I push off on each stride. As such, my arm movement - and the accelerometer-tracked motion in the watch that would be used to gauge pace - can't really be a good predictor of pace. Cheers for trying!

There's not many Bluetooth foot pods out there, unfortunately. I ordered an Adidas miCoach off eBay and learned after getting it that it was NOT Bluetooth (they make two kinds, difficult to tell which you're getting, I got Ant+, didn't try again). I next tried the iGotU/Jarv POD-30. That paired, but didn't work. At all. It didn't work with its own application on the iPhone either. Utter piece of shit, and one I'll be asking for a refund on. Next up I'm ordering the Adidas miCoach directly from Adidas so I know it's definitely BTLE.  I'd love to shed more gear, but I much prefer accurate data than bad data, so my treadmill workouts will have to continue with a foot pod. Given the long winters we have in Connecticut, this was a big requirement for me. A large portion of my training is done on the treadmill.

In use - Swimming

My first trip to the pool with the watch was semi-successful, in that it did capture my workout, but it didn't do it in the way I thought it was. If you're not planning on examining the data at a future date, then it's really pretty great, in that you never need to hit the lap or start/stop button, you just swim and the watch detects when your swimming and when you're not, and only displays your lap time when you're swimming. Pretty neat. However, it's a terror to look at after the fact in Movescount. Movescount thought I swam backstroke as often as I did freestyle and made a hash of distances. I also couldn't intuitively figure out how to go into drill mode.

To be fair, swimming watches are *all* pretty finicky, and all they reliably do without messing up horribly is counting laps, which it did accurately, albeit in a way I'm not used to seeing - it shows total distance, not lap count. Confusingly, you can trigger an "Interval" with the "Lap" button, if you want to record a specific sequence. I had to hit the manual to figure out where the drill mode was accessed after the fact, and also learned while I was in there that it's best to 'teach' the Ambit3 your stroke. On my second trip to the pool armed with this knowledge, everything worked great, and the Movescount-altered display made a lot better reading.

It bears mention that Suunto now offer heart rate tracking for swimming. This is potentially some really interesting stuff, particularly when it comes to estimating training load and recovery for swimming, which is really not very well understood. The general consensus on swim training is nebulous - swim around 6000 yards a week to maintain, more to improve, but how much more and how to achieve that aren't nearly as well postulated as biking and running, where there is much study on how to mix slow distance and high intensity training. Heart rate allows us to approach the data from a VO2 perspective in a way we couldn't before. I'm personally intrigued with the idea of playing with different existing formulas to see what works for training, and incorporating it into my plan.

Unfortunately, I won't be able to swim in the open water with the watch for several months unless I unexpectedly travel to warmer climes. I'd love to stop keeping my 305 in my swim cap, and I'm hoping to find the GPS tracking is as good as advertised.

In use - Skiing

Before going for a ski with my family one weekend, I added 'Alpine Skiing' as a sport mode on the watch and hit record as I did the one run of the day without my 4-year old between my legs. I didn't feel like looking at it while I was skiing, but afterwards I saw it captured speed and GPS, but not much else to be interested in. If I were a competitive skier I could see speed being important, but for hacking around with my family on the weekends, I can't see that I'll bother recording again. I can say the GPS altitude tracking was within 10 feet of what was written on the sign at the peak, though. The Sport model has a GPS, not barometric altimeter, so for this to be close as it was is good.

In use - Biking?

I'd like to do a review of how well the Ambit3 paired to my power meter, but of course...it doesn't. My power meter - and many, many, many others - transmits Ant+, not Bluetooth Smart. Of course, GPS works just fine for speed and elevation data, so I did take the bike out on the road for a ride anyway. Not surprisingly, everything went great. It worked solely off of GPS data, but picked off speed correctly, as it did with running. Again, the satellite acquisition was near-instant.

You might think I'm bumming on not having power data on the watch...but I'm not. It's winter here, and will be for a long time, so as much as I'd like to think I'm riding outside all the time, I'm not. And so I don't care at all about my power meter and the Ambit3. Really. Here's why:

Bluetooth Smart - really?

Justifiably, a lot of folks are going to ask why Suunto moved away from Ant+ data transmission and towards Bluetooth Smart. The simplest answer is because every other industry other than the fitness industry had already moved to Bluetooth, and specifically mobile phones. The future is here, and it's long been Bluetooth. It matters to triathletes, though, because all our gear has been Ant+ based. Help! Actually, it's not quite as big a deal as one would be led to believe. On the run, your only sunk cost in Ant+ would be a foot pod, if you even have one. That's not a deal breaker, and if you wanted to sell it and replace it with a Bluetooth Smart-compatible foot pod, you can do that. On the swim, there's no gear to replace, in fact you *gain* the only underwater heart rate monitor currently on the market. All that's left is the bike.

Unless you have a Stages power meter, which already transmits Bluetooth concurrently with Ant+, you probably have an Ant+ power meter, or no power meter, in which case this isn't a big deal at all. Powertap (Saris, that is) have redesigned their power meters to allow for swappable caps, meaning your hub-based core power meter stays put, and you simply swap out the cap for a Bluetooth one, as opposed to an Ant+ one, for about $130. That's not cheap, but it's hardly a new power meter. If you have any other power meter (currently, that is - Polar\Look are supposedly coming out with a new BT power meter soon), it's only transmitting Ant+. However....I propose that you don't care, and here's why: you probably already have something to record that data and it isn't on your wrist.  If you're like me, you use your power meter on the trainer with some sort of third party software, be it Trainerroad,  Golden Cheetah, MaximumTrainer, etc. That data is being picked up via a USB stick on your computer just fine right now. If you're using a Computrainer, the power data isn't coming from your power meter anyway, it's being calculated off the trainer itself. *Off* the trainer, I submit that if you're actively looking at your watch for power data while you're riding, you're going to crash some day. Your wrist simply isn't ever in a good position to be read off of while you're riding. So shame on you. Your watch can *record* the data, but displaying it? Meh, there are better solutions. You might have a Garmin 500, or 800, or a Joule, or something along those lines, where the display is somewhere you can look at it. If you're using a bike mount for your watch, I feel bad for you, it's just one more thing to fidget with in transition for no reason. Again, personally I don't pay much attention to the granular detail of my race data. I'm concerned with whether the swim was long or short so I can correctly determine my swim pace, but the bike and run are measured accurately, and so long as I know I held my power numbers, there aren't any nuggets for me in race data. Training data is different, but again-  I have all of that data. So it really doesn't matter to me whether my bike can talk to my watch yet. Of course, your opinion may be different.


Movescount is Suunto's web-based application for viewing, publishing, and analyzing your training data. I think it bears mention in this review because of the obvious connection between the Ambit3 and the mobile version of the app. On the mobile version, you don't get anywhere near the feature count you do on the full online version, it's more pared down to allow you to change settings on the device and quickly confirm that your latest 'move' (Suunto's term for a workout) has synced successfully. Not that I mind, I don't think the size of a mobile phone lends itself to even semi-serious data analysis, and I can't imagine anyone -even an ultra-busy coach - doing their work on a mobile phone. That said, the Movescount online version is enormously feature rich. It's quite colorful and incredibly detailed. Here's an example view of a ride I imported:

This site in my opinion actually elevates the Suunto family above its competitors, mainly Garmin. Garmin's Connect site always felt too illogical to me, and even with the 'Modern' update they've done, it doesn't seem to be quite right, mostly due to strange navigation. The emphasis in Connect is more on custom display, and less on getting to your data.

When it comes to getting data in and out of Suunto, I think it falls down a bit though. You can export individual moves, but it doesn't always make sense format wise. For instance, with the above ride, I can only export to Excel or .fit format, not .tcx. A bit strange. On the import side, Suunto has missed the ball completely, in that there is no official Suunto way to import *anything*. I don't understand the point of that. They do point you towards a third-party tool called MXActivityMover, but it's not a very solid application at all. MXActivityMover is not an official Suunto app, so the fact that it doesn't work correctly (you can't import a tcx file, you can only import a Garmin file from Garmin Connect? Huh?) doesn't bear directly on Suunto, but it's odd that Movescount doesn't have its own import function. This was surprising.

As a developer, I had a poke around and was able to find a very well composed web API running behind Movescount, so I reached out to Suunto to see if I could acquire an app key (like a password, unique to a developer\application) to try to use it. Several weeks passed before I was ultimately told no.

I think being able to easily get your data in and out of Movescount is a big point, and I'd love to see Suunto open up the usage of the API to anyone and everyone, especially since their main competition in the space - Garmin Connect - sees fit to charge $5000 for an API key (although it bears mention, so long as you pass a valid user name and password to Garmin, you can freely access their API over the web without issue, as done by such sync sites as Tapiriik). Strava can be linked directly from Movescount, as can MapMyFitness and others, but it's mystifying why the list should stop. Hopefully Suunto addresses this gap moving forward.

The lack of access to the API is especially surprising when you look at the other huge feature of Movescount, which is the ability to write custom 'apps' that can be synced onto the Ambit3. There's a wide array of apps from the ridiculous (including Beers Burned!) to the important (VO2, TSS, et al), and any of them can be shown on your watch with a few simple key strokes. To that extent, the amount of features on the watch is truly limitless. For instance, although I really like the total distance display while swimming, I quickly put together an app that shows me my lap count in a 25y pool. Handy? Not sure, but it made me feel good.


The look and feel of the Suunto Ambit 3 are in my experience unmatched. Feature wise, it holds court with the current competition -the 920XT - extremely well. The features where it loses ground:
  • No vibration
  • No walk mode
  • No Ant+ compatibility
  • No pre-loaded workouts
  • No running dynamics (vertical oscillation, ground contact)
Where it gains ground on the 920XT:
  • Satellite acquisition speed
  • Stability with Mobile App
  • Movescount
  • Customer Support
The Ant+ compatibility, at least today, will matter a lot to people, and that's a very valid concern. I would have loved to see a dual Ant+\Bluetooth solution offered, which would have been amazing, but I'm sure there's an engineering cost there that was too great to overcome. Suunto for now offers the Ambit2 as a solution for the Ant+ folks, but you don't get the mobile interaction that's really quite sexy. In my opinion, running dynamics aren't tremendously valuable, but over time I could be proven wrong as more data is collected and analyzed, so I'm not sure that even belongs on the list. I left off the Altimeter functions, because if you want it you can get the Peak model (as opposed to the Sport reviewed here) for $100. If you need an altimeter worthy of a mountain climber, you're more than 'just' a triathlete, though, and outside my ability to review.

I'll update this review as information changes, or as I figure more things out. I've tried to be comprehensive while steering clear of being a user manual, because that isn't really what a review should do. I hope you find this review helpful!

Monday, December 1, 2014

Busy bee

I haven't posted in quite a while, but I'm painfully close to being done with the site. There are some sync issues with Garmin that cause the run load to be under-calculated, and some of the charts aren't quite right yet, but they'll be worked out by the end of the week I suspect. The site performance has been awful in debug mode, hoping it will be better when I relocate it to its permanent home.

I've had the Suunto Ambit3 now for a week and I've yet to do a swim with it, the last piece of the puzzle for now in doing a review. Hopefully I'll make it over to the pool tonight.

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 asp.net 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.

Thursday, October 9, 2014

Correlation between VO2 and watts between cycling and running

Using these formulae from the American College of Sports Medicine (ACSM):


VO2 (mL . kg-1 . min-1) = (0.2 . S) + (0.9 . S . G) + 3.5 mL. kg-1.min-1

Leg Cycling

VO2 (mL . kg-1 . min-1) = 1.8(work rate) / (BM) + 3.5 mL. kg-1.min-1+ 3.5 mL. kg-1.min-1

To compare the two, I had a snoop around to see if there was any agreement on a standardized model for watts produced running. There isn't. The best I found was from this conversation amongst well-informed men, and ran with Chung's assumption of a 23.9% efficiency rate, to which I simply plug into a well established calorie formula:
METs = VO2/3.5
METs * kg= kCal per hour
joules\cal = 4.18
EnergyOut = (kCal\hr * 4.18 * .239)
Energy out/3600 *1000 = watts

I noticed immediately when plugging my own snails pace and rhinoceros weight in that my wattage, at least by this calculation, matches my bike FTP nearly to the watt. Sure enough, when returned into the ACSM formulae, my VO2 levels were nearly identical. Obviously, the efficiency part is a big variable. If I want a 1:1 efficiency rate, then 23% works for me. I like round numbers, but it's just a plug. Anyway...
What does this mean? There's a lot of dismissive chatter on training based on VO2Max, and I get the point. I've read several studies now that show VO2Max (assuming it's measured accurately and not estimated, which is one hell of an assumption in some of these studies) doesn't change in elite athletes, and hardly changes at all in amateur athletes. This would support Noakes' work that there exists a 'central governor' wholly different from the supposed 'VO2Max' level. The works aren't as radically different as one would think though; Noakes doesn't reject VO2, just the concept of there being a 'Max', suggesting it's more likely a function of other factors, notably muscle composition and neurological factors. However it's hard to dismiss training without some respect to VO2, if for no other reason than it includes a variable for weight that is absent otherwise. I've personally trained my VO2 tolerance higher and higher, without knowing (or caring) what my 'Max' level was. If elite athletes have been measured with a VO2Max level above 70 l/min, that would at least suggest to me there's a lot of work left to be done for us dopes mucking around in the high 40s and low 50s. Lots of training anecdotes line up with this model as well; If I play with the inputs, 5 pounds equates to 10 seconds of pace in running, which we've all heard before via 1 pound = 2 seconds. If I plug in some of my teammates FTPs and paces, the model correctly guesses their weights. When I put in my peak cycling FTP, I also get the run pace I managed to hold 'magically' one particular race, even though I hadn't been running any more or less leading up to it. I'd simply been riding more. 
So I'm going to proceed with modeling workouts for now not based on TSS, but based on time spent at VO2 levels. I'll make the 'Max' level nothing more than the observed best. If your best 10K run put you at a VO2 of 51.5 l/min and you weighed 170 pounds at the time, then I would expect your corresponding bike FTP to be right around 310 (the formula produces 312, but I measure my FTP in increments of 5, as most do).
There has to be some function for time decay, however, as well as age. Riegel's formula for predicting run times in on the right track for decay, and for age I've been using these for age and gender.
I have nothing for swimming yet, and from my research so far, nobody else does either. It's hard to measure much of anything while swimming (even now, optical heart rate monitors are *just* becoming available for underwater usage at a consumer level), so it seems the science hasn't caught up. I've been using your best 800 yard pace as a proxy, basing percentages off that, and it seems to be a pretty good measure, at least as a predictive tool. I've tested it out on several of my teammates over ~30 different races at different times, and the results have been promisingly close to reality. 
At the end of the day, I'm digging at all of this because TSS seems so inherently flawed. If you need permission to use math, it probably isn't math, it's a marketing term. If you work out and produce a TSS of 90 or 91 - or even 85 or 95, it doesn't mean anything on its own. It has to be looked at as a function of time, and even then, it's only an indication that you might be over- or under-training. It doesn't appear to have an upper bound, because there is no system of debit and credit, you simply accumulate more and more TSS over time. I've seen suggestions that it might have an *optimal* upper bound of 250, but that number suggests it's impossible that any age grouper could finish an ultra distance race in less than 10 hours, when of course we observe otherwise. 
What I'm coming around to is that we are really only training three central things - our ability to create power, our ability to tolerate the toll it takes, and how quickly we recover. That's not just about lactic acid, or VO2Max, or muscle composition, or psychology, or neurology, or heart rate...it's about all of those things. For what I'm seeing, VO2 as a scale does a very good job of linking together performance and prediction across sports. If your last race result put you at 80% of your *best* VO2 at the time, and you manage to raise your VO2 in training since then (including all of the factors that go into it, including the ones you can't directly measure), then you're by definition faster. Whether you did it by tolerating pain better, doing drugs (I'm not condoning this, just saying...), or whatever, it comes out in VO2, of which you can reverse the math to find the pace. 

Monday, October 6, 2014

Poll results

I asked the good folks over at BeginnerTriathlete.com to participate in a survey to get an initial idea of what I need to cover to entice a good number of athletes into the application, and I managed to get 35 responses. Pretty good sample.

89% said they collect training data via a Garmin, or something else.
70% use a garmin, 21% use trainerRoad, 12% use Computrainer, 9% use a Timex (surprising, I didn't realize *anyone* did). Only one used a Suunto. 
30% use Garmin Connect, 37% use spreadsheets, 23% use TrainingPeaks and 23% use BT's features. 

Responses were fully across the board on whether people choose to race with their device, from No to always.

83% said they would switch applications.

The most important considerations to consider in a training planner:
Ease of use
Detailed Analysis
Compatibility with mobile device
Web-based interface
Social networking
Seamless data syncing (ie to Garmin Connect, Strava, uploading and downloading)
Interesting stuff all said. I tried to kick the hornets nest on the forum regarding the Detailed Analysis answer, and it seems like evangelism is going to be a key requirement to getting it accepted.  Keeping it simple and cheap, and linking to everything is going to be key.

Wednesday, October 1, 2014

Skiba on board?

I've just received word from Physfarm, the holding company for Dr. Philip Skiba, that the GOVSS, SwimScore, and BikeScore formulae are freely available for use. Huzzah! I find these to be excellent and highly credible alternatives to TSS et al, and look forward to integrating them. I've put out feelers to other model authors as well, hopefully we get a consortium, which lends a great deal of credibility to what I'm putting out there.

*update - now, last I heard is that if it's a commercial venture, they want money. That's easy, no. I don't plan to renumerate the Einstein family if I happen to cite the theory of relativity, and the Supreme Court agrees with me. Math is not patentable, and therefore not subject to fee. You can sue me for trademark infringement if I use your trademark in a way that damages your brand, but that's about it. Considering I was planning to endorse the brand and work with the author, that's a far-fetched claim I doubt would make it out of any counselors initial session.

I've since had some far more sane conversation with some lesser known but more engaged researchers, who have been collectively confirming my sneaking suspicion that none of the models do a heap of good. They tell you essentially to go, slow down, or stop. They don't tell you if you're getting any faster, if anything they can't - that part is held constant. In fact if your ability to stand training load increases, you're encouraged to re-baseline. It all makes sense of course - these models are based on elite athlete performance - there's simply not a lot left to gain! All they need is a sound plan (provided by a good coach, not software), good nutrition, and then these kind of models that tell them with some prognostication when they might be at their best to perform. And that's not what I want to accomplish. I'd like to help non-elite athletes improve, and do it based on data. That's a different goal. Thinking Red-Yellow-Green might just be all that's needed. The uncontested models such as TRIMP, VDOT, and the one I stumbled unwittingly on for swimming are more than enough to guide someone through a traffic light. That's not the meat of what I want to offer!

Tuesday, September 30, 2014

Models and whatnot

I'm gaining momentum down the slippery slope of developing the application at this point. To date:

  •  I've registered a domain
  • worked out the code for the API
  • built the database model
  • started mocking up the UI
  • figured out how to tie the web app to a mobile app (hooray for phonegap!)
  • tapped into strava and mapmyfitness
  • made contact with Suunto
  • tied in the handicap system code
The difficult piece I'm wrestling with is how to make this simple for athletes. The concepts are a little more complex than what the average athlete would be interested in. The target user:
  • Is an active athlete, participating in any of swim, bike, and run
  • Trains often - at least 3 times a week
  • Has a data collection device, ie Garmin, Powertap, etc.
  • Doesn't have, want, or can't afford a coach
  • Wants to improve using quantitative planning
I saw once (and now can't find) that TrainingPeaks said they have 500,000 users - which sounds like a lot, but I suspect is inflated substantially by the number of free accounts that were started and not actively used, duplicated accounts created by coaches for athletes, etc. I'll aim really small - 5,000 users. That would be a sustaining amount of users from which the site could easily stay afloat and be a full time pursuit, allowing changes and improvements to be made over time to enhance the experience.

The user experience should be quick and easy:
  • Create a trial account
  • Enter the amount of time in hours they want to train a week
  • Import data from Strava, MapMyFitness, or ideally Garmin\Suunto\Polar, etc. 
    • note- there should be a very easy and current How-to on syncing data into Strava and MapMyFitness to allow this to be done using the free providers

  • From the data, gather their FTPs, with the ability to override
  • Create a work week: create days, roughly at first, with the ability to fine tune.
  • Create a schedule of work weeks 
  • See where their work will lead them over time

That's it. The extensions come from being able to create work weeks - linking to authors, coaches, etc who can help them build workouts. Guest workouts. Group workouts. Tracking friends. Entering race reports. The Handicap system host. Sync to calendars. 

I'd like to provide options - set at a user level - for which models people use for calculating their training levels. The Coggan model is one, the Skiba enhancements are another, Bannister is another, etc. Why not let people pick? I have long suspected the decay factor in CTL and ATL in the WKO+ model is too aggressive (42 days to complete evaporation, 7 days for acute gain) for decay functions, and I have experienced that less aggressively. I'm not in a position to call any of the models out, but it seems like they are variables, and should be treated as such. 

Friday, September 26, 2014

Suunto, Garmin, and Polar, oh my!

Being a bit of a nerd, I'm more data driven when it comes to decisions and time management, and how I sort out my training is no different. Last season I cooked up a spreadsheet that allowed me to 'assign' myself training weeks based on TSS, and track my actual results accordingly. I used the same TSS calculation that Dr. Andrew Coggan uses, as well as my own variant for Run and Swim TSS. The prescribed training load was based on hour segments at 70% of critical power\pace, and I rolled a PMC (Performance Management Chart) that showed actual vs expected. It all worked pretty well, I must say. I used it as I prepared for my first ultra distance (I've lately come to loathe WTC, so I won't use any 'metal' terms for the distance) and found it did an accurate job of representing my fatigue and form, as well as quantifying the gains I made. Sort of a poor man's Training Peaks, really. Well, no, that's exactly what it was. There aren't many features I left out.

I'm preparing for another training season and jumped into the world of data collection devices to see what, if anything, has changed since last year at this time when I last looked. For training, I use a Garmin Forerunner 305, a Swimovate Poolmate, and TrainerRoad. I could also collect data with the Powertap Joule, but it would be redundant to TrainerRoad. My wishlist is simple, really; I want to collect data directly into the spreadsheet automatically. I'm a developer by trade, and have no issues turning the spreadsheet into an application, but the 'collect data directly' bit is something I'm on the hunt for. So what's out there?


Above the 305 I already have, Garmin offer the 310XT and 910XT, as well as the Garmin Swim. The 310XT is effectively the same as the 305 for my purposes - the only thing it offers me I don't already have is the ability to capture power data into Garmin Connect. That isn't worth anything to me - I can import anything I need out of TrainerRoad and into either CycleOps' PowerAgent or Golden Cheetah if I need to get medieval on any data. The 910XT is interesting to me, but really only for two features; one is major, and that's the swim capability. It does everything the Swim does, as well as the second, open water swim tracking. However, if I'm perfectly honest I don't care that much about the open water swim metrics, because I don't\won't wear a watch in the water on race day. Period. I'm not going to look at it while I'm swimming, and my splits are whatever the results say they are. So to that end, I can continue using the 305 for tracking open water swims just fine (Ray at dcrainmaker.com perfectly explains this here, so I won't repeat any of it). Since I'm already being perfectly honest, that means the only thing I'm really looking at the 910XT for is what the Garmin Swim does. Compare the Swim ($149 MSRP) vs the 910XT ($399 MSRP) and it isn't even close.

From a data perspective though, things here are good, but not great. The Garmin Connect site on its own is great, but in order to get my own data off the site, I have to either
1) export it, then import to my spreadsheet\app
2) sync it to Strava, then connect to Strava's api to get it
3) pay $5000 to get an api from Garmin to do it all in one fell swoop.

I've had a poke at Strava, and while it's a stop on the highway that I want to exist between my application and Garmin Connect, it will work. Garmin now offers automatic synchronization with Strava whenever you sync a new activity, or if you create a manual activity (like a swim if I don't have a Garmin Swim, or weights, etc), you can use tapiriik.com to sync everything. I consider that a solution. One way or another I'll have to upload my  tcx files to *something*, so if it's Strava or Garmin Connect (or both in this case), it's fine to me.

Suunto's main offerings aimed at me are the Ambit2, 2s, and 3. The 3 is not compatible with Ant+, which is what almost all power meters, heart rate monitors, foot pods, etc communicate on. To me, this was a ludicrous choice, but one they made regardless. At that price, I'm not interested in going Bluetooth, but I would be at a lower price. For now, that leaves the 2 and 2s. The 2s only has one strike against it - battery life of 7 hours on 1 second GPS collection. To me, that's not a dealbreaker. If I ever do an ultra distance, I won't race on the bike with the watch regardless - you simply can't comfortably or safely monitor the watch while riding in aero. So I'll continue to use my Joule, meaning unless I run a 7 hour marathon, I really don't care. The 2s also has a slightly smaller profile, which appeals to me.

Again from a data perspective, we're not great. Actually, we're not even good. After poking around on Movesconnect (Suunto's answer to Garmin Connect):
1) Exporting data doesn't appear to work for manual entries
2) sync to Strava only works for synchronized activities, and even then only for GPS activities *
3) I have had no response on usage of their api.  I was told I can't use the api. Bummer.
4) I discovered the only way to import tcx files that don't come from Garmin (like TrainerRoad!) is to import them to Garmin and then use some flimsy third party tool to import to Movescount.

* This matters to me because I swim in a pool for 7-8 months of the year. If I can't get that data, it's useless.

IF I hear from Suunto that I can use their API, this gets categorized to great, because I won't have to deal with Strava, which would be a pit stop tool.  If I don't hear from them, then this is a deal breaker, because I wouldn't be able to get my data for any of my swims.  The site doesn't export or import reliably, and that's the entire point for me - access to data. For my development purposes, data is the entire point,  and I need to be able to get it out. It's a shame, because I think the Suunto watch looks great, has great reviews for what it does, and could have been a solution. I think the Ambit 2S hangs directly with the 910xt on nearly every count, and trades punches on the things it doesn't.


Oh, how I'd hoped this was something I could love. But between being another BlueTooth only device and having less than Garmin-quality satellite reception (I didn't think you could get worse....) this one is a non starter. Oh, and they haven't even enabled power meters or open water swim data collection yet. Really? Stunning. Also, Polar's web site is an absolute toy.

The 910XT and Swim from Garmin really look like the  best options for me. I don't need either the bike features for the 910XT nor the run stuff, I have better solutions there, and the only thing it offers me is having them all in one place. With a lighter wallet, no less. So it's the Garmin Swim. *Update* Since I first wrote this the 920XT is official, and officially $500. Yikes. There are a lot of things in it, and it has a great slim form factor, but it's wicked expensive to replace what I have. If anything, it validates the Swim purchase. I also think it's interesting that the 920 'introduces' third party apps, although Suunto has had these for years. I still wish I could get at that data!!! The 305 I have is now 3 years old and still works flawlessly, even if it takes a couple minutes to find a satellite. It IS after all, a training tool, though. I can afford to wait. The data from race day is to me, the least important data of all. It's a recital, not an audition. The decisions one makes on race day shouldn't be data driven. The data can't make or break you, it's too late. You know what to do, you do your best, you go home.

It looks like I subsidize my purchase with the sale of the Poolmate on eBay, so I can ultimately get one for around $80 of new cash all said and done. I'd love to see Garmin open their API up to individuals over time, but considering they JUST closed it, I can't see that happening. Maybe they will acquiesce, though, who knows. That they are now open to Strava is a positive, however. ConnectStats was\is an application that was set down this route, but wasn't planning on data warehousing as I was, so they were more reliant on Strava as a store, which I couldn't care about.

I'll continue developing the application as a web app, and if it gets snappy I'll consider publishing it as an iPhone app. The only issue then would be going head to head with TrainingPeaks, but I'm nowhere near that point yet.

Sunday, September 14, 2014

Race Report: HITS Hunter half iron

I got up at 4:30 for a 7:00 am start, had my packet already, just needed to get there (15 min away, I stayed locally) and set up. I downed a protein bar and a Clif bar with some Gatorade, vowing not to eat again until the race to give my stomach a break. I'd also eaten an early and light dinner of a sandwich the night before, really didn't want GI Joe showing up uninvited.

It was a frosty 42 degrees at transition, and I mulled around in jeans and a hoodie to stay warm. I gave the power meter one last try to pair to the Joule, but it seems I was out of batteries on the PowerTap and it wasn't going to happen. Bummer, so much for the power plan, have to ride on feel. I'd seen the course by car the day before and knew it was pretty much down a screamer, then up the same, which I'm used to on the commute course to work. I felt like if I kept it going hard on the downhills, I could pace the rollers and ascents fine.

Swim time! The water was comparably warm, and perfect for racing. The RD (a great guy) led a prayer on the beach, and off we went. I had what felt like a 90% great swim, there were a couple of points where I lost form, but I gained it back. We lost probably a good 2 minutes on the funkiness of the course - get out after the first lap, run down the beach and go back in navigating over some nasty large and jagged rocks. Once swimming, all is well. Popped out and heard 9th out...which was great. Granted, this was a small field, but I knew I had swam well. A guy who had been tickling my feet the whole time thanked me and commented how powerful my kick was, and thought that was a great swim time. Again, I'll take it! Thanks buddy, way to hang behind that two beater! Up the hill and over the mat, I put the swim at about 30 minutes less the weirdness, which is perfect. The buddy's watch confirmed the pace later. Sweet!

Arm warmers on and dried off as much as possible to prepare for a freezefest. I was concerned that I hadn't been able to find my flat kit and was just praying nothing would flat or my day would be over. Fortunately, no bad luck. However, it was COLD. And then the wind started. Oh the wind. It blew in your face on the way up the starter hill, to the side on the way down it, then in your face again (what?) on the way back up. The side wind made me chuck my plan to hammer on the way down, it just didn't feel stable enough. I passed and then was passed by the eventual 2nd place finisher, and given the wind I didn't feel I could chase him down without burning matches I didn't have for the run. I really wanted to nail the run to the wall. I hunted down a rider in Plattsville town, and chatted with him a bunch, another benefit of a lonely ride - no refs. He had the same plan, nail the run. Nice guy. We finished the bike within seconds of each other and left for the run. His brother shouted at him to run a 1:25, which I fessed up immediately was not in my wheelhouse. I told him to take off.

OK, so the run. I couldn't feel my feet, but fine, who cares. I started out. The plan was to relax - sing some Bon Iver to myself, and keep my pace low to start - around 8:30 to 9:00 even. Assuming I could settle in and not freak, start increasing the pace at 1 to 1.5 miles and then lay it down. What can I say, I did just that. I stopped at each aid station for flat coke, but quickly. A whizz at about mile 8 to notr be distracted. A brief, :30 walk over a very rocky portion of the short foot trail to not risk twisting a foot or aggravating an ITB. Other than that....I did it. My best half mary on a HIM, a 1:49. Deep bow. I coasted in what I thought was 7th overall, found out the next day it was 6th. Won my age group handily.

Again, not a deep field, but I know it was a solid effort. In a deeper field I would still have done well, not won the age group, but podiumed in it, no flukes. The run was the key. Was it because I didn't burn too many matches on the bike? Eh, not sure. I definitely took it easy on the bike to be conservative to the wind. I'm capable of better on the bike, but the balance in the performance has to be key. If I keep my bike fitness up, race weight down, and fight to maintain what I have in the other two, I will do well at this distance. I don't have a lot to improve on the swim or run, I don't have the physique or time for it. But I can destroy on the bike, and need to race accordingly. The longer the distance, the more I have to simply hold on the run, not chase people down. Shorter distances will be harder for me because I can't swim as fast. I have a feeling I'm going to plan next year's schedule around longer distances only. They are very fulfilling and speak to my strengths more.

A great way to end the season!

Thursday, September 4, 2014

Great diagram

This was too awesome not to post. My giant quads, calves, and ass break down why I insist I'm not a fast cyclist, I'm just genetically predisposed to being strong on the bike! If I worked as hard as a *real* cyclist, I could get scary!

Tuesday, September 2, 2014

Race Report: South Salem Biathlon

This race is usually the last of my season, but this year I have one more on the 13th. It's an unaffiliated, quirky race put on by friends and attended by friends, within riding distance from the house. The race centers around a roughly half mile hill at about a 9% grade - you get to bike it then run it. The rest of the bike course is highly technical and punchy, albeit short, and the run is no picnic at 4 miles including that hill and a few others. Like I said, quirky. There's an award for KOH (hill) that I was hoping for, as well as a an overall podium.

A humid day, but not oppressively so, things started out just fine. I found my way up to the front relatively. A 16 year old had taken a big gamble and jumped onto the climb and was pounding away, about a third of the way up when I started the climb. He was clearly going to summit first, but I felt I could still be in contention as his climb time could very well be the same as mine, he could have just reached the bottom faster. I put in a very solid climb and was overtaken at the timing mat on the summit - a sneaky maneuver, but a solid play nonetheless. I hadn't seen him as he climbed off my right shoulder and I was peeked off my left. Chapeau. It turned out the kid had ripped up the hill and bested both of us by :30.

All 140 pounds of him soaking wet I figured wouldn't get the job done on the descents as well as I could, so I set to hammering away. I caught the sneak who had clearly burned a few too many matches and held on to his tire for a bit, figuring to blast past him to crush some dreams on a combo of bits at the back end of the course unless he faded completely. Everything fell apart quite literally though on a 90 degree left over slick road, as I fishtailed out and dumped. I managed to spill without injury to myself or the bike, save for having to get the chain back on, but I knew it was essentially over at that point, as a few others passed by while I recovered. I got back on to finish the ride, but I was pretty upset with my luck.

I came into transition and saw I now in 7th. I didn't exactly sprint through transition, but my mind was elsewhere, I started the run without going over the mats. A few people yelled at me and I went back and did the duty, but if there was any question before, it was gone now. I made it about half a mile before my anger seethed me into a walk. I was already on brick legs, and with my asshat, I just couldn't do it. I didn't pull my head out my ass for about another mile, when I finally ran again and came in strong, simply laughing to myself that it was the only way back to my bike.

I cheered in a friend and rode home, disappointed. It's been a wacky season. I'm intolerant of mistakes, and I've made a lot this year. I'll learn from them, but they sting nonetheless. I'm lucky I wasn't hurt in the crash but there was a more conservative way to take that corner and I didn't. I need to keep the bikes up better, with newer tires and lower psi I might not have slipped, and I was ginger on the rear brake when I should have been on both. No excuse for not running harder, but I didn't feel like putting myself in a coffin just for appearances' sake. My goal was the OA, and I was out, so I took myself out. Better luck next time.

Wednesday, August 27, 2014

Triathlon Handicap System™

Triathlon is a challenging sport that would benefit from a more effective way to measure results.

I really like triathlon. I like swimming, biking, and running, I like training, I like improving, learning, stumbling and getting up again, races, venues...almost everything about it. I love bringing people into the sport, and I equally love helping those already in it to improve and hopefully love it more.

What I don't like about triathlon is how, by its results system is currently viewed, most of the participants walk away from a race feeling they aren't very good at it. I'm talking of course about the age group awards system, meaning that the top 3 finishers in each 5 year age group are recognized post race, awarded with something, and gain bragging rights if so they choose (and most do). To 'podium' is generally considered doing well, and to 'not podium' means to not do well. Age groupers will sometimes bemoan their involvement in the sport by saying 'I'll never podium', as if to suggest that somehow their effort is recognizably less than others and they accept that.

I have a problem with that. Triathlon - at any level - is hard. It takes a lot of time, money, dedication and athleticism to finish one at any distance. I want to help grow the sport and grow the enjoyment of it for those involved. I look at other sports for a model; a hard sport to play that has millions of happy amateurs at all levels...golf. Golf's wonder is the handicapping system. A 30 year old who just started playing the game can play a round with a 70 year old who's been playing for years, and the field is absolutely leveled by the handicaps. Both walk off with the simple pronunciation of hitting over or under par, and a story of how that was arrived at for the day. Sure, there are 'scratch' golfers, but they *alone* compete for top prizes in competition. Those players don't enter the conversation unless an amateur player is seeking a coach, or offered in amazement as a pinnacle of achievement, a sight to behold in awe. So why can't this work for triathlon?

Golf counts your strokes over or under "par", which is a number of strokes assigned to a course by the sum of the hole lengths. Additionally, a course has a "slope", rating how difficult the course is beyond simple par. Reason being, the length of the hole may dictate the par, but reaching par may be more challenging given terrain, hazards, or other conditions. Comparing this to triathlons is fairly direct - certain factors, such as elevation, road conditions, water type (fresh vs salt) apply to 'course slope'. However, 'par' is a tough concept. You can take a golf hole and say it should take 4 strokes (a drive, an approach, and two putts) to reach the hole, but how do you estimate a triathlon?

If you compare to a professional, you're chasing a moving target, literally. What year did the pro attempt the race? What were the conditions that day? What was the competition? What level of training were they at? Do you average all pro performance over time? What if a pro has never raced the course you're on, or not enough pros have raced the course to provide a statistically significant average? I propose an alternative.

In running, there are generally accepted tables that compare the world record pace at a given distance adjusted for age and gender. Really, there are, take a look. This lovely table says take your best time at a distance and compare it to the record, then apply a discount for your age. For instance, a 30 year old female that runs a 10K in 45 minutes would sort out to  (1820 seconds * .9997) / (2700 seconds or 45 minutes) = 67.39%. So that puts you in the 67th percentile. If you were to run faster, you'd move to a higher percentile. Given that discount, one can also use the generally accepted formula to extrapolate expected run times given another run time, where T2 = T1 * (d2/d1)^1.06, where T1 and d1 represent T pace 1 and distance 1, and T2 represent pace 2 and distance 2, respectively.

Similarly in biking, the generally accepted model is to compare FTP, or functional threshold power - the amount of watts you can output for an hour. Given an FTP and several other inputs, such as gradient,  weight, drag, and rolling resistance, you can arrive at a velocity, which when applied to distance provides an expected time. Likewise in swimming, you can compare swim paces at a given distance and reasonably extrapolate a time from a set of inputs.

So how do you level the playing field? I've developed a program that takes inputs such as your FTP, 5K best, average 800yard swim pace, and other static information about the course and athlete, and produces an 'expected time'. There's par. If you finish within 1% of par, you raced at par. For every percent above or below, you pick up or lose a stroke (floored, meaning if you were 1.1% faster than par, that's 2 below par). I'm going to go about incorporating this into a web-based widget and API that anyone can use.

The same program can also of course take inputs from a theoretical athlete - for instance, the best overall athlete from USAT AG nationals - and be used on an annual basis to provide handicaps. For example, if the theoretical athlete finished the USAT National sprint course in X, and your model suggests a time of 1.1X, your handicap is 10 for the year. I can imagine a world where athletes talk excitedly after a race by saying, "I'm a 14 handicap and I raced 2 under par today - my best result yet!".

I also see this being something you could use in a fantasy setting - create teams of the same number of players (now regardless of gender or age!) and add the combined over\under par across a season of racing.

All of these ideas are intended to grow the sport and people's involvement in it.

Friday, August 22, 2014

Review: TruSox

I found myself shaking my head as I realized I was writing a review about socks. Really? What characteristics are there to socks? Fit, warmth, comfort came to mind. But then you start to break through on the thought of a sock and realize there's a lot more going on there than gets paid attention to. For instance, there's moisture retention, heat dissipation, chafing, blisters, fit....you know come to think of it, socks are pretty important. If I don't wear them - as I usually don't for sprints, 20% of the time I will come away with a blister. I discovered Wright socks last year as a go-to solution for preventing blisters, and I hadn't thought about socks since. If I wasn't getting a blister, that was great.

Along come TruSox. These guys think socks. The premise of the idea is that your socks are slipping around inside your shoe, and you're losing grip and expending unnecessary energy because of it. They look a lot like slippers:

The simplest way to summarize my first run in them? They WORK. It felt like the easiest run I've been on, but I was moving. I was worried they were going to be hot, but they were not. I'm pretty amazed by this pair of socks. They were all over the place in the latest World Cup, and I get why. They cost about half as much as a pair of shoes, but they WORK. You need these socks!!

Monday, August 18, 2014

Race Report: TriFitness Norwalk Sprint

Got up around 4 for a 6:45 transition area shutdown, planning to get there at 5:45. Had a half hour ride, plus some time to pick up my buddy in town, who was going as well. Warmup was nothing special, some quick sprints up and down the sidewalk, fit test in the water with the wetsuit to get acclimated, but nothing deep. I've been wary of overdoing the warmup of late, after the cramp\tear experience in June and subsequent training.

Settled into a smooth stroke right off the bat, sighting often and staying long as I've been doing in training. The higher my turnover lately, the worse my stroke, but if I keep those points in mind, everything gets good quickly. I moved into the back of the front pack and stayed long, as others started to fade I kept moving up. Zero issues today. Could I have gone a little faster? Yes, but I was so in need of a solid swim performance this year, I just stayed in rhythm and let it go, a comfortable, all day pace of 1:35\100 yd. Hopped out, unzipped and got on the bike ready to lay it down.

Solid bike, stayed right at FTP the whole time as planned - an 11 mile bike, figured the transition would give me the recovery. Made one bad turn (overshot a right turn and had to go through a gas station), which probably cost maybe 5 seconds. Surprisingly I ended up with not the best, but the second best split on the day, behind the overall winner who I didn't know, a very strong female rider. It's not often I get caught on the bike, and it's a first for a female, and on a roadie no less. That's some serious speed, I tip my cap!

Being a sprint, I was redlining pretty hard setting out the run, and held on to a 7:20 pace as long as I could, which turned out to be a mile, at which point I had to settle down for 50 yards before setting out again at a lower pace. At this point I was in 2nd overall as far as I knew, as I hadn't seen any women yet. I burned a lot of matches on the bike and the transition was not enough recovery, and I was paying for it. 3rd OA came up and hung with me a bit before motoring on - I wasn't going to get him - and I saw the two women leaders, including a friend, an ex ITU pro. The one in front was looking very strong and was clearly going to pass me, and in some quick calculation I figured out I was out of the top 3 at this point and wasn't going to get it back....going for the AG win. The course afforded me a long look at the competition and I was several minutes ahead of any in the group, so I stayed easy and finished well within myself. Handily took the AG and sixth overall! My best AG finish to date, albeit in a sparsely attended race, but a win is a win.

Even more good stuff, my buddy surprised himself with a personal best and took home his first podium finish, which elated him enormously. Great to see the sport take root in a good friend!

If I'd dialed it back a tad on the bike I could have run a bit stronger, but it's a trade I won't make. I can make up too much time on a bike that I can give back on the run. The only thing I can do is what I have been - get the bike as dominant as possible and continue to increase my bike threshold to give myself more cushion to get to my run pace with matches to burn. Swim is building well towards Hunter, I'll continue the build for the next 3 weeks and be at peak.

Monday, July 28, 2014

Swimming again

Went for another lunchtime swim in the Sound (right, how nice is THAT to be able to do?) and the work from a pool session translated over immediately. A much more even stroke rate, better head position, and I settled in to my rhythm immediately. I was pushing from the chest, kicking a nice 6 beater, and pulling from my back. I still felt like I was doing a few things wrong - my left arm pull wasn't on the rails, and I wasn't finishing well on either side - but these are things I feel in the pool as well, and that means I'm finally getting past the badness. I'll keep up with the pool sessions. As much as I know the open water swimming practice helps, it's not enough 'work', and I lose some of the awareness of my form and muscle sensitivity when I don't swim in the clinical confines of the pool.

Had a very powerful ride on the trainer yesterday as well, that side of things has been wonderful to me this year. Good, consistent power, and my HR doesn't get out of the mid 150s when I ride at 110% FTP\Z5, which is right where it should be. I'm scratching at 300 for the first time, and while it isn't any easier, I can stand it a lot longer.

Off to vacation this weekend, looking ahead to some long, flat runs in the wee hours on the beach. Can't imagine I'll swim there, and most likely I won't be riding either, but we might bring the bikes. Tough, because Thing 1 doesn't have a bike right now, his was passed to Thing 3. Thing 2 is alright still, but she'll need a new one next year.

Tuesday, July 22, 2014

Lousy race swim

I had a sub par swim in a sprint this past Sunday - in the initial scrum, I got my hands kicked down several times by a hyper pair of feet I couldn't seem to get around, and I lost my cool...started a high turnover stroke, which for me is utter crap. I need a long and steady stroke to settle in, around 55 strokes per minute. I KNOW this, but for some reason I have a tendency lately to forget it completely in a race. I trigger the tempo by getting Bon Iver's "Perth" in my head, which is both calming (it's a very nice song) and impossible to sing too fast.

I went out for a lunch swim today and swam the first quarter mile...heart rate soared, anxiety set in. I was swimming like crap. Fortunately, this was exactly what happened on Sunday. I stopped and settled down.
I started swimming again, slower stroke rate. Bang, there it was. It was a completely different stroke. Like having two swimmers in my body, one that sucks and one that doesn't. Frustrating. This is the effect of not enough time in the pool.

Thursday, July 17, 2014


I've worn an LG Chrono helmet for a couple of seasons now, and I've reached a point with it. I *believe* it saves time because I've read that an aero helmet saves you time. It's a belief though, because the same things I've read say how much time it saves is highly dependent on position and how much it changes. In other words, if I have a great aero position on a great aero bike, a good aero helmet will save me some drag over a regular road helmet. However, if I look down and the tail of said helmet goes up, the drag increases. Likewise, if I'm on the pursuit bars and not the aero bars, everything changes again.

A colleague of mine said of aerodynamics, "they rarely do what common sense tells you they will". I've seen that hold up - toroidal farings are apparently more aerodynamic that conical farings, shaving leg hair saves up to 15W, and on and on. I have NOT seen specific aero data for helmets, because who is wearing it and what position they are in changes things.

Anecdotally, I know my tri bike is faster - with all else held constant - than my road bike, and quite a bit so. In a recent 4 mile time trial, the difference between bikes was 30 seconds. I attribute most of that to position, meaning I can *get* in a better aero position aboard the tri bike than I can in the drops on the road bike. I've done similar trials swapping helmets and while there is a difference, it's nowhere near as big.

My issue with the helmet - I don't disbelieve the evidence, but it looks ridiculous:
The only person I've ever seen make it look good is Mirinda Carfrae, but she could make anything look good:

It looks stupid. Really stupid. Not the stupidest:
And not the funniest:
but I'm done with this juju. This weekend will be the last that I sport the Chrono, I'm moving to something less stupid looking:
I'm definitely opting for the visor-less version, because then we're back in stupid land again. I'm sure the 5 seconds I'll lose over 56 mile courses due to not having a flare behind my head will bother me not at all.

Monday, June 23, 2014

Race Report:Mighty Moss Half Iron

I wasn't sure what to expect coming into this race, both because I wasn't sure my calf would hold up after ripping it up a few weeks ago, and because I'd lost fitness accordingly not being able to do much of anything since the injury. I hadn't put nearly any time in the water, and I knew my swim was not going to be very good. I decided on a plan to swim VERY easy, bike to where I felt like I was going strong but not chunking the run, and do whatever I could on the run, being sensitive to my calf. Thankfully, everything went according to plan.

I swam well within myself, not worried about time at all, just being steady. I was deeply paranoid about cramps, and started very wide to give myself clear water. The first half mile went by without issue, but I was chafing on the neck, so I stopped for a moment to fix the velcro. I really didn't care about time! Once fixed, I felt like it was time to give it a better go, and swam a bit harder to finish off. Coming out of the water, I heard several comments that the course was long, some said 1.4, another said 1.3. The RD said it measured 1.2 even from triangle to triangle, which means I was a dope for swimming the second turn with the sighting buoys to my right unnecessarily (well, that WAS the instruction, but it wasn't a requirement!), probably added the additional 200m. I came out of the water feeling absolutely fine, so I counted it as a victory.

I rode strong, but not hard, focusing on keeping my power around 80-85%. I still didn't trust my calf, despite a couple of good rides. The first 16 miles are a steady climb, followed by rolling hills, a few longer climbs, then the descent back the same way. I passed my way to my 'normal' slot near the front and stayed true, picking the riders I was matched with and pacing accordingly. The calf felt ok, but my quads were starting to bark. Eh, that's a half for you.

Came into transition, slapped on the shoes, belt and visor, off we go. I ran fine for the first mile or so, but could tell there were some cramps trying to bubble out. I took the conservative route and switch to a walk :30\run 5 plan, which I did for most of the run, save for the last mile, which I ran through. It wasn't a great run, but I stayed focused despite not having my legs beneath me. I never fully cramped, which I'm happy with, but I also feel like I was digging as far down as I had in me that day. Psychologically, I knew it was a hard day for everyone - I knew from the bike turnaround and from a quick count in transition I was roughly in the 20s overall coming off the bike, and I was passed by a few on the run, but nothing crushing - all confirmed at the end to find I was 29th overall. The surprise was I also managed 3rd in the age group, which was a little tough to stomach.

My overall time was slower than last year by over 15 minutes, of which almost all was the swim. The takeaways are nothing groundbreaking - I need to put in the time swimming to have a good split. Duh, I'm actually happy I didn't try to go harder than I was capable of. Riding, I don't have any lessons, I was nervous about pushing harder and aggravating the injury, and my split was strong regardless. Fully healthy, I would easily have turned in a better ride. Running - I don't think I made the wrong choice about how I ran. Without the time off I *probably* would have been able to run the whole time, but it's so hard to say. Halfs are NOT easy. I'll try again next year (maybe even this year if I can find one that makes sense for me) and keep trying to improve. Last year I lost focus on the run and mailed it in for the last 6 miles, which I didn't come close to this time. I'm proud of this one, I gave it everything I had.

Wednesday, June 18, 2014

The Self Examined Swimmer Part III:

Be Excellent To Each Other, and Party On, Dude

Quick recap. If you’re here, you've hopefully read Part I and Part II of the series, leaving you with both a revelation (that you’re a swimmer, and not a hack) and a plateau (you’re good! But you don’t think you’re excellent). So we sit on the plateau.

The view is nice here. Heck, I could sit here happily. From here, I swim well, certainly well enough that I would never dare say my swim hurts my chances at performing well in a race. There are many excellent triathletes that win regularly who sit on this plateau with us. Again, nice view. I’ll share a story while we bask in the view.

If you've never had the pleasure of a deep water start to a race, I’d recommend seeking one out. They’re unique, in that when the gun goes off, there’s some decent spacing between the athletes already, and the washing machine effect is somewhat mitigated, allowing everyone to slip into a more natural rhythm and have a better swim. At one particular deep water start I was in, we all fanned out across the ‘line’ (it’s all kind of imaginary in the water, and nobody can stop you if you cross the line early anyway, it’s on your honor), and awaited the horn. Jokes were made about the cold water and mysterious warm pockets, whether or not we lubed properly, etc. All was well in the triathlon universe. The horn sounds and off we go. Normally I’ll sight every 10 or so strokes, and dutifully did so at about that time. I came up to peek and saw several swimmers about 50 yards ahead. I’m not exaggerating to make the story better, this was shocking – we started swimming about 20 seconds earlier and they were FAR ahead of me. A glance to my left and right on the next sight assured me I wasn't towing an anchor – I was in the front of the middle, but these dudes were porpoises disguised in neoprene and swim caps. How the heck were they doing that?

Well after the race I reviewed the splits of the day and cordoned off the top 10 or so guys in the wave I witnessed firsthand. For a 1500 meter swim (Olympic distance), the average porpoise swam just about 21 minutes. Not too shabby. That’s roughly a 1:17\100 yard pace. Leave current out of the conversation, and for the sake of argument let’s user the rule of thumb that a wetsuit gives you a 5 second per 100 yard advantage. Five seconds off 1:17 is 1:22 per 100 yards. Hey wait, that’s almost you, the article reader! But truth time, with the occasional sighting issues that pop up, that pace is probably even faster in reality. Why the heck did they go out so fast? What’s going on here?

Back to the porpoises. They were way out in front, seemingly almost immediately. There is, of course, only one way to pull that off, and that’s to swim fast right from the get go. This is where we use ourselves as a science project again. HOW FAST IS FAST? Good question, if you ask me. If you jump in the pool and I told you to swim your absolute fastest, what would happen? What distance would you ask to swim? 25? 50? Would you give me a blazing length followed by a flagging second, then stop after 50? Would you go 100 yards? Would your turnover per length increase, or just the tempo? Why does any of this matter anyway?

Again, back to the porpoises. Let’s figure this out using SCIENCE, bitches.

In a pool, imagine a dude who swims 240 yards in 3:00, or a 1:10\100 yard pace. That’s damn good. Why 240? Just go with me here. Then the dude swims 28 laps at a 1:25\100 pace. A little more down to earth. We've just watched the dude swim 1640 (aka 1500 meters – I told you to stay with me!) yards in a total time of 22:30. Slap the imaginary wetsuit on this dude for the 5 second per 100 yard discount for a total time discount of 1:23…and he swam 1500 in a hair over 21 minutes. Ladies and gentlemen, your porpoise, in the lab.

Why the sprint to start off? Well, because quite frankly, this isn't the only thing you’ll be doing in a race. You want an average pace that’s fast, but you don’t want to swim the majority of the distance at that pace, or you’ll zap yourself for the bike and run. Self examination time again. How do you train yourself to do this? The 28 laps at 1:25\100 isn't a problem, you do that all the time. You have that locked in, it’s automatic, you know that pace, you have that song stuck in your head forever. If you swim a few times a week you should be able to do that easy peasy. Lemon. Squeezy. So your challenge is to
  1. Go from a dead stop, warmed up heart rate to a 1:10\100 yard pace
  2. Hold said pace for 4 laps (200 yards)
  3. In one lap gradually slow down to 1:25\100 laps
  4. Hold that pace for 14 laps.

Oh right, Bill and Ted. I promised this is about being excellent. Well, guess what, you are excellent. No, really! You have a beautiful stroke, a truly nice stroke. There’s only two things in the equation for how fast you’re swimming, and that’s distance per stroke (DPS) and stroke rate. You've done some really excellent work on DPS, so much so that it’s worth simplifying your life again and realizing that the only way you’re going to swim that 1:10\100 pace is to increase the number of strokes. That’s it. You’re going to have to push the same amount of water faster while kicking faster to keep the timing right. If you want to get better at something, you practice it.

Get that video camera out, because you will probably lose some of that beautiful graceful stroke when you start increasing your stroke and kick rate. Don’t. Just increase the rate. You could use a Finis Tempo Trainer to increase that rate, you could use a waterproof ipod and songs with a particular tempo, be creative. What you’re getting used to is your ‘top gear’, eventually to the point where you can call on it and your body will hit that tempo because it knows the feel of it. It feels GOOD to go fast, but you have to learn what it feels like and get comfortable with it. It’s not a comfortable feeling to swim that fast, but you have to get comfortable with it. Make sense? All those swim workouts you have that have interval sets on T plus 5 seconds suddenly make a whole lot of sense. Swim practice is now making sure you keep that beautiful form (yay video camera!) and getting used to a high stroke rate, and the sensation of coming out of it.
A disclaimer – this “gear” will disappear completely without regular, focused workouts to keep it in place. If you haven’t been practicing it, don’t call on it for race day, you’ll just exhaust yourself off the bat and have a bad swim. Just swim your balanced pace, and enjoy the view again.

Party on, indeed. You’re excellent,dude.