Wednesday, February 21, 2024

Monstercross '24 - My Annual Blog Post

 This year was the 13th running of Monster Cross, and I've now officially participated in more than half of them! I had a whole great big long intro planned for this post, but then I re-read last year's post and tbh it was gonna be pretty similar, so let's lay out the season-to-date.

Just like in 2023's race, I hadn't done any racing since the 2nd Sorry Honey CX race in mid-September. Weird coincidence that was at least driven by weather this time, and not a months-long recovery from injury. But my fall season, while full of rides, was not an effective training season. It was just a mix of MTB rides, which I've really started to enjoy by finally having a good bike (more on that later?), and trainer rides. I finally realized, after 3 years of struggling with chilblains, that my feel cannot tolerate cold road rides.

But on December 1 I did the first of several Zwift fondos and decided to kick my training back into purpose. With a focus on volume and Z2, I pushed my hours up to ~12/week and held there thru early February.

Along the way, I learned about W' and added it to my data screens when dual-recording Zwift rides, and when I did push to big watts it became invaluable in knowing when to push on and when to conserve. Seriously: learn about W'. It's an absolute game-changer for racing, and I have a power meter coming for my mountain bike so I can be more precise with my efforts there, too.

Then came the annual New Year's Day not-a-race, which gave me my first opportunity to see if my training had paid off, and I've never felt fresher after ~80 miles, even if my feet were out of commission for a week afterward.

The Tour de Zwift further sharpened the stick, but I started running the risk of not training to 3 hours consistently.

The last piece of the puzzle for me was having spent very little time on the gravel/cx bike since September. The new mountain bike is *SO MUCH BETTER* than the old one that I really prefer it to riding gravel. So I forced myself to make weekend jaunts to Pocahontas State Park and put in hot laps. Since part of the official course is only open on race day, most folks either opt for a "training course" lap that starts & stops in the main lot, or the Monsterkarst Strava segment, which covers the same ground but starts at a more convenient trail hub.

Monsterkarst became my gold standard, and 1 week before race day I put in a lap that is currently 4th overall on the segment, over a minute faster than my previous best from the year before. I guess that meant I was ready.

So with aero skis on my CX bike, a power meter and W', 50 hours of volume in January alone, and a forcibly-imposed taper, I felt as prepped as I could be for a COLD day on the bike.

And it was cold. The warmup was the coldest riding I've done in months, with 2 jackets and pants over my tights. I kept all of that on until the last possible moment, and then by an absolute confluence of luck found myself at the start line right as folks were starting to assemble.

10 minutes of standing around later, and a shuffle forward that saw me pushed back to about the 6th row, and we were off! Last year I did not grid well, and while my position was far better this year, it was still going to be work to get to the front.

Just like last year, the leaders pounced from the gun, and even where I was--maybe 50th--there were already dudes gumming up the works by 1 mile into the race.


You can see it right there in the first chart: 30s Power. A big saggy dip from 0:02 - 0:04. And just like last year, that meant jumping through traffic and bridging repeatedly for the next several miles. Each peak on that chart represents catching one group and jumping to the next, and each time you can see the W' balance dropping on the bottom chart: I was burning matches quickly. But I was also VERY close to the front--by the time we turned onto the trail paralleling Beach Rd they were no more than 50' ahead.

But the surges kept taking me to groups that were getting dropped--nobody else was moving forward. So coming through that last turn I was really hopeful to have made it, but the 3 guys I caught were, predictably, getting shunted off the back. So I watched the leaders ride away and focused on recovering. We were still moving pretty well, and nobody was catching from behind, and maybe most importantly, we were picking off others who were either dropped or had mechanicals.

Also as with last year, the aero bars come with the curse of expectation: nobody wants to work when you could just get aero and do it all. I was doing a whole lot of work, along Beach Rd, down thru & up from the dam, and onto the road section, until an e-bike came rolling through and picked up the mantle. We held his wheel thru the first 2-way zone and up toward the road crossing toward the campsites until his chain dropped, and then the 4 of us were alone again through the entire north side of the course.

We came through start/finish in under 1:27:00, making it just possible that I might achieve the goal that had eluded me since 2017: a sub 3-hour finish!

I'd managed an extremely lucky parking spot where I could leave a bottle on my bike rack without exiting the course, and at the beginning of lap 2 I stopped just long enough to swap bottles. Two of the riders in our group rode on, but backed off enough that a quick trip to the skis brought them back before we even left the pavement. A pair of other riders caught us up soon after, and then an extremely fast racer dragged us for a mile or so before we gave up chasing him.

But once he was gone, it was back to being glued to the front.

Every stinking year I do other people's work sitting out there in the wind, but I also really wanted that 3-hour finish, so I didn't waste any time waiting for folks to decide to work.

The 2nd lap run along Beach Rd I don't think I came off the front once. But I also didn't really vary my effort and focused on recovering W' balance for the dam & north side.

We lost a rider along the way, possibly at the dam climb, but then Sneaky Dave caught us up on his rigid mountain bike, and at least there was a small amount of rotation on the road section.

As Sneaky Dave is 60, I'm in my late 40's, and our 3rd was a junior, I strongly suggested that we just work together and keep things smooth. They seemed to be willing...so long as I was on the front. I'm really not exaggerating when I say I was probably on the front for 20 miles of that lap. Fully 80%.

But at least they weren't attacking, and while I didn't feel great, I wasn't cramping. I was remembering to drink. I had forced myself to eat when I didn't want to. Cramps have undone my race several times, and I wasn't having it this time.

We got back to the north side and caught a small cadre of riders at about 43 miles. Our group of 3 briefly became a group of 7, and then the junior attacked. Literally no reason to do so: nobody in our group was racing him, and there could not possibly have been more than 15-20 riders ahead, and by this point there was no possibility of catching the front group. No point. Sneaky Dave and I both cried foul, but I dutifully got on the skis and limited his damage to ~10 seconds and held him there until the Monsterkarst trail hub, where he inexplicably tried to make a wrong turn and came to a full stop. MAYBE NEXT TIME DON'T ATTACK THE GROUP.

We bombed down the final trails as a group, and Sneaky Dave put in a big dig at the final walking trail, and I was happy to let him (and the junior) go. I had just about a mile left to go, and if I just focused I could barely cover that ground before the 3-hour mark.

I dismounted for the final creek crossing because I'm horrible at it, but unlike last year or the year before, I was actually able to get back on the bike and pedal. Final climb, final rooty dangerous descent, and there was the bridge. The Garmin showed 2:58.

I made my way to the foot of the paved dock climb and just put everything i had into the pedals, crossing the line at 2:58:28 on the official timing clock. Somehow the 2nd lap was only 5 minutes slower than the first.

I'd done it! On the 7th try, and having done roughly 60% of the race in the wind on the skis, I finally cracked my goal of 3 hours. And also unlike last year, I was actually able to get off the bike afterward.

No cramps, food consumed, only just over a bottle of water in me. I've never felt as good after this race. It took a few minutes to figure out how to walk, but that was it. I didn't even need a nap when I got home. I guess all that volume and Z2 training paid off!

As an added bonus, I got hardware! Last year I brought home a 5th place medal in Men 40+, and this year I brought home the 4th place medal. Weirdly, the online results show that I actually got 4th last year, and 5th this year, but either way I have the correct medals, so it evens out.

Wednesday, May 31, 2023

Memorial Day Opsec

I visited my grandparents' grave on Memorial Day. My grandfather served in the US Army in WW II, and my grandmother is buried beside him. I shared an uncaptioned picture on Facebook of their headstones with flags in the background.

It was a huge opsec failure.

My grandparents' last name is my mother's maiden name, the most common "security question" on the planet. Though I didn't identify them as my maternal grandparents, it's fairly obvious they don't share my last name, and their birth/death dates all but confirm that they're the right age to be my mother's parents.

Everything you share--no matter how small, innocuous, or minimally identifiable--helps create a more complete and exploitable digital footprint. I weaponized data against myself simply by sharing uncaptioned content.

Security questions are almost as dangerous as bad password policies. The ones that are easy to remember are also easy to guess or prize from social media.

Mother’s maiden name: launch this one into the sun. Maybe this was ok in the days before social media, but now it’s way too easy to connect dots through online friendships.
Birth city: over 50% of Americans live in the state where they were born. Some surveys put the number over 50% for still living in the same city. Nuke this question. A guess shouldn’t yield a >50% success rate.
Elementary / High school: Kind of a combo play on the questions above: if you can suss out a person’s city or state and see their friends list on any social media platform, you’ve probably already gotten their entire educational history. I think the only one that might be tough from my past is middle school, maybe. Maybe.
First pet: People generally love to gush over early pet experiences.

The harder ones force me to remember how I answered them originally:

First car: did I list the brand? The model? The year? The sub-model? I might have listed the color on one security question, and not on another.
Favorite color: My children have favorite colors.
Best friend: Uh....when? I only met my current best friend a little over a decade ago, and I’ve been filling out these questions for over 20 years.
Favorite teacher: Bro I trudged through over 16 years of education, and that was over 25 years ago--is that a thing people actually remember?
Favorite food: Again, when? I'm lucky if I can remember what I just had for breakfast.

And don’t go tacking on ‘as a child’ as a qualifier to any of these, because as I bear down on AARP eligibility, everybody under 25 looks like children, and there were times when my budget dictated that ramen was my favorite food.

Until all apps and all platforms accept passkeys, decentralized identity, or other hardware backed authentication (and users learn the vital importance of backing up their app-based authentication configurations), I see no functional way to avoid security questions. Just be careful that the answers to those sacred questions are protected with the same gusto as a bad password.

Wednesday, March 01, 2023

Monstercross 2023

Looks like I have to blow the dust off this thing again. Yeesh.

After all the excitement I had for the start of cyclocross season, I got crashed out of the 3rd training race and lost 5 months to a slow shoulder recovery. The 'cross season never happened, and I moped back to solo riding.

But after surprising myself by staying with the front group for 60+ miles of the annual New Year's Day unofficial road race, I figured maybe, just maybe, I might be able to get to fitness for Monstercross, the sorta-but-not-really-totally-unofficial start to the mid-Atlantic racing calendar.

I've written about this race before. It was my very first race, way back in 2016, and I've had a love/hate relationship with it every year since. It was also my last race before the pandemic, and my first race back afterward. It's become weirdly important in my heart to participate, and it's a great pre-season fitness test.

I'd spent years hunting for the "right" setup for it, having long believed success would come on a light-weight carbon hardtail mountain bike, but a quick pre-ride with my son on his new bike that matched that exact description suggested it was nowhere near as capable as a well-geared drop-bar bike with aero bars.

So I threw some money at the problem and converted my CX bike to 1x SRAM Force XPLR with a bargain discount Quarq Dzero powermeter and a 40T chainring. I also hit the local discount bins for wheels & tires and came away with a set of non-boost MTB wheels that fit the bike with a simple axle end-cap conversion, massive 26mm internal rim width, and 700x42 WTB Resolute SG2 tires @ 25psi.

When combined with the aero bars and a day of decent weather, this combination of changes let me put down a Strava top-10 performance on the lap (the activity is private, so no peeking!) on tired legs, so I felt pretty confident going into the race.

I also did a good job of tapering, and didn't sucker myself into even touching a bike for the 3 days before the race, carb-loaded a bit the night before, and chose the right racing category of 40+.

But I also had COVID in January and hadn't ridden with anybody wheel-to-wheel since January 1, so while I felt like I'd done everything I could, there was still the whole unknown of Other People's Readiness.

I got in a quick warmup ride on the opening miles of the course just to be extra familiar with the turns and lined up...deep in the group. This race is all about the opening mile, most of which is on a narrow twisting loop of pavement, and if you're not in the front 50, your race can be over before you even reach the first bit of gravel.

I was not in the first 50.

By the time we hit gravel, we could see almost a football field of distance between us and the group ahead, and nobody at the front of our group was putting in a dig, but they were happy to gum up the line so nobody could get through.

After almost a half mile of watching the lead group disappear, a teammate put in a big dig, opened a hole, and I chased through. A few followed, but the next 5 miles were just bridge after bridge after bridge, and every time we'd make it to within a few meters of the lead group, the wheel we'd been following would drop off the back, forcing yet another big effort.

Then, just as we made contact, a big crash split the whole group in two, and of course I was on the wrong side of the split. After so much work to get there, I didn't have another full chase in me and settled for the newly-formed 2nd group. We worked well as a whole for several miles, taking rotations and not forcing anyone on the front, though I did stick my nose out there for almost the entire road section because of my aero bars.

The group dwindled down to about 15 before we hit the campgrounds, and then another crash brought us down to maybe 10, and for the most part, that was the composition for the next 35 miles. We lost my teammate somewhere along the way, but another teammate had volunteered to be race support and handed an EXPERT-level bottle transfer at the end of lap 1.

But then I did the thing. I did the same thing I've done every year since I started racing this thing with aero bars: I raced everybody's race for them.

Lap 2 is notoriously hard. The focus is gone, the pain is present, the desire to simply survive takes over. Conversation stops, anger rises, attacks become less frequent, and the group becomes complacent.

We hadn't made it a mile into the 2nd lap before I realized my average power was much lower than in the first lap. Granted, I wasn't crossing bridges to chase, but it was down from mid-200's to under 200W. We were slowing down, and nobody seemed interested in pulling or working.

So I did. And did. And did some more. And then did again, followed by more and more and more. But I was being very cautious about my efforts, keeping an eye glued firmly to power and never doing climbs above 400W. One guy would occasionally throw an attack and get some space, but just staying on the bars and maintaining a steady ~220W would bring us right back to him within half a mile. And this continued from mile 26 to about mile 45.

We caught another pair of riders at about mile 32, one of whom went on to win the women's pro field, but aside from the one guy's attacks and her brutal responses, nobody wanted to come through. Eventually the 3 of us agreed to neutralize: we were all in different categories of the race, and the only one of us who had competition in the group was racing 60+. There was nothing he could do to attack and stay away, and we just kept dragging his competitors back to him, so I vowed not to respond to his attack if he went late, asked the lady to do the same, and just kept it steady.

By mile 46 I was in novel territory: I'd never made it this far into the race with the same group, and it looked like a 3-hour finish was just about tenable, but I knew I had to get off the front to survive the final trail section. I literally had to feign injury to get people to come around me, and I settled into the back of the group and just waited for the misery of the end: a mile of walking trails that includes some of the nastiest climbing on the course, the only creek-crossing that I can't ride, and a punishing rooty descent just when you can't take any more abuse.

And that's where I took my foot off the gas. I had gummed up the group on that creek-crossing on lap 1 and didn't want to mess up anybody else's race at the end, so I got to the back and just paced myself. The last climb was agony, and on the rooty descent there was a rider down receiving medical attention, and a guy physically blocking the entire trail with his bike to protect the scene (though I couldn't see the emergency scene because he was blocking the trail and offering absolutely no guidance as to why--he nearly caused me to go over the bars hitting the brakes, so maybe don't do this?). I went cautiously around, found there was nobody coming after my wheel, and just rolled to the end for a finish time of 3:00:04, 11 minutes faster than ever before.

I didn't realize at the time that this would be sufficient for 5th place in the 40+ category. I also didn't realize that there had, in fact, been someone else in that category in my grupetto, so I could maybe have snagged 4th and hit my sub 3h goal if I'd been a little less cordial at the end.

But overall I'm absolutely thrilled with the result. I've been on the podium twice at Dirty Kitten's 40-mile race, but a podium at Monstercross had eluded me for years. This year's setup, with a power meter to keep me honest about efforts, better tires to manage the turns, and better focus through better weather, let me be much smoother than in years past and not blow up in the final miles. The team support was instrumental, both on and off the course, and I feel like I'm well-positioned for the start of the gravel season.

But it leaves a question about the 2023 road season. I'd kinda wanted to make another low-key run at the Virginia Cycling Association CAT 3 BAR, but with a season that's mostly just crits with a couple of TT's and a single tentative road race, it's not a year that plays to my strengths. So for now I'm just going to look for regional gravel races and hit the truly local (like Richmond-local) road events, and maybe take a look at the mountain-bike race scene, since that's where my son's interest currently lies.

Also, the kid took 3rd place again in the Mini Monster (25 mile) junior competition. A good day for the whole family!