TARC Fall Classic, 2023!

Yesterday I ran the TARC Fall Classic half marathon. This was a fun one! It was my fifth race, second half marathon, and second trail race. The terrain was very similar to the trails I normally run near my home in Medford, MA, as was the weather (since I was only about 30 minutes away). I finished in 2:37, which I think was a decent time for me.

Lessons learned:

  • The race provides no cups at the aid station. You must bring your own bottle. I did this, but I forgot to fill it at the start of the race. Fortunately for me the 13 mile course starts with a 1 mile loop around the cornfield and parking lot, then takes you right by the aid station again, so I stopped there and filled up again. Next time, I’ll take a bottle from the get go.
  • My Ultraspire waist belt – my normal goto on trail runs and long runs – proved to be a bit of a hindrance. This is because to get a snug, non-bouncy fit, I need to cinch it tightly around my waist. Unfortunately this interfered with my breathing when running at race pace, so I had a choice of a little bounce or restricted belly breathing.
  • I carried the right amount of food. I started off with some Harry & David Moose Munch popcorn (think “Cracker Jack with chocolate”) about half an hour before the start, a gel, an IQ bar, and some Gummy Bears. At the aid station I had peanut butter pretzels, an Oreo, and I snagged a bag of Doritos for the second lap. I definitely benefited from the salty snacks more than the sweet ones, so I plan to factor this in to nutrition/training moving forward. At the end of the race, I had some banana, boiled potato, and half a peanut butter and jelly sandwich.
  • I wore my Altra Lone Peak 5s – the same ones I ran the Vermont 50 in a year ago. They were fine for the terrain.

Seriously looking to run this one again next year – maybe the 20 miler or 50k,

Cheap Marathon – 2023

Last weekend I completed my second “classic” marathon. That is to say, a plain 26.2 miles. It was in Derry, NH, and is known as the “Cheap Marathon.” They don’t spend a lot on frills, that’s for sure. Just water and Gatorade at the aid stations, and bananas and yogurt at the finish. For completing, no medals – just a ribbon that says “I ran 26.2 miles and all I got was this lousy ribbon.” It was worth it.

I shaved several minutes off my 2021 Baystate Marathon time. My time was 4:26, compared to 4:38 in 2021. However this does not factor in the 4+ minutes where I stopped to call 911 because a gent in front of me collapsed along the trail. Turns out he had a pacemaker that thought he was working a little too hard and he needed to be stopped. It was dramatic. Despite my Apple Watch Ultra failing me (which is a topic for another post), it came through for him. Within seconds I was on with a 911 operator, who dispatched EMTs to the scene. Once he was in good hands, I continued my run.

Cheap Marathon Complete

I am happy to report that my knee was fine the entire way – not so much as a twinge. So I am comfortable saying this has healed.

Now… what to run this fall…?

Running Update

I’m now twice officially a runner. Why? Because statistically – I read somewhere – nearly 100% of runners suffer an injury. Last year I had a mild stress fracture. This year, I apparently had a torn meniscus. Hurray. So I’m double-officially a runner now.

It’s been five weeks. I’m in PT. It’s going great and I’m returning to running now.

Running Update 2022

Running continues to be my primary focus outside of work. Okay, I admit it – on most days I could leave out the “outside of work” qualifier. My long runs continue to approach marathon length. I recall how in 2019 I thought “maybe I’ll get to the point where I just run a half marathon equivalent (13.1 miles) twice a week and that will be my training schedule.” Now I’m back to the point where I’m doing 30-40+ miles a week as my prep for the Vermont 50 is peaking. It feels great. I love the continued training, challenge, and improvement.

2022 June July Running Log

Running Update 2022 – Stress Fracture, Hampton Half Marathon, Non-Minimalist Shoes, and an Ultra

Hampton Half Marathon Finish

A few days after my first marathon last year, my right foot swelled up. Massively. I took a couple days off, and did (relatively) short runs. The foot hurt and would swell up like a baloon. I self-diagnosed as having a stress injury (fracture?) and accepted I may have to stop running for the rest of the year. I was able to get an appointment with a sports orthopedist at MGH, and he prescribed physical therapy. X-Rays showed no (remaining) fractures.

You Don’t Need Running Shoes. Go Minimalist!

A Stack of New Balance Fresh Foams
A Fistful o’ Fresh Foams

From 2017 to early 2021, my go to running shoes were the New Balance Fresh Foam 1080 (I forget if they were version 9 or 10), and a pair of the New Balance Summit Unknown for trail running. In 2020 I went on a bit of a shopping spree and was trying all sorts of New Balance shoes, as I liked the wide toe box that didn’t mash my feet. I had an old pair of the Fresh Foam 960s, and bought a pair of the Fresh Foam 980s, as well as the Fresh Foam More. I liked my shows like I like my cappuccino – fresh and foamy.

Or so I thought.

Continue reading “You Don’t Need Running Shoes. Go Minimalist!”

My Journey Into Analyzing Apple Health Data

I’ve owned an Apple Watch for years – since the Series 2. I’ve also been running consistently for years – three of them, to be precise. I also like data. I’ve been collecting data on my workouts via my phone and watch for years, but getting data off of the iPhone’s small screen has always been problematic.

“But Peter!” you say “Apple lets you export data from the Health app!” Yes, it does. Have you ever looked at it? It looks something like this. Correction – it looks EXACTLY like this.

Well-structured XML

It’s XML data, and that doesn’t easily lend itself to a graph. Also, my data is over 1.3GB at present. That’s a lot of data for one guy. So I looked around for how to analyze my iOS Health data. The first site I found that looked promising was Analyze the Crap Out of Your Apple Health/HealthKit Data (sep.com) and GitHub – jonfuller/health-parse: Parses an Apple Health data export… for reasons. The developer offers an email address – email your health data to [email protected] and it will send back parsed stuff. Sure. I’ll email you my 1.3GB of Apple Health Data. Let me know when you get it. Okay, no, I did not try that because it’s never going to work. So I downloaded his code from Github, but I couldn’t get it to compile. Seems like I’m not the only one, as others reported the same issue.

Next I tried the Heartwatch app for iOS. So close! It generates some nice reports but only goes back one year. I want to track data over multiple years. I emailed the developer, and he said he’d consider it.

Then I tried the YouTube video (1) How to download, graph and assess physical activity and exercise data from Apple Watch – YouTube. OMG hilarious. Fail. 

Something in Python perhaps?  Analyze Your iOS Health Data With Python | by Guido Casiraghi | Better Programming | Medium Prerequisites: You know the basics of Pandas. I don’t even know what pandas is, other than a big bear-like thing that lives in China. 

I tried to import the XML files into Excel. Hahahaha. I’m running the 32-bit version. It cannot open a 1.3GB XML file. 

I poked around and found this article by Taras Kaduk: Analyze and visualize your iPhone’s Health app data in R. I was told R is easy to learn and use, so I figured I’d give it a try.

I installed R for Windows. The UI seems a bit dated and barebones. The Comprehensive R Archive Network (case.edu) How do I install libraries, anyway?  HodentekHelp: How do you install the XML library for R programming? Okay, manual process, must select stuff from a list by point and click. Yuck. 

How do I change directories in R?  how to set path in R on Windows – Google Search

Hm. This looks kinda neat and more polished.   Download the RStudio IDE – RStudioHave to install those libraries, but at least I can type their names in a comma-separated list. Much quicker. 

How do I change directories in R again?  getwd, setwd | R Function of the Day

What’s the path to my files in my OneDrive folder without spaces in it?  Use PowerShell to display Short File and Folder Names | Scripting Blog (microsoft.com)

How do you comment in R? Comments in R – GeeksforGeeks

How do you print more lines than it’s showing me?  how to increase the limit for max.print in R – Stack Overflow

What does that %>% do?  Simplify Your Code with %>% ยท UC Business Analytics R Programming Guide (uc-r.github.io)

Oof. Guess I should take a lesson. Learn R | Codecademy

Yup, that did it! The following R code imports my Health XML data and spits out a CSV. And yeah, it took a lot of floundering to get these few lines of code:

library(XML)
library(dplyr)
xml <- xmlParse('export.xml')
df_workout <-  XML:::xmlAttrsToDataFrame(xml["//Workout"])
write_csv(df_workout,'health_export.csv')

Now I have a CSV file! Great! I’ll make a chart in Excel. OMFG Excel charting is beyond convoluted. Why is it so F***ING COMPLICATED?!?! 

Google Sheets to the rescue. Finally. I have what I have sought for months.

I realized that with the right libraries, I likely could have accomplished the same thing with Perl or Python, but learning R has been fun and I may have applications for this professionally as well as personally. Also, I should be able to generate the graphs directly from R, but haven’t learned that yet. Finally, I will likely need to dive deeper into the data to incorporate steps per minute and heartrate into the above chart. I’m really interested in overlaying my steps per minute and average heartrate to see how this affects energy used and pace. So while I’ve taken the first step (no pun intended), I’m not done yet!

180 Steps Per Minute

On my last two 10k runs, I experimented with upping my cadence (steps per minute). My normal cadence has been in the 155-165 steps per minute, and my normal pace has usually been in the high 9 to low 10 minutes per mile. This is mainly because I haven’t really cared to address my speed, so I would just ramble on at whatever pace I felt like running at, unless I was in a hurry or with someone else.

While I had heard that my pace “should be 180 steps per minute,” it was never clear to me as to why this was important. Additionally, given my training in yoga and anatomy, in which a recurring theme was “ever body is different,” how could it be that these two guys should be expected to have the same cadence?

Game of Thrones: Tyrion Lannister (Season 7) | 1:6 Scale Peter Dinklage |  Three Zero 903959
Tyrion
Gregor Clegane - Wikipedia
The Mountain

No, really. How can that make any sense? It should not be a surprise that there is some room for variation here, as with all things anatomy, and 180 is likely just an average. That said, I figured “what the heck? Why not give it a try.” After a little digging I found a website that suggested working your way up to 180 by starting with a playlist that runs around 10 bpm faster than your current average cadence. So I found a playlist on Apple Music that ran at 165 bpm, and I hit the road.

I immediately felt like I was moving faster – and I was. At first it was definitely more work, but after a while, I got into a rhythm. On a funny note, I found out after I finished my run that I had averaged 182 steps per minute! I knew that I was not keeping time with the beat of the music, but I didn’t realize it was because I was going too fast. Given that, I picked another playlist, this time running at 180 bpm. On my second attempt at keeping this cadence, I actually was a bit slower, coming down to the mid 170s on average. That said, it was still one of my fastest – if not the fastest – 10k I’ve done, coming in with an average of 8’59”.

In short, I’m sold. I’m going to try to keep up with the 180 steps per minute cadence. Supposedly this is universal, and applies to all forms of terrain. Time will tell as I experiment. Watch this space for an update!

Running Update – Half Marathon

Wow. Over a year between blog posts. I’m on a roll! I forgot to brag that, in March, I ran 13.1 miles. That’s the equivalent of running from Athens to Kifisia, Greece. For those of you who are cartographically-challenged, Kifisia is halfway between Athens and Maration, which is 26.2 miles away. Is it starting to make sense now?

In February, I started adding one mile to my runs. Every week, I would run two or three times, adding a mile each week. When I started this, I had been doing my semi-regular 5 miles per run. The first week, starting on February 2, I ran 7 miles three times. The next week I ran 8 miles twice. The next week was 9, twice, followed by a 10 miler (my first since 2019), then 11 miles, then 12, and then finally, on March 4 I hit 13.21 miles. My average pace was 10’23”, which is on my higher end of pavement running these days, so I am still pretty happy with the numbers.

Since then, I’ve done a couple of 8 mile runs, but pretty have much standardized on 6.25 (10k) every other day. The heat definitely affects me, and when it’s in the high 80s or more, I generally skip it or go trail riding. Trail riding has also cut into my running routine somewhat, but it’s also fun, good exercise, and gets me outside, so no foul!