All posts by Tim Anderson

AWS 5k re:Invent 2024 results

Yes I ran it again. It is a lot of fun but still very strange. Chip-timed but no results published! Well, they are published but hidden. Here they are:

https://www.athlinks.com/event/391331/results/Event/1097603/Course/2542986/Results

Note that nobody is named.

The leaflet that comes with the bib for the race says to use the QR code on the bib to view your results. That takes you to Girls on the Run Las Vegas who are receiving a donation thanks to the race. That’s great but I could not see the results there – there is a link to a 5K but it is not the AWS one.

Congratulations to 529 who was top with a time of 16:54. As for me, I was 136th – not bad out of 1089 and an improvement on last year by 36s.

AWS did provide finishers with a nice medal, a pair of socks, and a polaroid snap – how retro!

Facebook vs Reddit as discussion forums: why is Facebook so poor?

Facebook’s user interface for discussions is terrible. Here are some of the top annoyances for me:

  • Slow. Quite often I get those blank rectangles which seems to be a React thing when content is pending.
  • UI shift. When you go a post it shows the number of comments with some algorithmically selected comments below the post. When you click on “View more answers” or the comments link, the UI changes to show the comments in a new panel.
  • Difficult navigation. Everything defaults to the algorithm’s idea of what it calculates you want to see (or what Facebook wants me to see). So we get “Most relevant” and “Top comments.” I always want to see all the comments (spam aside) with the most recent comment threads at the top. So to get to something approaching that view I have to click first, View more answers, and then drop-down “Top comments” to select one of the other options.
  • Even “All comments” does not show all comments, but only the top level without the replies.

Facebook is also a horrible experience for me thanks to the news feed concept, which pushes all manner of things at me which I do not want to see or which waste time. I have learned that the only way I can get a sane experience is to ignore the news feed and click the search icon at top left, then I get a list of groups or pages I have visited showing which have new posts.

Do not use Facebook then? The problem is that if the content one wants to see is only on Facebook it presents a bad choice: use Facebook, or do not see the content.

Reddit by contrast is pretty good. You can navigate directly to a subreddit. Tabs for “hot” and “new” work as advertised and you can go directly to “new” by the logical url for example:

https://www.reddit.com/r/running/new/

Selecting a post shows the post with comments below and includes comment threads (replies to comments) and the threads can be expanded or hidden with +/- links.

The site is not ad-laden and the user experience generally nice in my experience. The way a subreddit is moderated makes a big difference of course.

The above is why, I presume, reddit is the best destination for many topics including running, a current interest of mine.

Why is Facebook so poor in this respect? I do not know whether it is accident or design, but the more I think about it, the more I suspect it is design. Facebook is designed to distract you, to show you ads, and to keep you flitting between topics. These characteristics prevent it from being any use for discussions.

If I view the HTML for a reddit page I also notice that it is more human-readable, and clicking a random topic I see in the Network tab of the Safari debugger that 30.7 KB was transferred in 767ms.

Navigate back to Facebook and I see 6.96 MB transferred in 1.52s.

These figures will of course vary according to the page you are viewing, the size of the comment thread, the quality of your connection, and so on. Reddit though is much quicker and more responsive for me.

Of course I am on “Old reddit.” New reddit, the revamped user interface (since 2017!) that you get by default if not logged in with an account that has opted for old reddit, is bigger and slower and with no discernible advantages. Even new reddit though is smaller and faster than Facebook.

Tip: If you are on new reddit you can get the superior old version from https://old.reddit.com/

My journey to a first marathon

Note: this is a rather personal post and probably not interesting for most people.

2023 was a year of running for me but what next? For runners the marathon always beckons; the most famous races in the running calendar are marathons (London, Berlin, Boston, Chicago, New York and Tokyo) and I felt that if I was ever going to run one, it should be soon as I am an older runner.

In 2023 I ran two half marathons but I knew that a marathon was a much harder challenge. In February 2024 I signed up for the Abingdon Marathon, 20th October 2024. I chose Abingdon because it was flat, and somewhat familiar as I grew up near there and it was my late grandmother’s home.

My son gave me a book called Advanced Marathoning by Pete Pfitzinger and Scott Douglas and known affectionately as Pfitz in the running community. The preface says, “the runners for whom we wrote this book have goals such as setting a personal best, qualifying for Boston, or running faster than they did 10 years ago.” A bit ambitious for me but then again, I did want to run London one day and “good for age” looked like my best bet for getting in.

The book was excellent for me because it is science-based and the rationale for everything in it is explained in matter of fact terms. There are many ways to train for a marathon and our knowledge of how best to do it continues to evolve; but the schedules in this book are well proven. I picked the easiest training schedule which is called 18/55: an 18 week schedule in the which the maximum miles per week is 55. I counted back from my marathon date and put the mid-June starting week in my diary.

I had to pick a target pace since the schedule paces are derived from this. There were two factors. One, what was I capable of doing. Two, what did I need for London. I picked 8:30 per mile; somewhat arbitrary but I hoped it would work on both counts.

In a table of “sample long-run paces” on page 14 of the book, 8:30 is the slowest pace given for “marathon goal pace.” I felt therefore that I was picking the slowest pace which the authors felt was in scope for the book, though this is not explicit.

Incidentally I switched mentally from per KM pace to per mile pace because this book and many other marathon training guides and discussions primarily use per mile paces. The KM equivalent is always given but there is a bit of friction. I also came to prefer using the longer distance for my mental segments.

Note that you are not meant to start even the 18 week schedule from scratch. “These schedules are challenging right from the start and get harder as your marathon approaches,” say the authors. You need to be in what one might call half marathon fitness before you start.

Following the schedule

Although the schedule is 18/55 most weeks are fewer than 55 miles. The mean is about 40.5 miles. It is still a big commitment. Let’s say one averages about a 9:30 pace in the training; that is about 6:45 hours running per week, spread over 5 training sessions. Add on a bit of time for changing and showering and it is a lot to fit around a working week, and demanding for family and friends too.

When I trained for a half marathon I did so quite informally. A long run on Sunday and a daily jog, including parkrun on Saturday. I was sufficiently scared of the marathon that I decided to follow the schedule as closely as I could.

That said, I did not follow it exactly. For one thing, I carried on with parkrun and mostly ignored what the schedule offered for Saturdays. Second, I had races scheduled and these conflicted with the Sunday long runs. I worked around this either by adding a second run after the race (since the races were shorter than the scheduled long runs), or sometimes I just treated the race as the long run.

I did make sure to include four key long runs in the schedule. These were three 20 mile runs, and an 18 mile run with 14 miles at marathon pace. For most of these runs I actually did a bit more than the scheduled distance; it is quite hard to do them exactly unless you do the same route out and back and turn back home at half way. I preferred to do circular routes and in practice my longest run was between 22 and 23 miles.

I entered all the training runs as workouts on my Garmin. My “execution score” which measures how well I conformed to the scheduled pace was typically poor. One reason is that I live in a hilly area and it is hard to keep a pace. Second, I found it difficult to run slow enough for the recovery, warm up and cool down sections. Third, I found it hard to make the target pace especially early on in the training.

It sounds cruel, but the training runs often have you running at the fastest pace at the end of the run. The Pfitz “marathon pace” sessions for example get you to run say 5 miles at easy pace then 8 miles at marathon pace. The idea is to adapt your body to be able to maintain the pace when fatigued.

I was fortunate not to suffer much illness during the period. I picked up a bug when on holiday in July. I had to stop training for a few days but then resumed.

Core strength training and avoiding injury

Having suffered from plantar fasciitis and a second foot injury I was conscious of the risk during intensive training. There is a chapter in the Pfitz book called supplementary training and I regarded this as equally important as the training schedule. The reason is simple: if you do not do the core strength training you are likely to get injured, and if injured, you cannot train. A further benefit is that the strength training directly improves your running.

I followed the section called Core stability training and combined the exercises with others I had discovered, developing a workout that took around 40 minutes to complete, and doing this most days.

I did not experience any major issues with feet, calves or hamstrings during the training or indeed during the race and I feel that this is thanks to this exercise programme.

Tapering

The taper period in my schedule was the last three weeks. 20 mile run on the Sunday before, then a gradual reduction in mileage. Taper is known to be a difficult time and I had some little issues. One is that I had booked a half marathon race two weeks before, when the schedule said to do a 17 mile long run. I decided to run the half marathon as a training run, not at race pace.

The coach at my running club supported this, telling me an anecdote about a woman who missed qualifying for the commonwealth games after winning a half marathon two weeks before the marathon at which selection was decided. Her rival came second in the half, but won the second race and was duly selected.

I did not doubt the quality of the advice and started determined to run no faster than 8:15 per mile. With the race atmosphere and amongst the other runners I found myself running at 7:58. I slowed a little and did the second mile at 8:01. Then I was keeping pace with a friend from my club and chatting. He pulled ahead of me and I could not help myself, I stayed with him, then a few miles later passed in front. Mile 7 I did at 7:12. In the end I finished in 1:39:43 which was a half marathon PB for me – but what about the taper? What about my lack of self discipline?

After that I followed the taper schedule religiously, even skipping parkrun 8 days before the marathon because it was designated a rest day. It was a big change for me though, after 16 weeks of hard running. It felt like losing fitness.

In the week before the race, there was another issue. Weather. The forecast for 20th October was rain and strong winds, gusting up to 40 mph or so. The Great South Run in Portsmouth, scheduled for the same day, was cancelled. People signed up for Abingdon or the Yorkshire marathon (again same day) posted on Reddit about how to run in bad weather. It was hard not to be anxious. Perhaps the event would be called off, and all my training in vain. Perhaps a howling gale would make getting a good time impossible.

In the event, the weather was poor but not as bad as predicted. Phew.

The race

I did my best not to leave anything to chance. The day before, I ate a big spaghetti lunch before heading to the race hotel in Abingdon. Then a light evening meal with no alcohol, just a big glass of orange juice. On the morning, I got up at 6.00am and ate two bread rolls with jam. The idea is to go into the race well stocked up with the right kind of nutrition and well hydrated, but not to have toilet issues. Therefore one has breakfast three hours before the race.

I decided to run with minimum baggage. This meant leaving my smartphone behind, relying on the drink stations for water, and carrying only gels. I had running shorts with two deep pockets in which I stuffed 7 SIS isotonic gels, the same ones I had used in training – following the principle, nothing new on race day.

The course starts on the race track at Tilsley Park to the north of Abingdon. I arrived at about 7:45am and had a look round. It was somewhat bleak and the inflatable start/finish arch was not yet pumped up.

Tilsley park two hours before the start of Abingdon Marathon 2024

The venue was well organised though and complete with changing rooms. There was light rain but no gales. I got ready, and chatted to some of the other runners. The time slipped away; I had intended to do a short warm-up jog but a long queue for the bag drop meant I ran out of time. Headed to the track at around 8:45am; the sound system was not working very well and it was hard to hear the pre-race brief. The runners intending to finish in under 2:30 were encouraged to start near the front but any plans to sort other runners into pace groups seemed to be abandoned.

A few minutes later we were off. It is hard to describe but this was an emotional moment. I realise I am only a mid-pack club runner but 18 weeks intensive training leading up to this made it a big deal for me.

There was a little bit of congestion but this was a smallish race (fewer than 1000 runners in the end, some who had booked perhaps did not turn up because of the weather forecast) and it was not a big problem.

It did feel odd trying not to run too fast. Sam Murphy writes in her book Run your best marathon:

Research has shown that when marathon runners begin the race at a pace that is just 2 per cent quicker than their practised goal pace, they flounder over the final 6 miles. The reason this advice is so often repeated is because it is so rarely heeded.

Running a race induces something similar to flight or fight response where the stress of the occasion enables the body to out-perform. The race atmosphere and one’s determination to do a good time drives you to run as fast as you can; yet one knows that holding back is vital. It is a mental battle. “This feels peculiar, trying not to run too fast” I said to another runner and we chatted. A side-effect of deliberately slowing your pace is that you have more breath for talking.

But what was my target pace? I set it originally at 8:30. Calculators like VDOT said that based on my half marathon two weeks before, I could do 7:55 but I felt that was risky and over-optimistic. Nevertheless I had decided to try and go a bit faster than 8:30. I kept a close eye on my Garmin. If the pace went up above 8:15 I consciously slowed down. If it went below 8:30 I tried to speed up.

The race begins with a run east and then south into Abingdon. At about 5 miles I passed the house where my grandmother used to live, in the beautiful old town.

5 miles in, running past the house where my grandmother used to live in East St Helen’s St, Abingdon

Then you run out of town, and start a two-lap section where you run through a village, on into Milton business park, and back through a pretty village called Sutton Courtenay (where Eric Blair, also known as George Orwell, is buried).

The first 10 miles were a breeze. I chatted to another runner who said he was targeting a similar time to mine, around 3:40. Had he run a marathon before? Oh yes, he ran Manchester marathon in April in 3:18. You will be well ahead of me then, I said; but he thought he had not kept up his fitness. We ran together for bit, then he went ahead as expected. However he told me that I looked fit which was nice of him!

As it turned out I met him again in the latter part of the race and ended up finishing a minute or two ahead.

During the two lap section you see mile signs for the second lap as well as the first; that is, you see a sign for 16 when you are really on mile 8 etc. I do not know if this was part of the reason but miles 10 to 13 seemed to take ages and I was beginning to feel a bit of fatigue. I was keen to get half way, telling myself that it was downhill after that.

Mile 13 appeared eventually and I entered what Pfitz calls the “no-mans land of the marathon. You’re already fairly tired and still have a long way to go.” The book says that this is where you can easily lose pace; but I did not. The reason was that I was keen to pass 20 miles – the moment at which, some say, the marathon really begins.

I am not sure what it is about 20 miles but it is the point at which many runners find themselves having to slow down. Often they say they “hit the wall” though what runners mean by this varies. Sometimes it means literally being unable to run any further, more often it means losing pace or entering a run/walk phase.

Pfitz brilliantly calls the last 6 miles “the most rewarding part of the marathon … this is when your long runs, during which you worked hard over the last stages, will really pay off. Now, you’re free to see what you’ve got … this is the the stretch that poorly prepared marathoners fear and well prepared marathoners relish.”

I think this is brilliant because it sets you up mentally to look forward to the last 6 miles, if you have followed one of the book’s schedules, making it less likely that your pace will fail.

In my case mile 22 was my fastest mile, the only one under 8:00 according to the Garmin. In general though, while I did not really speed up, I did not slow down either.

The last two miles though were tough. I was extremely fatigued. Then again, I knew I was within reach of my goal time and determined not to stop now. I was also concentrating on not falling over. The Abingdon marathon is run mostly on open roads and you have to move between road and pavement, it would be easy to trip over a kerb when fatigued and your running form is slipping.

I passed the 25 mile sign. Then I was on a half-closed road and the marshalls were saying “not far now.” I entered Tilsley Park and then back onto the track. 600m to go. Tried to put in a little burst of speed at the end though there was nobody to overtake, or trying to overtake me. Then it was done, and a boy scout apologetically handed me my medal, not being tall enough to reach up and place it around my neck.

The finish

I placed 485 out of 995 finishers, and was 14th out of 44 in my age group 60-69. My time was 3:37:16 which is a pace of 8:18 per mile; however I feel a sense of achievement which is out of proportion to the actual result.

It may also be true that keeping pace right to the end means that I could have gone faster; it is difficult to know but perhaps, next time, I will risk holding back a little bit less in the early miles.

Running book review: The Art of Running Faster by Julian Goater and Don Melvin

I have mixed feelings about this book, first published in 2012. Most runners want to run faster. But how? Julian Goater, 1981 National Cross Country champion, shares his insights in this title. 

With a mixture of anecdote and specific training advice, he expands on six components of fitness: speed, suppleness, strength, stamina, skill and psychology. Some of his advice is uncontentious: do core strength training, for example, and do different types of training sessions including fartleks (short bursts of speed within a run), intervals, long runs and recovery runs. He is a enthusiast for cross country because “it gives you all-over, full-body fitness and resilience that will help you enormously when you run on quicker surfaces.”

All the above makes sense to me, but I am less sure about his advocacy of training twice a day. “To fit in the variety of training sessions you need, run twice a day most days,” he writes. This is not to get in more mileage overall, but more variety of short sessions.

Goater’s overall philosophy seems to me well summarised in a quote he references from Olympic gold medalist Sebastian Coe: “I’ve always felt that long, slow distance produces long, slow runners.” Goater feels that runners all too often get in plenty of miles but get too comfortable running at a steady pace and do not do enough speed work; and speed work, he says, must be above race pace otherwise it is useless. In fact it must be well above race pace. “To be effective, even your slowest speedwork should be done faster than your best pace for the distance below the one you are aiming for. If you are training for 10K, run your long sustained-speed repetitions at a faster pace than you can sustain for 5K,” he writes.

The author also states that “ideally, at least 80 percent of your running should be done at a comfortable cruising pace – but not just jogging.”  So he is not recommending speedwork above all else.

I did enjoy the book and especially Goater’s recollections of Coe, David Bedford, Steve Cram and other runners of his day. I think it could help me to run faster, if only thanks to his insistence on purposeful training and encouragement to put in more effort.

That said, I note the lack of references to scientific studies of the impact of different types of training. Rather, Goater relies on his own experience as a runner and a coach. 

A good book, but best read alongside other more rigorous training guides.

The Art of Running Faster by Julian Goater an Don Melvin (ISBN 978-0-7360-9550-1)

Running book review: Run your best Marathon by Sam Murphy

I like this book and recommend it, perhaps even for those not intending to run a marathon, or not yet.

Murphy is a runner and journalist, and takes the trouble to explain the science and to back up her statements with references to credible research. This is important because there are a surprising (to me) number of unresolved questions for those who want to optimize their running. Stretching, for example, before or after a run. “I’ve yet to find any evidence that stretching – of any kind – actually makes you run faster,” says Murphy. Does it reduce injury? “No clear effect,” she writes; but adds that there is evidence that if you think it helps, it does.

I would still call this matter of stretching unresolved. Julian Goater and Don Melvin, in their 2012 book The Art of Running Faster, have an entire chapter on the subject and say that “You do need to stretch – regularly … in my experience regular stretching is the key to avoiding injury.”

Murphy also has a down-to-earth section on how to choose trainers. “Many of the claims made about how shoes can protect or correct your feet are exaggerated or just plain wrong,” Murphy writes, with reference to research. She does confirm though that those super expensive carbon-fibre plate shoes are faster, but also notes some downsides. Comfort is the most important thing, she feels. I also like this great tip: when buying shoes, take out the insoles and stand on them. “Your whole foot should be within the boundary of the insole,” she says, otherwise you will have cramping which can be a disaster (it was for me).

The book takes the reader through the art and science of training, and then offers a set of training plans. She categorizes the plans as full throttle (training five days a week), steady state (mostly four days a week) and minimalist (mostly three days a week). In each category there are plans for experienced, and first timer. Runs are described as easy, tempo, marathon pace and so on; but you have to work out the exact pacing yourself, for which there is extensive guidance, as this depends on your capabilities and targets. 

These schedules are not as demanding as those in the classic book Advanced Marathoning by Pete Pfitzinger and Scott Douglas, nor is Murphy’s book as technical. Experienced runners would likely benefit more from the Pfitzinger and Douglas book; yet having read both, I still found Run your best Marathon useful.

Where this title wins though is in its approachability, down to earth style, and coverage of those small details which experienced runners seem just to know, but rarely explain. This is especially true in the second half of the book, about practicalities, body maintenance, how to choose a race, and nutrition/hydration. There is advice on exactly what to eat and drink, and how much, even down to tips like how to drink while running, without choking or coughing. There is also a complete checklist of what you might need for race day, though I am not sure about the bin liner she suggests for keeping dry before the race!

The book is very approachable and especially suitable for those contemplating their first marathon (as I am). Much of it applies to other distances as well, certainly longer runs of 10 miles or more, and there is so much general running advice that it may be worth a read even for those who have no intention of subjecting their bodies to a gruelling 26.2 mile race.

Run your best Marathon by Sam Murphy (Bloomsbury, ISBN 978-1-4729-8952-9)

Running book review: The Race against Time by Richard Askwith

I picked up this book, sub-titled “Adventures in late-life running”, because it seemed a good fit for my own situation, having taken up running as I approach retirement age.

It is not quite what I expected. Askwith’s first love is fell running, which he used to do intensively when younger. He recounts in the first chapter how he returned for a reunion fell run, now in his early sixties, and his reflections on the toll of age on his performance and that of his friends. 12 of them came for the reunion but only 4 actually ran, the others declaring themselves unfit for more than walks and socialising.

What we get in the subsequent chapters is a series of portraits of older runners, most much older than their sixties, backed up with interviews: why do they run in old age, how do they train, what is their story?

There are also interviews with experts on the subject of old age and fitness, and the whole book is punctuated with Askwith’s reflections on aging, mortality, and a few of his own recent experiences of running.

Curiously this is a book which I enjoyed less as it went on. Askwith’s constant self-deprecation becomes tiresome, and he seems almost unaware of the frustrating contradictions which he presents. How much should you train? Not too much and focus on HIIT (high intensity interval training) according to an interview with Peter Herbert. – you can read more about his approach here. Yet we also hear from the amazing Tommy Hughes a world record (for age) marathon runner and how he runs 20 miles a day in training. Or by contrast Angela Copson, who according to the book hardly trained at all for the 2007 London Marathon, other than running alongside her husband riding a bike, but achieved under four hours as a sixty year old woman.

It is all fairly confusing if you come to the book looking for advice on how to run well as an older person; and in fact you should look elsewhere for that kind of advice.

On the other hand, Askwith does put in the hard work of going out and interviewing numerous interesting older runners and for that, the book is well worth a read.

https://amzn.to/3LGn44d

Running and Plantar Fasciitis: so many questions

I started running nearly two years ago and until recently have been injury-free. In February I purchased some new running shoes, similar I thought to ones I had already. The first time I wore them I had some numbness in my left foot but put it down to wearing in. I wore them twice more; the second time they felt better, the third time I was training intensively and it was a disaster. I ran fast but was in pain walking home, mainly in my left foot.

Never again did I wear those shoes; but what had happened? I did some research and discovered that while the shoes I had bought were well rated in general, they were known to have a narrow toe box. Ouch.

I thought that having ditched the shoes all would be well. I continued to run and found that I got a bit of pain to begin with after which it felt fine. Unfortunately matters did not improve; the pain got worse, persisted longer, and I began to have issues walking as well. I realised I had a serious problem, from a running perspective at least. I suspected a thing called Plantar Fasciitis (misnamed because generally not an inflammation) which causes pain on the inside of your heel, where the plantar fascia, a strong piece of connective tissue, joins the heel.

I purchased orthotic insoles which helped to releive pain walking. I started cycling more, in order to keep fit while running less. And I also did a ton of research, discovering to my alarm that Plantar Fasciitis is notorious for lingering for months or even years; and that there appears to be no consensus about how to treat it.

It is a small problem in the context of many worse things that can happen but seeing my plans for a summer of running perhaps in tatters was not a good feeling.

The nadir for me was approximately one month after the injury. I attempted a 5K parkrun and just after 1.5K experienced such intense pain that I abandoned the run and limped to the bus stop. This was almost exactly one month after the injury began.

Plantar Fasciitis: things I learned

This is a common injury mainly affecting two groups of people: runners, and people who are on their feet a lot at work. It is somewhat more common in females but I am a typical sufferer being an older person who has ramped up their running relatively quickly.

While it is easy to diagnose likely plantar fasciitis, knowing exactly what is going on requires an MRI scan (I have not had one). I wanted to discover how to treat it and when I could get back to running; and discovered instead that neither question is easy to answer. In fact, I was surprised how much variation and contradiction there is out there.

Note: none of what follows is advice.

There seem to be two divergent approaches, one of which is focused on support, the argument being that resting the foot and wearing footwear that has heel cushioning and firm arch support will allow the foot to heal.

The other is focused on strengthening, the idea being that the problem occurs because of weakness in the foot and leg. Supporting the foot with insoles tends to make it weaker rather than stronger.

Regarding running with plantar fasciitis, there are arguments for not running until it is completely healed, or that it is OK to run provided the pain is only moderate and that it is no worse the next morning.

The risk of not running is that one loses fitness, though this can be mitigated by other types of activity such as cycling and swimming. The risk of running is that it could make the injury worse.

There are certain things though which are widely agreed. One is that the plantar fascia is just one part of a complex and wonderful system which includes toes, ankle, calves and glutes.

Until now I had taken my ability to walk and run for granted. I have always been a fast walker and assumed that my feet and legs would look after themselves. I now realise that they deserve some love and attention.

Although there is no consensus regarding orthotic insoles, there is reasonable agreement that stretching and strengthening exercises do speed healing.

How I have been treating my plantar fasciitis

Again, this is not advice, only a record of my own experience. I felt instinctively more drawn to the arguments for strengthening rather than support. I read every article and forum thread I could find, with particular interest in reports from others on what had worked for them. I even ventured into the hellhole of YouTube which of course has a million videos all promising quick relief – but it is always worth reading the comments.

I found the insoles did help early on, making walking less painful and running less risky, but resolved to wean myself off them as early as possible.

I obtained some minamalist barefoot-style shoes from Vivobarefoot. It was not just this post from the vendor; I saw other reports saying they were beneficial. Others said they made it worse. In general this is a big subject and merits a separate post; however note that I am not running in these shoes, only wearing them for day to day use. It took some adjustment but I find them comfortable.

I collected some exercises and did them intensively. They take about 25 minutes and I do them three or four times a day. They include:

  • Toe exercises. The big toe is part of the windlass system which includes the planter fascia.
  • Calf stretching exercises.
  • Glute strengthening exercises.
  • Using a resistance band to strengthen the toes and foot.

At first I thought nothing was changing. Three weeks later though, I noticed that I was much improved. I no longer found the first steps in the morning painful. I could walk almost normally. I even tried a tentative run without insoles and it went OK. I resolved not to run with pain higher than a 2 (on a 0-10 scale) and have followed it.

I am two months on from the injury now. I cannot say it is fully healed, but it is now mild and I am runnning almost as normal. I no longer use the insoles. I am keeping going with the exercises though; I do not know which of them is working, but something is helping. Or perhaps it would have got better anyway; it is never easy to be sure.

Some references

NICE (National Institute for Health and Care Excellence) clinical knowledge summary for plantar fasciitis. Recommends resting the foot, not walking barefoot, shoes with “good arch support and cushioned heels”, weight loss, symptomatic relief with an ice pack. Regarding insoles, states that “foot orthoses are widely recommended on the basis that they benefit foot posture and aid fascia healing. However, there is little evidence to support this.”

5 methods to manage plantar fasciitis – based on research though with limitations. Inconclusive but questions the benefits of strength training. Also found that custom-made insoles (much more expensive) are no more effective than off the shelf (cheap).

Detailed look at plantar fasciitis, what it is and how to treat it, from American Orthopaedic Foot and Ankle Society. States that “more than 90% of patients achieve symptomatic relief with 3-6 months of conservative treatment.” Advises that “stretching of the gastrocnemius muscle is a mainstay of treatment of PF.” Positive about insoles stating that “both prefabricated and custom-fitted orthotics have been shown to reduce pain and improve function in the short term with few risks or side effects” though note “short term.”

Can you run with Plantar Fasciitis – I quite like this thoughtful piece though it is inconclusive regarding the question posed in the title. Also quotes research which states, “At the moment there is limited evidence upon which to base clinical practice.”

Fixing a .NET P/Invoke issue on Apple Silicon – including a tangle with Xcode

I have a bridge platform (yes the game) written in C# which I am gradually improving. Like many bridge applications it makes use of the open source double dummy solver (DDS) by Bo Haglund and Soren Hein.

My own project started out on Windows and is deployed to Linux (on Azure) but I now develop it mostly on a Mac with Visual Studio Code. The DDS library is cross-platform and I have compiled it for Windows, Linux and Mac – I had some issues with a dependency, described here, which taught me a lot about the Linux app service on Azure, among other things.

Unfortunately though the library has never worked with C# on the Mac – until today that is. I could compile it successfully with Xcode, it worked with its own test application dtest, but not from C#. This weekend I decided to investigate and see if I could fix it.

I have an Xcode project which includes both dtest and the DDS library, which is configured as a dynamic library. What I wanted to do was to debug the C++ code from my .NET application. For this purpose I did not use the ASP.Net bridge platform but a simple command line wrapper for DDS which I wrote some time back as a utility. It uses the same .NET wrapper DLL for DDS as the bridge platform. The problem I had was that when the application called a function from the DDS native library, it printed: Memory::GetPtr 0 vs. 0 and then quit.

The error from my .NET wrapper

I am not all that familiar with Xcode and do not often code in C++ so debugging this was a bit of an adventure. In Xcode, I went to Product – Scheme – Edit Scheme, checked Debug executable under Info, and then selected the .NET application which is called ddscs.

Adding the .NET application as the executable for debugging.

I also had to add an argument under Arguments passed on Launch, so that my application would exercise the library.

Then I could go to Product – Run and success, I could step through the C++ code called by my .NET application. I could see that the marshalling was working fine.

Stepping through the C++ code in Xcode

Now I could see where my error message came from:

The source of my error message.

So how to fix it? The problem was that DDS sets how much memory it allows itself to use and it was set to zero. I looked at the dtest application and noticed this line of code:

SetResources(options.memoryMB, options.numThreads);

This is closely related to another DDS function called SetMaxThreads. I looked at the docs for DDS and found this remark:

The number of threads is automatically configured by DDS on Windows, taking into account the number of processor cores and available memory. The number of threads can be influenced using by calling SetMaxThreads. This function should probably always be called on Linux/Mac, with a zero argument for auto­ configuration.

“Probably” huh! So I added this to my C# wrapper, using something I have not used before, a static constructor. It just called SetMaxThreads(0) via P/Invoke.

Everything started working. Like so many programming issues, simple when one has figured out the problem!

Amazon Linux 2023: designed to be disposable

Amazon Linux 2023 is the default for Linux VMs on AWS EC2 (Elastic Compute Cloud). Should you use it? It is a DevOps choice; the main reason why you might use it is that it feels like playing safe. AWS support will understand it, it should be performance-optimised for EC2; it should work smoothly with AWS services.

Amazon Linux 2 was released in June 2018 and was the latest production version until March 2023, by which time it was very out of date. Based on CentOS 7, it was pretty standard and you could easily use additional repositories such as EPEL (Extra Packages for Enterprise Linux). It is easy to keep up to date with sudo yum update. However there is no in-place upgrade.

Amazon Linux 2023 is different in character. It was released in March 2023 and the idea is to have a major release every 2 years, and to support each release for 5 years. It does not support EPEL or repositories other than Amazon’s own. The docs say:

At this time, there are no additional repositories that can be added to AL2023. This might change in the future.

The docs also document how to add an external repository so it is a bit confusing. You can also compile your own rpms and install that way; but if you do, keeping them up to date is down to you.

The key to why this is though is in a thing AWS calls deterministic upgrades. Each version, including minor versions, is locked to a specific repository. You can upgrade to a new release but it has to be specified. This is what I got today from my installation on Hyper-V:

Amazon Linux 2023 offering a new release

The command dnf check-release-update looks for a new release and tells you how to upgrade to it, but does not do so by default.

The reason, the docs explain, is that:

With AL2023, you can ensure consistency between package versions and updates across your environment. You can also ensure consistency for multiple instances of the same Amazon Machine Image (AMI). With the deterministic upgrades through versioned repositories feature, which is turned on by default, you can apply updates based on a schedule that meets your specific needs.

The idea is that if you have a fleet of Amazon Linux 2023 instances they all work the same. This is ideal for automation. The environment is predictable.

It is not ideal though if you have, say, one server, or a few servers doing different things, and you want to run them for a long time and keep them up to date. This will work, but the operating system is designed to be disposable. In fact, the docs say:

To apply both security and bug fixes to an AL2023 instance, update the DNF configuration. Alternatively, launch a newer AL2023 instance.

The bolding is mine; but if you have automation so that a new instance can be fired up configured as you want it, launching a new instance is just as logical as updating an existing one, and arguably safer.

Amazon Linux 2023 on Hyper-V

Amazon Linux 2023 came out in March 2023, somewhat late as it was originally called Amazon Linux 2022. It took even longer to provide images for running it outside AWS, but these did eventually arrive – but only for VMWare and KVM, even though old Amazon Linux 2 does have a Hyper-V image.

Update: Hyper-V is now officially supported making this post obsolete but it may be of interest!

I wanted to try out AL 2023 and it makes sense to do that locally rather than spend money on EC2; but my server runs Windows Hyper-V. Migrating images between hypervisors is nothing new so I gave it a try.

  • I used the KVM image here (or the version that was available at the time).
  • I used the qemu disk image utility to convert the .qcow2 KVM disk image to .vhdx format. I installed qemu-img by installing QUEMU for Windows but not enabling the hypervisor itself.
  • I used the seed.iso technique to initialise the VM with an ssh key and a user with sudo rights. I found it helpful to consult the cloud-init documentation linked from that page for this.
  • In Hyper-V I created a new Generation 1 VM with 4GB RAM and set it to boot from converted drive, plus seed.iso in the virtual DVD drive. Started it up and it worked.
Amazon Linux 2023 running on Hyper-V

I guess I should add the warning that installing on Hyper-V is not supported by AWS; on the other hand, installing locally has official limitations anyway. Even if you install on KVM the notes state that the KVM guest agent is not packaged or supported, VM hibernation is not supports, VM migration is not supported, passthrough of any device is not supported and so on.

What about the Hyper-V integration drivers? Note that “Linux Integration Services has been added to the Linux kernel and is updated for new releases.” Running lsmod shows that the essentials are there:

The Hyper-V modules are in the kernel in Amazon Linux 2023

Networking worked for me without resorting to a legacy network card emulation.

This exercise also taught me about the different philosophy in Amazon Linux 2023 versus Amazon Linux 2. That will be the subject of another post.