Search This Blog

Monday, 29 December 2025

Oh my, I've become a running W*nker

Covid left my wife and I bereft of the gym. Locked in. Allowed out for one hour a day. Bouncing off the walls, we decided to start running laps of Victoria Park.

Let’s be clear. At this point I’m watching half a century on planet Earth approach and, aside from representing my school at county level in the 100/200m, I have avoided running like … well, like Covid.

Fast forward six years and it’s happened. I have developed a shoe problem.
“These ones are for speed work.”
“These are for racing.”

Special shorts. Calf compression socks. A little head torch for dark winter mornings. I understand what a tempo run is. I find myself trying to steer every conversation towards my last 10K, my placing, or my PB.

Christ, I’m boring.

The one saving grace is my wife continued as well. They have fewer shoes, but at least we can share our dull chat.


What’s interested me for a while, though, is AI/LLM use for training and programme creation and adaptation. Essentially: building a silicon coach.

The goal is simple enough. I want something that can look at what I actually did — pace, heart rate, biometrics — and then help plan and adjust training blocks. Not vibes. Data.

The hard part is not the AI.
It’s the plumbing.


I’m fairly locked into the Apple ecosystem. My primary run device is an Apple Watch Ultra 3 (big, which helps my half-century eyes). It’s mostly great. Setting up custom workouts is a bit of a PITA, but Workout Builder
https://apps.apple.com/us/app/workout-builder-send-to-watch/id6450721774
solved that for me.

Alerts are hit and miss. I’d really like pace and %HR max alerts — which it can’t do. But once I switched from Spotify to Apple Music, things mostly behaved.

Then there’s the real problem: data.

Getting Apple Health data into anything usable is… grim. The native export is horrible. One enormous ugly file, zero filtering, zero joy.


My first experiment was https://github.com/krumjahn/applehealth - a local LLM setup using Ollama. Credit where it’s due: well put together and genuinely fun to play with and setup.

The problem was always the export. Working repeatedly with that massive Apple Health dump was painful.

I tweaked the code.
By “I tweaked the code” I mean GitHub Copilot tweaked the code based on my prompts (humans are still in charge). I modified it to consume HealthFit (https://apps.apple.com/us/app/healthfit/id1202650514) exports directly. An iOS app that can sync HealthKit workouts out to other platforms while preserving far more detail. At this point it felt like I was collecting data plumbing tools rather than actually running, but still — progress.

Still bumpy. Export files to iCloud. Sync them down to a Mac. Rinse and repeat.

And after all that, I discovered the killer: Apple’s export is missing most of the interesting workout data. Pace per km, detailed splits — gone. It’s basically just summaries.


Then I stumbled across Fulcra Dynamics
https://site-origin.fulcradynamics.com/

This is a platform designed to consolidate health data across devices. I also own a few other wearables, so this was immediately interesting.

Fulcra works as a phone app with direct access to Apple HealthKit — no exporting required. They have a well-documented API and an MCP server.

Oooooh.

I wired Claude up as a desktop client. It was my first MCP config, so there were a few learning bumps, but once authenticated (which you need to do a lot — damn session timeouts), it worked well.

“Analyse my run on 29.12.2025. Pace, HR, biometrics.”

That felt like the future.

I also used this setup to generate a couple of 10K training blocks. Once I realised Claude is absolutely terrible at knowing what day of the week it is, it actually worked well. Varied sessions, sensible progression, goals achieved.

It did, however, try to get me to kill myself on race day until I pushed back.

So, still very much a coach, not a manager.


The problem with this is API timeouts & throttling.  Trying to crunch a lot of data would just fail.  Clause conversations lengths are also problematic.  Equally Fulcra is £15 per month. And despite a wonderful UI that looks like it should surface all sorts of insights, it’s really just a very pretty gateway to the data I want.

Which led to a rethink.


I already use Strava, mainly for the “look at me and what I did” social side. So: should I switch up and lean on the Strava API instead?

Is there an MCP server?
Yes.
Excellent.

Enter: https://github.com/lyledean1/strava-mcp

After about half a day of fighting, I got it working. (strava-mcp/book/src/setup-developer-credentials.md is your friend.)

Claude is now plugged into my Strava data.

The remaining issue is familiar: data completeness.

While Apple Workouts do sync into Strava, they’re missing key metrics — cadence, stride length, and other biometrics. So I’m back at the same fork in the road.


At this point the options look like:

  • Record runs directly in the Strava app (better data, worse watch UX) and my custom runs all go away

  • Dual record (effective, annoying)

  • Use HealthFit as a bridge to get richer data into Strava

Given my eyes have finally adapted to the Apple Watch workout screens, I’m going to try the HealthFit bridge route next.

The silicon coach continues to wait patiently.

Friday, 21 February 2025

iPhone Thieves – Stop them in their tracks! (or at least slow them down)

Well, its been a while since I wrote anything here!

Given the huge increase in phone thefts in the UK/London I started reading up on the precautions you can take ahead of any horrible situation.

Phones are stolen for two reasons:

  1. They sell the device on the second hand market. Probably shipped to another country with less strict rules and broken down for parts.
  2. If the phone is unlocked when stolen they will likely try and use your finance apps to steal money, or trick friends and relatives by impersonating you. "Hey [NAME] I am in a pickle and need some money sent"

This post attempts to prepare you, and your phone in case the worst happens.

Enabling/Disabling settings can slow the thief down, buy some to enable theft mode and also prevent the thief enabling airplane mode which stops you tracking, wiping it etc.

Stolen Phone Preparation


Disable the Control Center on an iPhone when it's locked


Disabling Control Center on the lock screen prevents others from quickly accessing your phone's features, such as disabling Wi-Fi or Bluetooth when its locked. The flip side however, is you'll lose quick access to these feature.

  1. Open Settings
  2. Go to Face ID & Passcode or Touch ID & Passcode
  3. Enter your passcode
  4. Scroll to Allow Access When Locked
  5. Find the Control Center toggle and turn it off


Disable control panel access from within an app


To disable access to the Control Center from within apps on an iOS device, go to Settings > Control Center and toggle the "Access Within Apps" option off; this will prevent the Control Center from appearing when you swipe down from the top right corner of the screen while in an app. 


Key points:

  • Access settings: Open the Settings app on your iPhone. 
  • Navigate to Control Center: Select "Control Center" from the settings menu. 
  • Toggle Access Within Apps: Find the "Access Within Apps" option and turn it off. 

How does this help? If your phone is unlocked when stolen this buys you some time to enable your theft mode.


Screen Time privacy


To prevent unauthorised changes to settings - faceID, iCloud Accounts.


Screen Time / Restrictions / Content & Privacy Restrictions

  • Disable accounts
  • Disable passcode & Face ID 


Enforce PIN for changes

go to Settings > Screen Time, then tap change screen time password. Enter numerical PIN and iCloud user and password.



Stolen Device Protection


Settings > Face ID & Passcode, enter your passcode, then scroll down and toggle "Stolen Device Protection". This feature enables apple's security measures to protect your data if your phone is lost or stolen, requiring additional authentication even if someone knows your passcode. 


Key points about Stolen Device Protection:

  • Access: You can find this setting by going to "Settings > Face ID & Passcode". 
  • Activation: Toggle the "Stolen Device Protection" switch to turn it on. 
  • Important features:
    • Require security delay: This setting can be set to "Always" to enforce additional security measures even in familiar locations. 
    • Biometric authentication: Stolen Device Protection often requires Face ID or Touch ID to access sensitive information. 



Secure Applications


If your phone is stolen and unlocked then the thief can use your apps to move money, buy stuff, contact friends and family in order to conduct fraud.


All financial apps / messaging apps / shopping apps - must have Face ID or a second form of authentication which is checked when they are opened.


If they don’t have it natively then use the iOS require Face ID - long press on application icon to enable it.


Password Manager


You should have one! And assuming you do then make sure you have an alternative way to access it without your phone. And check this works.


MFA Manager


As with the password manager I hope you are using multi factor (MFA) on your logins where possible.  The app you use to manage those is probably on your phone.  Make sure you have alternative ways to access it and backups.


Stolen Phone Automation


It is possible to use the iOS shortcuts application to create a combination of shortcuts, automation and focus to automatically run on events.


I have my phone setup to run a shortcut called Stolen Phone.  


This shortcut takes front and back photos, saves them to the roll, and then switches the phones focus to one I created called Lock Screen - Emergency.  The Lock Screen pushes a custom wall paper with STOLEN PHONE - CONTACT XXXXXX.  


There is an automation that is triggered when it detects the focus switch to emergency.  That automation:

  • Locks the phone
  • Enables wi-fi
  • Set airplane mode to OFF
  • Sets low power mode ON << I may change this as it won’t upload photos to the iCloud
  • Shows a notification [STOLEN PHONE CONTACT XXXXXX]
  • Takes a front and back photo and saves to roll (a second set of pictures as belt and braces) << This action doesn’t actually work as currently phone needs to be unlocked to take a picture from the automation function.  It does still work from the shortcut


The shortcut running between iWatch and Phone is rubbish.  You cant run a shortcut on a device, ie running from the watch will run the tasks on the watch, not on the phone.  The only way I can see to navigate this is to run the focus (Lock Screen - Emergency) from the watch, which mirrors on the phone.


I also have another WIP automation that looks for keywords in SMS messages and uses that to trigger the automation.  That lets me send an SMS to my phone and the lock screen profile will activate.