Author Archives: James Bradbury

This is not a tour 400A photos

Why I’m riding “This is not a tour”

This weekend I’m riding the 400km on and off-road audax in the style and memory of Mike Hall. My motivation for this ride is similar to the reason I ride audaxes in general, but with the added variety of off-road sections. I’m interested in the question, “How much harder will that be?”. I met Mike only briefly, but I think this kind of event is what he would have wanted to inspire.

Long distance cycling is something I’ve got into over the past five years. Whenever I’ve mentioned one of my rides to friends I get bewildered responses ranging from admiration to horror. A lot of people ask if I’m doing it for charity.

“No” I say, “I’m doing it for… fun?”.

Yes, fun. I enjoy planning the route, deciding what clothing, lights and bike maintenance kit I should take. I enjoy the challenge of not knowing whether I can finish within the time limits. I enjoy the peace and solitude exploring deserted country lanes. I enjoy chatting with other riders. Sometimes I’m winding my way up a hill, sometimes I’m concentrating on a tricky descent. Sometimes I’m ambling along, sometimes I’m pushing to go as fast as I can. I enjoy the freedom of roaming and of self-sufficiency. I enjoy getting away from it all, relaxed but focused on the ride.

I’m not claiming that every journey is smooth and full of picture-postcard scenery. Things go wrong. Punctures happen, wrong turns happen, lights fail. Headwinds, achy legs and cold temperatures conspire against an easy ride. On most rides I’ll have a “low point” when I’m fed up, uncomfortable or hungry. Getting through that and whatever other challenges the ride may throw at me is part of the challenge and the reason I feel elated if I finish.

And I don’t always finish in time. If I always succeeded I’d wonder if I was limiting myself to easy challenges. Failure is a good way to learn, even though it hurts at the time.

I’m sure most of my bewildered friends take on similar challenges. Things which take unusual mental or physical effort, which take us away from the humdrum of everyday life. Things where success is not guaranteed, where temporary discomfort is tolerated to reach a goal. Everyone’s challenges are different, but we all need to be challenged.

Can you relate to that?

Commuting to Bristol in photos

I’ve spent a few years infrequently commuting to Bristol through the year. I’ve now left that job, so thought it would be interesting to share the photos taken on my usual routes.

Audax training plan

I’ve got some longer audaxes planned this year, so I thought I should actually have a training plan for once. I’ve avoided stating exactly what ride I’ll do on what day as I know life is likely to get in the way, but I still have some targets which I think are reasonable. Perhaps publishing it here will keep me honest!

Jan – Feb

  • 1 x interval session (outside or turbo) 30-60 mins per month.
  • 1 x 50km+ ride per week (could turbo)
  • 2 x 100km+ ride with 1000m+ climbing per month (could count as two of the 50km)
  • 400km and 5000m total per month

 

Mar – Apr

  • 2 x interval sessions (outside or turbo) 30-60 mins per month.
  • 1 x 50km+ rides per week (could turbo)
  • 2 x 100km+ ride (could count as one of the 50km)
  • 1 x 200km+ ride with 2500m+ climbing per month (could count as one of the 50km)
  • 600km and 7500m total per month

 

May – July

  • 2 x interval sessions (outside or turbo) 30-60 mins per month.
  • 1 x 100km+ rides per week (could turbo)
  • 2 x 200km+ rides with 2500m+ climbing per month (could count as the 100km)
  • 1 x 300km+ ride with 4000m+ climbing per month (could count as one of the 200km)
  • 900km and 12000m total per month.

Sleep: What am I trying to measure?

My last post about analysing my sleep data had plenty of caveats, but despite my caution I started to wonder whether I was taking an interest in the right variables.

I’m aiming to sleep better for health and to feel more alert during the day. My first thought was to find out what influences how many hours I sleep each night. This was a guesstimate of my hours of sleep based on roughly when I fell asleep and woke up, minus any trips to the bathroom or time spent starting at the ceiling in frustration. Then I’d compare this to various lifestyle measures like how much I’d eaten, exercise, screen time, etc to see what, if anything correlated with a long sleep. Despite buying a gadget to help measure it, I’m not sure I have a more accurate measure of sleep quality, so approximate time asleep is what I tried.

However, I’ve realised that there are several ways in which “Hours that night” as I call it might not be the most useful measure. For example, there are times when I can’t get a full night’s sleep no matter how well prepared my body is for it. Sometimes I have to get up early for work, to go on holiday or because I have an audax that starts at 6am. Occasionally my daughter is ill and will wake me up several times. These things are thankfully rare, but could skew the results. I could simply delete any results where my maximum possible sleep was less than six hours, but this leaves less extreme cases.

I also recorded the maximum possible hours I could get each night. In my spreadsheet I subtracted the “Hours that night” from this to get “Missed sleep”, thinking that would be a better measure. On the other hand, if I can only get three hours maximum and I miss none, is that really better than having a Saturday lie-in for up to nine hours, but only sleeping for eight, meaning missed sleep is one hour? Who knows how many hours I might have got if I’d tried to sleep for more than three hours?

So I tried working out some kind of scaling adjustment, so that “missing” one hour out of a possible nine gives a better score than missing one hour out of a possible seven. I could ignore anything over eight hours as most people are unlikely to sleep that long unless they’ve missed out on sleep the night before. But that makes a hard cut-off, which feels wrong.

So I’ve come up with a simple scaling algorithm which looks like this:-

def missed_sleep_scaled(row):
    useful_max = min(target_sleep, row['Max possible (hrs)'])
    if useful_max == float(0):
        # result is invalid.
        return -1
    max_expected_hours = min(target_sleep, row['Max possible (hrs)'])
    useful_missed_sleep = max_expected_hours - min(row['Hours that night'], target_sleep)
    if useful_missed_sleep <= hours_noise_threshold:
        useful_missed_reduced_noise = float(0)
    else:
        useful_missed_reduced_noise = useful_missed_sleep
    return float(10) * useful_missed_reduced_noise / useful_max

This “sleep score” correlates less strongly with “Max possible (hrs)” than “missed sleep” did (0.104 vs 0.198). That seems like a step in the right direction. I’m uncertain about whether I should tweak it until it doesn’t correlate with “Max possible (hrs)” at all.

Some sleep correlation data

You may have read my previous post that I’m trying to use data to work out why I’m sometimes not sleeping well and how I might sleep better. I’ve been doing that now for some 86 days and I’m excited enough to look at the data and see if anything interesting has shown up. Ideally I’d like a year’s worth of data to get reliable results, but I’m impatient.

You may be wondering why the title of today’s post is so undramatic, prosaic even. Well, I’m rather a newbie when it comes to data science and I don’t want to leap to conclusions from the first thing I try. As you’ll see from my GitHub project, all I’ve done so far is to read in the data and use Python Pandas to produce the correlation results. I then pasted this into a spreadsheet, sorted and highlighted some rows.

I used to think that correlation implied causation. Then I took a stats class. Now I don't. Sounds like the class helped. Well, maybe.

I’m also wary that correlation does not imply causation. But it does make for an interesting start.

With those caveats out of the way, this is what I’ve got so far.

Screenshot of spreadsheet showing potential influences on the "hours that night" variable.

Plain correlation from the first 86 days of data

The factor I’m hoping to maximise is “Hours that night” – how many hours I sleep on a night after all those potential influences have been measured. So I’m interested in things which might be positive or negative influences on that.

The top two I’ve put in grey, as I think they’re not very interesting, except to show that the correlation function seems to be working as expected.

  • “Max possible” is low when I have to get up very early, say to travel somewhere, so it’s always going to limit my sleep.
  • “Av hrs past 5 days” is a rolling average of “Hours that night” over the last 5 days. That I’m more likely to sleep if I’ve built up a huge sleep debt recently is unsurprising, but also confirms that the model seems reliable.
  • ZMA and FOS are two supplements I’ve been taking recently which are said to help with sleep, the ZMA particularly for those doing a lot of exercise. Evidence is limited and I’m not keen on trying every eccentric treatment “because you never know”, but they’re cheap and the side-effects are trivial. However, I’ve only been taking these for a couple of weeks, so I don’t think there’s enough data to say if they have helped me.

Eating

If I had guessed I would’ve expected “Evening meal finish” – the time at which I finish dinner to have had the greatest negative effect on my sleep as I often wake early feeling boated if I’ve eaten late. It does seem to be a negative factor, along with “Evening meal size (0-5)”. I’ll aim to eat earlier and keep recording results.

Alcohol

This wasn’t a significant factor for me. This is supposed to make you fall asleep later but wake up too early, losing sleep overall. Anecdotally, I have found to be true for me. However, I drink quite rarely and haven’t had more than four units a day in any of the last 86 days, so my stats so far may not say much about that.

Daylight, Sugar, Screen time, Fasting

I’m recording these as they’ve either been blamed for bad sleep or hailed as a helpful thing. They don’t seem to be a big deal for me. I may consider stopping recording them so I have more time/space for other data.

Worry, Excitement

It interesting that these have some negative effect on my sleep, but as they’re all day values, there’s probably not a huge amount I can do to control them.

Exercise

I am surprised and, if I’m honest, disappointed to see “Exercise (1-5)” as such an apparently bad influence on my sleep. Studies have suggested that exercise should have a positive effect on sleep, but that may depend on intensity.

For me, and exercise score of 1 indicates a day where I didn’t walk for more than 15 mins and did no other exercise, 2 a normal day where I cycle to/from the station, about ten minutes each way, 3 is a bike ride of up to 3 hours or a 20-min weights/callisthenics session, 4 is a 3-6 hour bike ride, 5 is reserved for the all-day and sometimes all-night rides I occasionally do.

Perhaps this isn’t enough data on what, for me, may be an important question. Questions I’d like to answer might include.

  • Is morning exercise better or worse for sleep than evening exercise?
  • Is moderate exercise better for sleep than either extreme?
  • Does taking ZMA (or something else) mitigate the apparently negative effects of exercise on sleep?

Finally, instead of simply “Hours that night” should I be measuring the sleep I got as a fraction of the “Max possible” sleep? That might account for strange circumstances where I was still cycling at 1am and inevitably scored a 5 for “Exercise”.

Conclusions

I shouldn’t be drawing any firm conclusions yet, I think. 86 days is not that much data and there are many confounding factors that could be influencing things. I have a lot of thinking, learning and tweaking to do.

I plan to keep recording the data, expand my exercise data to include AM/PM and separate short intense efforts from longer endurance ones.

Volunteering at Thirsk for LEL

I recently volunteered for a few days at the Thirsk Control for London Edinburgh London. I put up banners, sorted out chargers for riders GPSs and phones, found beds for people, served food, fixed bikes and marshalled people into the control. It was tiring, but with a great bunch of people to work with it was also good fun.

Here are a few of my photos.

Lego ginger cat

Siobhan’s cat

Light green bags with LONDON EDINBURGH LONDON 2017 written on them

The bag drop has landed

Pens, space blankets, banners, signs, torches, etc laid out on a desk

A wide variety of kit is needed to run the control

LEL 2017 banner on school gate

Banners to guide the riders in

James standing in front of two LEL banners

Proud of my handiwork!

USB chargers on table.

Lots of charging for GPS and phones

Metal barriers in the car park

Parking for hundreds of bikes

School gym with mattresses laid out

A few beds in the overflow hall

Large school sports hall with many mattresses ready

160 more beds in the main hall

Three audax riders arriving at Thirsk school

An early group arrive before dark on Sunday

Boy on mountain bike

Not an audaxer

Woman on shopping bike with basket.

Also not an audaxer, but it’s hard to tell from a distance, OK?

Volunteers in school corridor

Edwin and Kate doing sleep running

Bikes parked at night

Plenty of bikes making use of the parking facilities

Volunteers in canteen

James and James learning how to serve food – it’s harder than it looks.

Pasta, Rice, Curry, Meatballs in canteen

Ja, I vill have ze pasta wiz ze curry. OK…

Bikes parked in daylight

A fairly busy time.

Red velomobile

Wow

Bike on stand being serviced

James looks into another gearing problem.

Light blue frame and front derailleur

Stiff shifting to the big ring, gunk in the cable duct. Lubed up and it was good enough.

Trouble sleeping

For a couple of years I’ve had some trouble sleeping. I’m not sure how much of this is due simply to age or the disruption of having a small child. However, lately I find that even when my daughter sleeps soundly, I often find myself waking too early.

I’ve taken the usual medical advice and found little improvement. GPs seem unwilling to investigate after they’ve done the standard checks and decided there’s nothing seriously wrong with me. Frustrated, I decided to do some work on it myself. Part of my day job is data analysis and I figured that if I can record the right data I might be able to write some code to work out what is causing me to lose sleep. Or, as Mark Watney might say,

I’m gonna have to data science the shit outta this!

Thumbnail image of Google docs spreadsheet

Sleep data Google docs spreadsheet

I started a couple of months ago, simply with a spreadsheet recording rather subjectively, thirteen different aspects of my day which I thought might influence my sleep. Things I thought might make a difference to my sleep but are hard to pin down without recording data due to the many confounding factors. 

Things like exercise, evening meal size, evening screen time, daylight hours, worry etc. Where no simple measurement scale exists, I estimate a number from one to five. So my ten minute cycle to the station and back counts as 2/5 for exercise. Only a 100km+ ride gets a 5/5. As I said, it’s a bit subjective, but hopefully enough to be useful. There’s no way I’m going to carry a light meter round with me or start weighing my meals. As it is, recording the data takes barely two minutes a day. The following morning I record roughly how much sleep I think I got, in hours. I have set the spreadsheet to calculate the average over the last five days.

What might be a bit more accurate is a gadget I’ve acquired recently, an EMFit QS. This intends to measure both my sleep and heart rate throughout the night, producing all kinds of numbers describing how well I’ve slept and recovered from exercise. I’m not sure I’ve fully understood how to use it or whether I’ve got it set up right yet, but I’m adding some of the numbers to my spreadsheet in the hope it will give me some clues.

I haven’t yet decided on what techniques I’ll use to analyse this data and spot patterns, but I intend to start with a straightforward correlation matrix before moving on to something more sophisticated that can look at results from previous days in case for example, the exercise or food I ate two days ago could influence my sleep tonight.

I’ll share any code I write on my github account and explain what I’ve tried here.

Knock Ventoux 2017

Few bike routes truly deserved the overused term “epic”, but I think Andy Corless’s Knock Ventoux 300km audax is a contender.

I rode this in June 2017 and here are my photos.

 

Tweaking the bike for Everesting

I’m planning my second Everesting, so thought that as well as climbing lots of hills to prepare my legs, I should do something to prepare my bike. I have one proper road bike which I use for club runs and audaxing. Audax is bikes are partly about comfort as over that kind of distance discomfort eventually becomes pain, which slows you down a lot. Anyway, it is supposed to be enjoyable, mostly. Maybe some type-2 fun, but hopefully not type-3.

I’ve pretty much decided on The Burway for my next Everesting, even though I won’t be the first.

Mods for Everesting

I’m conscious that with Everesting there’s a lot more climbing than even the hilliest audax. The Cambrian 200 is one of the hilliest and even that has under 4000m of climbing. Everesting means 8848m in as little as 180km. When climbing, weight makes a huge difference, so some of my modifications are to reduce weight. I’ve removed the mudguards, the bell and the pedal reflectors and swapped my dynamo hub wheel for a standard one. The weather looks good and I hope not to be riding too much into the dark, so hopefully this will be OK. I’ve also swapped out my Brooks leather saddle for a simpler and lighter Charge Spoon. If this isn’t quite as comfortable I’m hoping it won’t matter as I tend to stand up for the descents and maybe parts of the climbs.

I’ve switched to some 25mm Continental GP4000 tires I have but rarely use. These are fractionally lighter and also roll a bit faster, which is a bigger proportion of energy usage uphill when aerodynamics are negligible.

Scale showing 8.61kgI haven’t spent a huge amount of money to do this, just bought a couple of cheaper bits. No doubt you could save a bit more weight by spending more. The titanium frame is light, but not as light as some carbon ones. Still, I’ve got the weight down to 8.6kg.

The other significant change I made was in gear ratios. The Burway has a 20-25% section which I can easily get up with 34×29 when I’m fresh. However recent training rides on a 18% climb make me think that will become very hard after a few repetitions. I’d like to have the option of standing or sitting to climb, even when my legs are tired. So I had a look at Spa Cycles and found a cheap triple chainring that would do the job. the smallest ring is 22 teeth, which gives a lowest gain ratio of 1.4 (or 18.1 inches), compared to the 2.1 (or 28 inches) I had previously. At 90 RPM that’s 7.8kph, probably a realistic speed for the steepest part of the climb, though I expect my cadence will drop further when tired.

Small 22-tooth chainring mounted on titanium frame, missing larger rings

Very low gears with a 22-tooth chainring

I only have a shifter for a double chainring and didn’t want the hassle/expense of buying and setting up a full triple at the moment. So I thought I might as well remove the two larger rings and for that matter the front dérailleur. A little extra weight saved.

I can still shift between 32 and 11 tooth cogs on the back, but this means I can’t pedal fast enough much beyond 25kph, so I may be a bit slower on the flatter bits of the descent. I’m not too worried about this as I think the climbs are more important to the overall time. Ideally my front ring would be about 28 teeth, but I don’t have one of those without spending more money or pulling apart my hybrid.

Maintenance

I’ve also replaced the chain as it was getting worn and set the length of the new one for the small chainring. I guess when I switch back to my double I’ll need a new, longer one.

Broken aluminium nipple

Broken aluminium nipple

Horrible aluminium nipple with damaged head.

Horrible aluminium nipple with damaged head.

 

 

 

 

 

 

 

 

I’ve also noticed recently that the fairly cheap wheels I bought about a year ago have had several nipple breakages, two when the wheel was just sitting in the garage. It looks like the nipples are made of aluminium rather than brass. Brass ones are a bit heavier (1g vs 0.4g by my measuring), but also more reliable. I don’t enjoy the prospect of nipples breaking while out on even a short ride, so I’ve laboriously replaced them all.

Hopefully all this will help me complete the Burway Everesting tomorrow!