<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Sam D King</title>
  <subtitle>This is my space online to write about what interests me, track my habits and goals, and try out new technology. Right now, I&#39;m giving Eleventy a go to build this website.</subtitle>
  <link href="https://samdking.co.uk/feed.xml" rel="self"/>
  <link href="https://samdking.co.uk/"/>
  <updated>2026-04-19T00:00:00Z</updated>
  <id>https://samdking.co.uk/</id>
  <author>
    <name>Sam King</name>
    <email>sdking02@gmail.com</email>
  </author>
  
  <entry>
    <title>Running a SUB-3 HOUR marathon</title>
    <link href="https://samdking.co.uk/blog/running-a-sub-3-hour-marathon/"/>
    <updated>2026-04-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/running-a-sub-3-hour-marathon/</id>
    <content type="html">&lt;p&gt;2:56:54. I cracked the illusive sub-3. What a day. I’m certain there are few marathons in the UK that can top Brighton for crowd support and sheer vibes. From start to finish, a truly memorable experience that will live long in the memory.
&lt;/p&gt;&lt;p&gt;My day started with a pleasantly quiet, short walk from my house to Burgess Hill station.
I patiently awaited my train to Brighton, knowing for sure it would be heaving.
Minimal Sunday service, and many runners and their supporters travelling in to the city.&lt;/p&gt;
&lt;p&gt;Squeezed onto the train with decidedly little personal space, it was the small matter of a 14 minute journey to the seaside.
Relieved to shuffle off the train as it creaked into Brighton, I made a beeline for my first toilet stop of the day.
10 minutes later, I’d met up with Francis and Will and we began our walk to Preston Park.
The anticipation was palpable.&lt;/p&gt;
&lt;p&gt;The familiarity of Brighton and the nervous energy for the event was a nice mix for me.
A marathon will always feel an enormous task, but there was a comfort knowing I’d be doing it in a city I knew well.&lt;/p&gt;
&lt;p&gt;We arrived at the park with an hour to spare, but between toilet trips, bag drop and changing, the time was soon eaten up.
We didn’t feel rushed, but were was little to no time for waiting around.
Soon enough, we were in the holding pen, waiting to be ushered to the start line.
This whole process felt really smooth, and although there was a good 2k walk from the station to the park, once in the park, everything was quite condensed.
It was a great atmosphere.&lt;/p&gt;
&lt;p&gt;With 10 minutes to go we were let through to the start line.
Very helpfully there was an entire “last chance” block of toilets directly next to the starting pen.
You don’t want to take any chances with your bladder on a marathon.
The three of us took up prime position a few rows from the front.
We were keen to position ourselves ahead of the 3 hour group so as not to get swallowed up early on.&lt;/p&gt;
&lt;p&gt;The gun promptly sounded and the race was away.
It felt surreal to be starting so close.
Last year in Manchester we were over 100m from the start line and waited over a minute to cross.
This time we were away with the &amp;quot;big boys&amp;quot; and feeling great.&lt;/p&gt;
&lt;p&gt;Almost immediately in Brighton Marathon, there is the biggest hill of the entire course.
This is expertly positioned, as it (mostly) stops you going off too fast, and gets the worst hill out the way while you’re at your freshest.
The hill felt almost effortless, and as soon as you crest it, you have a wonderful downhill section across the top of the park.&lt;/p&gt;
&lt;p&gt;I’d already lost Will by 10 or so metres on the uphill, and soon lost Francis on the downhill.
They had lofiter ambitions for the day so I wasn’t tempted to follow them.
I still found myself cruising down the hill quicker than 4:00/km though.&lt;/p&gt;
&lt;p&gt;I’d drilled into myself the importance of a conservative first 5-10k but it’s much harder in practise to stay disciplined.
Runners were streaming past me as I tried to dial back the effort after taking the corner and heading north up Preston Road.&lt;/p&gt;
&lt;p&gt;The second K, mostly down, was a 3:57.
I then settled into an effort that felt right, gradually easing up with a 4:03 average in the next 3km. Still too fast.&lt;/p&gt;
&lt;p&gt;The crowds in the next 5k were unbelievable.
Multiple rows deep, both sides of the road, it was an electric atmosphere and a real job to keep a lid on things.
But my pace was trickling up to my target pace.
By the 10th KM, I hit a 4:08, registering a 40:47 10k split in Strava (in reality: 40:57, so only 1 second/km out on the GPS at this stage).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-pavilion.jpg&quot; alt=&quot;Me, with another runner, running in the foreground past Brighton Pavillion in the background&quot; /&gt;&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  It was at the second water stop where my lack of practice taking my electrolyte tablets become apparent.
  After losing almost an entire blister pack of tablets last year, this time I’d taped the pills to my gels.
  But my error was forgetting to remove the pill from the gel before grabbing a cup of water.
  With no way to remove the pill one-handed, I had to admit the defeat and save the pill for later.
&lt;p&gt;In the confusion, I also missed the cup disposal bins.
So for the next 2 miles I had a paper cup in one hand, and an electrolyte tab taped to an empty gel packet in the other.
Not the smoothest!&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;The 11th K featured the next sizeable hill of the course.
This was up the bustling St James’s street.
It was less busy than I’d seen on previous years, but I’ve no doubt it would increase as the streets got busier with runners.&lt;/p&gt;
&lt;p&gt;Similarly with the first, my heart rate was the only real indication I was going uphill.
Having trained on hills all year round, the hills on the Brighton Course are minimal.
And with a healthy dose of adrenaline and still relatively fresh legs, they did not pose a problem.
I did however see my first spike in heart rate, hitting 173 from the mid-160s I had been in.&lt;/p&gt;
&lt;p&gt;The downhill onto Marine Parade settled my heart rate back down and I felt calm once again.
The next 4km were metronomic; all 4:07s. An average pace that would see me finish under 2:54.
The wind was behind us and a gentle hill posed very little threat.
My heart rate in these Ks did start to creep into the high 160s though.&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  As I settled in, I struck up a conversation with a runner in a Brentwood vest.
  Noticeable in white and green, they’d been just ahead of me for as long as I could remember.
  As I pulled alongside, we exchanged a few words and helpfully had similar goals for the race.
&lt;p&gt;The conversation helped and reminded me how much of a boost it can be in a race to have a simple human connection with someone.
I wish I’d done this more later in the race.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;I felt really strong up the hills, but if my Strava-calculated GAP (grade adjusted pace) was anything to go by, perhaps I was a little hot here.
However the vibes were great, the wind was proving useful, and life was good.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-marina.jpg&quot; alt=&quot;Me and 2 other runners running along Marine Parade towards the Marina, with the sea and the pier in the background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I distinctly remember feeling a little isolated but unwilling to make a push to the small group up ahead.
Perhaps this shows a naivety when it comes to race strategy, or perhaps I made the right call.
But every race is an opportunity to learn something new.&lt;/p&gt;
&lt;p&gt;The small out and back to Ovingdean was a good break in the monotony.
It was a useful opportunity to briefly check in with those ahead of me.
Will and Francis at this point were expertly positioned at the back of a fairly substantial group.
We exchanged a few words of encouragement.&lt;/p&gt;
&lt;p&gt;Turning around in Ovingdean at around 17km was the first taste of the wind.
Heading directly South we probably got the brunt of it in that small section.
We didn’t feel it for long though, as we soon turned left for our last stretch east towards Rottingdean before the turnaround.
This was quite a short, sharp hill.
I remember feeling the exertion of it, but also felt like I could take it in my stride and didn’t slow too much.
3:52/km GAP pace for the 18th KM probably wasn’t the smartest.&lt;/p&gt;
&lt;p&gt;Turning around, we were faced with the headwind properly for the first time.
My first thought was, it’s not terrible.
It was paired nicely with the descent of the hill we’d just climbed.
Next however, was the final hill of the Brighton course.
It snuck up on you.&lt;/p&gt;
&lt;p&gt;The sea vista was sublime, but the combination of the hill and the wind noticeably slowed the pace for the first time in the race.
The 20th kilometre was a 4:18, and my HR was into the 170s, close to my threshold HR.&lt;/p&gt;
&lt;p&gt;I didn’t panic, I knew a gentle downhill back into Brighton was coming, and I could relax a little and let the pace come back to me.
I passed through halfway in 1:27:01, on pace for a 2:54 marathon.
I did some quick maths and worked out I could hold 4:12s for the remainder and come in under 2:55.
After averaging 4:07s for the first half and still feeling good, this felt achievable.&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  It was somewhere around 23km that I had my first wobble.
  It wasn’t significant, but I felt my energy levels dip.
  Then it dawned on me; I’m pretty sure I’d missed a gel.
&lt;p&gt;I had alerts every 20 minutes on my watch, but I’d made the semi-last-minute decision not to wear any headphones for the race.
I’d trained in headphones almost every single run, and I think I’d rather got used to the audio alerts every lap.
And in the hubbub of the race, I’d forgotten to take my 4th gel.&lt;/p&gt;
&lt;p&gt;It’s funny, training runs can be so uneventful and motonous that at times it felt like I was just counting down the minutes till my next gel.
But in a race, you have to be really mindful of taking on fuel, because 20 minute blocks fly by.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;I quickly popped it, about 15 minutes later than planned.
It coincided nicely with a downhill along Marine Parade to the pier.
This section was immense for crowd support.
Loud and proud.
I was beaming as I rounded the corner of the sea life centre and headed up Madeira Drive.
I felt sufficiently topped-up again and thanked my lucky stars it was likely just a momentary dip.&lt;/p&gt;
&lt;p&gt;It was along here I caught up with my old Brentwood friend from earlier.
Looking at our splits post-race, I think he’d been just behind me for the entire stretch back to Brighton, but I wasn’t aware until he pulled along side me.
This little out-and-back section I quite enjoyed.
The pace was about where it should be, and the effort felt manageable.
There were some great cheer squads from the various charities along here.&lt;/p&gt;
&lt;p&gt;As we turned around and headed west again, I felt the wind.
Around 27km my heart rate had made a jump into the 170s, after chilling in the high 160s until this point.
In retrospect, this was probably my first red flag that this effort might not be maintainable for the remaining 15k.&lt;/p&gt;
&lt;p&gt;The section west of the pier was very well supported, but even more exposed to the wind.
I remember this point being particularly bad 6 weeks earlier at Brighton Half.
It was here where the enormity of the task ahead began to make itself known.
I tried to silence those thoughts and lock in to the right effort.
I don&#39;t recall much of my surroundings at this point in the race, but there was some decent course entertainment here.&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  I made a decision at that stage to swap my watch screen from lap pace to overall pace.
  I think I knew the pace was slipping and I didn’t want to see the goal go out of reach.
  In reality, I was holding 4:12s in this section and perhaps I should’ve had more confidence.
&lt;/aside&gt;
&lt;p&gt;I found myself in a small 3-5 person group for some of this, including a Brighton Phoenix runner called Adam, who I’d started next to.
It felt good to be running in sync with a couple of guys for a bit, having run the majority of the race solo so far.
I was also buoyed by the thought of seeing my family and some friends from 30k.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-seafront.jpg&quot; alt=&quot;Me and 4 other runners running along Kingsway, with the Palace Pier in the background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Turning up Grand Avenue and passing the 30k timing mat I think I must’ve surged a little.
I found myself running alone and allowed the crowd to sweep me along for a bit.
I saw Matt Southam on the corner and he gave me a great boost.
Matt and I met on the finish line in Manchester last year, brought together as mutual listeners of Running the Red Line podcast.&lt;/p&gt;
&lt;p&gt;I knew this out-and-back section would be a drag, but I tried to put the growing fatigue in my legs to the back of my mind.
Seeing my family and, shortly after, my good friend Andy Stainer, lifted my mood.
But by 33km it was really starting to bite.
The pace was steady, but just slightly starting to drift the wrong side of the 4:12s I needed.
I was beginning to question what I was running this for.&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  I don’t think I made any big errors in my fuelling, but due to my indecisiveness, I’d opted for 3 different brands of gels.
  I had a rough order in my head of when I wanted to take them, but with hindsight, it took a bit too much brain power to stay on top of.
&lt;p&gt;It would’ve been much easier to have lumped for 7-8 of the same gel, with maybe a few caffeine varieties mixed in.&lt;/p&gt;
&lt;p&gt;I ended up taking my 100mg Precision caffeine gel too late, nursing it from around 33km.
Caffeine takes 40 minutes or so to peak in your system, so taking this 30 minutes earlier might’ve set me up better for the final 10k.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;After completing the unexplainably soul-destroying loop of Wish Park; as I made my way back onto the very well supported New Church Road I hit another big slump around 36k.
Picking up a cold bottle of carbs &amp;amp; electrolytes and some supportive words from my family gave me a pick me up.
But I could barely more than sip the sweet liquid.&lt;/p&gt;
&lt;p&gt;Turning back onto Grand Avenue and this time right onto Kingsway was probably around the lowest point.
Crowds were thin, the field was extremely stretched, and we were hit with that wind again for another 2km.
I could barely muster the motivation to continue.
Pace took another dive to an all time low, around 4:30/km, but it felt slower in the moment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-beach.jpg&quot; alt=&quot;A wide shot of Hove seafront and the beach with runners in the foreground&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Seeing a lone solitary Andy on the side of the road was enough of an excuse to keep moving forward.
Andy did his best to remind me there was a massive PB on the cards and to keep pushing.
I told him it was a fight just to keep from stopping.
But as my watch beeped 39km, something seemed to click.
Maybe it was the sight of the lagoon and the turnaround point in the distance.
The sweet scent of the finish line.
But in that moment I got a surge of motivation to pick the pace back up. Marathons are full of surprises.&lt;/p&gt;
&lt;p&gt;Into the wind, I doubt this resulted in much of an increase, but it was enough to stop the rot.
I managed to overtake someone as I moved ever closer to the top of the lagoon and - as Sam Bacon likes to point out in his videos - Fatboy Slim’s house.&lt;/p&gt;
&lt;p&gt;There’s a very marginal ascent back onto the prom which felt like the biggest hill of the course in that moment.
But rounding the corner and feeling the wind behind me, I felt the urge to push.&lt;/p&gt;
&lt;p&gt;It was a painful but equally wonderful feeling to have something to fight for.
I couldn’t do the maths in my head, and I all but knew 2:55 was off the table, but I’ll be damned if I was going to carry on running any longer than I had to.&lt;/p&gt;
&lt;p&gt;Thus began a gradual shift up the gears for the final 2km.
It was a beautiful moment.
Running past and ticking off the landmarks that I’d ran past in training and races so many times.
Amazingly the section seemed to go by quite quickly in my head.&lt;/p&gt;
&lt;aside class=&quot;minor-aside&quot;&gt;
  Whilst picturesque, except for the final 500m, it’s an out of character final 2km of a big marathon.
  Running past the beach huts and the old King Alfred leisure centre, the path is narrow and not fenced off.
  You’re running with the public milling around, and it was surprisingly quiet for the majority.
&lt;/aside&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-finish.jpg&quot; alt=&quot;Me on the finishing straight, smile/grimacing, with fists pumped, e several runners in the background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The final stretch on the wide prom is quite the spectacle.
You’re funnelled fairly narrowly into the finishing straight, and with deep crowds either side to cheer you in.
I had dreams of smashing my time goal and really soaking in this final stretch, easing off the gas.
But honestly, I don’t know anyone who can slow down at the end of the race.
The legs are into autopilot-get-to-the-finish-line mode.&lt;/p&gt;
&lt;p&gt;I was surprised my legs still had a kick at this stage.
It was a triumphant finish, as it dawned on me that I would’ve bitten your arm off for a sub-3 a year ago.
And here I was, with the finish clock ticking up to 2:57, running strong in what felt like my hometown race.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-finish2.jpg&quot; alt=&quot;Me, nearly at the finish line, with a shot of the crowd on the sidelines&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Crossing the finish line, my legs abruptly stopped, and I almost toppled over as my top half continued moving forward.
I managed to steady myself and momentarily bask in the accomplishment.
Few things beat that feeling.&lt;/p&gt;
&lt;p&gt;I tried to take a perch on the fence to the side but I was swiftly moved on by a St Johns ambulance man.
“Trust me it’ll feel better to keep moving”.
I knew he was right, and in my exhausted state I staggered forwards to accept my finishers medal.&lt;/p&gt;
&lt;p&gt;I graciously accepted a small can of water, which I downed in a matter of seconds.
I grabbed my finishers t-shirt and refused some sort of protein yogurt pouch due to it containing dairy (honestly I don’t imagine this looked appetising to anyone post-marathon).
A banana or granola bar would’ve been nice, but that was disappointedly the end of the race goodies.&lt;/p&gt;
&lt;p&gt;After briefly catching up with Will (2:54:34) and Francis (2:49:49), I hobbled back to snaffle another can of water.
I was dehydrated, I could feel it.
I popped one of my spare electrolyte tabs with it too.&lt;/p&gt;
&lt;p&gt;I collapsed on Hove Lawns, no more than a few metres from the race exit.
My family found me and plied me with my recovery snacks.
A bagel (fail; mouth still too dry), Huel, crisps and an oat bar.&lt;/p&gt;
&lt;p&gt;I felt pretty out of it, more so than last year at Manchester.
Perhaps I’d been a little closer to my red line for a little longer this year.
Four minutes quicker.
A sizeable improvement on a tougher course.
I wasn’t able to take in a lot about the finish area vibes.
With 2 over-stimulated kids and an expiring car ticket, I was soon back on my feet, this time in a comfy pair of crocs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/brighton-marathon-village.jpg&quot; alt=&quot;A wide shot of Brighton &amp;amp; Hove beach with the race village and thousands of people in the foreground&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Brighton Marathon 2026.
14 years after running it originally.
My race was run.
There were a few small lessons to take into the next race, but on that day, with the conditions we were dealt, I’m very proud of my race.
2:56:54.
And I have plenty of unfinished business with the marathon.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>AI scares me</title>
    <link href="https://samdking.co.uk/blog/ai-scares-me/"/>
    <updated>2026-03-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/ai-scares-me/</id>
    <content type="html">&lt;p&gt;AI scares me. Not because I’m frightened about an apocalyptic AI uprising that threatens to destroy humanity (although it is in the back of my mind). It scares me because I work in tech, and for the first time since AI hit the “mainstream” with chat bots, I feel left behind.
&lt;/p&gt;&lt;p&gt;That’s quite a vulnerable admission to make about my career.
I’ve never been an overtly confident developer, despite feeling reasonably secure in my skillset.
Imposter syndrome has always lurked just round the corner, ready to sink its claws in.&lt;/p&gt;
&lt;p&gt;Whilst I’ve seen technology come and go and evolve since I got my first job on the web in 2010, AI feels like the first true game changer.
AI is rewiring what it means to be a developer.&lt;/p&gt;
&lt;p&gt;I’ve prided myself in my ability to go through the learn/try/execute cycle.
The web is a wealth of knowledge if you know where and how to look for it.
And with the right practice and application, new knowledge can be acquired and become part of your arsenal.&lt;/p&gt;
&lt;p&gt;But with AI, a lot of this can be skipped.
The manual trial and error and assimilation of knowledge is no longer necessary.
With a clear enough instruction, AI can be used to simply do the task in your head.
If you can imagine it, AI can do it.&lt;/p&gt;
&lt;p&gt;This scares me.&lt;/p&gt;
&lt;p&gt;I am a methodical worker. I enjoy the learning process.
I enjoy seeing the results of my labour.
Until now I’ve accepted time is a common denominator in this process.
But in the modern, fast-paced economy, there’s now a fast track.&lt;/p&gt;
&lt;p&gt;I’m old enough to be cynical about the long term future of AI.
But there is no denying its usage and benefit in the present on productivity.
It feels like a technology that you either jump on board with, or get left behind in the industry.&lt;/p&gt;
&lt;p&gt;So, perhaps against my better judgement, I’m jumping aboard the AI train and seeing if it makes me a more productive developer.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2025 year in review</title>
    <link href="https://samdking.co.uk/blog/2025-year-in-review/"/>
    <updated>2026-02-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2025-year-in-review/</id>
    <content type="html">&lt;p&gt;A much belated year in review post. Completing to-dos has not come easy to me so far in 2026. I actually haven’t completed one since 17th December 2025. I should work on that this year.
&lt;/p&gt;&lt;p&gt;This is my fourth year in review post, as I enter into my 5th consecutive year of daily journalling.
It’s a highlight of my day revisiting my “On This Day” journal posts to discover how much, or indeed how little, my life has changed in the subsequent years.&lt;/p&gt;
&lt;p&gt;I never got round to setting goals for this year, but I’ll do my best to reflect on the year anyway.
There are enough “I want to do more/less of this” sentiments in my last review post to mull over how much I achieved in 2025.&lt;/p&gt;
&lt;h2&gt;Personal life&lt;/h2&gt;
&lt;p&gt;Similarly to last year, no big changes in my life in 2025.
Brandon started in year 1 at school and Alba entered pre-school, her final year at nursery.
I’m both enthralled and exasperated by how quickly Brandon’s personality is developing since starting school.
His strong emotions make it feel like we’re living with a teenager already.
But he’s so bright and inquisitive and forever curious.&lt;/p&gt;
&lt;p&gt;Alba is developing a very different personality of her own.
Empathetic and gentle, but wild and outgoing at times.
It’s so easy to get caught up in the daily and weekly routines and miss the small stuff.
But kids will throw something new your way, good or bad, if you’re present to receive it.&lt;/p&gt;
&lt;p&gt;Trip highlights included 2 summer holidays - a week camping in Leicestershire and a week by the sea in Salcombe, Devon.
We didn’t actually camp, we stayed in a lodge on the camp site, but we got our first experience of campsite life with my larger family, which was great.
We also celebrated new year with my in-laws with Airbnb cottage in Oxfordshire.
It was a lovely relaxing end to the year, with a great mix of runs exploring the local area and lots of food &amp;amp; drink.&lt;/p&gt;
&lt;p&gt;I made a solo weekend trip to Manchester for the marathon in April, where I met up with my sister and her boyfriend.
It was a bit of a whirlwind in-and-out trip, but nice to do something way out of my usual routine.
More on the race itself below!&lt;/p&gt;
&lt;p&gt;I caught the sharp end of a couple of bad Vinted sales, splurging over a few hundred on some dud running shoe copies.
I’ve learned my lesson now - be very sure what you’re buying on Vinted; avoid the mass reseller-type accounts, make certain before accepting the purchase, and the classic - if it seems too good (cheap) to be true, it probably is.&lt;/p&gt;
&lt;p&gt;I had a big long think about my hobbies in 2025.
And &lt;a href=&quot;https://samdking.co.uk/blog/when-hobbies-die/&quot;&gt;wrote at length about it&lt;/a&gt;.
I’d come to realise as running has increased its presence in my life, it’s squeezed out others.
I also reminisced about past hobbies that gradually lost their relevancy over time.&lt;/p&gt;
&lt;p&gt;One of those hobbies was going to Chelsea matches.
I attended just 3 matches this year, all at Stamford Bridge (down from 10 in 2024).&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “relationships” &lt;strong&gt;142&lt;/strong&gt; times journalling in 2024, exactly the same total as 2023. I used the “house” tag &lt;strong&gt;40&lt;/strong&gt; times (up from 37 in 2024), and “money” &lt;strong&gt;35&lt;/strong&gt; times (down from 40). I tagged my kids a combined &lt;strong&gt;316&lt;/strong&gt; times.
&lt;/aside&gt;
&lt;h2&gt;Work&lt;/h2&gt;
&lt;p&gt;I’ve gone full steam ahead on migrating old systems to new.
There’s something I find incredibly satisfying about porting a legacy codebase to a new one and having modern testing and coverage tools at my disposal.
It’s given old business logic a lease of life, improving its test coverage and ensuring its longevity for many years to come.&lt;/p&gt;
&lt;p&gt;We still have a long way to go, but it’s satisfying, incremental work that I enjoy.
Over time, decisions have been made that favour stability and safety, but in doing so have accumulated technical debt.
I’m trying to bring us out of this mindset and being more proactive and less defensive.&lt;/p&gt;
&lt;p&gt;I’ve delved into Shopify’s API and extension tools, sharpening my React skills along the way.
This was a fun project, and although the learning curve was steep, I enjoyed learning and using Shopify’s development toolkit to build out a set of requirements for our customer service team.&lt;/p&gt;
&lt;p&gt;I’ve also really enjoyed learning and using Hotwire more.
It’s a great set of tools for the modern developer.
Particularly one that doesn’t want to rely so heavily on Javascript for realtime interaction.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I talked about work &lt;strong&gt;163&lt;/strong&gt; times in my journal in 2025, 4 more than in 2024.
&lt;/aside&gt;
&lt;h2&gt;Social&lt;/h2&gt;
&lt;p&gt;I tagged “social” in my journal 142, down from 176 in 2024.
This comprised the following types of activities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;34 football matches&lt;/li&gt;
&lt;li&gt;24 bouldering sessions&lt;/li&gt;
&lt;li&gt;12 house meets (not just ours)&lt;/li&gt;
&lt;li&gt;15 pubs, cafes &amp;amp; restaurant&lt;/li&gt;
&lt;li&gt;9 organised events (football matches, races)&lt;/li&gt;
&lt;li&gt;22 sport meet-ups (running mostly)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Down a fair bit from last year.
I haven&#39;t exactly withdrawn from society, but I do find myself more content doing less.
Consistent Parkruns and running training has eaten into previous social time at weekends.
But I still feel we do enough as a family.&lt;/p&gt;
&lt;h2&gt;Fitness&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2025-fitness-chart.png&quot; alt=&quot;Fitness graph of 2025 showing running, walking and other distances per week&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2025 saw another big year and increase on fitness.
I logged a total of 5,232km, up 2% on 2024’s total of 5,114km.
Digging down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running was up 12% from &lt;strong&gt;3,141&lt;/strong&gt; to &lt;strong&gt;3,521km&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Walking was down 7% from to &lt;strong&gt;1,501km&lt;/strong&gt; to &lt;strong&gt;1,404km&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Other was down 35% from &lt;strong&gt;472&lt;/strong&gt; to &lt;strong&gt;307km&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Non-distance-based activities such as bouldering and strength training were a mainstay in 2025:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I bouldered &lt;strong&gt;24 times&lt;/strong&gt; (up from 14 in 2024)&lt;/li&gt;
&lt;li&gt;I strength trained &lt;strong&gt;56 times&lt;/strong&gt; (up from 55 in 2024)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I averaged 17,422 steps/day for the year, almost exactly the total from 2024.
More running, but less walking.&lt;/p&gt;
&lt;h3&gt;Football&lt;/h3&gt;
&lt;p&gt;I attended 34 Monday night matches in 2025, down 9 from the previous year.
I had to stop going for a period during the depths of marathon training in the spring, due to managing a minor injury.&lt;/p&gt;
&lt;p&gt;I won just 14 of those games.
I definitely felt out of sorts for a lot of this year.
An increase in running volume and intensity, and refocus of goals, led to a drop in form in football.&lt;/p&gt;
&lt;p&gt;We had a bit of a topsy-turvy year logistics-wise.
Our usual venue at Hove Park was unavailable over the summer months as a new surface was laid.
We moved to a smaller, faster “always-in-play” pitch at Withdean.
This lead to fewer numbers, and a different game that took some physical adjustment.
But overall, it was a positive experience to try a different style of play for part of the year.&lt;/p&gt;
&lt;p&gt;But I’m still hugely enjoying and reaping the benefits of Monday night’s social game; I’ve got a few years left in me yet.&lt;/p&gt;
&lt;h3&gt;Strength Training&lt;/h3&gt;
&lt;p&gt;Similar to last year, I’ve been able to stay consistent with this, with 1-2 sessions a week most weeks.
I don’t push my body to the point of failure during these sessions, but I always get a decent burn and training stimulus from them.
I see them very much supplementary to my running, as injury prevention and performance enhancing.&lt;/p&gt;
&lt;p&gt;I bought a couple of small additions to my home gym - two 5kg regular-sized bumper plates.
These have made exercises like hip thrusts and deadlifts, where the weight starts on the floor, easier.
I also bought a barbell pad that wraps around the bar making hip thrusts more comfortable and able to take a higher weight.&lt;/p&gt;
&lt;h3&gt;Bouldering&lt;/h3&gt;
&lt;p&gt;I’ve really enjoyed my twice-monthly Bouldering sessions.
As much a social natter as a physical activity, it ticks a lot of boxes.
I enjoy the challenge of attempting tougher climbs and I can feel the benefit to my body.&lt;/p&gt;
&lt;h3&gt;Cycling&lt;/h3&gt;
&lt;p&gt;Even less cycling this year than last.
&lt;strong&gt;32&lt;/strong&gt; activities and &lt;strong&gt;193km&lt;/strong&gt; total km logged.
My longest ride was 32.2km, in May.
I can’t really put my cycling drop-off down to much, other than focusing more on my running.&lt;/p&gt;
&lt;h3&gt;Running&lt;/h3&gt;
&lt;p&gt;I ran over 3,500km in 2025, just under 400km more than in 2024.
I had a target of 3,500 which I just scraped in the final few days of the year.
I was ahead of my target and on track to hit my target at the beginning of December, but - in customary annual fashion - I was struck down by a bad case of flu in mid-November.
It blew apart my routine, in many ways, not least my running.
I only began to pick up my typical schedule in the final few weeks of the year.&lt;/p&gt;
&lt;p&gt;Another early illness in the start of the year halted gains I’d made in the previous December and threw a spanner in the works of my marathon training plan.
Ultimately I was able to steady the ship and put in a &lt;a href=&quot;https://samdking.co.uk/blog/peak-training-month-sub-3-marathon-build/&quot;&gt;decent build towards Manchester Marathon&lt;/a&gt;, however I did fall slightly short of my sub-3 goal.
&lt;a href=&quot;https://samdking.co.uk/blog/running-a-3-hour-marathon-manchester-2025/&quot;&gt;I ran 3:00:58&lt;/a&gt;.
Best of all, I had a brilliant experience running my first marathon since 2012.&lt;/p&gt;
&lt;p&gt;Other races included Paddock Wood half marathon in March, where I ran a slightly disappointing 1:27:17, 100 seconds shy of my PB.
It wasn’t a goal race, however, and I didn’t taper for it.&lt;/p&gt;
&lt;p&gt;I also ran 2 10k PBs. One in June, in Worthing, 37:17.
The second in November, in Brighton, 36:36.
I exceeded my targets in both these races, and in particular, the result in Worthing was a bit shock.
I was on a bit of a downer post-marathon, physically every run felt like hard work.
I went into the race hoping for a sub-38, and ended up running a strong negative split.&lt;/p&gt;
&lt;p&gt;I managed to run 4 5k PBs in the year too, beginning on the 4th January in Worthing.
18:05.
I cracked 18 minutes on Hove seafront at the end of March with a 17:59.
In July I ran my first 5k race, on the track in Battersea.
It was a fun experience under the lights, and I ran a PB of 17:51.
In September I, in Worthing once again, I ran a 17:43 - my current PB.&lt;/p&gt;
&lt;p&gt;Not to be overlooked, I signed up for a looped Half Marathon race in Battersea Park at the end of September in an attempt to hit a PB in all 4 major distances.
A short, sharp training block, committing to the Norwegian Singles Approach, got me a big PB of 1:23:10.
It wasn’t the lofty goal I’d set myself, but it was a sizeable 2:47 minute PB.&lt;/p&gt;
&lt;p&gt;The rest of the year I doubled down on the Norwegian Singles Method, convinced of its merits of structured, consistent sub-threshold work.
Following the half marathon in September, I was able to gradually build week-on-week up to 94k leading up to Brighton 10k.
As mentioned, an illness immediately post-Brighton 10k ended hopes of a strong finish to the year, and possibly another 5k PB attempt.
But it was perhaps the quiet end my body desired after a packed year of achievements.&lt;/p&gt;
&lt;h3&gt;Parkrun&lt;/h3&gt;
&lt;p&gt;2025 was a bumper year for Parkrun.
I’m a fully indoctrinated Parkrunner these days! Just ask my family.
I ran 38 Parkruns, and volunteered twice at Junior Parkrun 18 new Parkrun locations this year and 26 in total of the year.
As of January 2026, I’m 5 away from completing my Parkrun alphabet!
I ended the year on a total Parkrun tally of 135.&lt;/p&gt;
&lt;h2&gt;Health&lt;/h2&gt;
&lt;p&gt;2025 was going very well on the health front until mid-November.
Until then, I was ill for just 5 days, all in mid-January.
Then I was hit with one of the worst illnesses I’ve had in years.
Flu, I think, followed by an infection requiring two courses of antibiotics to get rid.
I ended the year with a total of 12 ill days.&lt;/p&gt;
&lt;p&gt;I got into a good regimen of supplement-taking, adding iron and magnesium glycinate to my “stack”, alongside vitamins B12, C &amp;amp; D (+ zinc).
It’s a fair whack, but it ticks a lot of boxes and is pretty cheap to take daily.
I still take Huel Black after most runs to fill out any other nutrients I might be lacking in, such as Omega 3s.&lt;/p&gt;
&lt;p&gt;The year wasn’t without injury.
My hamstring tendinopathy flared up post-marathon, and during the marathon build I developed some mild posterior tibial tendinopathy (ankle/calf area).
Neither stopped me running, but more reinforced the importance of regular strength training.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “health” &lt;strong&gt;217&lt;/strong&gt; times journalling in 2024, up from 183 in 2024! A big year for focussing on health.
&lt;/aside&gt;
&lt;h2&gt;Sleep&lt;/h2&gt;
&lt;p&gt;It’s been a good year for sleep, aided by the magnesium glycinate I think.
Late nights have been curbed for the most part, and early morning runs have become more common.&lt;/p&gt;
&lt;p&gt;Upgrading my watch this year has now given me a sleep score out of 100.
A daily target I aim for is a sleep score in the 90s.
Since September I’ve achieved an average sleep score of 85.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I talked about sleep &lt;strong&gt;155&lt;/strong&gt; times in my journal this year, up 40% on last year’s total of &lt;strong&gt;110&lt;/strong&gt; times.
  &lt;strong&gt;10:50pm&lt;/strong&gt; was my average bedtime throughout the year.
&lt;/aside&gt;
&lt;h2&gt;Podcasts&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2025-podcasts-chart.png&quot; alt=&quot;Chart showing podcast listen time per week in 2025&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Podcast listens got another bump on last year, continuing the trend.
I listened to 737 hours of podcasts in 2025, up 9% on last year.
That’s over 14 hours a week (yikes).&lt;/p&gt;
&lt;p&gt;I listened to 33 shows in total, with 11 being new.
That’s 1 more new show than last year.&lt;/p&gt;
&lt;h3&gt;Top 5 shows by total listen time&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;⬆️ Life in Stride&lt;/strong&gt; (4 days, 14 hours - 104 episodes) - the most fun, informative, inspiring podcast when it comes to running. Some top quality banter between the co-hosts and some excellent quality guests in the running and fitness world. Recently started releasing twice-weekly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;⬆️ The Daily Hobby Jogger Show&lt;/strong&gt; (4 days, 5 hours - 113 episodes) - I’ve watched Yowana’s show review video on YouTube for several years, but decided to pivot to consuming in audio format. A great companion on long runs to stay abreast of the running shoe world.&lt;/li&gt;
&lt;li&gt;➖ &lt;strong&gt;Running the Red Line&lt;/strong&gt; (4 days, 4 hours - 44 episodes) - I never miss an episode. Not quite weekly, but always chonky in size. Veering off topic is these guy’ speciality. The running chatter is great, and the other stuff is usually pretty funny.&lt;/li&gt;
&lt;li&gt;➖ &lt;strong&gt;Football Clichés&lt;/strong&gt; (2 days, 20 hours - 84 episodes) - A stalwart ever-present. Always delivers. It’s amazing the amount of funny and engaging content these guys are able to consistently put out. I often find myself laughing out loud on runs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;⬇️ Deep Questions with Cal Newport&lt;/strong&gt; (2 days, 17 hours - 48 episodes) - Less listening than last year, the format has not really changed. But my interest in the subject matter has waned somewhat. Still a good listen when I’m not into running content.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All-change at number one.
Diary of a CEO has been usurped by Life in Stride, a new entry.
Deep Questions fell from 2nd to 5th, to be replaced with The Daily Hobby Jogger Show.
Running podcasts have unsurprisingly taken over my airwaves this year.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I listened to &lt;strong&gt;33 unique&lt;/strong&gt; podcast shows this year, 1 fewer than last year. That included &lt;strong&gt;11 new shows&lt;/strong&gt;, 1 more than 2024.
&lt;/aside&gt;
&lt;h3&gt;Some new podcasts discovered this year&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Miles Better&lt;/strong&gt; - A podcast from the guys at Kaizen, a race predictor &amp;amp; training tool. Not regular, but some good running tips and insights behind the tool, which I used for a few months this year ahead of key races.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Physiology of Endurance Running&lt;/strong&gt; - a bit heavy and sciency at times, and a tendency to be a bit waffly. But there’s some really interesting takeaways about, well, the physiology of endurance running (a mouthful of a podcast name).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Internet Dads&lt;/strong&gt; - some light-hearted, Dad-relatable chatter. I like these guys, they’re fun to share an hour with. Went dark in the final few months of the year for some reason. I expect they’ll be back.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;New shows comprised 70 hours of listen time (9.5% of total listen time).&lt;/p&gt;
&lt;h2&gt;TV&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2025-tv-chart.png&quot; alt=&quot;Bar chart showing television hours watched per week in 2025, broken down by live football vs. everything else&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A big increase in TV watching this year, after a dip in 2024.
I watched 182 hours in total, up from 125 last year (a 45% increase).
I got into some super-engaging new TV shows this year, as well a few firm favourites returning.
I had a small break from watching a show in weeks 30 - 36 (mid-July to early September).&lt;/p&gt;
&lt;p&gt;Live football accounted for exactly half of my total watch time (91 hours, up from 80 hours in 2024).
Premier League led the way with 1 day and 16 hours (23 matches), with Champions League second in 19 hours (11 matches).&lt;/p&gt;
&lt;h3&gt;TV Show highlights&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Silo (seasons 1 &amp;amp; 2)&lt;/strong&gt; - A brand new show. Pacing quite variable, with some dull filler episodes in the middle, but overall I loved this show, particularly the concept and aesthetic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Severance (seasons 1 &amp;amp; 2)&lt;/strong&gt; - Another new, Apple TV original. Not quite as binge-worthy as Silo, but as watchable as it was bonkers. Left me feeling “WTF” after most episodes. Borderline too weird at times.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Squid Game (seasons 2 &amp;amp; 3) -&lt;/strong&gt; Picked up exactly where it left off. Pure entertainment. A brilliant format of camaraderie and shock horror.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Black Mirror (season 7)&lt;/strong&gt; - One of the few things &lt;a href=&quot;https://samdking.co.uk/blog/black-mirror-back-to-form-season-7/&quot;&gt;I blogged about this year&lt;/a&gt;! A really strong season of a show I love.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adolescence (season 1)&lt;/strong&gt; - Gut-wrenching emotion, particularly as a father myself. A stunning first episode; I felt it lost its way a little as the season progressed. But superbly produced and acted.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stranger Things (season 5)&lt;/strong&gt; - A fitting finale I thought. Just a brilliant climax to a memorable TV franchise. A Gen-Z/millennial crossover classic.&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I watched TV on &lt;strong&gt;138&lt;/strong&gt; days of the year in 2025, a 45% increase from 2024.
&lt;/aside&gt;
&lt;h2&gt;Films &amp;amp; Books&lt;/h2&gt;
&lt;p&gt;I watched 3 more films than in 2025, 31 in total.
Charlotte and I went to the cinema just once, to see 28 Years Later.
Overall for the year, my average rating was 4.03, up significantly from 3.39 in 2024.&lt;/p&gt;
&lt;h3&gt;A few film highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;28 Years Later, 2025&lt;/li&gt;
&lt;li&gt;Alien: Romulus, 2024&lt;/li&gt;
&lt;li&gt;Straw, 2025&lt;/li&gt;
&lt;li&gt;The Gorge, 2025&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reviews can be found on my &lt;a href=&quot;https://samdking.co.uk/films/2025/&quot;&gt;film page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I only read 8 books in 2025, 4 fewer than in 2024.
It wasn’t a good year for reading it has to be said.
I never got into a good reading habit, certainly something I can learn from my wife!
I read just 3 fiction books, all of which I enjoyed.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I read on &lt;strong&gt;122&lt;/strong&gt; days of the year, down from **150** in 2024.
  Just 33% of the available days of the year.
&lt;/aside&gt;
&lt;h2&gt;Blogging&lt;/h2&gt;
&lt;p&gt;I really quiet year on the blogging front.
I had very little motivation or topics to blog about.
That is something I aim to change in 2026.
I blogged just 5 times, down from 19 last year.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I spent just &lt;strong&gt;18&lt;/strong&gt; days blogging in 2025, down from &lt;strong&gt;30&lt;/strong&gt; in 2024 (-40%).
&lt;/aside&gt;
&lt;h2&gt;Side Projects&lt;/h2&gt;
&lt;p&gt;I merged 33 pull requests on my personal site this year.
That might seem a decent amount, but 5 of those were blog posts being published and 3 were Dependabot package upgrades.
Most of the rest were site updates and small bug fixes and housekeeping.
I made a few minor visual changes, and implemented a new more performant way of caching Notion API requests.
I plan to blog about this in 2026.&lt;/p&gt;
&lt;p&gt;My other site, 5aside, saw 14 pull requests merged.
Mostly these were Laravel upgrades and Dependabot package upgrades.
The rest were refactors/tidy-ups, small fixes and minor nice-to-have improvements.&lt;/p&gt;
&lt;p&gt;Adding birth years to the API meant some nice extra data points over 11 years worth of match data.
E.g. we can now calculate the average age change from 1 year to the next and see whether more experienced teams win more often than less.
Exciting stuff!&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “side projects” just &lt;strong&gt;10&lt;/strong&gt; times in 2025, the same number as in 2024.
&lt;/aside&gt;
&lt;h2&gt;Do I have any goals for 2026?&lt;/h2&gt;
&lt;h3&gt;Read more&lt;/h3&gt;
&lt;p&gt;A broken record at this point, but I’d love to revisit and complete my previous target of one fiction book a month.&lt;/p&gt;
&lt;h3&gt;Run a sub-3 hour marathon&lt;/h3&gt;
&lt;p&gt;I have 2 attempts this year, in the Spring and Autumn.
I came within 59 seconds last year.&lt;/p&gt;
&lt;h3&gt;Good more good sleep&lt;/h3&gt;
&lt;p&gt;I’ve seen the light when it comes to sleep.
Sleep is a super power for performance, recovery and mood.
Averaging 8 hours a night should be a minimum target.&lt;/p&gt;
&lt;h3&gt;Make more 1-on-1 relationship time away from kids&lt;/h3&gt;
&lt;p&gt;Block this in the diary; it’s the only way to ensure it happens with any consistency.
A happy relationship is a happy life.&lt;/p&gt;
&lt;h3&gt;Make a side income&lt;/h3&gt;
&lt;p&gt;2026 will be the year of the side hustle.
I can do this.&lt;/p&gt;
&lt;h3&gt;Personal site additions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Move away from year-on-year only filtering, and add pages for all-time TV &amp;amp; podcast shows&lt;/li&gt;
&lt;li&gt;Add completion time to seasons on TV page&lt;/li&gt;
&lt;li&gt;Add more data around popular times / days of the week to watch/listen/exercise&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5-a-side site additions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add weather data - to really dig into those fairweather players!&lt;/li&gt;
&lt;li&gt;Add key milestones to players - league finishes, appearance milestones, win streaks, etc.&lt;/li&gt;
&lt;li&gt;Improve match creation UI - this is a single textbox that relies on the knowledge of a complex format. It could be a lot nicer and easier for others to use, should the time come when I step away.&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>When hobbies die</title>
    <link href="https://samdking.co.uk/blog/when-hobbies-die/"/>
    <updated>2025-10-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/when-hobbies-die/</id>
    <content type="html">&lt;p&gt;I’ve always considered myself a hobbyman. I get into things in a big way and they invariably take quite a hold of my life (and bank balance). Now in my mid-to-late 30s, I’ve had quite a few over the years. Minor hobbies can rumble along indefinitely, such as playing football once a week, big major ones tend to come and go. Burning bright but eventually fading into insignificance.
&lt;/p&gt;&lt;p&gt;The first major hobby I can remember in my life was wrestling.
This gripped me in my early years of secondary school.
WWF (soon to be WWE) was in its heyday, and merchandise was everywhere - costumes, video games, toys.
There was a rarity about watching it on TV, as it was only available on satellite, something I didn’t have growing up.&lt;/p&gt;
&lt;p&gt;It was also the early noughties and the start of my exposure to the internet.
After playing around in various AOL chatrooms and early websites, keen to indulge my hobby, I stumbled across “e-feds”.
They were crudely-put-together websites representing a fictional wrestling federation, made up of rosters of fictional wrestlers.
You’d sign up, create a wrestler persona and write stories involving your character interacting with other characters.
The organiser of the website would then write whole “events” (pay-per-views) pitting one wrestler against another.
Whoever had written the best stories in the lead-up would take the victory, and possibly a title.&lt;/p&gt;
&lt;p&gt;It sounds incredible lo-fi now, but this was the early days of the Internet.
I put the experience down as igniting my interest in writing.
As an impressionable 12 year old, it was a yet another exciting facet in which to indulge my love of wrestling.&lt;/p&gt;
&lt;p&gt;Alongside the writing, I played the video games, watched the events, talked about it with my friends at school and acted out the wrestling moves on whatever soft surface I could find (trampolines were my favourite).&lt;/p&gt;
&lt;h2&gt;Music, guitar, and my teenage years&lt;/h2&gt;
&lt;p&gt;I don’t remember going off wrestling, but I think I reached a point in adolescence where wrestling was no longer the “in” thing.
Socialising, music and parties were starting to be of interest.
This lead me down the path of learning guitar.
I’d picked up a few instruments growing up but none stuck.
But the electric guitar wasn’t just an instrument.
It was a statement.
It had the power to define you in the social ecosystem of secondary school.
Or that was my thinking at least.&lt;/p&gt;
&lt;p&gt;I was big into my guitar-heavy music at the time - in large part due to my exposure to wrestling and its love for heavy riffs and loud vocals.
I put all my time and energy into replicating my favourite songs on my first guitar.
It was a Squire Strat, with a Fender Frontman 15G amplifier.
Due to the growing availability of guitar tabs on the Internet, I didn’t require any formal lessons.
I just listened to the music I liked, looked up the tab, and tried to follow along.&lt;/p&gt;
&lt;p&gt;Having a bit of extra side income around 16 years old, I was able to indulge my hobby further, purchasing a well-worn Gibson Les Paul Studio off eBay.
It was shortly after that, I got together with a few friends and formed a band.
A drummer, guitarist and bass/vocals.
We later added a second guitarist.
My music tastes had shifted from rock to indie, and I have core memories of playing music with my friends in the mid-noughties, when indie music was everywhere in the UK.&lt;/p&gt;
&lt;p&gt;I was fascinated by music and guitar forums on the Internet and researched all manner of guitar and recording equipment.
I picked myself up some cheap recording equipment and started jamming at my computer and recording riffs.&lt;/p&gt;
&lt;p&gt;In my college years at school, the band picked up a few gigs.
We played our school’s rock show - Glastonbrooke, various parties, a gig at a nightclub and several other events.
I was far out of my comfort zoned, but fuelled by camaraderie with my friends and my love for playing music.&lt;/p&gt;
&lt;p&gt;As my college years ended and my university days in Brighton began, along with it I brought my love for playing music.
I was introverted, no doubt, but determined to find likeminded people and join a band at university.
Sadly, for one reason or another, this never materialised.
My first few months at university were tough.
I struggled to find my people.
My guitar and amp sat in my room for all of University, played almost daily, but sadly never again gracing a stage.&lt;/p&gt;
&lt;h2&gt;Uni days and photography&lt;/h2&gt;
&lt;p&gt;My love for music remained, but alongside it, bubbled interest in other creative pursuits.
Namely, photography. In my second year of uni I purchased my first Apple Macbook.
I felt like a real creative.
Shortly after that, I purchased my first DSLR camera.
I can’t remember exactly how my interest in photography came about.&lt;/p&gt;
&lt;p&gt;A keen interest in photography lead me down the strobist route - the use of portable flashes and lighting accessories to create interesting lighting effects.
I got big into the technical side of photography.
Around 09/10, &lt;a href=&quot;https://samdking.co.uk/tag/photography/&quot;&gt;I was blogging a lot about it&lt;/a&gt;.
I followed photographers on Flickr like Dustin Diaz and Ed McGowan, and explored the older work of Joe McNally.
I was hooked.
I took photos wherever I went.
I loved pouring what little money I had as a recent graduate into this new hobby.
I was a gear-head, feverishly researching all manner of tech around photography - new lenses, filters, flashes, light modifiers, stands, you name it.&lt;/p&gt;
&lt;p&gt;In the early 2010s, I moved back to Brighton after landing a job, and got a taste for the nightlife and music scene.
My interest in photography, whilst present, started to wane.
I treated myself to a camera upgrade with some of my extra income - a Nikon D7000 - perhaps as a way to reignite my hobby.
But I never loved that camera nearly as much as my nifty D40.&lt;/p&gt;
&lt;h2&gt;Live music in my 20s&lt;/h2&gt;
&lt;p&gt;In Brighton I was spoilt for choice of gig venues, and an hour from London, I once again fell in love with live music, this time as a consumer.
Whilst never prolific, live music was a common activity in my mid-20s.
It was also a fun crossover between photography and music; I loved capturing the bright lights and energetic performances.
I have fond memories of buying physical tickets at our local music shop Resident in Brighton’s North Laine.&lt;/p&gt;
&lt;p&gt;Live music was never a core hobby like some of my others in my life, but it perfectly complemented other “interests” in my 20s - going out and drinking.
This was a pretty baron time of my life for genuine hobbies, but I had a bit of money, and had no problem spending it on just having fun.&lt;/p&gt;
&lt;h2&gt;Football culture&lt;/h2&gt;
&lt;p&gt;Football has been a mainstay in my life, from early childhood to present.
I’ve always loved playing the sport, and have dipped in and out of watching it over the years.
With a dependable income in my mid-20s, I began swapping gigs for football matches.
What began as the odd match in 2012 grew into a primary hobby by 2015 that slowly consumed my weekends.&lt;/p&gt;
&lt;p&gt;I had a small group of friends who also supported Chelsea and lived near enough to attend matches on a fairly regular basis.
I had a Chelsea membership and back in the late 2010s, buying tickets was relatively straight forward.
Going to Chelsea’s home matches started to feel like an almost spiritual experience.
The occasional away day always proved to be memorable, one way or another.&lt;/p&gt;
&lt;p&gt;In 13/14, I attended 12 games, 16 the next season and by 2018 my tally was 26 matches in 1 season.
I had spreadsheets (because of course) to make ticket buying easier and tracking what matches I’d attended and the associated costs.
I began planning trips around football games I wanted to go to.
In late 2018, I attended my first European away game, in Budapest.
That season I saw a record 42 matches.&lt;/p&gt;
&lt;p&gt;It was a costly hobby, but one I threw myself into.
I felt like it was good for me.
An introvert at heart, there was something truly primal about letting yourself go in a football stadium.
Far from the healthiest of hobbies, with it came a lot of beer and fast food.
But I felt a sense of belonging.
The thrum of matchday pulled me in at the end of every working week.
I was still young and free of responsibility, and could manage the late nights and hangovers.
Some of my core memories of my 20s are enjoying pizza and a pint in a west London pub pre-game, chatting all things football.&lt;/p&gt;
&lt;p&gt;And football culture seeped into other parts of my life, like my wardrobe.
There is a distinct fashion around football, from the mods and smartly-dressed hooligans in the 80s, to the casuals of the modern game.
I started buying higher end polos and jumpers unconsciously; clearly absorbing the fashions around me on the football terraces.&lt;/p&gt;
&lt;aside class=&quot;minimal-aside&quot;&gt;
  &lt;h3&gt;The all-consuming overindulgence of hobbies&lt;/h3&gt;
  &lt;p&gt;
    I was in the very fortunate position in my young adult life of having a comfortable amount of disposable income.
    I lived modestly, but could afford to spend fairly lavishly on my hobbies.
    Especially since I hadn’t learned of the virtues of saving and investing at this point.
  &lt;/p&gt;
  &lt;p&gt;
    A deep hobby for me is defined by the almost flippant nature in which money is given up to indulge it.
    Cue the Futuruma Fry meme.
  &lt;/p&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/shut-up-and-take-my-money.jpg&quot; alt=&quot;Shut up and take my money Futurama Meme&quot; /&gt;
  &lt;p&gt;
    The scarcity of tickets to in-demand games, for example, led to “must have” purchases where the cost was entirely inconsequential.
    Travel and potentially accommodation for games up north was all part of the cost.
    Beer money was a given.
    It didn’t matter, because it was my passion, my identity even.
  &lt;/p&gt;
  &lt;p&gt;
    I distinctly remember spending what little money I had in my first year of University on a second hand guitar pedal The Strokes use.
    I picked it up from a guy at Victoria station on my way home that Christmas.
  &lt;/p&gt;
&lt;/aside&gt;
&lt;h2&gt;Vegan food and photography, and the pandemic&lt;/h2&gt;
&lt;p&gt;Perhaps it was the unhealthiness that led to one of my larger lifestyle shifts around this time.
I dabbled in &lt;a href=&quot;https://samdking.co.uk/blog/vegetarianism-my-account/&quot;&gt;vegetarianism for a year in 2016&lt;/a&gt;, but it never stuck.
ut veganism pulled me back in in late 2018 as I turned 30.
You can read in detail about my &lt;a href=&quot;https://samdking.co.uk/blog/going-vegan-my-story/&quot;&gt;journey a year into veganism&lt;/a&gt; on my blog.
It made going to the football a little more challenging, but it lead me to meeting Mundo, a fellow vegan and Chelsea fan on Twitter.&lt;/p&gt;
&lt;p&gt;I was about to go through another big life change in late 2019.
My wife and I welcomed our son into the world, our first child.
Somehow I managed to blag going to a few games in the 19/20 season, including a few memorable ones with Mundo.
It was short-lived however, as football, and the rest of the world, came to an abrupt halt in March 2020.&lt;/p&gt;
&lt;p&gt;The world stopped, momentarily.
I’d already begun capturing some of my vegan creations, both on my blog and on Instagram.
And suddenly having a lot of time on my hands, I threw myself into this more.&lt;/p&gt;
&lt;p&gt;I briefly dabbled in the influencer world, deciding against pursuing that, but still happily capturing most of the food I’d make or order.
I still had a love for photography, but the clunky DSLR had long been replaced with the ever-capable smart phone camera.
The ease of which I could capture and share had me hooked.&lt;/p&gt;
&lt;p&gt;But posting food pics 2 or 3 times a day was never really going to be a long-lasting hobby.
As the World started up again, my prolificacy on Instagram died down.&lt;/p&gt;
&lt;aside class=&quot;minimal-aside&quot;&gt;
  &lt;h3&gt;Finding your community&lt;/h3&gt;
  &lt;p&gt;
    When a hobby sets in, I want to immerse myself and gain as much knowledge as I can about it.
    This is what the Internet was born for.
    The content delivery mediums have changed over the years, from forums and Flickr in the e-fed days and early photography days, to Twitter, Instagram, Reddit &amp; YouTube in later years.
  &lt;/p&gt;
  &lt;p&gt;
    These mediums themselves have a lifecycle though.
    When I was following Chelsea everywhere, Twitter was a wealth of likeminded people and a good way to buy or sell spare tickets.
    But over time I noticed it wasn’t good for my wellbeing.
    Negativity and discrimination was rife.
    And I realised I was better off without it.
  &lt;/p&gt;
  &lt;p&gt;
    The predominantly visual nature of Instagram offered an initial reprieve when publishing my food photography.
    It was easy to find discover “content creators” and get some dopamine from their likes and comments.
    But over time, that too became a bit facile.
  &lt;/p&gt;
  &lt;p&gt;
    Ultimately it’s the sharing of a hobby with other people - in real life or online - that keeps that passion burning.
    I wouldn’t have enjoyed football nearly as much if I couldn’t share a beer with my friends in the pub or train before hand.
  &lt;/p&gt;
&lt;/aside&gt;
&lt;h2&gt;Running for my life&lt;/h2&gt;
&lt;p&gt;And so began another hobby.
A big one.
Like most people my age, exercise was one of the few approved “releases” during lockdown.
I’d actually picked up running again a few years earlier, when I was introduced one Saturday morning to Parkrun by my wife.
When it fitted in with my football schedule for the weekend, I regularly made the short walk down to Preston Park to run a social 5k at 9am on a Saturday morning.&lt;/p&gt;
&lt;p&gt;Momentum was slow, but the ball with in motion.
A hobby invigorated by the various lockdowns lead to me chasing PBs several nights a week.
Moving out of Brighton to Burgess Hill in late-2020 gave me a whole new town and set of country lanes to explore on foot.&lt;/p&gt;
&lt;p&gt;Inspired watching my sister run Brighton Marathon in 2021, I signed up to run Brighton Half in 2022.
From that point on &lt;a href=&quot;https://samdking.co.uk/blog/thrill-of-the-race/&quot;&gt;I was hooked&lt;/a&gt;.
I’d started Parkrun back up and was chasing faster and faster times each Saturday.
By the end of 2023, I was running 4-5x a week, up to 60km and mildly addicted to the notion of performance and self-improvement.&lt;/p&gt;
&lt;p&gt;Injuries hit, as they inevitably do, and I learned about the importance of strength training.
But since then I’ve gone from strength to strength in my running.
It has slowly but surely taken hold of my life in more ways than I could’ve imagined.
My training has adapted, PBs have flowed, and my desire to sink as much of my free time and income into the sport continues to grow.&lt;/p&gt;
&lt;aside class=&quot;minimal-aside&quot;&gt;
  &lt;h3&gt;Why do hobbies die?&lt;/h3&gt;
  &lt;p&gt;
    There’s rarely a significant death of a hobby.
    In my experience, interests fizzle out.
    Nostalgia keeps them trundling along alongside other newer exploits until eventually you no longer provide the fuel to keep them burning.
  &lt;/p&gt;
  &lt;p&gt;
    Football was that for me.
    As my running grew, my interest in late nights on my feet and drinking reduced.
    With running (and perhaps approaching my late-30s) came an appreciation of my health and fitness.
  &lt;/p&gt;
  &lt;p&gt;
    Additionally, family life meant my disposable income was less, meaning I had to be more selective of which hobbies I’d put my money into.
    The best part of £100 for a football match where I’d spend the next day feeling tired no longer seemed like a good deal.
  &lt;/p&gt;
  &lt;p&gt;
    Ultimately, the buzz I got from going to the football went out. The tradeoffs were no longer worth it.
  &lt;/p&gt;
  &lt;p&gt;
    Continuous improvement counts for a lot in keeping hobbies alive.
    With my vegan food photography, I initially had aspirations to grow my account and become a (dreaded) “food blogger”.
    I see some of the smaller accounts I used to follow 5 years ago who have blown up now, and I’m happy for them.
    It wasn’t a path I was willing to pour my heart into, which ultimately lead to its demise as a hobby.
  &lt;/p&gt;
  &lt;p&gt;
    Fuelled by the isolation of lockdown, when the world started up again in 2021, I lost the passion and motivation to keep posting.
  &lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Where will my running go? Will my body allow me to continue in my relentless pursuit of improvement year-on-year?
Who knows, and at the moment that’s exciting.
There’s no ceiling other than my own desire to keep pushing my limits.
A lot of my social circles now revolve around running, it’s become my identity to a large extent.&lt;/p&gt;
&lt;p&gt;Hobbies have the power to reprogram you as a human.
Embrace them.
You are your hobbies.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Black Mirror is back to form in season 7</title>
    <link href="https://samdking.co.uk/blog/black-mirror-back-to-form-season-7/"/>
    <updated>2025-06-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/black-mirror-back-to-form-season-7/</id>
    <content type="html">&lt;p&gt;2 years ago, I shared &lt;a href=&quot;/blog/disappointment-of-black-mirror-season-6/&quot;&gt;my disappointment of season 6 of Black Mirror&lt;/a&gt;. I’m a big fan of the series and relish each new season. Season 6 was OK in its own right, but I felt it was a departure from what made Black Mirror great. It lacked something special. Season 6 was great. A roar back to form for the show. If you want to know why, dive in with me (spoilers ahead).
&lt;/p&gt;&lt;p&gt;Season 7 opened with &lt;strong&gt;“Common People”&lt;/strong&gt;, an episode that introduces Amanda and Mike, a cute, loving couple who are just getting by financially. I had to lookup to check if Chris O’Dowd and Rashida Jones weren’t a couple in real life because they just seemed to gel wonderfully. Amanda faints and it’s discovered she has an inoperable brain tumour and is unlikely to wake up. Enter: a new technology (we know it all too well in this universe). Amanda makes a full recovery, but has part of her brain powered by this new technology.&lt;/p&gt;
&lt;p&gt;The plot felt a little predictable. Their finances are tightened further and further by the insidious technology company. Mike degrades himself on a website where people pay him to humiliate and mutilate himself. Eventually they have to cease use of the technology, effectively turning off life support, as it were. Although oddly Mike chooses a pillow to end his wife’s life. This episode draws stark parallels with medical companies in the US and our growing subscription culture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Bête Noire”&lt;/strong&gt; was the next episode, a smart episode about Maria coming back into contact with an old schoolmate Verity. Verity joins the confectionary company she works at and immediately starts winning over her peers. Maria starts to think she’s losing her mind, as events and memories she’s adamant about start deceiving her. Much to her embarrassment and to her professional detriment.&lt;/p&gt;
&lt;p&gt;The way this episode played out clearly hinted to something akin to the Mandela effect. It was a clever reveal though, and as mind-boggling as some of the great Black Mirror episodes of old. Verity, being a computer whizz at school, had somehow harnessed the power of infinite multi-dimensions. Via a server farm in her mansion, she can effectively control the past as she she&#39;s fit; all the name of revenge. She was repeatedly rewriting reality for everyone but Maria. The final confrontation abruptly ended proceedings, and didn’t really do the premise justice. One of those &amp;quot;WTF&amp;quot; endings we&#39;ve grown used to with Black Mirror.&lt;/p&gt;
&lt;p&gt;The third instalment, &lt;strong&gt;”Hotel Reverie”&lt;/strong&gt;, introduces some hardware that&#39;s seen numerous times in the rest of the season. It sends the wearer into another immersive dimension which can be custom built with software. In the episode it’s used to remake a classic film with a modern twist. Our protagonist, an accomplished black hollywood actress Brandy Friday is cast in the role of a British male actor.&lt;/p&gt;
&lt;p&gt;This episode is a fascinating slow-burn, as a software glitch traps the lead character in the alternate dimension. Her only escape is to play out the movie, with an ever-changing script and a cast of AI actors. A further hardware accident causes the movie to pause and communications with the film crew to halt. The story is of the romantic relationship between Brandy and her AI self-aware co-star. It’s quite touching and very tense in the episode’s climax.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;”Plaything”&lt;/strong&gt; is set in a gritty, yet clean-lined, near-future London. However most of the story is of events in the 90s, as the lead character, played by the excellent Peter Capaldi is being questioned for a past murder. Will Poulter gets another guest appearance, after featuring in Bandersnatch in 2018. Will plays a genius outcast game developer with the most annoying voice imaginable. It’s an intriguing plot, as we learn more about why our lead character has seemingly handed himself in to the police.&lt;/p&gt;
&lt;p&gt;This one escalates quickly towards the end and has that classic Black Mirror wow factor. It would’ve been nice to learn a little more about the AI lifeforms that have grown intelligent enough to take over humanity’s consciousness. But I suspect we will in a later season. If there’s one thing Black Mirror loves, it’s a callback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;”Eulogy”&lt;/strong&gt;, the penultimate episode, is a comparatively calm and serene episode. I found it to be quite an emotive episode. Minimal shock value, and a sentimental use of the technology introduced in Hotel Reverie. The plot follows Phillip, a man living a simple, isolated life, who learns of the passing of an old acquaintance.&lt;/p&gt;
&lt;p&gt;Philip is lead by an AI guide in audio form, who invites him to revisit the memories he has of the deceased. With the help of technology, he’s able to step into and explore the scene depicted in a photograph. I enjoyed the change of pace in this episode. It touched on many poignant topics of ageing, love, heartbreak and family. A tearjerker.&lt;/p&gt;
&lt;p&gt;They saved the best to last, in the feature length final episode of season 7, &lt;strong&gt;“USS Callister: Into Infinity”&lt;/strong&gt;. This universe was introduced way back in 2017, as Robert Daly’s plaything. The recap at the start of tis episode was much needed as my recollection of the &lt;strong&gt;“USS Callister”&lt;/strong&gt; in season 4 was hazy at best. This episode was an excellent continuation of the exciting storyline of an immersive gaming world, and the controversial concept of digital DNA-cloning.&lt;/p&gt;
&lt;p&gt;Daly clones his colleagues without their permission and locks their consciousnesses in his own coded gaming world. In the original episode the crew is able to escape their prison, leading to the demise of Daly in the real world. The crew survived, but found themselves fighting as “bandits” to survive in the dangerous outer universe populated by real world players. Unlike the players, the crew face real peril with each mission to steal credits to survive.&lt;/p&gt;
&lt;p&gt;There’s a wonderful whimsy and sharp comedy to this cast and universe; it’s a pleasure to watch this episode unfold. Every minute of the 90 minute runtime is well used and good value. There’s a sharp contrast between the colourful, other-worldly settings and the cold office in the real world. But the back and forth doesn’t feel jarring.&lt;/p&gt;
&lt;p&gt;The reveal - that Daly himself was cloned by his co-founder James and is trapped, interminably in the centre of the universe he’s created - is brilliant. The conclusion encapsulates the lightheartedness of the episode; quintessentially Black Mirror.&lt;/p&gt;
&lt;p&gt;Season 7 was Black Mirror back to its best. I would happily re-watch each episode again.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Running a 3-hour marathon</title>
    <link href="https://samdking.co.uk/blog/running-a-3-hour-marathon-manchester-2025/"/>
    <updated>2025-05-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/running-a-3-hour-marathon-manchester-2025/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-stock.jpg&quot; alt=&quot;Manchester Marathon Road Closed Sign&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Manchester Marathon 2025. My first marathon in 13 years. Deferred from the previous year due to injury. Sub-3 was the public goal throughout the training block but I wasn’t convinced of how achievable this was. But seeing friends run sub-3 recently and their words of encouragement spurred me on to chase the dream.&lt;/p&gt;
&lt;p&gt;I was surprisingly not nervous the week, or even the day before. But the night before, I couldn’t switch my subconscious off and only managed a couple of hours of sleep before. But walking to the race village on Sunday morning, the adrenaline was pumping and I felt very much alive and kicking.&lt;/p&gt;
&lt;p&gt;After meeting up with Francis, we got our bags dropped off nice and easy, with the backdrop of Old Trafford stadium - not a bad start location. Then we waited with a healthy dose of apprehension. We were the lucky ones; it was a comfortably cool temperature at 8 in the morning. In 3 hours we’d have long been replaced in the start area with less fortunate runners setting off as late as 11.30am. The organisation of the start process was excellent.&lt;/p&gt;
&lt;p&gt;The anticipation was palpable as we made our way down an empty dual carriageway on the way to the start line. As we waited to start, the enormity of the task ahead hung heavy over me. I’d run many races before, but I’d only lined up once to run 42.2k, and in very different circumstances with much less ambitious goals. But at that moment the unknown was exhilarating.&lt;/p&gt;
&lt;p&gt;By 9am, with 10 minutes to go, the outer layer was well and truly off; the sun already starting to heat up the roads ahead. It was going to be warm, but it didn’t deter my spirit. The gun for our wave went off, and then followed the slight anti-climactic waiting and shuffle to cross the start line. Francis and I hadn’t given much thought to our starting position, and we soon realised we’d placed ourselves quite far back in the pack, way behind the sub-3 pacers up ahead.&lt;/p&gt;
&lt;p&gt;The first K was surreal. This was actually happening. We hadn’t got round to having a warm up so the first K very much felt like that warm up. It was crowded and neither of us wanted to put in any surges this early. So it was mostly a case of settling in and avoiding some awkwardly-positioned curbs. I was acutely aware we were behind pace, but figured we could easily catch it back up later.&lt;/p&gt;
&lt;p&gt;The only thing I can really recall from the first few K was wondering how I &lt;em&gt;should&lt;/em&gt; be feeling, and trying to gauge how I &lt;em&gt;was&lt;/em&gt; feeling. My HR was higher than I was anticipating, but I put this down to a big spike of adrenaline and didn’t overthink it. I knew the wrist HR wasn’t going to be too accurate. The perceived effort felt fine.&lt;/p&gt;
&lt;p&gt;Francis and I chatted a fair bit, exchanging reports on how it was going. Francis had some early discomforts which unfortunately ended up plaguing him for a lot of the race. The watch was reporting slightly over pace, but I wasn’t concerned as I wanted a conservative start. The mood was high and the familiar rhythmic sound of hundreds of super shoes hitting the road was comforting.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-5k.jpg&quot; alt=&quot;Runners early on in the marathon with the Manchester skyline in the background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;At the dog-leg at the start of the 5th kilometre I saw just how far behind the main sub-3 pack we were. The pacers had gone off over a minute before us at the start and had pulled further away in the first few kilometres.&lt;/p&gt;
&lt;p&gt;I manually splitted at 5k and realised we were nearly 20 seconds behind target. Not ideal, but not a big concern. The first 5k was well supported and the closest we’d get to the city centre until the end. We took on our first bit of water and I popped my first (and as it turned out, only) electrolyte tablet of the race. Already it seemed prudent to douse some of the water down my back to keep my core temperature down on what promised to be a hot day. Early on when the sun was still low, I remember strategically seeking out the shadier areas of the course to keep as cool as possible.&lt;/p&gt;
&lt;p&gt;After seeing the first 5k split, I mentally noted the watch pace needed to be quicker. 4:15s were not going to cut the mustard with GPS drift. I was on pacing duties and I clicked into 4:13/km pace. KMs 6-10 featured some long stretches with a few gentle bumps. We got into a nice rhythm.&lt;/p&gt;
&lt;p&gt;We were gradually, but continually overtaking people as we went. We’d started a little too far back in the crowd. There were no discernible packs going at the pace we wanted, and the 3-hour group was way up ahead, over a minute up the road. But Francis and I were happy to run our own race at this point. With the benefit of hindsight, I think hanging off the back of a large sub-3 pack would’ve helped lock into the monotony of the first half and really conserve energy.&lt;/p&gt;
&lt;p&gt;I saw my sister Ellie and her boyfriend Josiah, my supporters for the day, just before 10k and it was a great boost.&lt;/p&gt;
&lt;p&gt;Just before then I had the crushing realisation I’d dropped 7 of my electrolyte tablets between 5-10k. After taking the first, I’d put the rest back in my pocket and they must’ve fallen out when I took my next gel before 10k. This threw me. I’d been really hot on electrolytes in my prep, and knew I’d need it today with the temperature being high. But I had to quickly get it out of my mind and keep on track.&lt;/p&gt;
&lt;p&gt;I don’t remember much about KMs 11-16. The scenery was indistinct and the route long and straight. I was still feeling OK in myself, but a distant demon in my head retorted “you’re 15k in, you should feel fine”. Francis was lingering behind me now, hot on my tail but not feeling great. Gels were going in as planned every 20 minutes and sitting well.&lt;/p&gt;
&lt;p&gt;I reminded myself in the first half of a marathon to just switch my brain off. Don’t overthink; don’t overexert. Just lock in and reserve for the real test later on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-16k.jpg&quot; alt=&quot;Runners at 16k in the sunshine&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This must’ve worked to some extent, because KMs 16-18 passed without note, through the suburbs of Timperly. I knew we were approaching Altrinham - the location of the only real hill of note on the course.  Mercifully, the organisers had moved this forward on the route this year, to around halfway, at least 5km earlier than in previous years.&lt;/p&gt;
&lt;p&gt;The 19th and 20th KMs were well supported along Stockport Road, and this was the first double-back part of the course, and an opportunity to see the faster runners moving on the other side of the road. None looking particularly fresh it has to be said. They were 3 or 4km ahead of us.&lt;/p&gt;
&lt;p&gt;It was at this point I decided to give myself a bit of a boost and stick my music on. I had planned to keep this until I really needed it, but I thought - what the hell - let’s have a taster now. “I wanna get better” by Bleachers came on, a tune I’d used numerous times on training runs, and it instantly lifted me. The slight incline over the railway line, followed by the “infamous” Altrinham hill I gobbled up. The hill was laughably exaggerated, and summiting it lead to one of my favourite parts of the course.&lt;/p&gt;
&lt;p&gt;We turned left down the narrow Market Street and crowds filled both sides of the road. I still had Bleachers blaring in my headphones, combined with the crowd noise and a nice downward gradient, I was flying. A big smile on my face lead to some extra encouragement from a few people in the crowd. This continued down Regent Road and onto the Stamford New Road. The atmosphere was electric. I turned the song off before the end as I knew it had done its job.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-halfway.jpg&quot; alt=&quot;Me pouring water over my head in Altrinham close to halfway&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Shortly after crossing over the railway again, we hit halfway. I reigned it back in after enjoying that last kilometre and took note of a 1:30:06 halfway split. Not bad at all. But I knew I’d have to execute a negative split masterclass to hit my goal of a sub-3 marathon. The games had barely begun.&lt;/p&gt;
&lt;p&gt;I felt positive we were “over the hump” as it were. I still felt fresh and Francis and I exchanged some words with a couple of guys ahead of us who were also aiming for as sub-3. I was riding the high of Altrinham and the boost the brief bit of music had given me. Francis was unsure if he’d be able to maintain this pace for the full distance but was still close behind me.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-23k.jpg&quot; alt=&quot;Francis and me smiling at the camera&quot; /&gt;&lt;/p&gt;
&lt;p&gt;At 25km, we were still just holding onto around 21:20 5km splits (3-hour pace), but I knew we still had seconds to make up from slower splits earlier in the race. It was around here I started to lose Francis. He’d always been just behind me but I could see he was slipping a little further away. Taking a left onto Brooklands Road, things seemed to change for me.&lt;/p&gt;
&lt;p&gt;This was a long, flat, tree-lined stretch around 3km in length. Something just seemed to click into place and I found a guy that was going at the pace I wanted to go at. For the first time I really concentrated on my running form. I tried to land lightly and keep my turnover high. People around me were slowing down or walking. I was overtaking people with my new silent friend, and slowly noticing the pace increasing slightly. I switched my music back on around here and tried to just space out.&lt;/p&gt;
&lt;p&gt;A part of me knew any kind of push before 30km was madness. But at this point it felt good, it felt manageable. I was locked in. I began flirting with questions such as “when would I hit the wall?”, “what would it feel like”, but silenced that voice. Surprisingly, my legs still felt strong. I passed a B&amp;amp;M coming up to 30km and remembered it from Nick Bester’s POV footage of last year’s marathon.&lt;/p&gt;
&lt;p&gt;Every time in the race that I’d surged a little, be it to get up a hill or because I was feeding off the crowd, my heart rate would spike. Each time this happened I tried consciously to calm down, breath deeply and get it back down. My heart rate was higher than I’d expect the entire race, sitting above 170 for the entire second half. Prior to this race, I’d considered low 170s to be my anaerobic threshold - the pace you can sustain for an hour-long race.&lt;/p&gt;
&lt;p&gt;At water stations I was taking down half a bottle and dunking the rest over my neck and back. It provided a good level of relief from the sun, which was still just about tolerable for me. Running with the water bottle was awkward so I was drinking quickly and discarding. I probably should’ve been taking my time and trying to take on more. But I had the lack of electrolytes on my mind too.&lt;/p&gt;
&lt;p&gt;I had planned to see Ellie &amp;amp; Josiah again at 21 miles. I did some quick mental maths to take my mind off things to work out what this was in KMs. Somewhere between 33 and 34k. That was my next mental checkpoint to get to. I was maintaining decent pace, sub-3 pace I think, as I ticked past 30, 31, 32. It was still on.&lt;/p&gt;
&lt;p&gt;KM 33 brought us out into the open on a double-back section over the M60. I distinctly remember thinking, I shouldn’t feel strong. My legs should be dead. But they weren’t. I was overtaking people regularly now and knowing I was approaching my support crew in Stretford, I had my target.&lt;/p&gt;
&lt;p&gt;I questioned what gesture or words I’d exchange with them as I passed. The effort was getting harder, but I felt a lot better than I feared I might at this stage. So I fed off the crowd and kept things positive. I roared past, into the right turn, and lapped up their screams of encouragement. I wanted to exude as much confidence at 21 miles into a marathon as I could. To convince me as much as anyone.&lt;/p&gt;
&lt;p&gt;The next target now was getting to 35km in one piece. The pace was just slightly starting to drop the wrong side of sub-3 kilometre pace. I distinctly remember doing maths in my head every minute. How many KMs left, how many minutes. Simple maths feels complex at this stage into a marathon.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-35k.jpg&quot; alt=&quot;Me starting to feel the heat at 35k&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It was starting to hurt. The urge to stop was increasing. I was just about clinging onto pace, but it was dropping by a few seconds a kilometre. And then around KM 37 it hit me like a tonne of bricks. The wall? The legs didn’t fail, but the heart, the lungs, just wouldn’t continue going at that pace. My chest felt tight and the urge to walk was overwhelming. I’d heard the phrase “I was feeling OK until I wasn’t”, and in that moment, I understood it completely.&lt;/p&gt;
&lt;p&gt;I’d just before skipped taking my last gel. I couldn’t stomach it. I took a breather, praying I could resume, and for the first time I felt the exertion in my legs. My quads and my hamstrings screamed. I started running again, probably 10 seconds later, knowing 4:15/km pace was no longer achievable. If I didn’t know it before, I knew sub-3 was now an unattainable goal. But in that moment I didn’t care. I just wanted to finish.&lt;/p&gt;
&lt;p&gt;I switched my music off at this point. It was doing nothing any more. In some ways it felt good to just focus on the rawness of the situation for a moment. Just the patter of super shoes on tarmac and distant cheers of support.&lt;/p&gt;
&lt;p&gt;I hadn’t been tracking individual KM splits at all during the race, choosing instead to manually split every 5k marker. Given I was 3km into a 5k lap split at this point, I somehow managed to hold onto 4:20/km average pace after the walk break. In reality, I knew I was running barely faster than 4:30, but I was clinging onto that average pace for as long as I could.&lt;/p&gt;
&lt;p&gt;For the next few Ks I went to a dark place. I questioned why anyone would want to run marathons. I nearly swore off running another then and there. I saw so many walking or stopped and I wanted to join them. But damn it I could nearly taste the end. I had one of Yowana’s catchphrases in my head from the start: WE DO NOT FADE. I’d seen people’s falling-off-a-cliff marathon split graphs hundreds of times over on Strava.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-40k.jpg&quot; alt=&quot;Runners grinding out the final few kilometres of Manchester Marathon&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I was willing this thing to end. My HR was into the 180s, a place I don’t often go to outside of 5k hard efforts, and I just wanted to see that sweet finish line. When I hit the 40k marker and the final water station, I slowed to a walk again. I consciously took on the entire bottle of water while catching my breath, then made a deal with myself I’d go as fast as I possibly could for the final 2.2km.&lt;/p&gt;
&lt;p&gt;According to Garmin, I mostly managed to stay around 4:20/km for the majority of this final section. As I rounded the final corner onto the finishing straight, I wound it up to 4:00/km briefly. I wanted to soak it in, but even though I knew sub-3 wasn’t on, I also wanted the fastest time I could possibly get. I pretty much had tunnel vision to the end. And boy was that finish line sweet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/manchester-marathon-finishline.jpg&quot; alt=&quot;Me on the final stretch of Manchester Marathon&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The feeling of euphoria engulfed me. Followed quickly by an overwhelming wave of exhaustion. I thought I might throw up, but fortunately it never came. All I wanted to do was lie, sit or even lean on something. But strategically there was very little of anything comfortable in the finish area. I exchanged a few fist bumps, downed half a litre of water, and shuffled in an onwards direction.&lt;/p&gt;
&lt;p&gt;I recognised a face and we shared accounts of our races perched on the edge of a dumpster. I was happy going nowhere particularly fast. I then looked up to see the friendly face of Francis coming over the line. We embraced before hobbling over to bag drop together.&lt;/p&gt;
&lt;p&gt;I had to get my shoes off pronto. They hadn’t given me too many issues during the run, but immediately after finishing, my feet were screaming. I sat down on the curb and let an audible sigh of relief to get the shoes off. A chatted to a lady next to me and a couple of others. The camaraderie at a finish line is unmatched.&lt;/p&gt;
&lt;p&gt;I crawled through the whole finish process at a snail’s pace, still high on endorphins. Just like the start, it was very well organised. Exiting the funnel, it was like walking through arrivals at the airport as a minor celebrity. Crowds everywhere, all focussed on the exit. I saw my waving supporters and we shared a hug.&lt;/p&gt;
&lt;p&gt;The race was run. 3:00:58. “A” goal narrowly missed, but “B” goal (3:05) smashed. I was absolutely buzzing. Until next time*.&lt;/p&gt;
&lt;p&gt;* I can be reasonably sure now, with the benefit of recovery, there will be a next time. Another sub-3 attempt. Bring it on.&lt;/p&gt;
&lt;h2&gt;Race takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Find your pace group at the start and hang off it. I always seem to get this wrong in races. Having to pace yourself and continually weave around people, however minimally, burns unnecessary mental and physical energy.&lt;/li&gt;
&lt;li&gt;Have some backup electrolytes and secure them better. Taping them individually to gels may work better.&lt;/li&gt;
&lt;li&gt;Find your people in the second half. Go through it together. I can’t vouch for this, but I feel like this approach could be really positive mentally. Offer encouragement. Exchange mantras. It’s a lonely place when you’re in the pain cave alone.&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>A peak training month in a sub-3 marathon build</title>
    <link href="https://samdking.co.uk/blog/peak-training-month-sub-3-marathon-build/"/>
    <updated>2025-04-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/peak-training-month-sub-3-marathon-build/</id>
    <content type="html">&lt;p&gt;Following the format of my Oxford Half Marathon training series of posts, this is a run-through of an intensive month in a training block for a sub-3 marathon attempt on 27th April 2025. March covered weeks 8 to 13 of a 16-week build.
&lt;/p&gt;&lt;h2&gt;End of week 8/16: 1st - 2nd March&lt;/h2&gt;
&lt;p&gt;The first day of March began towards the end of a down week in my training. I’d been to the physio earlier that week and he’d diagnosed me with Posterior Tibial Tendinopathy in my right leg. This was a bit of a blow, to say the least. But I was very fortunate that I could still run with minimal pain, despite my balance and weight-bearing ability on my right side being quite significantly affected.&lt;/p&gt;
&lt;p&gt;Spring had finally started to show itself, and I celebrated on the Saturday by completing my 100th Parkrun at my local in Haywards Heath.&lt;/p&gt;
&lt;p&gt;I did this as part of a longer workout for the week. 26km total, with 2 blocks of 5k at target goal pace. The first of which was the Parkrun itself, which I completed slightly quick in 20:36. The second was at the end of the run, completed in 21:12. It was a great run, starting in Clair Park and finishing at home. Average pace overall was 4:33/km, with some steadier easy splits in the middle of the run.&lt;/p&gt;
&lt;p&gt;I finished the week off with an easy 8km in the afternoon, after spending the morning spectating Brighton Half, and doing &lt;em&gt;a lot&lt;/em&gt; of walking. So I ended my deload/recovery week feeling pretty knackered; not quite the intention!&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/parkrun-100.jpg&quot; alt=&quot;Parkrun 100 long run - 26.1k @ 4:33/km&quot; class=&quot;w-full drop-shadow-2xl rounded-sm&quot; /&gt;
&lt;h2&gt;Week 9/16: 3rd - 9th March&lt;/h2&gt;
&lt;p&gt;The start of 3 big peak weeks, and also race week! I’d had Paddock Wood Half planned in the race diary for months, and this would be my first race since Lancing 10k in November 2024.&lt;/p&gt;
&lt;p&gt;Doing my long run on the Saturday previous, rather than the Sunday, meant I had fresher legs than usual for a Monday run. I extended the distance a bit - 12.5km, with some decent elevation (112m). I’d managed to lose my headphones earlier that day so I did my first run in a while without any audio stimulus. It was nice!&lt;/p&gt;
&lt;p&gt;I skipped football this week as I didn’t want to aggravate my tendinopathy.&lt;/p&gt;
&lt;p&gt;Tuesday I got out for a rare evening run as the sun was setting. I had bags of energy and felt great.&lt;/p&gt;
&lt;p&gt;Wednesday was the first session of the week - a 6 x 1600m “strength” workout, from the Hansons Marathon Method book. Hansons prescribe a pace 6s/km quicker than marathon pace for long blocks with minimal recovery. This builds the required strength in the legs needed for the marathon. I found this very manageable, hitting 10s/km quicker than my target pace, and running 18km of volume for the workout in total.&lt;/p&gt;
&lt;p&gt;The next day I took in a hillier route and totalled just over 14km. I finished the run on 54km so far for the week, the highest volume I’ve ever hit 4 days into the week. I wasn’t planning to taper for the Half Marathon race on Sunday, but I did want to give the legs a bit of a chance to recover by front-loading my volume earlier in the week.&lt;/p&gt;
&lt;p&gt;Friday I took a rest day.&lt;/p&gt;
&lt;p&gt;Saturday I went to Wakehurst Parkrun, where I’d planned to get a leisurely few laps, totalling 9km. I ended up getting a bit carried away, and ran it faster that I should’ve (22:24). The hilly route, warm up and cool down meant I climbed 167m of elevation in total, at 4:38/km average pace. I was a little concerned I may end up paying for that the next day.&lt;/p&gt;
&lt;p&gt;Race day! I had planned to run a total of 30km total. With hindsight, perhaps a bit ambitious with 21km of race pace in there at the end of a 90km+ week. I decided on 5km pre-race and 4km post-race. I had a specific pace strategy for the race - 8km at marathon pace, 8km at slightly faster, and 5km at the end at whatever I had left. I wasn’t going for a HM PB, but if I could execute well, I thought there might be an outside chance of getting close. It didn’t exactly go to plan.&lt;/p&gt;
&lt;p&gt;The 5km warm up felt great. I felt fresh and energised to put in a good effort. However I’d never done such a significant warm up before a race. The race started and the excitement, and Andy racing off ahead, left me clicking off 4:08/km Ks, 7 seconds faster than planned. It’s difficult to make the decision mid-race to slow down, but again with hindsight, this is obviously what I should’ve done.&lt;/p&gt;
&lt;p&gt;I felt good for the first half. At 8k I decided to just maintain pace rather than increase, and hopefully push on in the final 5k as planned. It was a warm day, and I began to feel my energy sapping away around the 15km mark. I was still holding a good pace but the effort was noticeably harder. The gel I’d taken was also not sitting well in my stomach and I was feeling pretty nauseous.&lt;/p&gt;
&lt;p&gt;At 18km I was starting to feel like I was hanging on. There was no chance of increasing the pace and I could see it beginning to drop slightly. The 2 small hills felt mountainous and my legs were turning to lead. I strongly considered stopping but with the end not far away, I convinced myself to carry on.&lt;/p&gt;
&lt;p&gt;Kilometres 19 and 20 were very hard, but I managed to rally in the 21st with all I had left. I crossed the finish line and immediately threw up to the side of the course. I felt exhausted and pretty weak for a few minutes, but I perked up and found Andy. We exchanged accounts and I took on a load of fluids. A combination of heat exhaustion, mild dehydration and a poorly executed race plan. Nevertheless, I ran a respectable 1:27:17, my second fastest Half Marathon. We finished the day with a sedate 2km cooldown, bringing my total volume for the day to 28km.&lt;/p&gt;
&lt;p&gt;My ankle was pretty sore at the end of the race and during the cooldown, which left me a little worried heading into another big week.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/paddock-wood.jpg&quot; alt=&quot;Paddock Wood Half Marathon 2025 - 21.1k @ 4:08/km&quot; class=&quot;w-full rounded-sm&quot; /&gt;
&lt;h2&gt;Week 10/16: 10th - 16th March&lt;/h2&gt;
&lt;p&gt;Illness and the subsequent recovery in January has meant progress in my build has been delayed, and going into this week I was yet to do a long run over 30km. That was in my head a bit, as I’d planned to hit this milestone weeks earlier. But with 7 weeks of training still to go, time was still on my side.&lt;/p&gt;
&lt;p&gt;I took the Monday completely off as the race before had been a big effort in the end, and it had taken a lot out of me. On Tuesday I attempted a double day to get my volume back on track. It was 8k in the morning and 9k in the afternoon. The second run felt better than the first. 17km for the day, and it certainly felt easier breaking it into 2 runs.&lt;/p&gt;
&lt;p&gt;Wednesday, my typical workout day, was a daunting session. A 5k progressive tempo followed by 4 x 800m. I hadn’t really done much speed work at all since my recovery from Covid, so the 800s had my feeling a little nervous going into this. The 5k tempo felt smooth though, starting the first K at 4:08/km, and progressing to 3:46/km on the 5th.&lt;/p&gt;
&lt;p&gt;The 800s were also progressive, hitting a 3:40/km pace for the first, and 3:30/km pace for the final one. Way faster than my 5k pace! I was really pleased with how the workout felt. I hit 18.3km of total volume for the day.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/threshold.jpg&quot; alt=&quot;Threshold and interval session - 16.3k @ 4:20/km&quot; class=&quot;w-full rounded-sm&quot; /&gt;
&lt;p&gt;Thursday was an easy 12.4km. The day before’s effort was still in my legs so I took it steady at 5:00/km pace.&lt;/p&gt;
&lt;p&gt;On Friday I was feeling recovered and wanted to get another moderately hard session in for the week, ahead of Sunday’s long run workout. I ran 10k, with 6k at a steady pace. I averaged around 4:25/km for the steady section, 10s/km slower than my marathon pace. It felt really smooth.&lt;/p&gt;
&lt;p&gt;Ahead of my first 30km+ long run, I took it very easy on my Saturday run, with 8km round town, at a 5:05/km pace. I wanted to be as fresh as possible for Sunday, whilst still getting the volume in for the week.&lt;/p&gt;
&lt;p&gt;Sunday. The big one. 30km planned, with 3 x 4km at marathon pace. I’d never run 30km in training before, only in the only marathon I’ve ever run, 13 years ago. I carb-loaded on the Saturday and set out nice and early at 8am on the Sunday, feeling positive. The plan was 10k easy, 3 x 4km @ marathon pace, with 1k floats. Then a 6km easy cool down.&lt;/p&gt;
&lt;p&gt;I didn’t feel great to begin with, but by the time the 10k easy block had finished I was ready to up the pace. The first set was a strong one, averaging 4:15/km pace, right on the money. I could feel during this set the wind was going to make this hard. It was coming from the north, but most of the first set I was travelling south.&lt;/p&gt;
&lt;p&gt;The second set came round quick after a brief 1k float, and this time the majority of it was into the wind. I still averaged 4:15/km but it felt like a big effort, much harder than marathon effort. A quick float km with a tailwind preceded the final 4km set. Again, the majority was into the wind. I somehow managed to average 4:13/km for this set, but was absolutely fried by the end.&lt;/p&gt;
&lt;p&gt;I started to feel better again after some cool down KMs and some fluids. I ended up doing 31km total, and it felt great to finally hit the 30km milestone, and with 12km at marathon pace under my belt. The total duration of the run was 2h22.&lt;/p&gt;
&lt;p&gt;A record volume week, 97km. Next week: the illusive 100km (hopefully).&lt;/p&gt;
&lt;h2&gt;Week 11/16: 17th - 23rd March&lt;/h2&gt;
&lt;p&gt;I attempted a recovery run this week on the Monday. 8km very easy. I felt ok to begin with, but halfway through my hamstring got really tight. I slowed the pace down and finished the run. I hadn’t planned to play my regular Monday night football game today but we were short on numbers so I felt obliged to join in. I coupled it with a 1km warm up run to loosen the legs up.&lt;/p&gt;
&lt;p&gt;It was a positive test of the ankle, the first time I’d played since my injury. I got away unscathed although felt far from my best. The next day was an unscheduled complete rest day due to fatigue catching up with me. I swore off playing a football session the day after a hard long run for the rest of the training block.&lt;/p&gt;
&lt;p&gt;Wednesday I attempted a pyramid workout I’d made up the day before. Another daunting one. 3k at marathon pace, 2k at half marathon pace, 1k between 5k-10k pace, 2k at half marathon pace, 3k at marathon pace. That’s 11km continuous running at marathon pace or harder. It was extremely mentally tough, but I hit pace and felt stronger for it.&lt;/p&gt;
&lt;p&gt;Thursday was a medium long run - 14.3km at an easy pace. Sun was out, no pace targets, just active recovery on the country lanes. It felt really nice.&lt;/p&gt;
&lt;p&gt;On Friday, to make up for lost volume earlier in the week, I did a double day. A pre-work morning 8km, followed by an early evening 9.5km. Both runs felt heavy, but this is what peak marathon training feels like. I sandwiched a sports massage in between the 2 runs. Probably not the best idea, but it felt worthwhile.&lt;/p&gt;
&lt;p&gt;Saturday I had plans for an easy Parkrun. But there’s no such thing really is there? Especially when your fellow-sub-3 hopeful (spoiler: he ran sub-3; well done Andy) runs it with you. We went out easy at least, both felt good, and decided to progress, finishing just faster than marathon pace in the final K. A warm up and cool down jog brought the volume up to 9km for the day at a 4:39/km pace. The effort felt manageable, but I was still crossing my fingers I hadn’t burned too many of tomorrow’s matches early.&lt;/p&gt;
&lt;p&gt;Sunday: THE LONG RUN. Again. Sunday has become my customary long run day most weeks. On the docket today was a 32-33km run, with a challenging 1 hour section of over/unders in the middle. 10 x 4 minutes at faster than marathon pace with 2 minute floats at a steady pace.&lt;/p&gt;
&lt;p&gt;I drove out to a local run spot - the Downslink Path. Free of traffic and some nice, compacted, flat paths for running. I did this long run in super shoes for the first time. I wanted the extra performance boost of them and also wanted to test them on a sizeable run to see if they’d hold up to the marathon distance.&lt;/p&gt;
&lt;p&gt;The first 45 minutes was a speedy one. What was meant to be an easy pace ended up pushing 4:35/km. But I felt strong. I entered into the quality section with some confidence, however the first 2 reps felt harder than expected. Getting up to and holding pace for 4 minutes was tricky. After the first 2 though, I started to get in the groove. I later realised the first 2 reps were uphill, which added to the effort. The remaining 8 were all flat.&lt;/p&gt;
&lt;p&gt;I could feel the fatigue building in my legs in the last couple of reps, and in all honesty, the cool down 9km ended up being just as challenging as the speed section. I ended up cutting the run at 32.8km so I could have a very slow final walk to the car.&lt;/p&gt;
&lt;p&gt;My whole body was very tight towards the end of the run, but after stopping and stretching, I felt much better again. I took on some fluids, protein &amp;amp; carbs before driving home. All in all, a very successful long run workout, averaging 4:30/km pace - 15s slower than marathon pace - for 77% of the marathon distance.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/big-one.jpg&quot; alt=&quot;Big one - 32.8k @ 4:30/km&quot; class=&quot;w-full rounded-sm&quot; /&gt;
&lt;h2&gt;Week 12/16: 24th - 30th March&lt;/h2&gt;
&lt;p&gt;I was feeling OK post-long on the Monday this week, so I decided on an easy double to kick the recovery week off well. A good sign the body is adapting to the increased load. I was also going away for work for the next two days and wouldn’t have a chance to run. I got 15k in over 2 runs, and felt pretty good.&lt;/p&gt;
&lt;p&gt;On my return, I launched back in with a big Hansons strength session on Thursday - 3 x 3.2km. I was pleased with how this felt. I threw in some 100m strides at the end of the workout too. I averaged 4:05, 4:04 and 4:02/km pace for the 3 blocks. It felt pretty cruisy, despite being 10s quicker than marathon pace.&lt;/p&gt;
&lt;p&gt;Friday was a decent length easy run - 14km in the sunshine. A good amount of elevation - 130m with an average heart rate of 138. I wanted to keep my body fairly fresh for a decent 5k time trial at Parkrun on the Saturday.&lt;/p&gt;
&lt;p&gt;Andy was in the penultimate week of his taper so had some fresh legs to give a 5k effort a good go. And I was feeling reasonably good being in a recovery week and having only run on 3 of 5 days this week. I’d run my current PB - 18:04 right at the start of this training block and didn’t really know how close I was to that fitness-wise. I was aiming to get near to my PB.&lt;/p&gt;
&lt;p&gt;We ended up both running PBs on a glorious Spring morning on Hove prom. We also both broke 18 minutes for the first time, finishing in 17:58 (Andy) and 17:59 (me). It was a really strong effort and I was very pleased to realise some fitness gains from this training block. One dampener was a tight calf immediately after the run.&lt;/p&gt;
&lt;p&gt;The calf discomfort fortunately calmed down enough for me to attempt a long slow run on the Sunday - 30km with no pace targets. I added in some elevation for variety and ended up running for 2h 33m - my longest time-on-feet run of the block. It was a really nice run, and although I got some fatigue from yesterday’s effort in the final third, I felt strong. I did however get some calf discomfort towards the end of the run so ended the week a little concerned for the following peak week.&lt;/p&gt;
&lt;h2&gt;Start of week 13/16 - 31st March&lt;/h2&gt;
&lt;p&gt;I decided not to run on Monday but was roped into 5-a-side in the evening. This ended up being a good calf tester and I passed - no pain. Phew. I snuck in a 2k around the local recreation ground with my son in the afternoon. It was Easter holidays and I was feeling guilty for not taking him to Junior Parkrun for a while.&lt;/p&gt;
&lt;p&gt;And that brought to an end the month of March. My highest volume month ever - 416km. 3 peak volume weeks and a recovery week. I hit my first 100km week and secured a new 5k PB! Let&#39;s see what I&#39;m able to do with a decent marathon block under my belt. Manchester Marathon is on Sunday 27th April.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2024 in review</title>
    <link href="https://samdking.co.uk/blog/2024-in-review/"/>
    <updated>2025-01-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2024-in-review/</id>
    <content type="html">&lt;p&gt;It feels good to start the year with another year in review post. My third now. Reflecting on goals set 12 months ago is a good way to analyse personal progress and reassess changes in priorities.
&lt;/p&gt;&lt;p&gt;Journalling continues to be a mainstay in my life, and alongside it, tracking my consumption and vital stats.
I’m approaching 4 years of journalling daily.&lt;/p&gt;
&lt;p&gt;Running has dominated my year, and has positioned itself as the main focus in my life.
Running 6-7 times a week has been a common occurrence this year, and I notice a dip in my mental health when I don’t get my scheduled run in.&lt;/p&gt;
&lt;h2&gt;My personal life&lt;/h2&gt;
&lt;p&gt;Once again, no big, unexpected changes this year.
The biggest planned one was my eldest, Brandon, starting school.
Such a big change in routine can bring trepidation, but we’ve settled into a familiar cycle now.
Ever since having kids, I had always envisaged walking my children to and from school.
Fortunately my work situation allows me to do this half the week.
The 10 pick-ups and drop-offs are shared equally between my wife Charlotte and me.
Seeing the excitement my son gets going into and coming out of school is heart-warming.
Equally, starting the morning off with a gentle walk has improved my quality of life.&lt;/p&gt;
&lt;p&gt;My youngest, Alba, has developed hugely in the past 12 months.
Now 3, she’s feisty and independent, with a love for dresses, dolls and unicorns.
Interests so cliche, I might’ve rolled my eyes, but it feels different when it’s your own.
Somehow it still feels original and authentic to her little personality.&lt;/p&gt;
&lt;p&gt;Financially we’ve been able to loosen up a little compared to last year.
A pay rise and reductions in childcare have afforded us more breathing room to look ahead and plan.
Unexpected costs like bamboo removal and a new clutch for the car has eaten into our plans for the year, but fortunately we have the savings to cover them.&lt;/p&gt;
&lt;p&gt;Charlotte has started her own fitness journey this year, signing up to Brighton Half Marathon 2025.
Twice-weekly runs and swim sessions have become commonplace, causing our evening schedule to become a little congested.
I&#39;m proud of her, competing in her first race since having kids.&lt;/p&gt;
&lt;p&gt;Trips included Center Parcs in February, and the Brecon Beacons in July, plus lots of day trips.
Climbing mountains with the kids in Wales was a particular highlight of the year.&lt;/p&gt;
&lt;p&gt;I attended 10 Chelsea football matches, 2 more than last year&#39;s total. 8 at Stamford Bridge, 1 at Wembley and 1 at the Amex Stadium.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “relationships” &lt;strong&gt;140&lt;/strong&gt; times journalling in 2024, exactly the same total as 2023. I used the “house” tag &lt;strong&gt;37&lt;/strong&gt; times (down from 65 in 2023), and “money” &lt;strong&gt;40&lt;/strong&gt; times (up from 23).
&lt;/aside&gt;
&lt;h2&gt;Work&lt;/h2&gt;
&lt;p&gt;I’ve enjoyed my work in 2024.
Leading the rebuild project for a lot of our internal fulfillment systems has kept me busy for a lot of the year.
I’ve learned this year I can get quite obsessive compulsive about the details of code and project management in general.
This has its benefits but drawbacks when you don’t always see eye-to-eye with your team.&lt;/p&gt;
&lt;p&gt;I’ve really enjoyed delving into the modern features of Ruby on Rails.
I blogged about the challenges around &lt;a href=&quot;https://samdking.co.uk/blog/migrate-legacy-rails-3-app-to-rails-7/&quot;&gt;porting an old codebase to new&lt;/a&gt;.
Fixing old bugs and leaving behind ugly, inefficient code has been a fulfilling experience.&lt;/p&gt;
&lt;p&gt;One area I need to improve is documentation.
Little and often.
READMEs are a chore to put together, but considerably less so when done bit-by-bit when the knowledge is fresh.&lt;/p&gt;
&lt;p&gt;I talked about work 159 times in my journal in 2024, 7 more than in 2023.&lt;/p&gt;
&lt;h2&gt;Social&lt;/h2&gt;
&lt;p&gt;I tagged “social” in my journal 176 times in 2024, up from 161 last year.
The year’s total social events broke down as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;24&lt;/strong&gt; events in homes (not just ours)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;31&lt;/strong&gt; sport meet-ups (running mostly, not including regular Monday night football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;16&lt;/strong&gt; at pubs, cafes or restaurants&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;17&lt;/strong&gt; organised events (football matches, races)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14&lt;/strong&gt; outdoors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;7&lt;/strong&gt; kids play&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the end of the year we finally bit the bullet and signed up as National Trust members.
We always enjoy our trips to various local National Trust sites, and having a membership should encourage us to explore more often.&lt;/p&gt;
&lt;h2&gt;Fitness&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2024-fitness.png&quot; alt=&quot;Bar graph showing run, walk and other distance in km in 2024&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In 2024 I hit record highs across fitness.
This was by the far the area of my life I dedicated the most time and effort to.
My running levelled up again after recovering from injury suffered at the tail end of 2023.
I was able to keep a regular regimen of strength training, and learn to enjoy it.
And I resumed bouldering midway through the year, after a 5-6 year break!&lt;/p&gt;
&lt;p&gt;I averaged 17,400 steps/day for the year, up from 15,100k in 2023.
Last year I tried consciously to hit 10,000 steps a day every day.
I failed on 8 days, and there were some days where I just scraped over the target.
I decided this year I wouldn’t try to hit an arbitrary daily target again, and I’ve felt better for it.
Averaging more a day because of it just shows how pointless an “every day” target is.
Consistency rules, and beats perfection.
Some days a rest is way more beneficial than hitting an arbitrary step goal.&lt;/p&gt;
&lt;h3&gt;Football&lt;/h3&gt;
&lt;p&gt;I attended 43 Monday Night Football games, exactly the same as 2023!
Thursday’s match fell by the wayside; I only managed 5 games, all in the first half of the year.
A boost in fitness this year from increasing my running helped massively in football.
I didn’t feel limited at all in my effort and I found recovery much quicker after games.
I won 26 out of 40 competitive matches, a new record for me.&lt;/p&gt;
&lt;p&gt;As the year progressed, I went from a small 3-4km run warm up pre-game to a 7-10km run earlier in the day.
This shows a growing resillience as my body gets used to increasing volume.&lt;/p&gt;
&lt;h3&gt;Strength training&lt;/h3&gt;
&lt;p&gt;I set a target last year to continue with regular strength work and be consistent with it.
I didn’t end up continuing with the 5x5 workout, for reasons I touched on in this post: &lt;a href=&quot;https://samdking.co.uk/blog/my-first-3-months-5x5-workout-as-a-runner/&quot;&gt;My first 3 months doing the 5x5 workout as a runner&lt;/a&gt;.
However I did settle into a rhythm of similiar exercises, once a week and with less emphasis on progressive overload.&lt;/p&gt;
&lt;p&gt;Alongside this, I try to do a 30 minute bodyweight strength &amp;amp; mobility workout.
These two workouts won’t give me the aesthetic gains I was originally after, but I’m OK with that.
As important as &lt;a href=&quot;https://stronglifts.com/stronglifts-5x5/progress/#progressive-overload-the-key-to-building-muscle-and-strength&quot;&gt;progressive overload&lt;/a&gt; is to building strength, maintaining strength &amp;amp; mobility in key areas is just as vital in running.
I’m a long distance runner, I’m going to be lean (stringy).
I can’t have it both ways and instead decided to focus at the moment on running gains.&lt;/p&gt;
&lt;h3&gt;Bouldering&lt;/h3&gt;
&lt;p&gt;I was really pleased to return to bouldering in the second half of the year.
I went 15 times in total, at a cadence of around twice a month.
I’ve really enjoyed the social aspect and reconnecting with old friends.
I was surprised with how quickly I was able to get back to the climbing level I was at in 2019 when I last bouldered.
I enjoy the competitive aspect of trying to better myself.
I also see it as a good whole-body workout and useful for improving strength and mobility.&lt;/p&gt;
&lt;p&gt;One of my goals for this year was to “embrace cross-training”, and bouldering comes under this bracket.&lt;/p&gt;
&lt;h3&gt;Cycling&lt;/h3&gt;
&lt;p&gt;I didn’t cycle a tonne this year, but managed more than last year.
270km in total, with 6 “proper” bike rides of reasonable length.
I enjoy cycling still, but like a lot of things this year, this is a hobby that has fallen into the shadow of running.
But it was an activity I was able to enjoy in the summer months as I dialled back my running slightly.&lt;/p&gt;
&lt;h3&gt;Running&lt;/h3&gt;
&lt;p&gt;I ran over 3,140km in 2024.
This smashed last year’s total of 2,220km and my target for the year of 2,500km.
It was a big year.
But it began in a somewhat downtrodden mood.
I was injured, and not really enjoying my running.
In January I started a rehab programme for my diagnosed hamstring tendinopathy.
Caused by overloading a muscle that wasn’t strong enough.&lt;/p&gt;
&lt;p&gt;This ended up being arguably a blessing in disguise, as it kickstarted the healthy habit of listening to my body and strengthening it.
The first few weeks of the year were hard, progress was slow.
I was slowly able to build back up to 50k weeks, running 4-5x a week.
I was able to run Brighton Half Marathon in 1:34:33 at the end of February.
Although it was not the time I was hoping for a few months back, it was a really solid, enjoyable run and pain-free.&lt;/p&gt;
&lt;p&gt;I went from strength-to-strength after this, running Lewes 10k at the beginning of April.
A slip-slidey course on tricky terrain, but another race I was able to be competitive in and end feeling strong.
I ran a 44:33 on quite a long course!&lt;/p&gt;
&lt;p&gt;4 weeks later I ran Haywards Heath 10 Mile, a race I ran last year as part of the Mid Sussex Marathon.
I used this race as a barometer for my fitness to see how close I was to cracking 90 minutes in the Half Marathon.
I came into this race off the back of some high 60k weeks of decent training, and ran a strong 1:07:53, 4.5 minutes quicker than last year.
A real confidence booster for me and a great local race in the community.&lt;/p&gt;
&lt;p&gt;At the end of May I made my first purchase of carbon “super shoes” (albeit last year&#39;s model).
They were a used pair of Saucony Endorphin Pro 3s with about 100 miles on them.
It felt like my first step into the big leagues, and what a first step it would prove to be.&lt;/p&gt;
&lt;p&gt;A few weeks later, I ran my a new 5k PB at Hove Parkrun, 19:07, smashing my previous PB of 19:43 set almost a year prior.
The benefit from the shoes was immense, physically and mentally.
But more than that, I felt I was back to my best, and hungry for more.
I only had 2 weeks to wait until my next race, a targeted goal race, Worthing 10k.
I ran my current 10k PB there last year, 41:59.
This year, I had aspirations to go sub-40.&lt;/p&gt;
&lt;p&gt;Training had been really good on the lead up to this and I went in confident.
I raced it perfectly to plan and came out with a new PB of 39:32.
I was stoked.
The 40 minute 10k milestone always felt like a big one for me.&lt;/p&gt;
&lt;p&gt;In July I ran another 5k PB, this time at Preston Park, running a 19-flat.
So close to a sub-19.
4 weeks later I finally ran that sub-19.
At Hove Prom Parkrun I ran an 18:42 and truly surprised myself again.
Before the end of the year, I went on to break this twice more, running an 18:20 at Hove Prom, and 18:19 at the Serpentine Last Friday of the Month 5k race in November.&lt;/p&gt;
&lt;p&gt;I also competed in a relay fun run on Hove Prom in July, called the Weakest Link.
This was an evening event during the summer and was a lot of fun running fast with friends as a team.&lt;/p&gt;
&lt;p&gt;My final goal race of the year was Oxford Half Marathon.
I’d signed up earlier in the year and earmarked this one as the sub-90 attempt.
However after the 10 mile race in May I knew 90 minutes was too conservative a target.
My 5k and 10k times had me on an equivilant 1:27 half marathon, so this was the target I set for myself and trained at.&lt;/p&gt;
&lt;p&gt;I covered in detail how I’ve &lt;a href=&quot;https://samdking.co.uk/blog/how-i-use-stats-to-make-me-a-better-runner/&quot;&gt;utilised stats to improve my running&lt;/a&gt; this year, and this helped me devise my own training plan for Oxford Half.
&lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;I logged each week of my training&lt;/a&gt; in excruciating detail on my blog, setbacks and all.
In short, the training block went really well.
I could see my progression as a runner both in stats and out there on the roads.
I felt stronger and fitter with each passing week.&lt;/p&gt;
&lt;p&gt;I went into the race full of confidence and focussed on laying down a strong marker of my fitness.
I had a great race, pacing a negative split and beating my target of 1:27 by over a minute to come in at 1:25:57.
I was over the moon.&lt;/p&gt;
&lt;p&gt;Capitalising on fitness gains during the Half Marathon block, I entered a 10k race in Lancing last minute and was blessed with perfect weather.
I surpassed all expectation, finishing in 38:10, a new 10k PB by almost 80 seconds.&lt;/p&gt;
&lt;p&gt;I finished the year with my eye on my 2025 marathon.
I started increasing volume and lowering intensity to increase my base fitness whilst minimising injury risk.
A couple of decent 70-80k weeks meant I finished the year around the same fitness level I was going into Oxford.
A great place to begin a winter marathon build in 2025.&lt;/p&gt;
&lt;h3&gt;Parkrun&lt;/h3&gt;
&lt;p&gt;A special mention to the wonderful free event that is Parkrun.
I got really into Parkrun tourism this year.
More so than any other year anyway.
I visited 12 different locations in total, 8 for the first time.
I took my PB from 19:43 to 18:20, and participated in a record 26 Parkruns in 2024.
This brings my overall tally up to 97.&lt;/p&gt;
&lt;p&gt;I also broke my volunteering duck.
First by timekeeping whilst recovering from injury in February, and 2 further times as a 25-minute pacer.&lt;/p&gt;
&lt;h2&gt;Health&lt;/h2&gt;
&lt;p&gt;2024 was a healthy year all-in-all, a big improvement on 2023.
I was ill for just 5 days all year, a big reduction on 10 days in 2023.
The majority of these days were in the first half of the year.
I have read improved fitness can bolster your immune system.
I also started taking vitamin C &amp;amp; zinc supplements this year, along with Vitamin D and B12, so this may be a contributing factor.&lt;/p&gt;
&lt;p&gt;I made the switch from my tried and tested Vivo Life protein powder to Huel Black.
I didn’t have any qualms with Vivo Life, except it was expensive, but Huel offered the complete package.
I now use it as supplemental way of getting calories as well as the protein required for recovering after a hard workout.&lt;/p&gt;
&lt;p&gt;Getting over my injury at the start of the year was tough.
There were times of frustration, especially with no end in sight.
But it was a good lesson in patience and trusting in the process.
It set solid foundations for the year and built some good habits.
Seeing a physio gave me some purpose and kept my mood buoyed as I strengthened my hamstring and got back to fitness.&lt;/p&gt;
&lt;p&gt;Overall it’s been fairly positive from the mental health front.
I feel there have been fewer truly low days than in 2023.
Getting on top of sleep has meant I’ve woken up with a brighter outlook more often.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “health” &lt;strong&gt;183&lt;/strong&gt; times journalling in 2024, up 17 from 2023.
&lt;/aside&gt;
&lt;h2&gt;Podcasts&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2024-podcasts.png&quot; alt=&quot;Bar graph showing podcast listening hours per week in 2024&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Podcast listens once again took another big leap from the previous year.
When will it end? From 588 hours in 2023 to 674 hours in 2024 (up 15%).
On listened to over 20 hours one week, and averaged 11.3 hours a week.&lt;/p&gt;
&lt;p&gt;There’s a direct correlation between increased walking and running volume and more podcast listen hours.
I only listened to 10 new shows, less than last year, but more of those new shows became regular mainstays.&lt;/p&gt;
&lt;h3&gt;My top 5 shows by total listen time&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;➖ &lt;strong&gt;The Diary of a CEO with Steven Bartlett (42 episodes; 3 days, 12 hours) -&lt;/strong&gt; holding firm at number one for a third year in a row. I’ve actually grown a little tired of the style and clickbaity subject matter as the year has progressed. Still some bangers now and again, and the long episodes have contributed to it remaining #1.&lt;/li&gt;
&lt;li&gt;⬆️ &lt;strong&gt;Deep Questions with Cal Newport&lt;/strong&gt; (54 episodes; 3 days, 2 hours) - shortly behind Diary of a CEO, and moving up another place to second. I’m very regular with Cal. The format doesn’t change and the subject matter does get pretty samey, but I still dig the ideology behind this podcast.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🆕 Running the Red Line&lt;/strong&gt; (35 episodes; 2 days, 22 hours) - a new entry in the top 5. Just 35 episodes, 1 a week, but I tune in for every one of these mega long episodes. They’re not highly produced, and the co-hosts don’t take it too seriously at all. But there’s a warm familiarity about this pod, with some interesting run chat alongside the ever-present banter and nonsense.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🆕 Football Cliches&lt;/strong&gt; (86 episides; 2 days, 16 hours) - a new entry in the top 5, but a podcast I’ve listened to since the start. An absurdly regular posting schedule of twice a week, and excellent quality and consistency has propelled this up in my listens. It’s football chat, but not as you know it. It’s a shame they were bought out and now feature ads and sponsorship segments, but the guys deserve their success for such a well put together pod.&lt;/li&gt;
&lt;li&gt;➖ &lt;strong&gt;Money For Couples&lt;/strong&gt; (43 episodes; 2 days, 6 hours) - rebranded from &lt;em&gt;I will teach you to be rich&lt;/em&gt;. I’ve gone a little off the boil with this after a lot of listens earlier in the year. It’s informative and sometimes fascinating in the psychology around relationships and money. But perhaps its mileage is wearing a little thin for me.&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I listened to &lt;strong&gt;34 unique&lt;/strong&gt; podcast shows this year, down from 38 in 2023. That included &lt;strong&gt;10 new shows&lt;/strong&gt;, 7 fewer than last year.
&lt;/aside&gt;
&lt;h3&gt;Some new podcasts discovered this year:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sweat Elite Podcast&lt;/strong&gt; - Only discovered at the start of November, Matt Fox is a sub-elite marathoner with years of wisdom and a say-it-as-you-see it approach to life. He’s a little contentious in the running community, not everyone’s cup of tea, but I enjoy his frankness and conciseness. Bags of running advice in these often brief but always informative episodes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Life in Stride&lt;/strong&gt; - Another new running podcast (there’s a theme this year). Casual and friendly, just a bunch of running pals talking to a guest about running. Can be a bit silly, but there’s tonnes of insight from some very good runners too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rally Caps -&lt;/strong&gt; Co-hosted by Eric Floberg, one of my running YouTuber faves. Primarily photography &amp;amp; film focussed. Expertly produced by two seasoned creatives. A mixed bag of subject matter, but I love the chemistry and warmth of the co-hosts and occasional guests and production value in this.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Run Testers -&lt;/strong&gt; 4 guys review running gear, and talk running. Not a lot else to know about this. It’s informative, not overly charismatic and can get a bit silly.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;TV&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2024-tv.png&quot; alt=&quot;Bar graph showing TV hours watched in 2024&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2024 saw a reduction in TV watch time; down from 149 hours in 2023 to 125 (-17%).
Just 45 hours of non-sport television (down from 85 in 2023).
Live football increased from 64 hours to 80 (+25%).
I&#39;m not sure what I attribute the reduction to.
Charlotte and my tastes have diverged somewhat, which often leads to her watching series on her own.&lt;/p&gt;
&lt;h3&gt;TV show highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3 Body Problem (season 1)&lt;/strong&gt; - A bit weird. Not entirely my style, but this had enough intrigue to keep me watching and curious about season 2.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Bear (season 3) -&lt;/strong&gt; A disappointing third season all told, after 2 excellent first seasons. Retained some of the magic that propelled this show to stardom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nightsleeper (season 1)&lt;/strong&gt; - A gripping, if slightly far-fetched British short series about a train-hacking on a sleeper train from Scotland to London. Tense, with twists galore. Entertaining.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ludwig (season 1)&lt;/strong&gt; - A really fun watch. Warm, nostalgic Jonathan Creek detective vibes to this, with a great big dollop of David Mitchell to cap it off. A bit silly at times, but I don’t think it took itself too seriously.&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I watched TV on &lt;strong&gt;94&lt;/strong&gt; days of the year in 2024, down 24% from the previous year.
&lt;/aside&gt;
&lt;h2&gt;Films &amp;amp; books&lt;/h2&gt;
&lt;p&gt;I watched 27 films in 2024, 1 fewer than in 2023.
It didn’t feel like a very big film year from my perspective.
Charlotte and I went to the cinema once, to see Dune 2, which I didn’t love.
Overall for the year, my average rating was only 3.39, down 8% from 3.68 in 2023.&lt;/p&gt;
&lt;h3&gt;A few film highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Talk to Me, 2022&lt;/li&gt;
&lt;li&gt;Bullet Train, 2022&lt;/li&gt;
&lt;li&gt;Anatomy of a Fall, 2023&lt;/li&gt;
&lt;li&gt;Dumb Money, 2023&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I read 12 books in 2024, 1 more than 2023.
I introduced more fiction into my reading list, which I really enjoyed.
I plan to read more fiction in 2025.
Running books dominated the reading themes, counting for a third of the books I read.
I started and finished the &lt;a href=&quot;https://samdking.co.uk/blog/wayward-pines-trilogy-review/&quot;&gt;Wayward Pines trilogy&lt;/a&gt; by one of my favourite authors, Blake Crouch.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I read on &lt;strong&gt;150&lt;/strong&gt; days of the year in 2024, up from 135 in 2023.
&lt;/aside&gt;
&lt;h2&gt;Blogging&lt;/h2&gt;
&lt;p&gt;I took my foot off the gas with blogging this year.
I posted 19 times, down from 24 in 2023.
However this was bolstered significantly by a 10-week series of posts I did around my Oxford Half Marathon training.
On the whole I struggled for creativity and motivation around blogging this year.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I spent &lt;strong&gt;30&lt;/strong&gt; days blogging in 2024, down from 49 in 2023 (-39%).
&lt;/aside&gt;
&lt;h2&gt;Side projects&lt;/h2&gt;
&lt;p&gt;Virtually non-existent this year. As my running and fitness has stepped up, my time spent on the computer has reduced.
I’ve had little motivation to start anything new or even continue tinkering with this site.&lt;/p&gt;
&lt;p&gt;A couple of things I got round to adding to this site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A chart on the blog archive to show total posts by year&lt;/li&gt;
&lt;li&gt;Added “other” distance to my feed page to show cycling/football/swimming/etc weekly distance&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “side projects” a mere &lt;strong&gt;10&lt;/strong&gt; times in 2023, down 77% on 44 in 2023.
&lt;/aside&gt;
&lt;h2&gt;Sleep&lt;/h2&gt;
&lt;p&gt;I continue to track my bedtimes in an effort to curb the bad behaviour of late nights.
I’ve noticed the benefit in my training to getting a good night’s sleep.
Having ever more intelligent and inquisitive growing children requiring your attention more and more has certainly highlighted this too.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I talked a lot about sleep again in my journal this year, tagging it &lt;strong&gt;110&lt;/strong&gt; times (up 29% from 85 in 2023).
&lt;/aside&gt;
&lt;h2&gt;What goals did I not meet in 2024?&lt;/h2&gt;
&lt;p&gt;Original post: &lt;a href=&quot;https://samdking.co.uk/blog/2024-goals/&quot;&gt;samdking.co.uk/blog/2024-goals/&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Regular Strength Work&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;I touched on this above.
Lifting weights 3 times a week, increasing weight indefinitely wasn’t working for me.
It was taking up too much time, I was starting to dread the increases, and the likelihood of injury was too high.&lt;/p&gt;
&lt;p&gt;But I naturally fell into a schedule that worked for me and my running.
For now, once a week alongside a body weight strength &amp;amp; mobility workout works.
It won’t give me the aesthetic gains I was after, but I’m OK with that.
I’m a long distance runner, I’m going to lean (stringy).&lt;/p&gt;
&lt;h3&gt;Make some side money&lt;/h3&gt;
&lt;p&gt;Another year, another failure. I made zilch, beyond selling my old DSLR camera I no longer use.&lt;/p&gt;
&lt;h3&gt;Read more&lt;/h3&gt;
&lt;p&gt;Whilst I wasn’t able to accomplish my goal of one fiction book a month, I did read 7.
And I enjoyed them all.
I’d love to up the ante on this next year.&lt;/p&gt;
&lt;h3&gt;Foster my kids physical exploration&lt;/h3&gt;
&lt;p&gt;It’s been a good year for this.
My son Brandon loves going anywhere on his bike or scooter.
He’s also proficient enough on the former for me to cycle with him.
We’ve gone on several small cycle rides together in 2024.
I’d love to include my daughter Alba in this soon too.
She’s yet to upgrade from the balance bike, but loves her scooter.&lt;/p&gt;
&lt;p&gt;I haven’t broken Brandon into the football world properly yet, but I have plans to next year.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Make a plan for project cargo bike&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sadly, I made zero plans for this.
Unforeseen expenses at the end of 2024 meant money was too tight to even imagine this coming to fruition.
But I’m still keen.&lt;/p&gt;
&lt;h3&gt;Take more regular mental health relationship days&lt;/h3&gt;
&lt;p&gt;We didn’t do great at this, only hitting 2. Room for improvement as always!&lt;/p&gt;
&lt;h2&gt;Goals for 2025&lt;/h2&gt;
&lt;p&gt;To come in its own post.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>If you’re not moving forward, you’re regressing</title>
    <link href="https://samdking.co.uk/blog/if-youre-not-moving-forward-youre-regressing/"/>
    <updated>2024-12-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/if-youre-not-moving-forward-youre-regressing/</id>
    <content type="html">&lt;p&gt;I think about this quote a lot. It could be dismissed as being in the bracket of toxic “hustle culture”, after all, there’s comfort in routine and the status quo. Repeating the same thing over and over can feel like it’s working and will continue to work in perpetuity.
&lt;/p&gt;&lt;p&gt;But everything decays. As morbid as that sounds. A routine that has seemingly worked flawlessly for years begins to start feeling rough round the edges. Maintenance and innovation is essential behind any great process.&lt;/p&gt;
&lt;p&gt;This is obvious with things that move, like cars and bikes. Not so obvious in intangibles like relationships, health and - the topic of this blog post - codebases.&lt;/p&gt;
&lt;p&gt;This static site’s codebase had some good early innovation, but has largely remained stagnant for the past 18 months. I have regular weekly interaction with it, in the form of refreshing my weekly stats. For the past 3 years I’ve manually rebuilt my site at the start of each week; pulling in stats from various data sources, populated over the last week.&lt;/p&gt;
&lt;p&gt;Mostly, this has just worked with minimal fuss. However recently I’ve started to notice my increased reliance on Notion’s API. There has always been a known bottleneck in the build process of my site, but it’s worked well enough in the past to not warrant changing. Recently the API has been getting slower with increasing timeouts.&lt;/p&gt;
&lt;p&gt;As someone who’s worked on the web long enough, this isn’t surprising. No API is bullet proof, least of all a free one. It’s a stark reminder to me that over-reliance on anything for a long period is unsustainable. I’m happy to continue using Notion as my primary tool for journalling. But querying the API for every page of journalling data for the past 4 years every week is both wasteful and prone to error.&lt;/p&gt;
&lt;p&gt;I knew this when I programmed it back in 2021. Back then, I had a page or 2 of data and the API response was snappy. But over 3 years on, with little innovation since, I’m now learning my codebase has regressed. Builds request 13+ pages of data from my Notion database and can take 5+ minutes to complete, if they complete at all.&lt;/p&gt;
&lt;p&gt;I need a fresh solution. One that relies less heavily on regular, sustained access to Notion’s free API endpoints. Ideally one that brings my build times back down to a minute rather than 5+.&lt;/p&gt;
&lt;p&gt;Nothing continues to work forever without fresh ideas or a clean. And an over-reliance on anything you’re not tending to will eventually let you down.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>1:25:57 - Oxford Half Marathon Training Diary - Week 10</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/"/>
    <updated>2024-10-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - 1:25:57&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;7th - 13th October&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 60km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 21.1km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 39 / 147&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 22:47&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 53/47&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:10:23 (🔽 00:00:10)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-10-plan.png&quot; alt=&quot;Oxford week 10 plan&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Monday - Saturday&lt;/h2&gt;
&lt;p&gt;The start of the taper began as Mondays typically do: 7km easy during the day and football in the evening.
The run felt OK and I held back a little in the football.
Happy with the effort though.
Tuesday was 8km in the drizzle and wind. Easy pace, just ticking by until Sunday.
Wednesday I took off in an attempt to bring my recovery down on my watch.
I did do a 25 minute strength and mobility session which felt really good though.
Low weight, just keeping the body nimble.&lt;/p&gt;
&lt;p&gt;Thursday was my last workout before the race.
A chance to test goal pace.
This was quick; I was feeling fresh.
3.5km warmup at 4:35/km pace, followed by 15 minutes at 4:04/km and 5 minutes at 3:57/km (a bit faster than threshold pace).
Finished off 12.5km with a 4km cooldown at 4:35/km pace.
A great final session to improve confidence for Sunday.&lt;/p&gt;
&lt;p&gt;Friday I took off.&lt;/p&gt;
&lt;p&gt;Saturday was a travel day up to Oxford and a bit of a course recce.
Managed to get 5k in around some of the route and to shake the legs out for the race.&lt;/p&gt;
&lt;h2&gt;Sunday (race day)&lt;/h2&gt;
&lt;p&gt;Wow. What a day. I&#39;ll break down the race in roughly 5k splits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: I reference both my Garmin/Strava splits below as well as the official splits at 5k, 10k, 15k and finish from the timing mats.
I have a suspicion the 10k mat might have been placed short (more on this later).
GPS splits will of course be a little out from reality (I ran 21.3km according to GPS), so take them with a pinch of salt.
But they’re enough in the ballpark to use for breakdown analysis.&lt;/p&gt;
&lt;h3&gt;Pre-race&lt;/h3&gt;
&lt;p&gt;It was all very rushed from wake-up to leaving the Airbnb we were staying in.
I woke at 6:00, and I was leaving at 7.15, and Charlotte &amp;amp; the kids at 8.15.
We had to get everything tidied up and cleaned to check out of the rental.
My race routine from home is usually pretty chilled and dialed-in.
But being outside of my home environment, there seemed to be friction at every turn.&lt;/p&gt;
&lt;p&gt;The next challenge was the Park &amp;amp; Ride, which suffered under the strain of such a big event.
But it was still probably the most practical way to get into the city if you weren’t local.
Buses were regular, but queues were long.
Consequently Charlotte ended up missing the start of the race and seeing me at miles 1 and 2.
Buses dropped off a 20 minute walk to the race village, which was fine.
It wasn&#39;t awful, but we queued all the way back to the Park and Ride in the afternoon, and queued again to get out of the car park.&lt;/p&gt;
&lt;p&gt;The walk to the race village on a crisp Autumn morning was picturesque, and the race village was very well equipped.
Big open space, tonnes of toilets, an efficient bag drop and refreshments available.
I made the mistake of taking on too much liquid before the race and had an uncomfortably brisk walk from the bus to the toilets.
Then I managed to lose Andy, my running partner, and we didn’t reconvene until we got to the pen.&lt;/p&gt;
&lt;p&gt;I quickly dropped off my bag, pinned my bib onto my vest, did another toilet stop, then started my next journey: to the pens!
This was around a 15 minute walk, and one they recommended you start an hour before the race begun!&lt;/p&gt;
&lt;p&gt;Feeling a bit flustered, I made it to pen B with half an hour to spare.
Right in the middle of Oxford City centre, the start was a real vibe.
Space to warm up was minimal though, and there were no toilets outside of the race village.
Bringing an outer layer to dump was a good call, as it was a chilly Autumn morning.
The atmosphere was palpable as we prepared to set off.
Andy and I exchanged words of encouragement.
This was a goal race for both of us.
Talk of a strict 9:30am start was exaggerated, but at around 9:35 we were away!&lt;/p&gt;
&lt;h3&gt;First 5k&lt;/h3&gt;
&lt;p&gt;I had strict plans to stick to my goal pace (4:07/km) for the first 5k.
I know the tendency in any race is to shoot off and enjoy the crowds and the freshness in the legs.
But I really wanted to negative split this one.&lt;/p&gt;
&lt;p&gt;It takes some discipline because it seems like everyone is overtaking you in the first 5km.
It was perhaps naive of me to expect there to be packs forming at this level in a Half Marathon race.
Outside of the pacer groups, there weren&#39;t any at all.
Maybe I&#39;ve been watching too many sub-elite marathoners on YouTube recently.
I’d run alongside someone for 20-30 seconds, then they’d move on.
This was the pattern of play for the first 5km.&lt;/p&gt;
&lt;p&gt;Crowds were amazing, Oxford was looking lovely.
I was happy to see the kilometres ticking by &lt;em&gt;close enough&lt;/em&gt; to goal pace, and feeling very strong.
It never ceases to amaze me in a race how good race pace feels compared to most of those training sessions.
But this is what it’s all about.
Train hard so race day feels easy.&lt;/p&gt;
&lt;p&gt;I averaged 4:05/km for the first 5k.
Kilometre 2 registered a 4:02/km, but it didn’t feel any faster.
This was my first indication GPS might be a little out so not to take my watch splits as gospel.&lt;/p&gt;
&lt;p&gt;The crowds were big in this part of the race, and although I’d run some of this the day before, the route was twisty and I lost my bearings.
But we ended the 5th kilometre back onto the long, straight section of Banbury Road.&lt;/p&gt;
&lt;p&gt;My timings indicated I was a few seconds faster than planned on my first 5k split - 20:27.
However the 5k timing mat, which I didn&#39;t notice passing over, clocked me at 20:39, 12s slower, which is perhaps closer to reality.
4:05/km average was likely more a 4:08/km.
I was right on track and hadn’t overcooked the first quarter.&lt;/p&gt;
&lt;h3&gt;6-10k&lt;/h3&gt;
&lt;p&gt;The 6th kilometre marked the start of a long a straight section.
It was this 5k block up to 10k where I’d planned to gently squeeze up to 4:05/km pace.
However I thought I was pretty much already there pace-wise, so mostly just kept things steady at this point.&lt;/p&gt;
&lt;p&gt;This was a really good part of the race that allowed me to lock into my pace and take stock of how things were feeling.
Fortunately, I still felt great.
There was less movement of runners around me, but still no sizeable packs to speak of.
7km was the first water station, and marked the turnaround point to head back southwards.&lt;/p&gt;
&lt;p&gt;I ran with a small group for a few minutes, 2 women and a male pacer relaying instructions.
I later found out this was Runna head coach Ben Parker, pacing 2 other Runna coaches to a sub-90.
I overheard they were ahead of pace and on for an 88-minute finish.
I soon began to slowly pull away from them.&lt;/p&gt;
&lt;p&gt;I took on my first gel and noticed my pace and HR both spike.
This often happens as I’m taking on water/nutrition due to my body overcompensating for the change in action.&lt;/p&gt;
&lt;p&gt;Kilometres 8-10 were really good. I was settled into a good rhythm, enjoying the benefits of the Nootropics gel I’d taken at 7km.
My splits were very even around here, 4:04/km was feeling really manageable.
I was trying to work out how ahead of my 10k target of 41 minutes I was going to be.&lt;/p&gt;
&lt;p&gt;This section of the course was lovely.
Minimal crowds, but another long, flat, straight (or gently curving) road with minimal distraction.
Scenery got a bit more rural and it was a nice change of pace from the busting centre we’d just left.&lt;/p&gt;
&lt;p&gt;I was still feeling great, enjoying some of the pockets of support and getting some high fives.
The people around me were fairly consistent now, but we were all running our own race.
My watch beeped a 40:54, 6s ahead of plan.
Exactly the same duration as the first 5k (20:27).
Metronomic.
I don&#39;t recall passing over the 10k timing mat.
It clocked a 41:03, meaning a 20:15 split for 6-10km, 24s faster than the first 5k, and 12s faster than the GPS.
This is what leads me to believe the 10k mat might’ve been placed short.&lt;/p&gt;
&lt;h3&gt;11-15k&lt;/h3&gt;
&lt;p&gt;Kilometres 11, 12 and 13 was a loop around the small village of Marston.
This was my favourite section on the course.
We had some energy drink at the start of this, and the locals were really supporting.&lt;/p&gt;
&lt;p&gt;I’d had plans at this point to squeeze my pace again, to 4:03/km depending how I was feeling.
I was feeling really positive, and it was at this point I spoke to a guy next to me.
I asked him what his target was, he said sub-1:25.
I said I was shooting for a 1:26, to which he replied that I was well ahead of pace.
This was the cue for him to up the pace, and gestured for me to follow.
I said I was going for a gradual increase and that maybe I’d see him later in the race!&lt;/p&gt;
&lt;p&gt;It was nice to exchange a few words with a fellow runner.
I wish I’d done more of this.
The conversation had boosted my confidence, and physically I was still feeling great.
Unintentionally, I was stating to crank out 4:01 KMs and barely noticing.
Something in me wanted to keep eyes on the white-vested, sub-85 guy out in front.
I had a target to follow.&lt;/p&gt;
&lt;p&gt;I think I knew at this point it was going to be a good day.&lt;/p&gt;
&lt;p&gt;Honestly it’s hard to know how accurate the 4:01/km splits were, but GPS had all 5 Ks between 11-15km between 4:01-4:02.&lt;/p&gt;
&lt;p&gt;It was on the approach to 15k though, that I noticed my heart rate was beginning to rise.
Until now I’d managed to keep it to high-160s, and I knew in my training that the low-to-mid 170s was heading into the danger zone when things would start to get hard.&lt;/p&gt;
&lt;p&gt;I was mindful that I’d designated mile 10 / kilometre 16 as the point I was allowed to unleash and try to dip under 4-minute Ks.
I attempted to steady my breathing and slowed my pace down ever so slightly.
I was surprised to see this did the job, and managed to get my HR back into the high-160s/low 170s.&lt;/p&gt;
&lt;p&gt;On the turn back onto the main street, I spotted Jess from the Running Channel and shouted her name.
She reciprocated by shouting my name, written on my bib, and it was a really nice boost.
I popped my 2nd gel and noticed my HR momentarily spike at 180.
I deliberately tried to slow down now, not wanting to exceed my anaerobic threshold with over 6k still to go.&lt;/p&gt;
&lt;p&gt;Strava had this 5k split at 20:09, 18s quicker than the last.
This felt about right based on how fast I felt I was going during this portion of the race.
Oddly though, the 15k timing mat (which, again, I failed to notice) clocked a 1:01:30.
This equates to a 5k split of 20:27, 18s slower than my GPS-tracked time.&lt;/p&gt;
&lt;p&gt;Obviously there will be some extra distance logged for navigating water stations, etc. but I did minimal weaving and tried to stick as closely to the racing line as possible.
This slower recorded 11-15km split supports my theory the 10km mat was placed short.&lt;/p&gt;
&lt;h3&gt;16k-finish&lt;/h3&gt;
&lt;p&gt;At 16k I knew I probably had a faster 5k left in me.
The exertion was starting to take its toll, but I seemed to be doing better than most around me.
The 16th kilometre was a winding one that I’d done the day before.
There were some great cheer points on the road which were much needed.&lt;/p&gt;
&lt;p&gt;The 17th was more of the same, and honestly I remember very little of the race at this point.
I could feel I was running consistently faster than I had been for the race so far.
I knew my HR was high 170s and low 180s at this point, which in training would mean close to exhaustion, but in race conditions, this is what we live for.&lt;/p&gt;
&lt;p&gt;Support was incredible in these last few KM, especially during a tricky kilometre through the University Parks on a loose, narrow dirt path.
Trees and crowds lined the path and I tried to keep my focus.
All I could think about was whether I’d started to push too early.
I was very aware I still had nearly 3km to go.&lt;/p&gt;
&lt;p&gt;It was around here that I caught up with the guy I&#39;d spoken to earlier.
I think we exchanged some brief words and he encouraged me on.
He was lagging, but ended up coming in only a few seconds behind me.&lt;/p&gt;
&lt;p&gt;16-18km was an average pace of 3:57/km, but I’m skeptical of this, because it certainly didn’t feel like I was going &lt;em&gt;that&lt;/em&gt; fast.
GPS inaccuracy probably to blame here.&lt;/p&gt;
&lt;p&gt;Kilometres 20 and 21 were very tough.
I wasn’t familiar with the course here, and every corner felt like a false dawn to the finish.
The course gets very twisty again here, in the old part of town.
The cobblestones in one section had been covered up by some temporary plastic flooring.
This didn’t feel very sturdy underfoot and wasn’t very appreciated!
The crowds, though, were fantastic, lining each side of the street.&lt;/p&gt;
&lt;p&gt;At some point in the 21st K, I remember thinking to myself, “I’ve done the hard work, I’ve put in a monumental effort and am going to smash my target”.
“I can ease off now and enjoy cruising over the line”.
“There’s nothing left to beat now”.
But there’s something in you at the end of a race that refuses to listen to that voice.
I couldn’t slow down if I wanted to.&lt;/p&gt;
&lt;p&gt;My 21st kilometre was my fastest at 3:50/km.
I was pushing, but whether to that extent I don’t know.
When my watch ticked over to the 22nd kilometre and I couldn’t see the finish line, I knew the GPS was going to measure a fair bit long.&lt;/p&gt;
&lt;p&gt;Up until this point, I was tracking for a mid-85 minute half marathon.
An inconceivable time at the start of the race.
With the course registering long, in reality it was going to be closer to 86 minutes.
I was far too close to the red line to even compute this at the time though, and as I rounded the final corner and could see the finish line 200m into the distance, I kicked.&lt;/p&gt;
&lt;p&gt;The roar of the crowd was inspiring and seeing my family at the 13 mile marker was special.
I thundered it as fast as my legs would go towards the finish, unaware what time I was on for.&lt;/p&gt;
&lt;p&gt;It was just as well I kicked; I ended up coming in 3s under 1:26.
86-and-change still would’ve been incredible, but sub-86 sounded sweeter.&lt;/p&gt;
&lt;p&gt;There was no 20k timing mat, but the finish mat clocked a 24:27 split from 15km, which is an average of 4:00/km for those final 6.1k.
I felt I was going a little faster than that, but who knows.
I don’t have the exact figures with no halfway time, but it felt like a perfect negative split race.&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;h3&gt;Find a way to accurately measure your pace, or don’t put too much emphasis on it&lt;/h3&gt;
&lt;p&gt;If mile markers are reliable, and you don’t mind splitting manually (and dealing with the imperial measurement), this is probably the most accurate way to pace the race.
But you will need to have written down target times for each mile for this to work.
And in my experience, mile markers aren’t always placed accurately.&lt;/p&gt;
&lt;p&gt;Similarly, you can manually split on 5/10/15/etc. timing mats for larger races to keep track.
These should be more accurate, but as I alluded to, I have my doubts for this particular race.&lt;/p&gt;
&lt;p&gt;Failing that, just rely on your watch auto-lapping, and if you’re aiming for a specific time, go 1-2s/km faster than your target pace to account for running over the distance.&lt;/p&gt;
&lt;h3&gt;Don’t drink too much before, especially on cooler days&lt;/h3&gt;
&lt;p&gt;This will be personal depending on your bladder tolerance, but I always tend to have a sensitive, nervous bladder pre-race.
I think I also overestimate how much fluid I need to take on pre-race.
I wasn’t thirsty during the race at all, and only needed a sip or 2 at each water station.
Bringing 600ml of electrolytes pre-race was not necessary, and made for an uncomfortable dash to the toilets on arrival.
Keeping hydrated in the days leading up to the race will probably have a greater impact.&lt;/p&gt;
&lt;h3&gt;Leave way more time than you think&lt;/h3&gt;
&lt;p&gt;Providing you’ve brought some warm layers with you, get to the race village as early as you can.
Wake up as early as you can.
&lt;em&gt;Especially&lt;/em&gt; if you have to factor in travel scenarios outside of your control.
Rushing about is not a good start to any race.&lt;/p&gt;
&lt;h3&gt;Bring a disposable upper layer you can discard&lt;/h3&gt;
&lt;p&gt;Buy something from a charity shop or wear something old you had planned to throw out anyway.
You can be in the starting pen for a while, and starting a race cold isn’t much fun.
I was shivering in the start pen at Brighton Half earlier this year after a delayed start.
All clothes left at the start line for Oxford Half are donated to charity, and I suspect most races have the same policy.&lt;/p&gt;
&lt;h3&gt;Negative split = positive experience&lt;/h3&gt;
&lt;p&gt;I am so glad I stuck with my plan to start relatively conservatively and aim to negative split.
Inspired by Eric Floberg and Mack Dewar’s recent half marathon efforts.
There’s no greater feeling in a race still feeling strong past halfway and beginning to overtake people.&lt;/p&gt;
&lt;h3&gt;Leave the family at home&lt;/h3&gt;
&lt;p&gt;This one sounds a bit heartless, but bear with me.
Seeing my family at mile 13 was amazing, and filled me with pride to cross the finish line.
But it was a fleeting matter of seconds, alongside hours of fighting through crowds and waiting in the cold.
Races are wonderful events, but not very fun for young kids (and the adults that care for them).&lt;/p&gt;
&lt;p&gt;I loved seeing my family at the end, but the stress of planning a small break around the race, travel logistics, snacks, managing tiredness, etc. all made me realise it wasn’t a fair sacrifice for them to make.
I won’t be dragging them to my marathon next year.&lt;/p&gt;
&lt;h2&gt;Closing thoughts&lt;/h2&gt;
&lt;p&gt;I’m thrilled with the result of this race.
Oxford Half has been on my calendar for months, and I always targeted it as a goal race to finally go sub-90.
From the beginning of the 10-week training block, however, I knew I was already likely in shape to beat the 90-minute barrier.
It was a question of by how much.&lt;/p&gt;
&lt;p&gt;1:25:57 is a strong indicator that what I’m doing in training is working.
Increasing volume, adding strength training, showing up consistently all contributed this year to this 6 minute PB (previous was 1:32:00 in Barns Green, September 2023).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-plan-overview.png&quot; alt=&quot;10 week training plan for Oxford Half&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Perhaps my only gripe with how I ran it would be that I slightly lost my discipline at 10km and got carried away a little too early.
But it’s hard to be too critical when I was still able to finish strong and still achieve a negative split.&lt;/p&gt;
&lt;p&gt;My new VDOT score based on my HM time is actually 0.1 points down from where my current 5k PB has me (set 8 weeks before).
This suggests my 5k performance is stronger than my longer distance.
This doesn&#39;t surprise me, as I practice the 5k distance a lot more than the Half Marathon.
It&#39;s a win for VDOT as a means of performance prediction that I got within 7 seconds of its HM estimate for me.&lt;/p&gt;
&lt;p&gt;Honestly the most exciting thing about my time and this race is it has me so pumped for what’s to come.
I know I can improve my fitness more; I know I can get a stronger body.
I know I can get under under 4:00/km average over the half marathon.&lt;/p&gt;
&lt;p&gt;But the big question on my mind now is what is in store for the marathon distance?&lt;/p&gt;
&lt;p&gt;I’m running Manchester Marathon in April 2025.
It’ll be my second marathon, but my first in 13 years.
I am super excited for the build and a chance to show what I can do over 42.2km.
It’s going to be a lot of mileage, a lot of strength improvement, and a lot of consistency required.
I’m not expecting to be in sub-3 hour shape, but I want to use this race as a springboard to get to that goal.
It feels nearer than it ever has.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Looking Ahead - Oxford Half Marathon Training Diary - Week 9</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/"/>
    <updated>2024-10-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - Looking Ahead&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;30th September - 6th October&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 62.8km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 18km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 40 / 149&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:04&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 83/17&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:10:33 (🔽 00:00:25)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-9-plan.png&quot; alt=&quot;Oxford week 9 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;Took Monday completely off.
No run, no football, no strength training.
A couple of walks to keep the blood moving.
Mental health took a bit of a knock but I was fully focussed on recovering from this back pain and being ready to line up on the start line for Oxford.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Very relieved to get a test run with no pain in on Tuesday.
It was 8km easy at a tentative 5:03/km pace.
It was nice to be back running again, but I was definitely in my head about every little movement.
But I got away with it unscathed.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;What a difference a week makes.
Last Wednesday I was in A&amp;amp;E wondering what on earth might be wrong with me.
This week I was able to run a pain-free steady 10km.
The legs were fresh and I averaged 4:40/km pace and it felt good.&lt;/p&gt;
&lt;p&gt;I decided not to wear my chest strap, as it sits right around the place on my back I felt the twinge.
So whether or not it contributed to it, I felt more comfortable without it.
I averaged 150bpm from my watch, with a relative effort (RE) of 72.
I felt back on track, but wanted to keep the pace easy-steady for now.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;Thursday was a bit of a blip.
Had intended to do 12km easy, but I had stomach issues from before halfway and only just made it to 10km before walking back.
This has become more common than I’d like during this training block so I need to get to the bottom of it.
More consistent nutrition is key, knowing what foods work and when to have them.&lt;/p&gt;
&lt;p&gt;A good, slightly faster paced easy run though, averaging 4:52/km and 140bpm HR.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;I considered a rest day on Friday, as has been typical for me in this block, but I felt I wanted to push the pace a bit so decided on a low volume progression run.
This went great.
1.5km warm up, then increased the pace each KM for 4km of volume.
Ended with a 1.5km cooldown back home for 7km total.&lt;/p&gt;
&lt;p&gt;My target paces were 4:30, 4:20, 4:10 &amp;amp; 4:00/km, with my target Half Marathon pace landing around the middle of those.
But I ended up running the 1km splits in 4:22, 4:12, 4:04 and 3:54.
I was really pleased with how it felt, and with no back pain to speak of.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;Saturday was another easy run with some strides on my plan.
This turned out to be a great run.
The pace felt effortless and easy pace was creeping down towards 4:45/km but still feeling easy.
The total volume was 9.8km which included 5x 20s strides.
The strides were the fastest I’ve run for a couple of weeks, and the final test for the back injury.
I had no pain and felt strong.&lt;/p&gt;
&lt;p&gt;Average pace was 4:46/km for the run, HR 143 and a relative effort of 52.
The week building back from injury was building nicely and I was starting to look positively towards next weekend again.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;My final long run of the block.
I had 17km easy on the plan, but having done very little speed work this week, I decided I wanted some concerted effort at goal pace thrown in.
The New Balance Rebels were a good choice for this, a shoe I’ve grown to really like over the last few months.
It excels at that tempo pace, below threshold, and has managed multiple long runs over the half marathon distance I’ve thrown at it.&lt;/p&gt;
&lt;p&gt;I decided on 2 x 3km blocks at goal pace.
The 5km warm up was quick (averaging 4:40/km).
I knew this wasn’t going to be an easy pace run at this point.
The first 3km block was challenging, but doable, and the route was undulating.
I popped a SIS BETA Nootropics gel 6km in; a new gel I was trying out for the race.
I was intrigued by the mental benefits it claims to provide.&lt;/p&gt;
&lt;p&gt;After a brief 1km float at 4:35/km, I began the second block of 3km at goal pace.
The gel had kicked in by now and I really felt locked in to that pace.
I felt almost disconnected from what my legs were doing and was happy cruising at that goal pace around 4:07/km.
With a bit of favourable downhill in the final km, I pushed the pace and finished with a 4:03/km feeling really strong.&lt;/p&gt;
&lt;p&gt;I ended up doing an extra 1km for a total volume of 18km.
I averaged 4:34/km in the 6km cooldown.
My average pace for the run was 4:26/km and an average HR of 154.
RE was 147 so a solid aerobic effort.
Exactly the final long run I wanted and needed for confidence going into the race.&lt;/p&gt;
&lt;h2&gt;Overall&lt;/h2&gt;
&lt;p&gt;A more positive week, ending with a strong goal pace workout.
62.8km of volume was only 8km less than I had originally planned at the start of the block.
I had planned to get more hard effort in, but I will definitely take 17% of effort given how last week went.&lt;/p&gt;
&lt;p&gt;I felt strong in the majority of runs this week, benefiting from fresher legs after such a low volume previous week.&lt;/p&gt;
&lt;p&gt;I shaved 25s off my Tanda marathon race prediction, and my average pace is now at 4:45/km, a massive bump from 4:56 at the start of the block.&lt;/p&gt;
&lt;p&gt;I didn’t play football, nor boulder, nor do any strength work this week, to be on the safe side.
I just got one short core mobility workout in.&lt;/p&gt;
&lt;p&gt;Resting heart rate seems to be creeping up again, but only marginally. Over the blcok it&#39;s fluctuated between 38 and 40.&lt;/p&gt;
&lt;p&gt;Next week: the taper.&lt;/p&gt;
&lt;h3&gt;My target for the race&lt;/h3&gt;
&lt;p&gt;After last year’s Barns Green Half Marathon race time of 1:32:00, my target for my next Half was to go sub-90.
Due to injury, I wasn’t in good enough shape going into Brighton Half earlier this year, running a 1:34:33.
A couple of months later, I ran a hilly 10 mile race, finishing in 1:07:53, at an average pace of 4:13/km (if the course distance is to be trusted).
The 10 miler gave me confidence that a sub-90 was on the cards for my next Half Marathon.&lt;/p&gt;
&lt;p&gt;Fast forward to July, and I&#39;d put together some really consistent training and ran a couple of PBs in the 5k and 10k.
With a sub-19 5k and a sub-40 10k, I felt I was in a really good place to attack the Half Marathon distance.
I reckon I was probably in sub-88 shape going into the 10-week training block for Oxford Half.
So I set my goal at 87 minutes, 4:07/km pace.&lt;/p&gt;
&lt;p&gt;This is the pace I’ve targeted for all my goal pace workouts throughout the block.
But can I go faster?&lt;/p&gt;
&lt;p&gt;I’ve typically always had quite conservative goals going into races, protecting myself from failure.
But I want to really challenge myself in this race.
I feel confident in hitting 87 minutes, but how far below?&lt;/p&gt;
&lt;p&gt;Using my VDOT (53.9) based on an a fairly recent 5k time, my equivalent half marathon time is 1:25:50, or 4:04/km pace.
Ideally I would&#39;ve done another 5k time trial before the race, to analyse any improvement to my VDOT.
In perfect conditions, 1:25:50 feels achievable as a stretch goal.
The key will be pacing it right and not getting over-excited early on.&lt;/p&gt;
&lt;p&gt;I will be giving it a full-send next weekend and hoping everything comes together on the day.
Let’s see what I’ve got.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Injury Woes - Oxford Half Marathon Training Diary - Week 8</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/"/>
    <updated>2024-10-01T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - Injury Woes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;23rd - 29th September&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 36.9km (4.3k football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 15.2km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 39 / 132&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:04&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 81/19&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:10:50 (🔼 00:00:58)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-8-plan.png&quot; alt=&quot;Oxford week 8 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;After a hard, fatiguing end to peak week, Monday was a 7.5km recovery run.
I didn’t even look at pace, just tried to keep HR under 135.
I quite enjoyed this run, and pace turned out to be 5:01/km, so not as slow as I was expecting.
Body felt OK considering Sunday’s effort.
I also snuck in 1.2km around Hove Park before football as I felt like I wanted a little warm up jog.&lt;/p&gt;
&lt;p&gt;Football was a decent effort at 68RE on Strava.
No goalkeeping stints, so a sizeable 4.35km in total volume with an average HR of 146.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;I’d decided to take Tuesday completely off to let my body recover.
I ended Monday’s football session with a Garmin recovery time of 4 days, by the far my highest ever I think.
I didn’t completely relax; I added a 30 minute core workout before bed.
Always a tough one.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;And then, the week went south.
I was 3.5km into a warmup for a goal pace over/under session, aiming for 16km, when I suddenly pulled up with a sharp pain in my upper back.
It caught me completely off guard and momentarily restricted my breathing with a tightness in my chest.
After 30 minutes, it was still there, so with the run abandoned, I called 111 for some advice.&lt;/p&gt;
&lt;p&gt;1 hour later, and I was sat in the waiting room at A&amp;amp;E in Haywards Heath.
111 had called an ambulance to my house, where I’d had an ECG followed by a ride to the hospital for further checks.
At this point, the tightness had subsided and I was just left with a pain in my back.
Lung and heart checks came back negative, so I was free to go.
Still none-the-wiser as to what had happened.&lt;/p&gt;
&lt;p&gt;Presuming a pulled muscle of some description, I had no choice but to take the rest of the day, and the next day off completely.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;The pain had reduced throughout Thursday, and I was able to test the waters with some light jogging in the middle of an afternoon walk.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;After waking up feeling a lot better, I decided to try to rescue my week with a 13km easy run.
The weather was drizzly, but I was buoyed by being out on the lanes again, running pain-free.
I ended up running 15.2km in the end, at a steady 4:49/km pace. I felt back on track.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;I’d had Saturday earmarked for a couple of weeks to try Bevendean Down Parkrun.
A friend’s local Parkrun, and one of the toughest in terms of elevation profile in the UK!
It was a lovely, crisp Autumn morning and I was excited to try out a new course.
Bevendean has a small, close, community feel to it, averaging around 30 runners.&lt;/p&gt;
&lt;p&gt;I had planned to run this as a steady tempo effort, but as I was behind on intensity for the week, I decided I’d give it a good go, whilst respecting the hills.&lt;/p&gt;
&lt;p&gt;It started well.
I started conservatively but soon moved up to third place and surveyed the competition in front of me.
That’s when I got another sharp pain in my back after taking a deep breath in.
Shit.&lt;/p&gt;
&lt;p&gt;I ran on for a bit, waiting for the pain or tightness to set in, but fortunately it didn’t.
I was almost holding my breath at this point, prepared to drop out of the run less than 1km in.
And although I could feel the niggle, it didn’t get any worse.
I cracked on, soon taking the lead and starting the first serious ascent up the hill.&lt;/p&gt;
&lt;p&gt;I finished the race quite a long way out in front.
A really enjoyable race (under the circumstances), with sweeping views of Brighton and the south coast on the way back down the hill.
I was thrilled to get my first “first finisher” at Parkrun in a time of 21:30.
Not exactly quick, but with 130m of elevation, and me holding back, I was really pleased.&lt;/p&gt;
&lt;p&gt;Elevation quickly turned to dread when I could properly process that my injury from Wednesday had not gone away.
The rest of the day was mostly moping and contemplating what this meant for the next 2 weeks of my training plan ahead of the race.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;No long run sadly.
I woke up with a sore back and had zero intention to test it out.
I was going to be conservative this time.
Whether this means days or a week’s rest, I don’t know.&lt;/p&gt;
&lt;p&gt;Ultimately, getting to the start line injury free is now my top priority.
But I couldn’t help but be downhearted to not be able to finish my plan on a high, and on my terms.
Injury can strike at any time, and is much more common after the peak week I’d had previously.&lt;/p&gt;
&lt;p&gt;The fact it isn’t a “running injury” per se is both a blessing but a source of frustration too.
My legs feel fresh and ready to go, but my upper body isn’t.
Could this have been caused by the core work I did on Tuesday night?
Maybe.
Was it an accumulation of several weeks of hard effort?
It&#39;s likely.
But it’s frustrating the injury came immediately after a rest day.&lt;/p&gt;
&lt;h2&gt;Overall&lt;/h2&gt;
&lt;p&gt;Unsurprisingly, a training week low on the volume front.
My focus has to shift to just getting better now, and hope the fitness I’ve built in the previous 7 weeks will carry me through on race day (if I make it).&lt;/p&gt;
&lt;p&gt;I got one conditioning workout in and didn’t boulder due to my injury.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Peak Week Strain - Oxford Half Marathon Training Diary - Week 7</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/"/>
    <updated>2024-09-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - Peak Week Strain&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;16th September - 22nd September&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 86.3km (4.2k football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 23km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 39 / 159&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:00&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 76/24&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:09:52 (🔽 00:01:24)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-7-plan.png&quot; alt=&quot;Oxford week 7 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;Like most Mondays, I got a 7k (7.55k in the end) recovery run in in the middle of the day.
A bit more elevation than usual to mix it up.&lt;/p&gt;
&lt;p&gt;Football was quite a relaxed effort in the evening.
An average heart rate of 132 was 10bpm slower than the week before.
Strava Relative Effort clocked in at 34.
A useful lower effort ahead of a big week of training.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Tuesday was also a very typical post-recovery trudge.
Such is the monotony deep into a training block.
I never have much energy on a Tuesday; it’s more about time on feet.
I try to vary up the route to keep it interesting.
I ended up hitting a pretty good pace in the end: 4:55/km over 12km.
HR in the high 130s.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;Wednesday was my first double of the block.
I had a Fartlek planned for the morning, followed by an easy run in the evening to get me up to 20km for the day.
I didn’t feel particularly energised going into the Fartlek run Wednesday morning, but as the session progressed I felt stronger.
It ended up being a really good workout, with segment PBs aplenty.
A really good threshold and VO2max combination workout.
5 x 3 minutes threshold, 1 minute rest, 1 minute hard, 1 minute rest.
It totalled 11km at an average pace of 4:33/km.&lt;/p&gt;
&lt;p&gt;I made the grave error of eating dinner before my evening run; something that never works out well for me.
On paper it was an easy 9km to see out the day, but it turned into a gruelling 7km that I eventually had to bail out of early.
A disappointing end to the day, and 2km down from my planned volume for the week.
But an important lesson learned.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;Thursday was a much needed rest day.
According to my Garmin watch, I’ve been gradually accumulating stress that I can’t seem to recover enough from before the next workout.&lt;/p&gt;
&lt;p&gt;For some bizarre reason, I decided to do a cycle on this day.
I’m not that used to cycling efficiently at the moment, and this turned into a rather rushed 27k ride in my lunch break.
Not really the rest my body was after.&lt;/p&gt;
&lt;p&gt;I also bouldered in the evening, which was a good all-body workout.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;Friday featured my 3rd mistake for the week!
I did some pretty full-on weight lifting in the morning including squats and deadlifts.
Thinking nothing of it, I set out on an easy run a few hours later.
13km on the plan.
It was hard.
This time, I managed to hit the prescribed distance, but the entire run felt like the fatigued state at the end of a long race.
Legs felt very heavy and it was not an enjoyable run.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;Saturday, until recently, was going to be a 10k easy run.
But I had the opportunity to get a new Parkrun location in and I couldn’t pass it up.
I travelled with my family to Malling Rec in Lewes, a new Parkrun that started up in July.
I’d planned to run this as a tempo effort, around target half marathon pace.&lt;/p&gt;
&lt;p&gt;However, I got into a friendly battle for 5th place for most of the race.
In addition, the GPS was off on the course due to a sizeable portion of the route being under tree cover.
This meant I ended up going a fair bit faster than planned.
A 19:38 to be exact.
I got a decent cool down jog in afterwards to get my volume for the day up to 8.5 (slightly short again).
I felt OK, pleased with the effort, but as we know with hard efforts, the damage done might not rear its head until later.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;Enter: Sunday.
The “peak workout” of the block.
A long run with sizeable chunks of goal pace running.
I’d done more overall volume at target pace in a run previously, but not over as long a distance as this.
I’d also, somewhat ambitiously, chosen not to do this workout as flat loops of Jobs Lane.&lt;/p&gt;
&lt;p&gt;I’d practiced a bit of carb loading going into this run and wanted to try as much race-specific gear and routine as possible.
I set out right around the time Oxford Half kicks off, in my Saucony Endorphin Pros and race kit, complete with gels and water.&lt;/p&gt;
&lt;p&gt;The plan was 5km easy, 5km @ HMP, 3km float (somewhere between easy and HMP), 5km @ HMP, 5km easy.
I completed the first 5km at quicker than easy pace, averaging 4:41/km.
I was feeling good.
The Goal pace section kicked in and I was cruising pretty well, admittedly overall downhill for the first km.
And then it got hard.
The first proper hill, and my pace slowed from 4:05/km to 4:12/km for my second km.
The 3rd and 4th was very similar, and I pulled a bit back in the 5th with a 4:08/km.
This was going to be tough.&lt;/p&gt;
&lt;p&gt;I later realised, with the clarity of Strava’s “grade adjusted pace”, that I was probably going &lt;em&gt;over&lt;/em&gt; goal effort on those middle splits.
The elevation was not trivial, and my legs were really starting to feel the fatigue of the Parkrun the day before.&lt;/p&gt;
&lt;p&gt;I focused on recovering as much as I could in the 3km float.
I averaged 4:40/km, a bit slower than I’d hoped, but this did include a muddy, walking, off-road 100m towards the end of the set.
Running around 4:30/km (around my Marathon pace) felt sustainable.
But I braced myself for the next 5km set at around 4:07/km.&lt;/p&gt;
&lt;p&gt;This was just as hard as the first, with undulating lanes and quickly tiring legs.
It took some mental grit to get through this and try to maintain pace.
This set averaged 4:12/km, but the grade-adjusted pace was closer to goal pace at 4:09/km.
I ground through the final 5km, but I felt completely spent.
I averaged 4:29 over 23km, some achievement when I stand back and analyse.
My 3 last long runs have progressed from 23km @ 4:48/km, 25km @4:43/km &amp;amp; 23km @ 4:29/km.&lt;/p&gt;
&lt;p&gt;Despite the immediate feeling of disappointment from struggling so much, with the fatigue of the week in my legs, this workout was objectively a very good one for fitness.
Do I wish I hadn&#39;t done a hard 5k effort the day before?
Yes.
But I&#39;ll learn a lesson from it.&lt;/p&gt;
&lt;p&gt;It’s hard to read into how accurate a predictor it is for the race, due to the numerous differing variables: Fatigue, elevation, conditions.
I think it’s one to bank and ultimately reflect positively on.
I ran my 3rd fastest half marathon, solo, on a hilly course, without a hint of tapering.&lt;/p&gt;
&lt;h3&gt;Overall&lt;/h3&gt;
&lt;p&gt;A few kilometres missed here and there meant I only &lt;em&gt;just&lt;/em&gt; hit a new volume record of 82.2km (81.9km the week before).
This was the true “grit” week of the training.
I had to dig in so many times and this is what training is all about.&lt;/p&gt;
&lt;p&gt;I plan to back off next week and front-load my week with a rest day to try to get some much-needed recovery in.&lt;/p&gt;
&lt;p&gt;My Tanda marathon prediction took another big drop in the right direction, dipping under 3:10 for the first time ever.&lt;/p&gt;
&lt;p&gt;I bouldered, and got just the 1 strength session in this week.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Goal Pace Focus - Oxford Half Marathon Training Diary - Week 6</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/"/>
    <updated>2024-09-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - Goal Pace Focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;9th September - 15th September&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 85.7km (3.8k football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 25km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 39 / 152&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:02&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 76/24&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:11:17 (🔽 00:00:55)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-6-plan.png&quot; alt=&quot;Oxford week 6 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;I managed to get my usual 7km recovery in, alongside the new-normal school run (~4km total walking).
My quads were a bit achy from Sunday’s fast finish long run, but otherwise it was a pretty typical Monday run.
Average pace was 4:59/km.&lt;/p&gt;
&lt;p&gt;Football was a decent effort.
A less intense game, as is typical in 5-a-side compared to 6 or 7 (perhaps somewhat unintuitively).
I averaged 142bpm and registered a 60 Relative Effort on Strava.
It still blows my mind the difference in readings between the chest strap and the wrist strap for football.
With the wrist HR monitor, I’d rarely get above 10 RE.
With the chest strap, I average over 60.
The chest strap is much better at picking up nuances and spikes in the HR, something that happens when playing football.&lt;/p&gt;
&lt;p&gt;I picked up a sore calf from a tackle at the end of the game which was very sore going to bed.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Fortunately, the pain in my calf subsided overnight to a slight dull ache Tuesday morning.
Tuesday’s run was a solid 11km, run a bit too fast, averaging 4:54/km pace.
I need to slow these easy runs down to let the body recover from and for harder efforts.
Sometimes the pace will just drift if I’m not concentrating.
It was still only a 30 RE though.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;Due to school commitments, I moved my workout from its typical spot on a Wednesday to Thursday.
Instead, Wednesday was a 13km easy effort with strides.
I took it easy and stuck mainly to the trails.
An enjoyable run.
Average pace: 5:05/km.&lt;/p&gt;
&lt;p&gt;I also bouldered in the evening.
Was feeling pretty knackered from the day so drove there, which saved me a lot of walking, but made me feel a little guilty.
I felt a bit more fatigued than usual during the climbs.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;Thursday was a race-simulation workout, starting it at close to the race start time.
I also used my race day shoes and practiced my race day nutrition.
The workout was 2 x 25 minutes @ my target HM pace.
A daunting prospect.
I wasn’t feeling full of beans in the morning, but the weather was at least on my side - a cool 9C to begin.&lt;/p&gt;
&lt;p&gt;On paper, the workout was a success.
I hit both 25 minute blocks, averaging 5:06 pace - slightly quicker than my target of 5:07/km.
But I didn’t feel very strong and the second block in particular was hard work to maintain pace.
It was, however, great practice.
You can’t nail all workouts, and sometimes you just have to grit your teeth and get it done.
You’ll be pleased you did come race day.&lt;/p&gt;
&lt;p&gt;I managed to clock a fastest ever 15k and 10 mile distance on Strava.
A really positive sign for the upcoming half marathon.&lt;/p&gt;
&lt;p&gt;In the rush to get the run started, I forgot that I’d planned to cycle the first and last few kilometres to save the legs and get it done a bit quicker.
This lead to a bit of a rushed finish to meet school pick-up.
It also meant the workout clocked a pretty sizeable 19.5km by the time I’d finished!
Suffice to say, energy was pretty low for the rest of the day.&lt;/p&gt;
&lt;p&gt;I had one gel containing 40g carbs during this, and I probably could’ve done with more.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;Friday was a much needed rest day.
Often I have to convince myself not to run, but today I was pleased of the break.
I finished Thursday’s run with my recovery needs at 72 hours!&lt;/p&gt;
&lt;p&gt;I did squeeze a strength workout in in the evening.
A Ben Parkes 30 minute one.
It was tough, but another one in the bank.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;Saturday was an early start to meet up with friends in Kent and try a new Parkrun: Kingdom.
I did a bit of research beforehand and discovered it was a pretty hilly course.
Past results suggested with an all-out effort I had a reasonably good chance of finishing in the top 3.
But I was sensible and had this down as a tempo effort 5k - aiming around 4:00/km splits.&lt;/p&gt;
&lt;p&gt;The course started with a big downhill 600m, followed by an equally big uphill to complete the first lap (3 lapped course).
I got a bit carried away and clocked a 3:43 first kilometre.
Whoops.
After this, it got hard.
The legs felt heavy and I was breathing hard.
I lost 3rd place early on and was stuck in no mans land in 4th.&lt;/p&gt;
&lt;p&gt;I tried to keep the effort steady at this point.
I came in in 20:29.
My slowest Parkrun for a number of months, but probably about where it should be for a tempo effort on an unknown, hilly course.
A 60 relative effort showed it was a hard one.&lt;/p&gt;
&lt;p&gt;I had a pretty active day after this so didn’t have any energy come the evening.
I decided to rest up for the long run rather than doing a strength session.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;I had 25k on the plan, the furthest I’ll have run for many years.
No specific pacing requirements, but I decided to make it a moderate progression run.
Starting easy; finishing steady.
The route was undulating, so I decided to increase the average pace every 5k, to even out the elevation.
This method worked really well, and kept me focussed and engaged throughout the run.
The distance flew by much quicker than if I’d just been running the whole run even.&lt;/p&gt;
&lt;p&gt;I averaged 4:43/km over 25k, my 3rd fastest half marathon distance on Strava (faster than an actual race in 2022).
My legs started to fatigue in the last 5k, but I was able to finish strong, with my last kilometre coming in at 4:26.
I was very happy, and like last week, this was a big confidence boost for the upcoming race.&lt;/p&gt;
&lt;h3&gt;Overall&lt;/h3&gt;
&lt;p&gt;Another positive week, with record volume - I hit over 80k for the first time.
I did feel the fatigue a bit more than other weeks, but that’s to be expected, especially with such a big goal pace workout in the middle.
Hard efforts were up to 24% of my volume this week.&lt;/p&gt;
&lt;p&gt;Resting HR is returning to normal after illness, but bedtimes did get a bit lax, creeping over 11pm for the first time in 3 weeks.&lt;/p&gt;
&lt;p&gt;My Tanda marathon prediction continues to fall, closing in on 3:10 now.&lt;/p&gt;
&lt;p&gt;I bouldered, and got 2 strength sessions, albeit at reduced volume.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Fast Finish to Brighton - Oxford Half Marathon Training Diary - Week 5</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/"/>
    <updated>2024-09-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Switch Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - Fast finish to Brighton&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;2nd - 8th September&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 80km (3.4k football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 23km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 40 / 157&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 22:56&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 80/20&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:12:23 (🔽 00:01:59)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-5-plan.png&quot; alt=&quot;Oxford week 5 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;Today proved too tricky to get a 7km run in during the day as I was on full-time Dad duty with my son.
The nursery era has ended, but the school era has yet to begin.
We had fun on a drizzly day walking and cycling.
I managed to get a 3.5km warm up run in around Hove Park before football.&lt;/p&gt;
&lt;p&gt;I wasn’t feeling great today, I could feel the beginnings of a head cold coming on throughout the day.
My first clue was my higher than usual resting HR when I woke up; up from 38 to 40.
Football probably wasn’t the best medicine, but at least night temperatures were still pleasant.
Football was a much better runabout than last week.
I registered a 73 relative effort, despite only running 3.4km.
It turned out to be a good match.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Tuesday was a hard day.
I woke up feeling worse but somehow managed to struggle through a day of work.
My only venture outside was mid-afternoon, for my prescribed 13km recovery run.
It was hard going and the pace felt much harder than usual.
10bpm higher HR confirmed it was a hard effort for my body in its current state.
A 61 relative effort (double what an equivalent run is usually for me) backed this up.&lt;/p&gt;
&lt;p&gt;I don’t know if this run was the best idea, but I was pleased I got it in and was able to stay on-plan for now.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;Thankfully, I woke up feeling a bit better after an early night.
I had another day of father-son time, so my workout for the day was pushed to the atypical time of 6pm.
This workout was 4 x 4 minutes at VO2 Max pace, followed by 5 x 30 second strides.
I was pretty apprehensive about the run given yesterday’s so I popped a Beta gel (40g of carbohydrates) before starting.
I wore the Endorphin Pros as I wanted to give it a proper go.&lt;/p&gt;
&lt;p&gt;It turned out great.
I hit all my paces after starting relatively conservative.
3:46, 3:42, 3:39 and 3:38, with 3 minute walk/jog recoveries.
I felt strong.
The strides burned me out a little more.
I was breathing hard in between reps and was glad to see the end of them after finishing the fifth rep.&lt;/p&gt;
&lt;p&gt;A steady warm up and cool down capped a strong workout with fast paces.
I averaged 4:29/km over 15km. Right on track for the week.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;Thursday was my allocated rest day this week.
My wife and I had a day planned sightseeing in London with our son.
A bonding day just the 3 of us before he goes off to school.
It was a lovely day, but exhausting being in the big city.
I all but collapsed when I got home.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;Friday was my second workout of the week.
A fartlek with a threshold block to finish.
I made this workout up, but I was really pleased with how it felt.
10 x 1 minute at faster than VO2 Max pace.
I was aiming for around 3:30/km.
This felt really fast for me, and the pace varied due to an undulating (but predominantly flat) route.
For the recoveries I tried to maintain a light job to keep the effort high.
1 minute on; 1 minute off.&lt;/p&gt;
&lt;p&gt;After another minute standing rest, I entered into 10 minutes @ threshold pace (4:00/km).
It’s amazing how manageable this pace can feel after the 3:30/km reps.
It did start to catch up with me by the end, but overall the 10 minutes felt strong and controlled.
I averaged 4:27/km over 13.1km total.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;Saturday was an easy 11km.
I was feeling pretty good so pushed the pace a bit more than usual, but tried to keep my heart rate under 140bpm.
Sometimes on the slightly monotonous easy runs you have to create a little game to get through it.
I was definitely saving myself for the big long run on Sunday morning.&lt;/p&gt;
&lt;p&gt;I finished the afternoon off with some squats, benchpress and barbell rows in the garage.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;I’d been nervously watching the weather forecast all week as I was keen to do this 23km long run as close to race starting time as possible.
Fortunately, the rain mostly held off but for a bit of drizzle.
I’d decided on a route over the downs and into Brighton - something I’d done last summer and enjoyed.
It was a tough bit of elevation in the first 9km, but after that pretty plain sailing into Brighton, albeit off-road.&lt;/p&gt;
&lt;p&gt;I took 2 gels with me, a caffeine SIS isotonic (22g carbs) and a SIS beta fuel (40g carbs).
I took the caffeine gel early, around 3km, to try and get the mental benefit, and the second gel around 75 minutes in.&lt;/p&gt;
&lt;p&gt;My legs felt really achy on the uphills of this run, but as soon as I was on top of the hills, I felt great.
I hit Preston Park around 18km in, did a lap, then when the watch hit 90 minutes, I started a block of 10 minutes at race pace.
My legs were tingling at the increase in pace, but felt OK.
Aerobically the pace felt reasonably comfortable, which I was very pleased with.&lt;/p&gt;
&lt;p&gt;I finished with 5 minutes at as close to 10k race pace as I could.
I didn’t quite hit 3:55/km, but I got close and it was mentally tough.
But it felt like great practice for a sprint finish at the end of the race.
Given I had 21km and a lot of elevation in my legs, I was thrilled to hit those paces for 5 minutes.
I caught my breath and did a cooldown to get up to 23km.&lt;/p&gt;
&lt;p&gt;I stretched out, bought and drank some Huel, and caught my train home from Preston Park station.
A great training run.
A big confidence-booster.&lt;/p&gt;
&lt;h3&gt;Overall&lt;/h3&gt;
&lt;p&gt;A really positive week overall, with some shaky illness at the start that threatened to derail my plans.
Fortunately, I was able to sidestep it hit all my runs as planned.&lt;/p&gt;
&lt;p&gt;I lopped close to 2 minutes off my Tanda marathon prediction, mostly owed to this week replacing the week I spent in Wales doing slow, hilly trail running.
But it’s still nice to see this continuing to trend in the right direction.
My average pace is also now down to 4:50/km.&lt;/p&gt;
&lt;p&gt;Easy/hard split was a perfect 80/20, and average bedtime again earlier than 11pm.
Resting HR was understandably higher due to illness.
I hope to see this creep back down to my baseline 38 over the next week or two.&lt;/p&gt;
&lt;p&gt;I didn’t have time to boulder this week, but did get 2 strength/mobility sessions in.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Recovery - Oxford Half Marathon Training Diary - Week 4</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/"/>
    <updated>2024-09-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM Distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - Recovery&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;26th August - 1st September&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 75.8km (3.5k football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 18.4km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 39 / 153&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 22:43&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 85/15&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:14:22 (🔽 00:00:35)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-4-plan.png&quot; alt=&quot;Oxford week 3 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;I started this week away from home on a long bank holiday break visiting my parents. I got my 7km easy run in in the morning for a change, before it got too hot out. It was 7.4k easy at 5-flat pace. A standard Monday, in a changed-up location.&lt;/p&gt;
&lt;p&gt;I followed it up with a rather tame 5-a-side match which lacked in competitiveness and resulted in only 29 Relative Effort score from Strava (last week was 55). Good for a recovery week though. This week I was aiming for slightly less volume and a good amount less intensity, aiming for closer to a 75/15 easy/hard split.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;I had a bit more energy than usual on my Tuesday run after the lower intensity football session the evening before. It was a warm day and I picked a hilly route and kept the pace ~5secs/km quicker than usual. Was a good run but the heat sapped my energy by the end. 11km at 4:56/km and 109m of elevation.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;Wednesday was a hot day, somewhat unforcasted. I couldn’t run in the morning due to work scheduling, so I ended up swapping my tempo run with Thursday’s easy run. Still got the volume in - 13.7km total - and ended up progressing from an easy pace to steady by the end. Average pace was 4:55/km with 123m of elevation gain.&lt;/p&gt;
&lt;p&gt;Training in summer involves being flexible to work around the weather. It’s not productive to do hard intervals in 26 degree heat, and can be dangerous if not handled correctly. I was pleased with the effort in the end, and the effect of the heat wasn’t as bad as it could’ve been.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;20 minutes at threshold pace (4:00/km). I do these type of tempo runs once a month or so as I find them to be a good barometer of fitness. Particularly how they feel. I’d not done one at this pace before though. It was hot, perhaps too hot, especially as I didn’t get round to doing this until gone noon.&lt;/p&gt;
&lt;p&gt;I hit the paces, but HR was high and it was far from comfortable. In reality, I could’ve allowed myself 5 seconds of leeway on the paces and it still would’ve been a solid effort in the heat. Heart rate peaked at 172bpm, which is a fair way beyond my threshold. 11km total at 4:27/km pace. 35.7km in the last 3 days in the heat; it didn’t feel like a recovery week.&lt;/p&gt;
&lt;p&gt;This run took me to 300km for the month, a record for me.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;Friday was a rest week, my first for 3 weeks in fact. I took the opportunity to do some strength training and rest up for a decent Parkrun effort on Saturday.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;What an occasion Saturday was. Francis and I travelled up early to Bushy Park in greater London, the “home of Parkrun”. It was the 1000th Parkrun at Bushy Park and there was quite a celebration to commemorate it. The vibes were great and the mood high. We got a decent warm up in and lined up with the hordes of people on the start line (over 6k in the end).&lt;/p&gt;
&lt;p&gt;I thought there was a chance of a PB, but was mindful of the sheer number of runners, and an unfamiliar course. After running 18:42 on Hove Prom 3 weeks ago, I’d be happy to get somewhere near that. We were both fortunate to get fast starts and the initial crowds dissipated before too long.&lt;/p&gt;
&lt;p&gt;Bushy is a fast course - pancake flat with minimal turns - but not the fastest surface under foot. It’s predominantly rough, compacted stones with grassy and tarmac sections too. I ran it well I think, but with hindsight held back a bit too much. I found my stride in the 5th kilometre, overtaking a bunch of people and registering by far my quickest split. A final time of 18:45 put me 3 seconds off my PB. If I could run it again I think a PB would’ve been on, but that’s the benefit of hindsight.&lt;/p&gt;
&lt;p&gt;A thoroughly enjoyable and brilliantly organised event, especially as I was able to meet and chat to YouTubers Andy Maguire and Brett Elesmore after. The slower end of the 6,000 runners did have a bit of a wait crossing the line and registering their time, but that’s to be expected for an event that typically gets 1,500 runners!&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;Sunday was a shorter long run than the previous 3 weeks, 18k on the plan, run at easy pace. On paper, fine, but due to a busy day on my feet in the sun with the kids, it turned out to be anything but!&lt;/p&gt;
&lt;p&gt;I got out after dinner around 7.15pm. The plan was 18k around Burgess Hill, sticking to well lit areas. Was going OK, albeit on some tiring legs, but around 9k in I started getting some painful bloating in my stomach. I decided to power through, but mid-way through the 13th km I had to call it quits. Too uncomfortable and not an enjoyable run at all by that point.&lt;/p&gt;
&lt;p&gt;I walked over a kilometre home, took a quick toilet break, then decided to try to finish the prescribed 18km. It was late and dark at this point, but I decided on a 6k round route near home at a steady pace to finish the week off. With 12k and a busy day in my legs, it was a very hard 6k. By the end I was completely spent. I hit 18.6k in total for the day, and I’d definitely earned it. Whether it was the right decision to persist, time will tell, but I was pleased I got it done.&lt;/p&gt;
&lt;h3&gt;Overall&lt;/h3&gt;
&lt;p&gt;I bouldered this week and got a decent weight lifting session in and a short mobility workout. Clocking over 34km walking wasn’t the ideal scenario for a recovery week, but sometimes this happens.&lt;/p&gt;
&lt;p&gt;I did get reasonably good sleep though, averaging a 22:43 bedtime, a good 20 minutes better than last week.&lt;/p&gt;
&lt;p&gt;With volume and intensity both trending down this week, I think I accomplished my goal of a down week. No big workouts, but I feel ready to attack the next big 3 weeks of training.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>HM Distance Away From Home - Oxford Half Marathon Training Diary - Week 3</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/"/>
    <updated>2024-08-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/&quot;&gt;11-a-side Match&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - HM Distance Away From Home&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;19th - 25th August&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 81.7km (4km football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 22km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 38 / 156&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:06&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 76/24&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:14:57 (🔽 00:01:22)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-3-plan.png&quot; alt=&quot;Oxford Week 3 Plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;Monday I had a day off work to celebrate my wife and my anniversary. We had a morning in a spa then a wander round Brighton in the afternoon. A tiring day all told, especially given recovery from Sunday’s 11-a-side. No time for a run, so I fell back to my trusty warm up round Hove park. I arrived early so was able to complete a decent 3.8km - 2 laps of the park - at a nice easy pace. Felt surprisingly good considering I was contemplating an early night a few hours before.&lt;/p&gt;
&lt;p&gt;6-a-side football was good, a close match and the pace a little slower than usual. I logged 4km of running during football, which brought me up to 7.8 for the day.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Tuesday I pushed the distance a little with a 10.3km run on a round road route to Hassocks. My easy runs are regularly coming in below 5:00/km pace, with heart rate in the low-to-mid 130s, which is a really promising sign fitness improving.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;My second big workout with goal pace, this time 40 minutes total. A daunting prospect but one I was pleased to take on with Andy - my ever-present running partner. I went with my Endorphin Pro carbon racers again, to mimic race day conditions. We chose a reasonably flat course West of Hickstead where we could focus on pace but offer a bit of variety and stimulation compared to the 2km Jobs Lane loop.&lt;/p&gt;
&lt;p&gt;This workout went great, better than I was expecting. We started with a ~3km warm up and went straight into a 30 minute block at my target race pace - 4:07/km. I popped a gel straight away to sustain me through the next 40 or so minutes. Andy lead the way, acting as a wind breaker, and I found the pace much more manageable than even a couple of weeks ago. The 30 minutes went back pretty quick. There were a few undulations and a strong headwind wind to deal with in parts, but we hit the pace and I felt strong.&lt;/p&gt;
&lt;p&gt;After a short 2 minute walk/job rest, we entered into 10 minutes at my threshold pace - 4:00/km. This was Andy’s race pace coincidently, so it turned into a good training run for the both of us. Practising at faster than goal pace is a good training stimulus, aiming to make running AT goal pace feel easier. Running right at threshold pace also increases your anaerobic threshold (T2), increasing the time you can run at that pace without lactic acid forcing you to slow down.&lt;/p&gt;
&lt;p&gt;Overall, a really positive workout and another big confidence booster. 145 Relative Effort on Strava confirmed it was a tough effort.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;I was somewhat recovering this day, but also happened to be unusually busy with work. As a result, my 11k easy run got squeezed into a 7km run late in the afternoon. I felt good on it though, surprisingly, and ended up running it as a steady progression run - aiming to get faster as the run progresses. My average pace was 4:46/km, with an average heart rate of 136!&lt;/p&gt;
&lt;p&gt;Some believe that running between easy pace and aerobic threshold (T1) pace (slightly slower than marathon pace) constitutes &amp;quot;junk miles.&amp;quot; This view suggests that training in this pace range offers little benefit to your body or fitness. I tend to go with the mantra of letting the body decide the pace and run on feel, especially on runs with no mandated paces.&lt;/p&gt;
&lt;p&gt;If I’m feeling good, I’ll happily bump the the pace to my T1 pace (approximately around 4:30/km, but this is an estimate as I’ve had no formal lactate testing). I would classify these runs “steady” rather than “easy”.&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;As with last week, I ended up doing a short run on Friday instead of completely resting. I wanted to top up my weekly volume after cutting yesterday’s run short. I did a 5km out-and-back this day at 4:52/km. This was a tester for a niggle I’d developed overnight. My knee was sore when fully bent and fully extended. Fortunately running didn’t exacerbate my symptoms, and by the end of the week the discomfort had subsided.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;We spent Saturday morning travelling up to my parent’s house in Northamptonshire for the bank holiday weekend. I needed to shake the legs out and crank up the effort for the week, and had 5 x 1km intervals on my plan. Despite some pretty sketchy weather I headed out to complete the workout in a reasonably long and flat stretch of country road.&lt;/p&gt;
&lt;p&gt;After a couple of heavy rainfalls later, and a decent volume of hard effort, I completed the run in just under an hour. Clocking in at a kilometre and a half longer distance than prescribed. The full workout was 5 x 1km @ VO2max pace and 5 x 30s strides. This one felt good, however because of the slight gradient, rep paces were variable and it was hard to just exactly how hard I was going.&lt;/p&gt;
&lt;p&gt;I did this workout in my Endorphin Pro 3s again.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;Sunday again started with a 2km Junior Parkun, away from home this time. I’m a wannabe Parkrun tourist myself so it’s always fun to take in a new Parkrun. After a brief visit to my sister’s house in Rushden, I set out on my long run for the week, aiming for a half marathon - 21.1km at an easy pace.&lt;/p&gt;
&lt;p&gt;This run started bright, on a scenic, flat track through Stanwick Lakes park. I settled into a 4:45/km pace, which felt natural and manageable. I took on a BETA gel around 45 minutes. A 3 slightly faster kilometres with some favourable elevation change, heavy legs from Saturday’s session kicked in around 15km. I was able to maintain pace until my route took me off road through a hilly field.&lt;/p&gt;
&lt;p&gt;Onto the final 3.5km road section, I gradually wound the pace up again and finished strong with 2km at around marathon pace, albeit slightly downhill. I felt really good despite 22km in the legs. I could’ve carried on for longer with another gel, but I was overdue some family time and lunch beckoned. A promising sign though.&lt;/p&gt;
&lt;p&gt;The run ended up being my 2nd fastest half marathon training distance run; I was really happy with it. Strava considered it a 102 RE, so certainly some headroom to push into there on fresher legs. 4:07/km is starting to feel like a very realistic race target.&lt;/p&gt;
&lt;h2&gt;Overall&lt;/h2&gt;
&lt;p&gt;I didn’t boulder again this week, going to London to watch Chelsea on the Thursday instead. This resulted in a very late night I tried to offset with earlier nights over the weekend. I got in a Ben Parkes’ strength session and a weight lifting session, and a minimal amount of cycling.&lt;/p&gt;
&lt;p&gt;I’m feeling great. I again clocked higher than predicted volume for my 3rd week of the plan and I still feel I have more to give. I’m going to be sensible next week and take the prescribed recovery week as planned. After that, I want to hit weeks 5-7, the bulk of my plan, hard. So I’ll no doubt be tinkering this week with mileages and individual workouts to get the most out of my body.&lt;/p&gt;
&lt;p&gt;I had planned for 83km to be my peak week volume, on week 7, however I was close to hitting that this past week, and with 23% quality effort as well. Currently the volume feels manageable, so I may push my peak week from 83 up to 90. Oxford Half is obviously the primary focus of this training block, but I have half an eye on Manchester Marathon next year. I’ll hopefully learn a lot about what works for me and what my body is capable of during these 10 weeks.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>11-a-side Match - Oxford Half Marathon Training Diary - Week 2</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/"/>
    <updated>2024-08-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-2/</id>
    <content type="html">&lt;p&gt;This post is part of a 10-part series charting my training block for the Oxford Half Marathon 2024.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 1&lt;/strong&gt; &lt;em&gt;(5th - 11th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/&quot;&gt;Into The Swing Of It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 2&lt;/strong&gt; &lt;em&gt;(12th - 18th Aug)&lt;/em&gt; - 11-a-side Match&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 3&lt;/strong&gt; &lt;em&gt;(19th - 25th Aug)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-3/&quot;&gt;HM Distance Away From Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 4&lt;/strong&gt; &lt;em&gt;(26th Aug - 1st Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-4/&quot;&gt;Recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 5&lt;/strong&gt; &lt;em&gt;(2nd - 8th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-5/&quot;&gt;Fast Finish to Brighton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 6&lt;/strong&gt; &lt;em&gt;(9th - 15th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-6/&quot;&gt;Goal Pace Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 7&lt;/strong&gt; &lt;em&gt;(16th - 22nd Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-7/&quot;&gt;Peak Week Strain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 8&lt;/strong&gt; &lt;em&gt;(23rd - 29th Sep)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-8/&quot;&gt;Injury Woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 9&lt;/strong&gt; &lt;em&gt;(30th Sep - 6th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-9/&quot;&gt;Looking Ahead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Week 10&lt;/strong&gt; &lt;em&gt;(7th - 13th Oct)&lt;/em&gt; - &lt;a href=&quot;https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-10/&quot;&gt;1:25:57&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;12th - 18th August&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 80km (11.65km football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 19km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 38 / 161&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:06&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 77.1/22.9&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:16:19 (🔽 00:00:17)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-2-plan.png&quot; alt=&quot;Oxford week 2 plan&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Monday&lt;/h3&gt;
&lt;p&gt;Monday was a hot day, pushing 30 degrees, and I was still tired after an evening run on Sunday.
So I put off today’s run until 7pm, when the temperature had cooled to 25 degrees(!)
Stuck to the trees and it turned into an enjoyable warm up run for football.
On Mondays I aim for 7-8km during the day, or at the very least, 3km around Hove Park before I play football.&lt;/p&gt;
&lt;p&gt;Football was a little lighter than last week, but still a decent aerobic effort.
I played 8 minutes or so in goal, so less duration than normal.
66 relative effort (RE) from Strava and a max HR of 175 showed it was still a hard shift put in.
I count half the distance covered in the match to be of a &amp;quot;hard&amp;quot; effort to work out my 80/20 easy/hard ratio.&lt;/p&gt;
&lt;h3&gt;Tuesday&lt;/h3&gt;
&lt;p&gt;Tuesday was cooler than Monday, thankfully.
It was a slower run than last Tuesday’s steady effort; I was feeling more tired and I knew I had back-to-back quality efforts coming up Wednesday and Thursday.
It’s important to save yourself for the quality sessions. Averaged 5:03/km over 9.5km.&lt;/p&gt;
&lt;h3&gt;Wednesday&lt;/h3&gt;
&lt;p&gt;Wednesday: the first of 2 big quality workouts in as many days, I opted to wear my carbon racers - Saucony Endorphin Pro 3 - for this run.
The workout was 2 x 10 minutes at threshold pace (2 minutes recovery), followed by 5 x 30 second anaerobic efforts close to max (45s recovery).&lt;/p&gt;
&lt;p&gt;I found this one quite hard.
Elevation was variable in the course I’d planned, but flat and paved in the main.
It was my first time running threshold efforts at 4:00/km pace (up from 4:04/km).
These felt reasonably controlled and not too taxing.
The short, fast reps that followed were a nice change of pace (literally), and a good way to end a workout.
I could feel I’d worked hard on the warm down jog home.
A solid 12.5km with 5.8k of quality in the bank.&lt;/p&gt;
&lt;h3&gt;Thursday&lt;/h3&gt;
&lt;p&gt;Thursday was my long run day this week, as I was playing football on the Sunday.
The target was 19k total, with a section of 3km at Half Marathon target pace (HMP) in the middle.
A little daunting.
I also planned to trial the SIS Beta Fuel gels I’d picked up a few days before.
40g of carbs compared to 22g in the regular isotonic ones I typically use.&lt;/p&gt;
&lt;p&gt;HMP is 4:07/km, and I’d planned to run the remaining two blocks of 8km at easy pace (~5:00/km).
However as soon as I set out, I felt good.
I averaged 4:43/km for the first 8km, took my gel, then transitioned into the 3km @ HMP.
This didn’t feel too comfortable, but certainly manageable in that short block.
Plenty of time yet to feel more comfortable at this pace for longer.&lt;/p&gt;
&lt;p&gt;I went straight from the 3 back into the previous pace.
I was feeling strong so didn’t feel the need to slow the pace down to recover.
Kilometres 11-16, I averaged 4:36/km, which included some elevation; and in the final 3km I hit my target marathon pace, averaging 4:29/km.
A strong finish and definitely a confidence booster early on in the training block.
It put me in a good mood for the rest of the day!&lt;/p&gt;
&lt;h3&gt;Friday&lt;/h3&gt;
&lt;p&gt;Friday is typically my rest day, but I was looking after the kids on my own for the next 24 hours, so I wanted to get out early on to get an easy run and some me-time under my belt to keep the volume high for the week.
Did a nice 5.8km at an easy pace and low HR.
Legs felt heavy, but active recovery (easy running on tired legs) is important in maximising training volume.&lt;/p&gt;
&lt;h3&gt;Saturday&lt;/h3&gt;
&lt;p&gt;Saturday I was feeling a bit sick.
Convinced myself to get out for my scheduled 10km easy with 5 x 20s strides in the afternoon.
Felt much better after the run.
Strides at the end of easy runs are starting to feel more natural; a good habit to incorporate into easy runs.
Legs felt pretty fresh after ~30 hours of recovery.&lt;/p&gt;
&lt;h3&gt;Sunday&lt;/h3&gt;
&lt;p&gt;Sunday started with running a Junior Parkun and a new PB for my son (very proud).
The main event was a rare 11-a-side football match in Brighton, preceded by a 5km warm up run along the seafront (with a sizeable hill at the end).
This little warm up felt easy and beneficial to the body, and ticked me over 70km for the week of just running, a milestone first for me.&lt;/p&gt;
&lt;p&gt;Football was tough, but fun.
8.3km total run, for around 70 minutes total, and I felt it.
Fortunately, no knocks or strains so with a bit of recovery, I should be in a good position to hit the 3rd week of my training plan hard, before a de-load fourth week.
Very pleased to hit 70km running and over 80km total for the week.&lt;/p&gt;
&lt;p&gt;I didn’t boulder this week, and skipped weight training, but managed two runner-focussed strength workouts from a Ben Parkes’ plan.
Next week I want to get back on the weight training and get some cycling in too.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>My Oxford Half Marathon Training Diary - Week 1</title>
    <link href="https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/"/>
    <updated>2024-08-12T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/oxford-half-marathon-training-diary-week-1/</id>
    <content type="html">&lt;p&gt;I’m starting off a somewhat niche series of posts over the next 10 week charting my progress and experience training for the Oxford Half Marathon on 13th October. My current PB set last September is 1:32:00 and I am hoping to run 1:27:00 or faster in Oxford.
&lt;/p&gt;&lt;p&gt;This series of posts will go over my metrics and how my training has gone for the past week.
I plan to include the following metrics each week to chart my progress:&lt;/p&gt;
&lt;h3&gt;Total volume&lt;/h3&gt;
&lt;p&gt;Fairly self-explanatory.
I’m looking to maintain or increase this week-on-week, with a de-load week (backing off the volume) every 4 weeks to recover.
For a more complete picture of effort, I include my football sessions in this total too.&lt;/p&gt;
&lt;h3&gt;Longest run&lt;/h3&gt;
&lt;p&gt;As with total volume, I’m looking to build this distance up over time, aiming to run more than the 21.
1k target distance in the peak of my training.
Some weeks this will be a consistent easy effort.
Others will include blocks at target race pace.&lt;/p&gt;
&lt;h3&gt;Average resting &amp;amp; max HR&lt;/h3&gt;
&lt;p&gt;I’m using Garmin data for this, which gives me a low and high reading each day.
I then average these out over the week to give an indication of how well rested I am, and conversely how hard I’ve pushed myself.&lt;/p&gt;
&lt;h3&gt;Average bedtime&lt;/h3&gt;
&lt;p&gt;I log this as part of my daily journalling to keep myself accountable.
Rest is very important for recovery when activity is high, so keeping this average in check and consistent will be key to remaining healthy throughout the training block.&lt;/p&gt;
&lt;h3&gt;Easy/hard split&lt;/h3&gt;
&lt;p&gt;An 80/20 easy/hard split is generally the accepted ratio of easy to hard volume in a given period.
For every 4km run at an easy pace, 1km should be run “hard” (I define this as marathon pace or faster).
During a marathon training block (as opposed to half marathon or shorter), this may be closer to 70/30 due to the slower average pace of “hard” efforts (closer to marathon pace).&lt;/p&gt;
&lt;h3&gt;Tanda marathon race predictor (&lt;a href=&quot;https://crplot.com/&quot;&gt;https://crplot.com&lt;/a&gt;)&lt;/h3&gt;
&lt;p&gt;I’m not running a marathon, so this figure is somewhat useless to me right now, however I’ve been using this as a general metric for fitness and will continue to track changes to it over this training block.
This is based on a paper written by Giovanni Tanda and aims to predict your marathon time based on your weekly volume and average pace.
Its accuracy and effectiveness is debated, but regardless, it’s a useful metric to track over time in determining fitness.
My Tanda marathon prediction is 3:17:10 going into this training block.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Training VDOT&lt;/strong&gt; (&lt;a href=&quot;https://vdoto2.com/calculator&quot;&gt;https://vdoto2.com/calculator&lt;/a&gt;)&lt;/h3&gt;
&lt;p&gt;VDOT is another predictor metric, created by Jack Daniels.
It not only predicts your equivalent finishing times based on a recent race time, but also the training paces you should be running at.
E.g. my 5k race time of 19:00 (52.9 VDOT score) is equivalent to a half marathon time of 1:27:14.
Whilst I will be including this figure each week, note it will only concretely change following a race or time trial.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Week 1 — 5th - 11th August&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total volume:&lt;/strong&gt; 73.5km (4.3km football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Longest run:&lt;/strong&gt; 17.6km&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average resting &amp;amp; max HR:&lt;/strong&gt; 38 / 153&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average bed time:&lt;/strong&gt; 23:04&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy / hard split:&lt;/strong&gt; 80/20&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanda marathon race predictor:&lt;/strong&gt; 3:16:36 (🔽 00:00:34)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training VDOT:&lt;/strong&gt; 53.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/oxford-week-1-plan-2.png&quot; alt=&quot;Oxford week 1 plan&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Started well on the Monday with an extra 1km than planned on my pre-football run.
Was warm but not too hot, and I tried to stick to the trails.
8km at 4:58/km pace total and feeling good. Included 5 x 20s strides.&lt;/p&gt;
&lt;p&gt;Football was a big session.
Very warm still at 9pm and I ran a lot.
Clocked 4.3km total (0.4km more than the week before) and averaged 153 HR, which is very high for me.&lt;/p&gt;
&lt;p&gt;Surprisingly felt fresh enough for a steady effort on the Tuesday, hitting the 9km volume planned.
Slightly cooler than the day before.
Was happy to push the pace a bit as I had a lighter speed session than usual planned for Wednesday.
I ended up averaging 4:46/km pace.&lt;/p&gt;
&lt;p&gt;Wednesday was a cruise interval workout, so not too taxing. I chose threshold pace (4:04/km) over interval pace (3:45/km) as I had a all-out 5k effort planned for Saturday.
The workout was 4x 1 mile @ threshold pace (4:04), with 90s floats (jog rests).
Since this workout, my VDOT has increased and my subsequent threshold pace is now 4:00/km.
Yikes.
Felt good, felt strong.
14.5km total volume, 6.4k at threshold pace.
Warm up and cool downs were almost at a steady pace so I probably didn’t push myself as much as I could&#39;ve done.&lt;/p&gt;
&lt;p&gt;Thursday was another trail-heavy run, so not too focussed on pace.
Also added 5 x 20s strides at the end too, to keep the top end speed in the legs.
I also bouldered Thursday evening for 90 minutes, which involved a good amount of walking to and from.&lt;/p&gt;
&lt;p&gt;Friday was a standard rest day.
I got in a strength session in the morning - squat, RDL, deadlift &amp;amp; overhead press in my garage gym.
Not very running focussed, but keeping my discipline of doing some heavy lifting once a week and building overall back and leg strength.&lt;/p&gt;
&lt;p&gt;Saturday was Parkrun day.
5km at a hard effort.
Hadn’t made my mind up where I was going to run until the day before.
Decided it was a good time to do a benchmark 5k time trial on one of the quickest courses - Hove Prom.
Glad I did!
Conditions were great, and I was feeling strong after a rest day.
Ended up running an 18 second PB and finally smashing a sub-19 5k.&lt;/p&gt;
&lt;p&gt;I hadn’t really planned to, but since the end of May I’ve broken my 5k PB 3 times.
So really positive signs my fitness is on an upwards trajectory.
It also rounds off a nice period of 5k efforts as I now switch my attention towards longer distances.
I managed a decent warm up and cool down for 10k total volume on the Saturday.
I had hoped to get a cycle ride in in the evening but I was knackered by the end of a hot day so decided to rest instead.
This new PB raised my VDOT a whole point, from 52.9 to 53.9.&lt;/p&gt;
&lt;p&gt;Sunday was a busy day and another scorcher.
No chance of getting out during the day (and surviving), so I ended up doing my planned long run in the evening, bookended by a 10k cycle.
Wasn’t really feeling up for it, but it turned into a solid run.
It got too dark in the second half which I hadn’t prepared well for, which wasn’t conducive to a good run.
But I maintained pace and finished off at 17.6km in the end.
I had planned to end the week with a 20km long run, but due to higher volume earlier in the week, I was happy to cap where I did.&lt;/p&gt;
&lt;p&gt;A really good week, higher than planned volume and a 5k PB.
A decent football session, 10km of cycling, a bouldering session and a strength workout.
The only thing it lacked was some mobility work.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Wayward Pines Trilogy</title>
    <link href="https://samdking.co.uk/blog/wayward-pines-trilogy-review/"/>
    <updated>2024-07-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/wayward-pines-trilogy-review/</id>
    <content type="html">&lt;p&gt;I set a target this year to read at least one fiction book every month. I’ve always had a love of sinking into a good story in written form, so I knew the only thing that would slow me down in this challenge was finding the books.
&lt;/p&gt;&lt;p&gt;I’ve read a few of Blake Crouch’s books over the past few years and have enjoyed them all.
Epic story-telling and amazingly well researched and engaging science fiction.
I’d had the first book in his Wayward Pines trilogy on my reading list back in 2021 so I figured that’d be a good place to get the ball rolling this year.&lt;/p&gt;
&lt;p&gt;There’s something about a remote, alpine backdrop, complete with cliffs, streams and forests of pine trees that both soothes and excites me.
This is the setting for the Wayward Pines trilogy, a small town in rural Idaho with an unsettling peculiarity of disappearances.
A premise as old as time, but one I gobble up in story form.&lt;/p&gt;
&lt;p&gt;The first book, Pines, puts you instantly on edge and desperate to learn what is going on in the main character Ethan’s current predicament.
Blake creates a palpable sense of disorientation that encapsulates Ethan’s mental state.
The book slowly unravels the mystery of the small town of Wayward Pines.&lt;/p&gt;
&lt;p&gt;The first book does a masterful job of keeping you guessing as to what’s going on and creating an unease to the deepening perilous situation.
But it’s not until the end that we learn of the horrifying reality of the situation.
I had my theories but I didn’t see the reveal coming.&lt;/p&gt;
&lt;p&gt;The second book and sets a different tone of Ethan adapting to his new life and society.
We begin to learn more about the new world and the people in it and how it came to be.
There&#39;s a revolt in the making and a suspicious murder to investigate.&lt;/p&gt;
&lt;p&gt;The third book is all-out action.
Events quickly unravel and desperation ensues as the characters we’ve grown to know well fight for their lives, and the insidious beliefs of the antagonist are laid bare. The third book in particular hops back and forth on the timeline as we delve deeper into the character&#39;s pasts and find out what brought them there.&lt;/p&gt;
&lt;p&gt;I read each of the instalments of this enthralling trilogy in 2 weeks or less.
By the final book I was stringing reading sessions apart to eek it out that little bit longer, knowing it was reaching its conclusion.&lt;/p&gt;
&lt;p&gt;Blake Crouch has the ability to immerse you in dystopian scenarios and create a creeping sense of peril that you can’t look away from.
But there are touching moments of humanity and closeness that keep this trilogy relatable.
The protagonist is the wily, brave and stubborn character needed to push the story along and the antagonists are aplenty as we try to discern who we can trust and who we can’t.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>How we&#39;re migrating a legacy Rails 3 app to Rails 7</title>
    <link href="https://samdking.co.uk/blog/migrate-legacy-rails-3-app-to-rails-7/"/>
    <updated>2024-06-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/migrate-legacy-rails-3-app-to-rails-7/</id>
    <content type="html">&lt;p&gt;At Arena Online, our plan this year is to begin migrating our existing legacy codebase off Rails 3 and into a modern Rails 7 app; simultaneously shedding over a decade’s worth of technical debt.
&lt;/p&gt;&lt;h2&gt;A bit of history&lt;/h2&gt;
&lt;p&gt;Rails itself is fairly easily upgraded between major versions, with extensive docs and walk-throughs available to help. However, the majority of our code is contained in a series of Rails 3 apps which pre-date even the Git repository they’re contained in. They began life as original Rails 1 apps. Various upgrades over the years took it to Rails 3 but for one reason or another, long before my time, it got unceremoniously stuck in version 3; branded “un-upgradable”.&lt;/p&gt;
&lt;p&gt;Various speculative attempts to upgrade to Rails 4 have been made over the years, but it has now largely succumbed to its legacy routes. New apps have been spawned, taking some logic away from the codebase but still a large number of business-critical systems still live within.&lt;/p&gt;
&lt;h2&gt;Upgrade or rewrite&lt;/h2&gt;
&lt;p&gt;No app is truly un-upgradeable, given enough time and resource. But in the real world there’s a valid question of which is more efficient: upgrade or a rewrite. Ultimately, we decided on an incremental rewrite.&lt;/p&gt;
&lt;p&gt;Incremental being the key word here, as we fully intend to continue business-as-usual operations on the old codebase and architecture, slowly migrating services away as they’re built.&lt;/p&gt;
&lt;h2&gt;Where to start&lt;/h2&gt;
&lt;p&gt;The key thing with a monolith app, or in our case, a series of apps in a single repository, is to figure out how to slice it up into manageable units. These should be discrete and functional in isolation. Allowing a seamless switch-over from the old system to the new for that individual unit.&lt;/p&gt;
&lt;p&gt;For us, we have a series of “workers” (more “jobs” in todays terminology), which run as background tasks, fulfilling an action on a batch of - typically - orders. These worker classes belong to our CMS/backend application, but are run by Resque, in a separate environment, so don’t have any front end (besides a generic, minimal UI provided by Resque). They are scheduled, queued using a Redis backend, and performed by Resque. Jobs like this are a good candidate for extraction.&lt;/p&gt;
&lt;p&gt;A single endpoint in an API-style app could also work as a single unit of code to start with.&lt;/p&gt;
&lt;h2&gt;Initialising the new app&lt;/h2&gt;
&lt;p&gt;Starting is very easy, especially if you’ve been used to the relative weeds of navigating a legacy Rails 3 codebase. Start from the latest version of Rails and use the command line tool to generate a brand new app.&lt;/p&gt;
&lt;p&gt;The key configuration you will need to set up is access to the legacy database. You may want this as your primary database, however I chose to define a separate “legacy” connection in my database configuration. This left a primary connection, using a database adaptor of our choosing, for if we wanted to use something like Solid Queue down the line.&lt;/p&gt;
&lt;p&gt;You will probably have your legacy database running locally already if you’re actively working on the current codebase. For me, I had this available in a Docker container, and just needed to expose the port in the Docker Compose file so I could access it outside of the app’s network.&lt;/p&gt;
&lt;p&gt;Configuring an additional database connection is pretty simple in Rails 7. I created a &lt;code&gt;LegacyRecord&lt;/code&gt; model, which inherits from the primary ApplicationRecord class, is defined as abstract, and connects to the “legacy” database configuration for reading and writing:&lt;/p&gt;
&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;LegacyRecord&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; ApplicationRecord
  &lt;span class=&quot;token keyword&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;abstract_class &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;

  connects_to database&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;reading&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:legacy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;writing&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:legacy&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, in your database configuration YAML file, you’ll need to ensure a “legacy” configuration under the development and test environments:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;legacy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token important&quot;&gt;&amp;amp;legacy&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;adapter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; mysql2
  &lt;span class=&quot;token key atrule&quot;&gt;checkout_timeout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &amp;lt;%= ENV&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;DB_USER&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt; &#39;root&#39; %&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;password&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &amp;lt;%= ENV&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;DB_PASSWORD&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt; &#39;&#39; %&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &amp;lt;%= ENV&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;DB_HOST&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt; &#39;localhost&#39; %&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token key atrule&quot;&gt;development&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;legacy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token important&quot;&gt;*legacy&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;database&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; arena_development

&lt;span class=&quot;token key atrule&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;legacy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token important&quot;&gt;*legacy&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;database&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; arena_test&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then exported environment variables in my .zshrc file that match the details needed to connect to my local Docker mysql instance. Later on, we’ll define a “primary” database configuration under development and test, but for now, this should work fine.&lt;/p&gt;
&lt;p&gt;The useful thing is, as soon as Rails connects to your test database, it will automatically generate a db/legacy_schema.rb. This should largely match the db/schema.rb file in your current legacy codebase.&lt;/p&gt;
&lt;h2&gt;The first test&lt;/h2&gt;
&lt;p&gt;My approach to the migration is test driven development. Hopefully you’ll be migrating a codebase with extensive test coverage. Migrating becomes significantly more haphazard without the backing of a good test suite.&lt;/p&gt;
&lt;p&gt;With this in mind, you’ll want to first identify the tests that currently cover the code you want to begin migrating. I would suggest copying these files over as-is. Fortunately, from Rails 3 to 7, the makeup of a unit test has not changed much, so Rails was able to understand and at least try to run our existing tests.&lt;/p&gt;
&lt;p&gt;Running the test suite (&lt;code&gt;rails test&lt;/code&gt; ) at this point, there’s a strong likelihood that it will fail, and fail early. For us, we were referencing the pre-renamed version of the FactoryBot gem, FactoryGirl. At this point we’ve not even included the gem in our Gemfile, but if we had, it would fail due to the old class reference.&lt;/p&gt;
&lt;p&gt;The key thing at this stage, and indeed with Test Driven Development in general, is to do the smallest amount of work to fix the current error preventing the test from passing. In this small example, that is specifying the &lt;code&gt;factory_bot_rails&lt;/code&gt; gem in our Gemfile and doing a bulk-find and replace in our code editor from FactoryGirl to FactoryBot. This should allow us to re-run our tests and attack the next error.&lt;/p&gt;
&lt;p&gt;This test-and-see approach can be time-consuming, but with each fix you’ll be getting closer to where you want to get to - a passing test suite again. You’ll soon come across an actual logic fail in your test. It will attempt to load a class or factory which doesn’t yet exist in the new codebase. Resist the urge to copy and paste this file from old to new.&lt;/p&gt;
&lt;h2&gt;Shed the deadwood&lt;/h2&gt;
&lt;p&gt;In our codebase we had a mammoth Order model; a God object, as it’s commonly referred to. Somewhat of a dumping ground over the years. It’s also split across a number of included modules. It’s a lot of code. The last thing we want to do is ship all that technical debt with us to the new codebase. And crucially, we probably don’t know what’s useful and what isn’t. So let your tests guide you.&lt;/p&gt;
&lt;p&gt;If a referenced class cannot be found, create it in the new codebase. If a method cannot be found, create it. Add associations &amp;amp; constants when referenced. Although I recommend avoiding copying entire classes, copying over whole methods is generally fine. Methods are usually more focussed and clearer to understand what is useful and what is not.&lt;/p&gt;
&lt;p&gt;It’s important at this stage not to try to change too much about the old code. The focus should be on minimal fixes to get the old test suite compatible with the new codebase. You can update old syntax (like &lt;code&gt;.try()&lt;/code&gt; for &lt;code&gt;&amp;amp;.&lt;/code&gt; and &lt;code&gt;:key ⇒&lt;/code&gt; for &lt;code&gt;key:&lt;/code&gt; in hashes) but do not think about significant refactoring at this stage.&lt;/p&gt;
&lt;h2&gt;Move fast&lt;/h2&gt;
&lt;p&gt;Getting a passing test suite can be tricky at times. I found it was important not to get held up for too long on this. If a particular test case tested a part of the system I didn’t intend to migrate at this stage, I would simply &lt;code&gt;skip&lt;/code&gt; it. This is like putting a post-it on the page to come back to down the line.&lt;/p&gt;
&lt;p&gt;If you don’t want to skip the whole test case, don’t be precious about commenting out irrelevant assertions, or use an inline &lt;code&gt;skip&lt;/code&gt; block. If it tests areas of the codebase you’re not focussing on right now, just comment it out. But be considerate, leave a note.&lt;/p&gt;
&lt;p&gt;It’s even fine at this stage to comment out application code if you deem it irrelevant. For example, I didn’t want to deal with logging to Rollbar, and I knew this would be an easy fix down the line. So simply commenting out this code was not a big deal.&lt;/p&gt;
&lt;p&gt;An approach for minimising the visual stream of errors and test failures at first is to &lt;code&gt;--fail-fast&lt;/code&gt;. This is a flag you can utilise when running &lt;code&gt;rails test&lt;/code&gt; that will stop running as soon as a failure or error is encountered. I found this useful at first when I knew every test was likely to fail, for the same or similar reasons.&lt;/p&gt;
&lt;h2&gt;Required: good test coverage&lt;/h2&gt;
&lt;p&gt;Eventually you should end up with a passing test suite, and a collection of minimal, logic-light, related classes. These are classes are far from being production-ready, but you can be reasonably confident they perform the same function as the particular tests expected them to.&lt;/p&gt;
&lt;p&gt;It’s important to note, this process is only as good as the coverage the tests provide. If your tests are light and don’t cover the necessary number of scenarios that occur in your application, there’s a chance your new code will be missing crucial bits of the old codebase. But if you’re migrating a rock-solid, battle-hardened codebase that has stood the test of time, there’s a good chance you have a good test suite backing that up.&lt;/p&gt;
&lt;h2&gt;Forgotten bits&lt;/h2&gt;
&lt;p&gt;A passing test suite is great, but it’s no substitute for a good, hands-on knowledge of the system you’re migrating. In my case, I knew the Order model was rife with callbacks and validations split over multiple files. This kind of logic may be either not tested completely enough or is covered by some other test file you’re not ready to copy over yet. But some may still be part of the core functionality you’re recreating.&lt;/p&gt;
&lt;p&gt;For example, our Order model queues callbacks when its status changes. It also logs a version change when its status or a key attribute changes. At this point you can either put a pin in this functionality, in the form of a ticket, or recreate the logic in the new codebase.&lt;/p&gt;
&lt;p&gt;Don’t be tempted to copy and paste modules or old gems that did the heavy lifting. For starters, old gems are unlikely to be compatible with modern Rails versions without some work. And secondly, you want to properly vet all new gems you add to a codebase. Every gem in the Gemfile is a responsibility you must maintain.&lt;/p&gt;
&lt;h2&gt;Refactor later&lt;/h2&gt;
&lt;p&gt;I mentioned earlier about resisting the urge to refactor. This step should be secondary to the migration process itself. Your key objective is to get the old codebase working in the new environment. However, there is some nuance here.&lt;/p&gt;
&lt;p&gt;Dodgy code patterns and clunky or sub-optimal code will need fixing at some point. You don’t want to bring bad habits over to a new codebase if you can help it. So make a clear note in the code, or better yet, create a ticket/issue detailing the problem with the code.&lt;/p&gt;
&lt;p&gt;The primary reason I found for delaying refactoring is it will inevitably get lost in the initial code review. When migrating code, you will end up with a lot of code changes for review. These changes are easier to review if the developers reviewing know they’re only looking at existing code.&lt;/p&gt;
&lt;p&gt;A small, focussed Pull Request after the fact has significantly less cognitive overhead than having it jumbled up with swaths of old logic. A distinct PR also provides a much better platform for focussed discussion on the refactor.&lt;/p&gt;
&lt;h2&gt;Make use of fixtures&lt;/h2&gt;
&lt;p&gt;There’s a hot debate around factories vs fixtures, but I believe they both have their place in an application. The codebase we’re migrating makes use of factories, but fixtures is now the default in modern Rails apps, so let’s see if we can make use of them.&lt;/p&gt;
&lt;p&gt;Because we’re dealing with a legacy application in production, we know the nature of the data the application deals with. Data like this has been around for a while and doesn’t change much. For these reasons, it’s a great candidate for fixtures.&lt;/p&gt;
&lt;p&gt;Converting data of this nature from factories to fixtures will provide a decent performance upgrade when running an entire test suite, and will clean up your test setup.&lt;/p&gt;
&lt;h2&gt;Modernise your code&lt;/h2&gt;
&lt;p&gt;Use tools like Rubocop to auto-lint your code based on a set of rules you control. You can choose to adopt the rules set by established companies like Shopify and Airbnb too. Rubocop has a plugin for Rails specifically which will autocorrect common anti-patterns in your code and simplify where possible.&lt;/p&gt;
&lt;p&gt;Writing code has come a long way in the last decade, so chances are, your old codebase could do with some sprucing up. However, as with refactoring, always make these changes as part of a separate Pull Request. It’s a lot easier to review code when you know you’re only looking for syntax and code style changes, rather than logic.&lt;/p&gt;
&lt;h2&gt;In conclusion&lt;/h2&gt;
&lt;p&gt;We’re still very early on in the process. We’re 3 “units” into the migration and are currently now looking at setting up a new environment in which to begin manual testing of the new code. Once we’re happy the code fulfills the same role as it did in the existing codebase, we can look at switching off that code in the old system and switching on in the new.&lt;/p&gt;
&lt;p&gt;This is an exciting project and one we expect will continue well into 2025. But hopefully by the end, we’ll have a much more robust, modern base in which to build new functionality into.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>How I use stats to make me a better runner</title>
    <link href="https://samdking.co.uk/blog/how-i-use-stats-to-make-me-a-better-runner/"/>
    <updated>2024-04-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/how-i-use-stats-to-make-me-a-better-runner/</id>
    <content type="html">&lt;p&gt;One of the many reasons I love running is its track-ability. There’s a tongue-in-cheek saying in the fitness world, “If it’s not on Strava, it didn’t happen”. But like any hobby, you can choose how much you involve stats in it. Running can be a joyfully simple and analogue activity. Conversely, you can track any and every metric from your distance down to your running mechanics. I land in the second camp, perhaps somewhat unsurprisingly.
&lt;/p&gt;&lt;h2&gt;Returning from injury&lt;/h2&gt;
&lt;p&gt;I got injured properly for the first time at the end of last year.
I say &lt;em&gt;properly&lt;/em&gt;, I was still able to run, however it took many months to get on top of it and get back to running back at my previous levels.
Throw in a bout of COVID into the mix and I began 2024 at a relatively low level of fitness.&lt;/p&gt;
&lt;p&gt;After a couple of testing-the-water weeks at the start of the year, with volume between 45-50km, I was still experiencing repeated flare-ups of my injury.
I decided to take a full week off from running to see if my hamstring pain would reduce.
I&#39;ve since learned that with my particular injury - hamstring tendinopathy - resting actually does little to improve recovery.
Tendons like load and repair by slowly strengthening over time.&lt;/p&gt;
&lt;p&gt;As I began a rehabilitation program with a physio, I wanted to safely track my progression back to fitness.
There’s a loosely-held but widely adopted guideline in the running world: increase your running volume by no more than 10% week-on-week to minimise injury risk.
I dialled my volume and intensity right back, and set about a plan to get back to full fitness.
To help me with this, I reached for some tools.&lt;/p&gt;
&lt;h2&gt;Strava&lt;/h2&gt;
&lt;p&gt;Strava is a social network of sorts for active people; principally runners and cyclists.
Once connected to a wearable &amp;amp; tracking app, it will sync everything you record and collate your stats for you.
I’ve used Strava for a number of years, and have been a paid member since I started taking my running more seriously.&lt;/p&gt;
&lt;p&gt;I find it to be a wonderful tool for connecting with other people into fitness and for keeping you honest towards the pursuit of your goals.
Sharing your achievements with your peers is a surefire way to keep motivation and enjoyment high, for me at least.&lt;/p&gt;
&lt;p&gt;There is a free version of Strava, however I find most of its prime and useful features are reserved for paying members.
Some of my favourites:&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/strava-training-log.png&quot; class=&quot;lg:float-right lg:w-2/5 lg:ml-8&quot; alt=&quot;Strava training log mobile view, showing total activities per day as a series of coloured blobs&quot; /&gt;
&lt;h3&gt;Training log&lt;/h3&gt;
&lt;p&gt;Simple, but visually very useful for checking consistency over a number of weeks.
I find this much more useful on the mobile version, where multiple activities are combined giving a total of distance/elevation/time.
Races, workouts and long runs are distinguished using different colours/patterns.&lt;/p&gt;
&lt;h3&gt;Comparison to similar runs&lt;/h3&gt;
&lt;p&gt;Strava will show you your activities along a similar route, and compare your performance over time.
The mapping algorithm can sometimes be a bit hit and miss; but if you’re someone who regularly runs the same route, this can be a very useful feature for comparison and improvement over time.&lt;/p&gt;
&lt;h3&gt;Fitness graph&lt;/h3&gt;
&lt;p&gt;The actual number used here is somewhat arbitrary, and something only Strava knows, but the relativity can be useful to track.
Consistent training with regular hard efforts and races will steadily improve your fitness score.
Conversely, missing a week due to illness or injury, dramatically drops it.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/strava-best-efforts.png&quot; class=&quot;lg:float-left lg:w-2/5 lg:mt-0 lg:mr-8&quot; alt=&quot;Strava 1 mile analysis mobile view, showing my best efforts over 2023-2024&quot; /&gt;
&lt;h3&gt;Best Efforts&lt;/h3&gt;
&lt;p&gt;Strava keeps track of your best estimated times in 400m, 1/2 mile, 1k, 1 mile, up to 50k ultra distance.
It gives you an all time top 10 for each distance, plus your best 5 per year.
This, combined with the graph is an excellent tool for charting your progress at a particular distance.&lt;/p&gt;
&lt;h3&gt;Mapping&lt;/h3&gt;
&lt;p&gt;I use Strava’s mapping functionality for all my long runs.
It’s great for discovering new routes, checking out popular (and other not so passable) trails; and plotting out a particular distance.
These routes can be synced with your watch to provide navigation during a run.&lt;/p&gt;
&lt;p&gt;Strava also shows user-submitted photos taken along a particular route, popular times (of the day and year), and an elevation graph.
Everything you need to give you the confidence to take on new ground.&lt;/p&gt;
&lt;h2&gt;myTrainingForecast&lt;/h2&gt;
&lt;p&gt;After what felt like almost starting from scratch towards the end of January, I came across a website: myTrainingForecast.run.
It was their social integration with Strava that turned me onto it.
MyTrainingForecast predicts your freshness and your likelihood of injury based on your activity load.&lt;/p&gt;
&lt;p&gt;It takes an average weekly total based off your last 4 weeks (your &lt;em&gt;chronic&lt;/em&gt; training load) and compares it to your last 7 day’s volume (your &lt;em&gt;acute&lt;/em&gt; load).
The ratio between these numbers is your ACR (Acute:Chronic ratio).
This should be between 80-130% to remain in the “safe” zone and keep your injury risk low.&lt;/p&gt;
&lt;p&gt;As an example, if you’ve run an average of 40km/week for the last 4 weeks, you can safely run between 32km (80% ACR) and 52km (130% ACR) in the next 7 days.
Any less and you will begin &amp;quot;detraining&amp;quot; (losing fitness); any more and you increase your injury risk.&lt;/p&gt;
&lt;p&gt;In all honesty, I don’t know the exact science behind this, but it sounded like a decent formula to follow, and one a little more nuanced than the age-old “no more than 10% than the previous week” advice.&lt;/p&gt;
&lt;p&gt;The free version of MyTrainingForecast allows you to input your next 7 days of target distance and it nicely graphs your ACR values for you.
It also keeps track of your risk history, which goes from x0 (not training) to x4 (4 times as likely to get injured).
Staying within the green safe zone of your ACR keeps your risk profile well below 2x.&lt;/p&gt;
&lt;p&gt;When I first started using myTrainingForecast, I kept my training right on the cusp of the safe ACR limit.
I was keen to increase my volume as quickly as I could (and with it, my fitness), but mindful to not overload my tendon and experience a setback.&lt;/p&gt;
&lt;p&gt;MyTrainingForecast’s feature set opens up with the paid plan, allowing further weeks of planning and historical visibility.
It will also track things like your elevation over time.&lt;/p&gt;
&lt;h2&gt;CRPlots&lt;/h2&gt;
&lt;p&gt;Another tool I came across during my rehabilitation phase was &lt;a href=&quot;https://crplot.com/&quot;&gt;crplot.com&lt;/a&gt;.
A visually basic website, but one with tonnes of useful metrics to dig into.
It syncs with your Strava data and will populate historically as far back as you have logged in Strava.&lt;/p&gt;
&lt;p&gt;Its based on the Tanda Race Predictor (&lt;a href=&quot;https://tandaracepredictor.com/&quot;&gt;https://tandaracepredictor.com/&lt;/a&gt;) and its main purpose is to predict and track your marathon time.
The formula is based on, essentially, how often you run, and at what pace.
For example, someone running 50km a week at a 5:00/km average pace could expect to complete a marathon in an average time of 3:23:37.&lt;/p&gt;
&lt;p&gt;Another very useful graph on crplot.com I made use of was Net Heart Rate Efficiency.
Not least because of the stark drop I observed post-injury, and later, post-COVID.
Net HR efficiency compares your heart rate against your pace (it may also take into account gradient).&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/crplots-net-hr-efficiency.png&quot; alt=&quot;My Net Heart Rate Efficiency graph of the past 12 months, from CRPlot.com&quot; class=&quot;lg:w-4/5 m-auto&quot; /&gt;
  &lt;figcaption class=&quot;text-center&quot;&gt;My Net Heart Rate Efficiency graph of the past 12 months, from CRPlot.com&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Heart rate is personal to you, so this figure shouldn’t be compared with other runners, however, it can be used as a relative indicator of your own fitness.
It was clear to me how much my fitness had dropped since my apparent peak at the beginning of October.
Injury, donating blood &amp;amp; COVID had collectively done a number on my HR efficiency.
Tracking this slow improvement over time has been rewarding and confidence-boosting.&lt;/p&gt;
&lt;p&gt;For heart rate training to be effective, a chest strap HR monitor is required.
This ensures this greatest level of accuracy in the data collected.
Your wrist-based monitor will get you 90% of the way there, but shouldn’t be relied upon if you’re taking the data seriously. I use the Garmin HRM Pro Plus.&lt;/p&gt;
&lt;p&gt;CRPlot will also show you your distance &amp;amp; speed based on a rolling average of the previous 8 weeks.
This is really useful for visualising your volume, and the paces you’re running at.
Simplistically, the faster you can sustainability run, the fitter you’re getting.&lt;/p&gt;
&lt;h2&gt;The Spreadsheet&lt;/h2&gt;
&lt;p&gt;After a few weeks, the limitations of the free plan on MyTrainingForecast (MTF) left me wanting more.
I weighed up whether it was worth upgrading (£44 for the year), but decided to try tinkering in Google Sheets first.
I knew roughly the formulas MTF employed for calculating acute/chronic figures and the resultant ACR; and a little data entry later, I had the last 8 weeks of my training entered into a spreadsheet.&lt;/p&gt;
&lt;p&gt;An advantage this had over MTF was I was able to not only chart the individual types of runs I’d done, but also forecast and plan my future training.
I also had a single place where I could easily total weekly distance and weekly quality effort.
This, along with rolling chronic &amp;amp; acute load figures and ACR were easy and effective to display in a graph too:&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/running-spreadsheet-chart.png&quot; alt=&quot;Graph of my training showing distance (left axis), relative effort (right axis) and days (bottom), with acute &amp; chronic load (shaded sections)&quot; /&gt;
  &lt;figcaption class=&quot;text-center&quot;&gt;Graph of my training showing distance (left axis), relative effort (right axis) and days (bottom), with acute &amp; chronic load (shaded sections)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Forecasting&lt;/h2&gt;
&lt;p&gt;Something I’ve never really done in my training (outside of a structured training plan) is plan my workouts ahead of time.
I went into weeks having a rough idea of target volume, and then mostly made up the workout type on the spot each time I ran.
Planning weeks ahead allowed me to more effectively schedule running around my other commitments and ensure I was steadily increasing my volume and hitting my ratios.&lt;/p&gt;
&lt;p&gt;I follow the widely accepted advice in the running world of keeping 80% of my volume at an easy, conversational pace.
The remaining 20% can be faster, harder effort.&lt;/p&gt;
&lt;p&gt;Recording both total distance of runs and total “quality effort” makes maintaining an 80/20 ratio week-to-week much easier.
Planning ahead also provides a clear marker for target races.
I highlight these rows in green so I can see exactly how much time and exactly what individual workouts I have planned leading up to that race.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/running-spreadsheet-data.png&quot; alt=&quot;Spreadsheet showing rows of activities and the associated data I record&quot; /&gt;
  &lt;figcaption class=&quot;text-center&quot;&gt;Spreadsheet showing rows of activities and the associated data I record&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Relative Effort&lt;/h2&gt;
&lt;p&gt;After a few weeks using the spreadsheet, I decided to add in an extra data point: relative effort.
This is a proprietary Strava metric based on a number of factors including heart rate and pace.
Each activity is given a Relative Effort score based on perceived effort throughout the workout.
Manually entering this into the spreadsheet after each run gives me another metric to track and chart over time; ensuring this stays relatively consistent and dropping for deload weeks.&lt;/p&gt;
&lt;p&gt;A deload week is a planned block of runs at a collectively lower effort and/or volume compared to a typical week.
This allows the body to recover from hard efforts and consolidate improvement gained over recent hard efforts.
A deload week is typically taken every 4-6 weeks to stave off burnout.&lt;/p&gt;
&lt;p&gt;If I’m training consistently and staying within a safe range of exertion, the Strava relative effort 7-day rolling average should remain stable (with a slight drop during a deload week).
The theory being, as your fitness increases, the effort required to do the same workout drops.
You’re therefore able to put in more effort (by increasing distance, pace or elevation) but maintain the same relative effort.&lt;/p&gt;
&lt;h2&gt;Training blocks &amp;amp; maintenance&lt;/h2&gt;
&lt;p&gt;A training block describes a set length of time in which to reach peak condition for a “goal race”.
Training blocks can vary in time, but a typical marathon block is between 10-16 weeks.
During this time your volume should trend upwards as you train to gain fitness, with a taper at the end to put some freshness back in your legs before the race.&lt;/p&gt;
&lt;p&gt;Ready-made training plans can be acquired on the internet at relatively low cost.
More advanced runners may devise their own or seek a more specific plan from a coach.&lt;/p&gt;
&lt;p&gt;Forecasting my training in a structured way, allows me to make my own training plan, taking in inspiration and advice from numerous sources.
I can ensure a consistent but safe upwards trajectory in volume and easily track the effectiveness and intensity of the workouts by monitoring relative effort.&lt;/p&gt;
&lt;p&gt;Maintenance is what happens in between training blocks.
Your body needs rest after preparing for and executing a goal race.
During this time you’ll likely reduce your weekly distance, potentially substantially.
You may look to cross-train to let you recover mentally and physically.&lt;/p&gt;
&lt;p&gt;MyTrainingForecast suggests fitness can be maintained with an ACR (Acute/Chronic ratio) of 80%.
This means if you’ve averaged 50km/week for the last 4 weeks, you can reduce your weekly volume down to 40km and not lose any, or much, fitness.
And the next week, 38km.&lt;/p&gt;
&lt;p&gt;Forecasting my runs and tracking my rolling ACR by the day means I can easily dial in a maintenance schedule post-race and be confident my fitness will be maintained.&lt;/p&gt;
&lt;h2&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;There are a million ways to over-engineer the simple activity of running.
But there are an equal number of ways to use stats to enhance your running performance and keep you healthy.
Ultimately, runners will sit across the entire spectrum.&lt;/p&gt;
&lt;p&gt;I’ve built up a set of tools and practices that aim to keep me injury free, plan efficiently and safely for goal races, and keep me excited for my next run.
I wouldn’t have it any other way.
Heaven forbid my watch runs out of battery mid-run!&lt;/p&gt;
&lt;p&gt;I love talking about running, so if you’d like any advice or just want to chat shop, hop onto my &lt;a href=&quot;https://strava.com/athletes/samdking&quot;&gt;Strava&lt;/a&gt;!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>What I spent in 2023</title>
    <link href="https://samdking.co.uk/blog/what-i-spent-in-2023/"/>
    <updated>2024-03-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/what-i-spent-in-2023/</id>
    <content type="html">&lt;p&gt;I like to have a handle on my spending. I track pretty meticulously what I spend personally and as a family. I’ve previously talked about how to &lt;a href=&quot;/blog/master-your-spending-habits/&quot;&gt;master your spending habits&lt;/a&gt;, where I delved into how I track what I spend, what I spend and how I analyse it.
&lt;/p&gt;&lt;p&gt;Over a year on from writing the post, I thought it would be useful to share what a “year in my life” looks like for my spending.
Heads up; this was written as much for me as anyone else as a “deep dive” into where my money was spent; an exercise I encourage you to do annually too.&lt;/p&gt;
&lt;h2&gt;My budget&lt;/h2&gt;
&lt;p&gt;My wife and I have our salaries paid into a shared account and pay ourselves an equal monthly allowance from that, to cover our own individual interests.
This started at £275 in January 2023 and grew to £325 by the end of the year.
It totalled £3,525.00 over 2023.&lt;/p&gt;
&lt;p&gt;This income is supplemented by several other pots of money, including health plan payouts, gifted money and the sale of old items.&lt;/p&gt;
&lt;h2&gt;Top categories&lt;/h2&gt;
&lt;p&gt;Where I spent the most money in 2023, by category:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Running&lt;/li&gt;
&lt;li&gt;Health &amp;amp; Wellbeing&lt;/li&gt;
&lt;li&gt;Tech&lt;/li&gt;
&lt;li&gt;Gifts&lt;/li&gt;
&lt;li&gt;Chelsea&lt;/li&gt;
&lt;li&gt;Transport&lt;/li&gt;
&lt;li&gt;Food &amp;amp; drink out&lt;/li&gt;
&lt;li&gt;Football&lt;/li&gt;
&lt;li&gt;Home gym&lt;/li&gt;
&lt;li&gt;Charity&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Running (£765 spent)&lt;/h3&gt;
&lt;p&gt;No surprises here.
Running has become my primary hobby over the last few years, so inevitably I wanted to spend the majority of my hard earned money on it.
This was also me holding back somewhat, knowing I was on a tight budget; I could’ve spent a lot more if I’d given in to my imagination!&lt;/p&gt;
&lt;p&gt;Here’s a breakdown of what I bought in the running category last year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4 pairs of shoes (sold 1):&lt;/strong&gt; £270&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Race entries &amp;amp; track sessions:&lt;/strong&gt; £215&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clothing:&lt;/strong&gt; £190&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strava subscription:&lt;/strong&gt; £55&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nutrition:&lt;/strong&gt; £35&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Health &amp;amp; wellbeing (£530 spent; £195 claimed back)&lt;/h3&gt;
&lt;p&gt;I take my health a lot more seriously these days.
A combination of having kids, having hobbies that put a demand on my body, and just growing older really.
The breakdown:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vivo Life protein powder subscription &amp;amp; Huel:&lt;/strong&gt; £200&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dental plan:&lt;/strong&gt; £180&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contact lens subscription:&lt;/strong&gt; £110&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk deodorant top-up:&lt;/strong&gt; £25&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supplements/vitamins:&lt;/strong&gt; £15&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Tech (£470 spent; £195 from pots)&lt;/h3&gt;
&lt;p&gt;I pay off my phone interest-free each month.
I also splashed on a few gadgets last year, funded partially by gifted money and old tech sales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phone payments:&lt;/strong&gt; £225&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replacement Shokz bone conduction headphones:&lt;/strong&gt; £90&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key Light Air (used):&lt;/strong&gt; £90&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Garmin HRM Pro Plus HR monitor chest strap:&lt;/strong&gt; £65&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Gifts (£430 spent; £145 from pots)&lt;/h3&gt;
&lt;p&gt;I made 37 gift purchases last year.
This figure remains high year-on-year.
Some lovingly chosen, others admittedly made more out of social obligation.&lt;/p&gt;
&lt;h3&gt;Chelsea (£420 spent; £380 from pots)&lt;/h3&gt;
&lt;p&gt;I bought tickets for 9 games last year, plus an annual membership to Chelsea and the Chelsea Supporters Trust.
I’m fortunate that the majority of this was funded by a pot of money I accumulated in 2020.
This pot will be exhausted at some point in 2024 so I need to find another source of income to fund watching Chelsea.
The breakdown:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tickets:&lt;/strong&gt; £380&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chelsea Membership:&lt;/strong&gt; £35&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chelsea Supporters Trust:&lt;/strong&gt; £5&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Food &amp;amp; drink out (£400 spent)&lt;/h3&gt;
&lt;p&gt;I made 49 individual transactions on food or drink (excluding snacks); too many to breakdown.
Certainly not an insignificant amount.
This amount would almost certainly be higher though if I worked in an office.&lt;/p&gt;
&lt;h3&gt;Transport (£375 spent)&lt;/h3&gt;
&lt;p&gt;I take the train a lot. Going up to London to watch the football, socials with friends in Brighton &amp;amp; Hove and travelling to races and Parkruns.
I renewed my annual Network Railcard to discount these journies.
Last year I bought 38 train tickets and 2 bus tickets.
I also spent a small amount on fuel and parking for shared car rides.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Train tickets:&lt;/strong&gt; £310&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Petrol money / parking:&lt;/strong&gt; £35&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Railcard:&lt;/strong&gt; £30&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bus tickets:&lt;/strong&gt; £10&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Football (£285 spent)&lt;/h3&gt;
&lt;p&gt;At £4-6 a pop, the cost of weekly-to-bi-weekly football sessions add up over the year.
I don’t begrudge this at all though.
It’s invaluable for my mental and physical wellbeing and provides a consistent, regular social connection.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Subs for Monday &amp;amp; Thursday night:&lt;/strong&gt; £245&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clothing:&lt;/strong&gt; £40&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Home gym (£280, gifted)&lt;/h3&gt;
&lt;p&gt;Full disclosure; this was entirely funded by some gift money I received from my parents.
I bought the rack, bench &amp;amp; plates from someone local on Facebook Marketplace.
I topped up my equipment with some fractional plates from Mirafit.
Breakdown:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rack, plates &amp;amp; bench:&lt;/strong&gt; £245&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fractional plates:&lt;/strong&gt; £35&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Charity (£270; £55 from pots)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sustrans monthly donation:&lt;/strong&gt; £130&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Football tournament:&lt;/strong&gt; £55&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;London Marathon ballot donation:&lt;/strong&gt; £50&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Individual race sponsorship:&lt;/strong&gt; £30&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Christmas jumper day donation:&lt;/strong&gt; £5&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Other categories&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phone, TV &amp;amp; Internet:&lt;/strong&gt; £120&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Domains &amp;amp; Servers:&lt;/strong&gt; £105&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Snacks:&lt;/strong&gt; £95&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clothes:&lt;/strong&gt; £90&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Music streaming:&lt;/strong&gt; £80&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Activities:&lt;/strong&gt; £55&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Books:&lt;/strong&gt; £35&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud storage:&lt;/strong&gt; £30&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How it went&lt;/h2&gt;
&lt;p&gt;I spent a total of £4,835, with £3,585 coming form my monthly budget.
That&#39;s £60 over budget, but is leveraged by spreading the cost of some items over 3 months using Monzo Flex.&lt;/p&gt;
&lt;p&gt;An average of just over £400/month is sizeable, but a good chunk less than I was spending pre-COVID/pre-kids (the periods conveniently coincide for me).
Honestly I could&#39;ve spent more on almost every category, but I&#39;m content that I&#39;m in a period of my life where spending (somewhat) lavishly is not the focus.
I&#39;m lucky I can still do mostly all the things I want to do, even if some months I do have to compromise.&lt;/p&gt;
&lt;p&gt;As earnings increase and childcare costs reduce, the amount I can spend will grow.
I will continue to track it because it brings me a sense of calm knowing where it&#39;s all being spent.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2024 Goals</title>
    <link href="https://samdking.co.uk/blog/2024-goals/"/>
    <updated>2024-02-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2024-goals/</id>
    <content type="html">&lt;p&gt;It&#39;s been a belated setting of goals this year, as we near the end of February. 2024&#39;s goals are not dissimilar to last year&#39;s in all honesty, and I&#39;m OK with that. Goals are an evolution that don&#39;t start and end within a calendar year. So after a relatively successful 2023 on the goal-front, let&#39;s get at it in 2024.
&lt;/p&gt;&lt;h2&gt;Regular strength work&lt;/h2&gt;
&lt;p&gt;I’ve had an on/off relationship with strength training since building my garage gym and &lt;a href=&quot;https://samdking.co.uk/blog/my-first-3-months-5x5-workout-as-a-runner/&quot;&gt;starting the 5x5 workout&lt;/a&gt; in the Autumn of 2023.
This feels like it&#39;s omewhat stabilised recently, and I’d like to build this into a regular routine in 2024.&lt;/p&gt;
&lt;p&gt;This may be a continuation of the 5x5 workout, or something lighter and more varied.
The core goal (pardon the pun) is to build strength and muscle, reduce my running injury risk and generally be more mobile.&lt;/p&gt;
&lt;p&gt;With this, I’d like to spec out my garage a little more too.
A bit of tidying, some soft flooring and some more varied equipment would go down a treat.&lt;/p&gt;
&lt;h2&gt;Run faster and further&lt;/h2&gt;
&lt;p&gt;2023 was a successful year on the running front.
I hit new volume records and ran PBs in most of the major distances.
However the year ended as this year started: with injury.
As I build my fitness back up, hopefully with a stronger, more resilliant body, I am targeting more PBs and more distance in 2024.&lt;/p&gt;
&lt;p&gt;I set an ambitious annual Strava distance goal of 2,500km, and would love to finally take a stab at a sub-40 10k and a sub-90 half marathon.
A sub-19 5k would be a bonus.&lt;/p&gt;
&lt;p&gt;This was to be the year I got back into marathoning, however due to injury I sadly had to defer my Manchester place to 2025.
This likely rules out a marathon attempt in 2024, but you never know.&lt;/p&gt;
&lt;h2&gt;Embrace cross-training&lt;/h2&gt;
&lt;p&gt;It’s not good for your body to run 12 months of the year without periods of lower volume and intensity.
I’d like to embrace this idea in the summer months by introducing more cycling and swimming into my schedule, and back off my running.
This will provide my body with adequate rest and opportunity for adaptation, as well as introducing some variety into my life.&lt;/p&gt;
&lt;h2&gt;Make some side money&lt;/h2&gt;
&lt;p&gt;I had a goal in 2023 to start a side business.
I did not accomplish this.
So this year I’m setting myself a less lofty goal: make some side money.
How is less important at this stage, but it must be supplemental money to my main salary.
Bonus points if it’s regular.&lt;/p&gt;
&lt;h2&gt;Build on my site&lt;/h2&gt;
&lt;p&gt;2022 was a big year for this site.
I had momentum and functionality was added swiftly and enthusiastically.
2023 was not a good year for this site.
My motivation stagnated and I failed to add anything of any significance.&lt;/p&gt;
&lt;p&gt;I want to change that this year.
Helpfully, my list of features in my &lt;a href=&quot;https://samdking.co.uk/blog/2023-goals/&quot;&gt;2023 goals post&lt;/a&gt; is still relevant today, although this will likely evolve over a year of tinkering.&lt;/p&gt;
&lt;h2&gt;Read more&lt;/h2&gt;
&lt;p&gt;This goal is almost a cliche at this point, and although I’ve been gradually stepping up my book totals year-on-year, I want to commit to this habit properly.
So in 2024, I’d like to read at least 1 fiction book a month.
Around that, I will continue to supplement with non-fiction by working through my ongoing &lt;a href=&quot;https://samdking.co.uk/blog/2022-reading-list/&quot;&gt;reading list&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Foster my kids physical exploration&lt;/h2&gt;
&lt;p&gt;My son learned to ride a bike last year.
He loves going out on it, and I love taking him.
My younger daughter wants to keep up on her scooter but can’t, and I think she too will be ready for a bike of some sort this year.
I want to foster this joy of cycling in them both.&lt;/p&gt;
&lt;p&gt;I’d like to explore other forms of movement with them too.
Be it football, gymnastics, skating, or anything else that takes their fancy.
Regular physical activity is core to my beliefs and I want to build this in them both from a young age.&lt;/p&gt;
&lt;h2&gt;Make a plan for project cargo bike&lt;/h2&gt;
&lt;p&gt;I’d love a cargo bike to get around town, but they’re prohibitively out of my price range at the moment.
I want to change that and put a plan or saving goal in place this year to make this a reality in the near future.&lt;/p&gt;
&lt;h2&gt;Take more regular mental health relationship days&lt;/h2&gt;
&lt;p&gt;My wife Charlotte and I organised a few alone days while the kids were at nursery.
They were great.
They have to involve getting out and about, even if it’s just to sit and read and drink good coffee.
They were rejuvenating for us as a couple and for our individual mental heath.
A chance to catch up and reflect without the hussle of our kids&#39; needs.
I’d like to continue this practice, in every other month in 2024.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Write stuff down</title>
    <link href="https://samdking.co.uk/blog/write-stuff-down/"/>
    <updated>2024-02-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/write-stuff-down/</id>
    <content type="html">&lt;p&gt;As I approach my fourth year of journalling, and in my third year of consistently blogging again, I had a realisation. You cannot write too much stuff down.
&lt;/p&gt;&lt;p&gt;Your mind, or your short term memory, has a misjudged ability to think it won’t forget things.
Whereas your long term memory has the wonderful ability to do just that.
I touched on this point when talking about how &lt;a href=&quot;https://samdking.co.uk/blog/todos-run-your-life/&quot;&gt;to-dos ru&lt;s&gt;i&lt;/s&gt;n your life&lt;/a&gt;: your brain sheds things you don’t need to remember, and prioritises those it does.&lt;/p&gt;
&lt;h2&gt;Knowledge preservation&lt;/h2&gt;
&lt;p&gt;As I look back back over old journal entries, I often bemoan my past self for being too vague.
“Work was hard today, this project is coming together but is very taxing” would seem a reasonable and accurate observation to present-me at the time of writing.
But it’s shrouded with opaque context.
To 2-years-in-the-future me, I can learn very little from that.
What project was I working on 2 years ago?
Why was it hard?&lt;/p&gt;
&lt;p&gt;Present-me is never disappointed when past-me gave too much detail.
Obvious and insignificant details of what’s in the mind at the time can be golden nuggets to both future you and other people, when presented publicly.
That’s the beauty of blogs.
Do you ever refer back to your own how-to blog posts when you’ve forgotten how to do something in the present?
I know I do.&lt;/p&gt;
&lt;p&gt;Things that seem plainly obvious and unforgettable today can quickly fade into obscurity with time.
Write it down while it&#39;s fresh, and your understanding of that subject will be preserved for whenever you need it again.&lt;/p&gt;
&lt;p&gt;Document everything at work. A Standard Operating Procedure (SOP) is a step-by-step, repeatable process for any routine task.
Documenting SOPs can feel pointless and boring at the time, but it pays off in the long run.
Repeating the same monotonous task for the 5th time you thought wasn’t worth documenting first time round can be soul-destroying.
SOPs provide consistency and increase confidence and agency when performing tasks.&lt;/p&gt;
&lt;p&gt;If you can spare some time in the present to potentially help future-you, your colleagues, and your spouse, it’s a worthwhile investment.&lt;/p&gt;
&lt;h2&gt;Boost your nostalgia&lt;/h2&gt;
&lt;p&gt;As useful as preserving knowledge and context in the moment is, it’s the sentimental things that writing stuff down truly excels at.
Personal growth.
Mental health.
Relationships.
Family.&lt;/p&gt;
&lt;p&gt;If you’re anything like me, you love a dose of nostalgia.
Hazy memories of “golden years” (OK I’m not that old).
But nostalgia is characteristically often light on the detail.
Journalling is a wonderful antidote for the degradation of time and the lossy nature of memories.&lt;/p&gt;
&lt;p&gt;So be descriptive.
Write down your emotions.
You’ll cherish it in years to come when you’re recounting memories of your children when they were young, and you’re able to draw on first-hand accounts of their development.&lt;/p&gt;
&lt;h2&gt;Learn through introspectection&lt;/h2&gt;
&lt;p&gt;Writing has the clear benefit of being a useful medium for sharing a thought after the fact.
But it can also be a powerful practice in the moment.&lt;/p&gt;
&lt;p&gt;It&#39;s a common adage that you don&#39;t really know something until you can explain it.
And to take that a step further; you don&#39;t really know something until you can write it down in a clear manner.&lt;/p&gt;
&lt;p&gt;Writing stuff down can help you collect your thoughts, offering a greater ability to introspect about something your mind might be mulling over.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2023 in review</title>
    <link href="https://samdking.co.uk/blog/2023-in-review/"/>
    <updated>2024-01-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2023-in-review/</id>
    <content type="html">&lt;p&gt;Another year, another year in review post! In many ways, this year has been a good one. Fit and healthy, a loving family, some personal goals hit. What more could you want?
&lt;/p&gt;&lt;p&gt;I’ve continued my journalling habit, the data of which forms the content for a lot of this site. Blogging has been consistent throughout the year, I’ve levelled up my running again, but overall I’d have to say it’s been a fairly routine and somewhat uneventful year. It very much feels like my wife and I are in the &amp;quot;growing children&amp;quot; phase of our life - consistent &amp;amp; demanding, with the occassional treat.&lt;/p&gt;
&lt;h2&gt;Personal life&lt;/h2&gt;
&lt;p&gt;Somewhat characteristically, no big changes again this year. My kids ended the year aged 4 and 2. The back end of the year brought about the topic of schools for our eldest; very much the next chapter of our lives it feels. Learning how to ride his first bike, speech coming along, and a joint baptism were some of the highlights of the year for our children.&lt;/p&gt;
&lt;p&gt;Despite us both working, a combined 8 days a week, it’s been another tighter year financially than I would’ve liked. The ongoing money sink that is home ownership continues to spring surprises, and childcare costs continue to dominate. In the distance, 2025 offers some reprieve, but I don’t like to get too ahead of myself. I’m thankful every day that we are comfortable and not in any trouble financially.&lt;/p&gt;
&lt;p&gt;It was a fairly busy year around the house; major expenses included a roof resealing in January, ensuite maintenance in February, front yard clean in July &amp;amp; new kitchen worktops in December.&lt;/p&gt;
&lt;p&gt;Trips were even more scarce than the previous year, but included Bedfordshire Center Parcs in May &amp;amp; a beach day in West Wittering in September.&lt;/p&gt;
&lt;p&gt;I attended 8 football matches, all at Stamford Bridge, equalling 2022&#39;s total.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “relationships” &lt;strong&gt;140&lt;/strong&gt; times journalling in 2023, up considerably from 88 in 2022. I used the “house” tag &lt;strong&gt;65&lt;/strong&gt; times (up from 48 in 2022), and “money” &lt;strong&gt;23&lt;/strong&gt; times (up from 18).
&lt;/aside&gt;
&lt;h2&gt;Work&lt;/h2&gt;
&lt;p&gt;In 2023 at Arena, we acquired Patch Plants and much of the year has been working on integrating their company with ours. This has posed some fun challenges and has been a good opportunity to meet new people with different ways of working.  We also launched a subtle rebranding project to reposition ourselves in the market.&lt;/p&gt;
&lt;p&gt;We took on a junior dev in the second quarter of the year. This was motivated by an interest I had in doing some mentoring to develop my skills in this area (and hopefully impart some wisdom). We hired Claire in May and for the remainder of 2023, I spent a lot of time 1-on-1 introducing Claire to our systems and teaching some core concepts of programming. This has been a whole new challenge for me, having not had a junior under my supervision since 2016.&lt;/p&gt;
&lt;p&gt;Personally, I’ve lead some key projects this year including an algorithm to turn Patch Plant’s labour-intensive, manual packaging picking process into a largely automated one. I’ve also introduced several optimisations to improve our systems over peak periods of traffic.&lt;/p&gt;
&lt;p&gt;I still work solely from home, but had a brief visit to the warehouse to catch up with the team in the Spring, prior to Mother&#39;s Day.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I talked about work &lt;strong&gt;152&lt;/strong&gt; times in my journal in 2023, just once more than 2022’s total of 151.
&lt;/aside&gt;
&lt;h2&gt;Social&lt;/h2&gt;
&lt;p&gt;I tagged “social” in my journal 161 times in 2023, 44% of the year. Me being social for 44% of the year comes as a surprise to me, especially considering I work from home. It’s also a big increase compared to last year’s total of 125.&lt;/p&gt;
&lt;p&gt;The year’s total social events broke down as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;31&lt;/strong&gt; events in homes (not just ours)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;23&lt;/strong&gt; sport meet-ups (running mostly, not including regular Monday night football)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;18&lt;/strong&gt; at pubs, cafes or restaurants&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;13&lt;/strong&gt; organised events (football matches, races)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8&lt;/strong&gt; outdoors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4&lt;/strong&gt; kids play&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1&lt;/strong&gt; wedding&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you’re interested in finding out &lt;a href=&quot;https://samdking.co.uk/blog/capture-your-social-circle/&quot;&gt;how I keep track of social events in my life&lt;/a&gt;, I blogged about it recently.&lt;/p&gt;
&lt;h2&gt;Fitness&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2023-fitness.png&quot; alt=&quot;Bar graph showing run, walk and other distance in km in 2023&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2023 was a big year for my fitness. I had planned to scale back the running, after over 1,500km ran in 2022. As it happened, I went in the opposite direction, running a total of 2,224km in 2023. The increase in volume was to the detriment of bouldering, cycling and swimming; all 3 of which saw little to no activity over the year.&lt;/p&gt;
&lt;p&gt;One day in February I spontaneously took up the offer of joining another casual football group playing on Thursday nights. It wasn&#39;t the smartest decision; I love playing football but with my running schedule, I knew once a week was already plenty for me to avoid injury. Whilst I’ve been by no means regular, I have kept up the odd attendance where there’s been availability this year. And it’s been a fun, friendly social game that offers something a bit different to my regular Monday game.&lt;/p&gt;
&lt;p&gt;In my regular Monday game, I played 43 times in 2023, once more than in 2022.&lt;/p&gt;
&lt;p&gt;I set a somewhat arbitrary goal at the beginning of the year to walk 10,000 steps a day every day in 2023. I hit this target in all but 10 days, and all those days were sick days spent mostly in bed. Having this goal, coupled with my increased running volume, meant I ended up averaging over 15,000 steps a day for the year.&lt;/p&gt;
&lt;p&gt;My first race of the year was the Mid-Sussex Marathon weekend - 3 races in 3 towns across 3 days, totalling 26.2 miles. I wasn’t ready for a full Marathon yet, so this seemed like a good compromise and an exciting challenge. I ended up almost missing it though, as I got a stomach bug the Wednesday before the first race on Saturday. Somehow, I managed to perk up enough to turn up on the start line in East Grinstead on 29th April, to race one of the muddiest courses I will probably ever run.&lt;/p&gt;
&lt;p&gt;Heavy rainfall had turned the first 10-mile race into a bit of a bog. I also managed to fall onto a barbed wire fence in the first half, cutting my finger and painting my hand a muddy crimson colour for the rest of the race. I got through it, finishing in 17th place in a time of 1:21:13. The following day was a drier, relatively flatter course in Haywards Heath. A more competitive race, I finished over 8 minutes quicker (1:12:26) but further back in 62nd place.&lt;/p&gt;
&lt;p&gt;The final race on Bank Holiday Monday was in my town, Burgess Hill. Heavy legs and an undulating cross country course saw me run a 46:32, a long way shy of my 10k PB, in 20th position. I was thrilled to finish the 3-race weekend with some very challenging runs under my belt and an overall position of 14/179 runners.&lt;/p&gt;
&lt;figure&gt;
    &lt;div class=&quot;grid grid-cols-3 gap-1&quot;&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/midsussexmarathon-eg.jpg&quot; class=&quot;my-0 self-center&quot; alt=&quot;Me at the finish line with a finisher&#39;s medal after completing the East Grinstead 10 mile race&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/midsussexmarathon-hh.jpg&quot; class=&quot;my-0 self-center&quot; alt=&quot;Me at the finish line with a finisher&#39;s medal after completing the Haywards Heath 10 mile race&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/midsussexmarathon-bh.jpg&quot; class=&quot;my-0 self-center&quot; alt=&quot;Me at the finish line with a finisher&#39;s medal after completing the Burgess Hill 10k race&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Left-to-right: East Grinstead 10-mile, Haywards Heath 10-mile, Burgess Hill 10k races
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;A month later, I ran Worthing 10k in an attempt to beat my PB set last year in Brighton 10k. I ran a respectable 41:59, a 50 second personal best!&lt;/p&gt;
&lt;p&gt;A few weeks after that, I ran a 5k PB (in a Parkrun), finally toppling my long term goal of a sub-20 minute 5k. I ran Hove Promenade Parkrun in 19:45. 5 weeks later I beat it again at Preston Park, running 19:43 in my 61st Parkrun.&lt;/p&gt;
&lt;p&gt;It was around the end of June I started a half marathon training plan with Garmin. For the first time ever, this had me consistently running 4 times a week. This took my average weekly volume up from around 35km to 50km. Over the summer this remained consistent, peaking at Barns Green Half Marathon, a race I had set my sights on for a big PB.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/blog/thrill-of-the-race/&quot;&gt;I ran a great race&lt;/a&gt;, crossing the line in 1:32:00 on the dot. I shattered my previous PB set in February 2022 in Brighton by over 10 minutes. This was a clear indicator that my fitness was at an all time high. The Saturday following the race, I ran a huge course personal best at Clair Parkrun, a few seconds shy of breaking 20 minutes (on a tough course with over 100m of elevation!)&lt;/p&gt;
&lt;p&gt;As we moved into an unseasonably warm Autumn, I increased my mileage further, averaging 50-60km weeks. I targeted Brighton 10k in November as an opportunity to really prove my fitness and aim for the coveted sub-40 minute 10k. Sadly, it wasn’t to be. COVID stuck me down the week of the race and I was in absolutely no shape whatsoever to run it.&lt;/p&gt;
&lt;p&gt;That, and an injury I picked up towards the end of October, ended up setting the tone for the rest of the year. My heart rate and general fitness took a big hit as I tried to get back to the schedule I’d grown used to. Eventually, in mid December I regretfully wrote off the rest of the year, hoping for some recovery and rehabilitation to be fresh for 2024.&lt;/p&gt;
&lt;p&gt;The other big fitness milestone this year was starting my 5x5 workout journey. My desire to bulk up a bit and strengthen my body to improve my running and football influenced this goal. It took until October to probably get started, but save for a few hiccups along the way, I’ve really enjoyed the regular strength sessions in my makeshift garage gym in the last quarter of the year. I spoke in detail about &lt;a href=&quot;https://samdking.co.uk/blog/my-first-3-months-5x5-workout-as-a-runner/&quot;&gt;my experience starting the 5x5&lt;/a&gt; in another blog post.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “fitness” &lt;strong&gt;270&lt;/strong&gt; times when journalling in 2023; a significant increase of &lt;strong&gt;43%&lt;/strong&gt; from 178 in 2022.
&lt;/aside&gt;
&lt;h2&gt;Health&lt;/h2&gt;
&lt;p&gt;Sadly I wasn’t able to remain injury-free in 2023. An increase in load following the introduction of the 5x5 workout into my running routine lead to a hamstring tendinopathy injury in October playing a Thursday night football match. Not diagnosing this properly until 2024 meant I wasn’t able to shake it. This lead to a decrease in enjoyment of my running towards the end of the year, not to mention performance. I also suffered some lower back pain after the first few weeks of lifting weights.&lt;/p&gt;
&lt;p&gt;I donated blood at the end of October which also suitably rattled my running for a few weeks. I hadn’t given blood in a number of years and didn’t think much of signing up to do it again. Unfortunately it wiped out my short-term fitness, leaving me completely breathless and several minutes off my typical 5k pace. I took some iron supplements in an attempt to bolster my levels which seemed to work quite well, but it’s hard to know how effective they were really. I will think twice before giving blood again, or at least plan it better around my running goals for the year.&lt;/p&gt;
&lt;p&gt;Having largely gotten over giving blood, I got hit with COVID in November, which left me bedridden for 3 days. I got the full package; lethargy, migraines, brain fog, a bad cough. The cough took months to finally subside, and I’m still suffering the residual effects on my heart rate in my running. After a nose dive couple of weeks for my fitness, and my injury, I metaphorically hobbled across the line in 2023.&lt;/p&gt;
&lt;p&gt;Having become such a big part of my life, not being able to run to my full potential took a hit on my mental health. Having seen a fairly continual upward trend through 2023, I found the setback hard to take in the backend of the year.&lt;/p&gt;
&lt;p&gt;In total, I was properly ill for 10 days in 2023, 1 better than 2022. This included 2 sickness bugs and the aforementioned bout of COVID.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “health” &lt;strong&gt;170&lt;/strong&gt; times journalling in 2023, an increase of &lt;strong&gt;12%&lt;/strong&gt; on 2022&#39;s 152.
&lt;/aside&gt;
&lt;h2&gt;Podcasts&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2023-podcasts.png&quot; alt=&quot;Bar graph showing total podcast listen time per week in 2023&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Podcast listens took another big leap from the previous year, from 364 episodes in 2022 to 588 in 2023. I had to increase the Y axis of the graph on &lt;a href=&quot;https://samdking.co.uk/podcasts/2023/&quot;&gt;my podcasts page&lt;/a&gt; midway through the year! In week 43 of the year I listened to over 17 hours of podcasts (at 1.3x speed, I should point out).&lt;/p&gt;
&lt;p&gt;A big increase in walking (28%) and running (42%) volume paved the way for a lot of podcast indulgence. My well-travelled Aeropex headphones bit the dust in November after some rugged usage throughout the year. I replaced them like-for-like with the new Shokz OpenRun.&lt;/p&gt;
&lt;h3&gt;My top 5 shows by total listen time&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;➖ &lt;strong&gt;The Diary of a CEO with Steven Bartlett&lt;/strong&gt; (3 days, 20 hours) - holding firm at number one again. The calibre of guests just keeps getting better as their subscriber count grows. Subject matter that captivates.&lt;/li&gt;
&lt;li&gt;➖ &lt;strong&gt;Deep Dive with Ali Abdaal&lt;/strong&gt; (2 days, 15 hours) - second again. Not as engaging a podcaster as Steven, but some solid “deep dives” into some fascinating topics. Not as insta-click as this podcast once was for me, but usually a worthwhile listen.&lt;/li&gt;
&lt;li&gt;⬆️ &lt;strong&gt;Deep Questions with Cal Newport&lt;/strong&gt; (2 days, 13 hours) - moving up, and just behind Ali. These can be a little dry, and can turn into white noise during my longer runs or more philosophical walks. But I love the subject matter and always learn something from Cal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🆕 The Bootstrapped Founder&lt;/strong&gt; (2 days, 4 hours) - a new entry in the top 5. Arvid is consistent as ever and the quality is always on point with his episodes. A great mix of tech subjects and more human topics around mental health.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🆕 I will teach you to be rich&lt;/strong&gt; (1 day, 13 hours) - another new entry. Ramit is a bit marmite, he’s very exuberant in his delivery and you’ll either vibe with that or you’ll be turned off by it. This scratches my personal finance and budgeting itch but also offers some key learnings about relationships and life.&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I listened to &lt;strong&gt;38 unique&lt;/strong&gt; podcast shows this year, up from 30 in 2022. That included &lt;strong&gt;17 new&lt;/strong&gt; shows, 1 fewer than last year.
&lt;/aside&gt;
&lt;h3&gt;New podcasts discovered this year:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Remote Ruby&lt;/strong&gt; - A light-hearted Ruby podcast that gets me my fill of “what’s hot” in Ruby land. Can get a bit overly conversational, but a good mix of guests keep it entertaining.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Streets Ahead&lt;/strong&gt; - I’m passionate about active travel and reducing car usage in populated areas, and this podcast has been a brilliant listen in keeping me abreast of the goings on in this sphere. Well-informed, personable hosts keep this oft-contentious topic easily digestable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rework&lt;/strong&gt; - by 32 signals (The Basecamp people). A wealth of business and technological knowledge in a really concise and well produced package. Short and sweet, with just the right amount of shoutyness.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Runner’s World&lt;/strong&gt; - It’s taken me a while to add a running-related podcast to my rotation. This isn’t hugely exciting, but is engaging and informative in its topics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hackers Incorporated&lt;/strong&gt; - Similar to Rework. 2 techy business owners chatting shop about their tech companies and their lessons learned along the way. I’m a big fan of Adam Wathan’s journey so this resonates. Frustratingly inconsistent posting pattern though.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;TV&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2023-tv.png&quot; alt=&quot;Bar graph showing TV watch data for shows and live football in 2023&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Slightly more TV watched than last year (85 hours to 2022’s 80), with a trend towards the first quarter of the year. Live football had a sizeable drop from 96 hours in 2022 to 64 hours in 2023 (-33%). Owed in some part to Chelsea’s catastrophic performance in the 2023 calendar year. Early exits in the cups in 22/23 and a drop in their matches selected for TV, coupled with my dwindling interest in watching them towards the end, meant I only watched 36 total live football matches in 2023 (down from 53 in 2022).&lt;/p&gt;
&lt;h3&gt;TV show highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Happy Valley (seasons 1-3)&lt;/strong&gt; - This had my wife and I gripped. Harrowing, but endearingly British. The characters were brilliantly acted and the storylines had us on the edge of our seats each season.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Bear (seasons 1-2) -&lt;/strong&gt; A showstopper of a show. Thoroughly enjoyed these two seasons and loved the progression of the restaurant and the characters within it. Funny, raw, but incredible scripts and acting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reacher (seasons 1-2)&lt;/strong&gt; - A guilty pleasure of sorts. Low-grade entertainment, but entertaining nonetheless. I haven’t read the books, but this provided some heart-racing evening watching for us both.&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I watched TV on &lt;strong&gt;123&lt;/strong&gt; days of the year in 2023.
&lt;/aside&gt;
&lt;h2&gt;Films &amp;amp; books&lt;/h2&gt;
&lt;p&gt;I watched 28 films in 2023, up from 20 in 2022. At least 2 a month is a reasonable cadence. I’d still like to watch more. Differing in our tastes has meant my wife and I watch fewer films together these days. I gave an average rating of 3.68, down from 3.8 in 2022.&lt;/p&gt;
&lt;h3&gt;Film highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fair Play, 2023&lt;/li&gt;
&lt;li&gt;Oppenheimer, 2023&lt;/li&gt;
&lt;li&gt;How to Blow Up a Pipeline, 2022&lt;/li&gt;
&lt;li&gt;The Whale, 2022&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I read 11 books in 2023, 1 more than 2022. I started the year in earnest, with a few relatively quick reads to get me going. I faltered as the year went on, losing my reading habit and finding finishing books becoming a chore again. A feeling I hate.&lt;/p&gt;
&lt;p&gt;I need to get better at abandoning books I’m not enjoying. I could also do a better job of vetting books before I start them, perhaps utilising a service like Blinkist or Short Form. I also &lt;em&gt;must read more fiction&lt;/em&gt;. I always enjoy reading fiction, and I know this, but a part of me struggles to see the benefit beyond simple entertainment. But simple entertainment is perfectly valid, and can prove a wonderful escape.&lt;/p&gt;
&lt;p&gt;This year I started tagging the book I read that day in my journal entries, to better track how often I read.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I read on &lt;strong&gt;135&lt;/strong&gt; days of the year in 2023.
&lt;/aside&gt;
&lt;h2&gt;Blogging&lt;/h2&gt;
&lt;p&gt;I was really pleased with my consistency with blogging in 2023. It wasn’t really a target, but more something that just came naturally to me throughout the year. I posted 24 times in 2023. A real mixture of subjects and lengths of post.&lt;/p&gt;
&lt;p&gt;I also copied over the majority of my posts from my 2018-20 blog on samking.me. I’ve let this domain expire now as traffic was minimal. Samdking.co.uk already feels more complete as my primary place on the web, featuring all my writing and stats.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I spent &lt;strong&gt;49&lt;/strong&gt; days blogging in 2023. Just 6 more than in 2022.
&lt;/aside&gt;
&lt;h2&gt;Side projects&lt;/h2&gt;
&lt;p&gt;Probably my biggest source of disappointment this year. After a hugely productive 2022 getting this website off the ground and continually tinkering, progress has largely been stagnant in 2023.&lt;/p&gt;
&lt;p&gt;In January I managed to upgrade my server’s PHP version on 5aside.samueldking.co.uk. Not as straight forward as I’d envisaged!&lt;/p&gt;
&lt;p&gt;In February I added a small amount of functionality to my books page. This is still in need of some visual elements, but I added the time taken to read the book which I considered quite a useful metric for comparison. I also added cycling, football &amp;amp; swim (lol) data to my fitness page, alongside walking and running distance.&lt;/p&gt;
&lt;p&gt;I dabbled with Descript and screencasting briefly in April. I did wonder if this is something I might get into, but I sorta lost interest when I realised the amount of work that goes into a single edited video!&lt;/p&gt;
&lt;p&gt;In the middle of the year I had an idea for a new side project: a small app for tracking attendance of private groups; something that I could make use of for Monday night football. Sadly I lost motivation and it never materialised beyond a Trello board.&lt;/p&gt;
&lt;p&gt;In July I very briefly explored the possibility of building Connect IQ apps using &lt;a href=&quot;https://developer.garmin.com/connect-iq/monkey-c/&quot;&gt;Monkey C&lt;/a&gt;. This was very much a flash in the pan!&lt;/p&gt;
&lt;p&gt;In October I again sketched out and wrote a small amount of code for an app idea similar to the group attendance one early in the year. A “player of the match” app which allows those who have played in a match to vote on who they thought was the best player. This idea was born out of a slightly clunky implementation my Thursday football group put together using Whatsapp polls.&lt;/p&gt;
&lt;p&gt;I began coding this in a new Rails app and made some solid progress on this in November. Sadly I again lost motivation for this later in the new year. I do still think this is a good idea and may pick it up again in 2024.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I tagged “side projects” &lt;strong&gt;44&lt;/strong&gt; times in 2023, &lt;strong&gt;down a significant 55%&lt;/strong&gt; on 2022’s 98.
&lt;/aside&gt;
&lt;h2&gt;Sleep&lt;/h2&gt;
&lt;p&gt;I had a big plan in 2023 to shake-up my sleep, after a particularly bad end to 2022. I blogged in detail about &lt;a href=&quot;https://samdking.co.uk/blog/how-i-slept-in-2023/&quot;&gt;how this went&lt;/a&gt; at the end of the year. In summary: tracking it has been useful and has helped curb some bad habits, but it has felt at times like I’m swimming against the current of how I’m wired. There’s certainly room to improve further in 2024.&lt;/p&gt;
&lt;aside class=&quot;bright-aside&quot;&gt;
  I talked about sleep a lot in my journal this year, tagging it &lt;strong&gt;85&lt;/strong&gt; times, up &lt;strong&gt;74%&lt;/strong&gt; from 49 in 2022.
&lt;/aside&gt;
&lt;h2&gt;What goals did I not meet in 2023?&lt;/h2&gt;
&lt;p&gt;Original post: &lt;a href=&quot;https://samdking.co.uk/blog/2023-goals/&quot;&gt;https://samdking.co.uk/blog/2023-goals/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Halfway through the year I blogged &lt;a href=&quot;https://samdking.co.uk/blog/2023-goals-check-in/&quot;&gt;my progress on my goals&lt;/a&gt;. I’ve referenced a lot of these above, but there’s a few I haven’t:&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Start a side business&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sadly a goal that I’ve not made any progress on. I’ve had lots of sharp jolts of inspiration for ideas, but haven’t put anything into action this year. I do however have a contact who could possibly provide some insight in this field. I’ll be pursuing this in 2024.&lt;/p&gt;
&lt;p&gt;I’m torn between Cal Newport’s advice to avoid the “Follow your passion” mantra when it comes to money-making. Whilst on the surface I love the idea of an on-the-side lifestyle business that’s directly related to an interest of mine, in the book &lt;a href=&quot;https://www.amazon.co.uk/Good-They-Cant-Ignore-You/dp/1455509124&quot;&gt;So good they can&#39;t ignore you&lt;/a&gt;, Cal talks about the virtues of why “skills trump passion in the quest for work you love”. With that in mind, I’ve spent a lot the year pondering how I can utilise the skills I have now to provide an extra source of income. Without burning out, of course.&lt;/p&gt;
&lt;h3&gt;This site&lt;/h3&gt;
&lt;p&gt;I had plans to develop my books, weekly feed &amp;amp; fitness pages, and add more opinions to my data. But alas, none of it came to fruition in 2023. There&#39;s lots of exciting opportunities for more data visualisations and I&#39;m keen to start the motor running on this again in 2024.&lt;/p&gt;
&lt;h2&gt;Goals for 2024&lt;/h2&gt;
&lt;p&gt;As with last year’s review post, and in the interest of relative brevity, this subject should be its own post.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>My first 3 months doing the 5x5 workout as a runner</title>
    <link href="https://samdking.co.uk/blog/my-first-3-months-5x5-workout-as-a-runner/"/>
    <updated>2024-01-07T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-first-3-months-5x5-workout-as-a-runner/</id>
    <content type="html">&lt;p&gt;My &lt;a href=&quot;/blog/2023-goals/&quot;&gt;primary goal of 2023&lt;/a&gt; was to start the &lt;a href=&quot;https://stronglifts.com/5x5/&quot;&gt;5x5 workout program&lt;/a&gt;: 5 exercises total, 3 workouts a week, consisting of 3 out of the 5 exercises (alternating with each workout).

I had aspirations to create a modest home gym setup in my garage since moving into my current house at the end of 2020.

In the autumn of 2023, I finally decided on some gym equipment and eagerly began my 5x5 journey.
&lt;/p&gt;&lt;h2&gt;Why the 5x5 workout?&lt;/h2&gt;
&lt;p&gt;I’m very new to weight lifting. It’s not something I’ve ever really done, and I wanted a simple set of exercises I could do consistently without much assistance. The 5x5 workout and its excellent accompanying online resources, seemed to fit the bill perfectly.&lt;/p&gt;
&lt;p&gt;Notably, only 3 workouts a week seemed like something I could slot into my schedule. The 5x5 workout also has a clear schedule and progression plan. It’s simple and easy to follow.&lt;/p&gt;
&lt;p&gt;Providing you get the proper equipment, it’s also a set of exercises you can do on your own without the need for a spotter. So perfect for a home gym.&lt;/p&gt;
&lt;h2&gt;Starting out&lt;/h2&gt;
&lt;p&gt;I’ve hit my 3 workouts a week in all but 1 week due to illness. In a good week, those workouts are done on Monday, Wednesday and Friday, leaving a full weekend of recovery. But often the Friday session will be missed in favour of a Saturday.&lt;/p&gt;
&lt;p&gt;It started out weight low weights, as per the advice. Due to my inexperience in weight training I started at the baseline recommendation of the following weights:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Exercise&lt;/th&gt;
&lt;th&gt;Starting weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Squat&lt;/td&gt;
&lt;td&gt;20kg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overhead Press&lt;/td&gt;
&lt;td&gt;20kg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bench Press&lt;/td&gt;
&lt;td&gt;20kg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deadlift&lt;/td&gt;
&lt;td&gt;40kg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Barbell Row&lt;/td&gt;
&lt;td&gt;30kg&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Starting small gives you chance to get used to the training load and work on your form; something that’s very important to get right when you get to the heavy weights.&lt;/p&gt;
&lt;p&gt;Initially, workouts lasted up to 20 minutes. Very easy to fit into my schedule and a nice break from work. The variation from 1 workout to the next kept things fresh.&lt;/p&gt;
&lt;h2&gt;Equipment&lt;/h2&gt;
&lt;p&gt;This is what I got hung up on and delayed me getting started with the 5x5 workout until later in the year. The guide states clearly you should do the workout with a power rack. This is a hefty bit of kit that is typically expensive and bulky. The kind of thing you&#39;ll find in pretty much all gyms. For a home gym though, finding the room for it can be tricky.&lt;/p&gt;
&lt;p&gt;I couldn’t decide how much I wanted to spend on this equipment and ended up dragging my heels for a while. Eventually, I decided to get my weights sorted first. I found someone locally on Facebook Marketplace selling some plates, a bar and a squat rack for a decent price. I figured I could sell the squat rack later for a power rack.&lt;/p&gt;
&lt;p&gt;3 months on, I’m still lifting with the squat rack. It’s not ideal, and involves mid-workout adjustments, but it’s fine for now. It doesn’t provide the ideal level of spotting protection, but with the weight I’m currently lifting, this hasn’t been a problem.&lt;/p&gt;
&lt;p&gt;So my recommendation would be, you don’t need everything right away. Get the basics - a bar and some plates and some sort of rack - and you can go from there. Ultimately if I continue long term with lifting weights, I&#39;ll probably upgrade to a half rack.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/gym-equipment.jpg&quot; class=&quot;w-full mx-auto rounded-sm mb-4 drop-shadow-xl&quot; alt=&quot;Messy home garage gym showing a squat rack holding up a barbell weight plates on either end; a bench in the background; and additional plates on the floor next to the rack&quot; /&gt;
  &lt;figcaption class=&quot;text-center text-sm italic&quot;&gt;My humble home gym setup, complete with an olympic barbell, various plates, squat rack &amp; a bench&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Injury&lt;/h2&gt;
&lt;p&gt;After two weeks, 6 sessions, of consistently increasing weight with each workout, I had my first injury. Now there’s a lot of useful information about injury prevention in the guide, but being too keen, I skipped it first time round.&lt;/p&gt;
&lt;p&gt;One weekend I developed some quite sore lower back pain. This ruled out any exercises that used my back - squat, deadlift, barbell row. I was able to carry on pain-free with the arm-predominant exercises though (benchpress and overhead press).&lt;/p&gt;
&lt;p&gt;After some research, I realised my form was likely the issue. Particularly with squatting, if you don’t brace your core and keep your spine straight, your lower back takes too much of the load as you squat down.&lt;/p&gt;
&lt;p&gt;I introduced the “&lt;a href=&quot;https://squatuniversity.com/2018/06/21/the-mcgill-big-3-for-core-stability/&quot;&gt;McGill Big 3&lt;/a&gt;” stretches into my routine which aims to strengthen your core. Doing this for a few weeks, and each time before starting my 5x5 workout for the day, improved my form considerably. Within 3 weeks of the initial injury, I was able to squat again without pain.&lt;/p&gt;
&lt;h2&gt;Form&lt;/h2&gt;
&lt;p&gt;Form is a big one. How you do the exercises. You can half-arse it and get away with it up to a point. But you’ll reach a time where you can’t increase the weight anymore, or you get injured (for me, the latter).&lt;/p&gt;
&lt;p&gt;Depending on how you best learn, you can either study online video tutorials for guidance on form, or you can get some advice in-person from a PT or physio. I didn’t go down this route but with hindsight, having someone able to correct your form in the moment would be invaluable and accelerate your progress.&lt;/p&gt;
&lt;h2&gt;Improvement&lt;/h2&gt;
&lt;p&gt;So what improvement have I seen since I started? Weight increase has been incremental and reasonably consistent, although I have increased at a slower rate than the workout lead me to believe I would. There&#39;s been a lot of sessions where I haven&#39;t completed all the reps so have kept the weight the same for the next workout.&lt;/p&gt;
&lt;p&gt;Since my lower back injury I&#39;ve also increased weight more slowly on the squats, to play it safe. 5x5 mandates a 2.5kg increase with each squat workout; that&#39;s 7.5kg of weight increase a week if you hit all your reps. I&#39;ve settled on a weight increase every other workout if I hit all my reps.&lt;/p&gt;
&lt;p&gt;I have noticed a tangible improvement in my practical strength, both in general lifting and playing football. It&#39;s rewarding to have genuine feedback like this when taking on a new challenge. Visually I&#39;ve got a small amount of increased muscle definition in my back and shoulders.&lt;/p&gt;
&lt;h2&gt;5x5 as a runner&lt;/h2&gt;
&lt;p&gt;Predominantly, I am a runner. I managed to go the whole of 2022 and half of 2023 without injury, so my schedule and load was working well for me. Whilst strength training is encouraged for runners, typically this focuses more on body weight exercises, not the kind of heavy weight involved in the 5x5 workout.&lt;/p&gt;
&lt;p&gt;In my opinion, the 5x5 workout is not optimal for runners. Whilst strengthening the leg muscles will help your running in the long term, in the short term the increased load on your legs and back from lifting heavy weights alongside your normal training increases your injury risk.&lt;/p&gt;
&lt;p&gt;Sadly this happened to me. In my first week of starting the 5x5 workout, after a particularly hard track session on the Wednesday, I felt my hamstring playing football the next day. It was tight for a few days but I was still able to run, albeit with reduced movement.&lt;/p&gt;
&lt;p&gt;I didn’t think too much of it. The pain lessened and I pretty much got back to my typical running schedule. However months later, I was still having discomfort in my upper hamstring/glute area. It was only recently I got this diagnosed as hamstring tendinopathy; a weakness in the tendon that joins the hamstring muscle to the sitting bone.&lt;/p&gt;
&lt;p&gt;Whilst this didn’t prevent me from doing the 5x5 workout, and wasn’t restricting me in every day life, it was and still is hampering my running. I have key races planned for 2024 and I need to seriously consider whether I should be focussing on training or rehabilitation.&lt;/p&gt;
&lt;h2&gt;Would I recommend it?&lt;/h2&gt;
&lt;p&gt;Yes I would. Weight routines can be intimidating to beginners. The 5x5 workout eliminates a lot of the confusion and hesitation around lifting weights. It provides a clear plan for improvement, with tonnes of information to help you when you inevitably hit a setback along the way.&lt;/p&gt;
&lt;p&gt;If you are a runner or any other type of athlete with a regular schedule of training already, approach with caution and get some advice before you begin. Stretch, ease into it, and get advice on form.&lt;/p&gt;
&lt;p&gt;If, like me, you’re treating weight training as a supplementary activity to your primary training, it’s not worth the risk of it derailing your primary goals through injury.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>How I slept in 2023</title>
    <link href="https://samdking.co.uk/blog/how-i-slept-in-2023/"/>
    <updated>2023-12-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/how-i-slept-in-2023/</id>
    <content type="html">&lt;p&gt;At the beginning of the year, I set myself a vague target: prioritise sleep. After a couple of early check-ins in &lt;a href=&quot;/blog/sleep-how-its-going/&quot;&gt;February&lt;/a&gt; and &lt;a href=&quot;/blog/sleep-war-wages-on/&quot;&gt;April&lt;/a&gt; on my blog, I gradually settled into my new nighttime routine. I stuck with my target of recording my bedtime, attempting with earnest to go to bed earlier.
&lt;/p&gt;&lt;p&gt;So how did it go? In a word: seasonal. It took me a while to get into the groove after forming fairly bad habits towards the end of 2022. However by March I was seeing some gradual improvement. Between April and October I was getting to bed, on average, by 11pm for the first time in a while.&lt;/p&gt;
&lt;p&gt;Hovering around 11pm was consistent for a lot of the year, until the weather started to turn and the nights drew in. November, following a bout of illness, began a steady decline of bedtime discipline, and I ended the year at an average bedtime of 11:12pm for the month of December (up until 26th December).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/sleep-graph.png&quot; alt=&quot;Sleep graph of 2023 showing average bedtime scores per month&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A brief reminder of the sleep score time brackets I decided on.
Times are rounded to the nearest 15 minutes:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Sleep Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;10:15pm&lt;/td&gt;
&lt;td&gt;1 &lt;span class=&quot;bg-[#D4E5EF] px-2 py-1 rounded&quot;&gt;Blue: Outstanding&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10:30 - 10:45pm&lt;/td&gt;
&lt;td&gt;2 &lt;span class=&quot;bg-[#DBEDDB] px-2 py-1 rounded&quot;&gt;Green: excellent&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11pm&lt;/td&gt;
&lt;td&gt;3 &lt;span class=&quot;bg-[#FDECC8] px-2 py-1 rounded&quot;&gt;Yellow: good&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:15 - 11:30pm&lt;/td&gt;
&lt;td&gt;4 &lt;span class=&quot;bg-[#FADEC9] px-2 py-1 rounded&quot;&gt;Orange: OK&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:45 - midnight&lt;/td&gt;
&lt;td&gt;5 &lt;span class=&quot;bg-[#FFE2DD] px-2 py-1 rounded&quot;&gt;Red: bad&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12:15 - 12:30&lt;/td&gt;
&lt;td&gt;6 &lt;span class=&quot;bg-[#EEE0DA] px-2 py-1 rounded&quot;&gt;Brown: danger zone&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;What I learned&lt;/h2&gt;
&lt;p&gt;Get yourself an accountability partner. For most people, that’s obviously their actual life partner. Make sure you sleep in the same bed. My wife has always been slightly earlier to bed than me, and this encourages me to stick to reasonable bedtimes. This all went to pot when I got COVID in mid-November, developed a bad cough, and slept in the spare room for a good 5 weeks.&lt;/p&gt;
&lt;p&gt;The removal of my bedrock, as it were, and having no guilt about staying up later, caused me to lapse into bad sleep habits.&lt;/p&gt;
&lt;p&gt;It’s a bit odd to say, but going to bed at the same time as your partner is a bonding experience. Getting up together is also a great way to tackle the day.&lt;/p&gt;
&lt;h2&gt;Check your phone habit&lt;/h2&gt;
&lt;p&gt;It’s been well documented that phone use late at night and sleep are not good bedfellows. Excessive phone use in the evening for me was a direct contributor to when I got to sleep. Planning a more constructive evening away from the phone, even if that means simply resting, is a recipe for good decisions, and good sleep.&lt;/p&gt;
&lt;p&gt;Being glued to your smart phone taxes your brain. It feels easy, that’s why you gravitate towards it after a long day, but you’re providing your brain with continual stimulation as you scroll. And the engaging nature of social media makes it very hard to peel yourself away. So take Cal Newport’s advice; when you’re at home, plug your phone in somewhere you’re not. Treat it like a landline. Use it if you need to, but force yourself to go to the phone, do what you need to do, then walk away again.&lt;/p&gt;
&lt;p&gt;Your phone is a wonderful device that can help you accomplish great things, but don’t use it as a crutch in the evening because you can’t be bothered to do anything else.&lt;/p&gt;
&lt;h2&gt;Get into a good book&lt;/h2&gt;
&lt;p&gt;When I chose intentionally to read a physical book in the evening, sleep was invariably easier to come by. (Good) decision making improved, and an evening reading a book never felt like an evening wasted. Sometimes it takes a while to get your head into the book, but be patient with it. There’s no better feeling then getting absorbed into a good book.&lt;/p&gt;
&lt;h2&gt;Going forward&lt;/h2&gt;
&lt;p&gt;So will I continue this experiment? Sometimes it feels like a pain to be beholden to a bedtime expectation. But most of the time, it directs my evening and helps guide me to make the right decisions. The admin is minimal, and I enjoy monitoring trends as much as the next stato.&lt;/p&gt;
&lt;p&gt;I’ve not had any true breakthroughs in 2023, but I do care more about my sleep time. Having young children means my wake-ups are pretty consistent (earlier but rarely later than the baseline). So sleep duration (and by extension, quality) is much more closely tied with my bedtime.&lt;/p&gt;
&lt;p&gt;Seasonality will always play a big part in being truly consistent. Cooler, darker climates somewhat unintuitively lead to later bedtimes for me. Adhering to a strict rule all year is never going to work for me.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Capture your social circle</title>
    <link href="https://samdking.co.uk/blog/capture-your-social-circle/"/>
    <updated>2023-11-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/capture-your-social-circle/</id>
    <content type="html">&lt;p&gt;I keep a social diary and a record of people in my life in Notion. This data goes back as far as January 2021. It is now almost December 2023, meaning I have almost 3 years of social data. A useful amount to start digging into some analysis.&lt;/p&gt;&lt;h2&gt;Some baseline stats&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Friends&lt;/strong&gt;: 38&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Family&lt;/strong&gt;: 12&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Family-in-law&lt;/strong&gt;: 19&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acquaintances&lt;/strong&gt;: 9&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partner&lt;/strong&gt;: 1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total people&lt;/strong&gt;: 79&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I consider someone an acquaintance if I&#39;ve spent time with them but don&#39;t really know them that well. Partners of friends, friends of friends, etc.&lt;/p&gt;
&lt;h2&gt;Recency&lt;/h2&gt;
&lt;p&gt;The gauge of a good relationship is how recently you’ve seen a person. Here is my breakdown:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time period last seen&lt;/th&gt;
&lt;th&gt;People&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Last 3 months&lt;/td&gt;
&lt;td&gt;36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last 6 months&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last year&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Not seen in over a year&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Of the 79 people in my life, I’ve seen 77% of them in the last year.
Of the 23% I haven&#39;t, the relationship breakdown is as follows:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Relationship&lt;/th&gt;
&lt;th&gt;People&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Family&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Friends&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acquaintances&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Family-in-law&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Family being 0 is important.
I’m pleased to say I’ve managed to see my whole family at least once in the last year.
Acquaintances are looser connections and not seeing some in over a year is to be expected.
Friends is disappointing, but understandable.
There will always be some friends you don’t get to see often, but for most, an annual meet-up feels like a necessity for keeping the friendship alive.&lt;/p&gt;
&lt;p&gt;In some cases, I’ve dropped the ball in maintaining these friendships; in others it’s perhaps time to acknowledge these people may be simply acquaintances in your life.&lt;/p&gt;
&lt;p&gt;Finally, family-in-law is totally reasonable for connections to be over a year apart.
Sometimes it’s just weddings, funerals and milestone Birthdays where you get to see these people.&lt;/p&gt;
&lt;h2&gt;Connections&lt;/h2&gt;
&lt;p&gt;Connections is a fun property I’ve been playing around with.
Connections are calculated using a Rollup in Notion.
For each person, it counts the number of unique people in the “Events” relation.
As an example, if I’ve seen a person 2 times, once 1-on-1, and another time in a group of 5 other people, that person would have 6 connections (technically 5, but they themselves are counted).&lt;/p&gt;
&lt;p&gt;Friends is the biggest area where high numbers of connections are possible.
My top connected people include my wife and 4 of my friends.
My wife shares 74 connections, followed by 50, 48 and 37 going down the list.
Those 4 people have social connections with almost half (and in some cases much more) of the other people in my life.&lt;/p&gt;
&lt;p&gt;In my opinion connections are important. Maintaining many disperate relationships is difficult to juggle. Friends knowing other friends in your life makes social engagements easier to plan and manage.&lt;/p&gt;
&lt;p&gt;Due to my wife’s large family, family-in-law takes up a large proportion of the other most well-connected people in my life, 7 of which share 37 connections.
6 of my family follow closely behind with 36 connections.&lt;/p&gt;
&lt;h2&gt;Why systematise it at all?&lt;/h2&gt;
&lt;p&gt;Putting and tracking people in a system can give people the ick.
It can feel odd to be this organised with something as spontaneous and unique as a relationship.
However, most people track their events in their calendar anyway.
This system simply takes that one step further; aggregating people as well as events.&lt;/p&gt;
&lt;p&gt;Having a distinct record for a person in your life in a system is a great place to keep track of things about that person you want to remember.
Key dates in that person’s life, achievements, important things you’ve previously discussed, targets they’re working towards, gift ideas.
For a key person in your life, you do this naturally in your head anyway.
Keeping all this data tentatively stored in your brain, however, is a surefire way of losing this information over time.&lt;/p&gt;
&lt;p&gt;It’s not always obvious how often you see people in your life.
Leaning on an organisational system like Notion to keep track of this for sure makes this much easier.
Let Notion help you to keep track of the important people in your life.&lt;/p&gt;
&lt;p&gt;Notion also becomes a useful tool for giving you a nudge to maintain more distant relationships.
Haven’t seen someone for over 6 months?
Drop them a message to find out what’s going on in their life.
Schedule a meet.&lt;/p&gt;
&lt;h2&gt;Holes in your past&lt;/h2&gt;
&lt;p&gt;Despite capturing close to 3 year’s worth of social data, I’m missing people I haven’t seen outside of that time period.
These may be relationships I consider to be significant, at least historically, but for one reason or another, I&#39;ve fallen out of touch with.
Since I only add people to my system when I have a social engagement with them, these people are missing from the database.&lt;/p&gt;
&lt;p&gt;Included in this are old work colleagues and school &amp;amp; university friends that I want to keep in touch with, but aren’t visible in my system.
I could go back through my calendar another year or two and fill in past events and potentially add a few extra people; however this time period includes the pandemic, where social interaction was scarce.&lt;/p&gt;
&lt;p&gt;There&#39;s an argument that 3 years without seeing someone is grounds for &amp;quot;removing&amp;quot; them from your life, but I disagree.
People from your past can and do drop into your life, sometimes unexpectedly.
And this injection of familiarity and nostalgia can be a wonderfully wholesome thing.&lt;/p&gt;
&lt;p&gt;This system can’t keep track of all those loose connections from your past, but if and when they do pop back into your life, it’ll be ready to capture them!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The power of routine</title>
    <link href="https://samdking.co.uk/blog/power-of-routine/"/>
    <updated>2023-11-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/power-of-routine/</id>
    <content type="html">&lt;p&gt;What do holidays, illness and work trips have in common? A loss of routine. After almost a week of being ill recently, aside from feeling better again, the thing I craved most was my routine.&lt;/p&gt;&lt;p&gt;If you&#39;re showing symptoms of burnout, a break can be a wonderful way to recover and kickstart your vitality for life. A break from the norm adds variety and perspective to what would otherwise be a very monotonous life.&lt;/p&gt;
&lt;p&gt;But towards the end of such a break, if you don&#39;t long to return to your life and your routines, it&#39;s time to reevaluate them. A life well lived is a life built around routines that brings you joy.&lt;/p&gt;
&lt;p&gt;I love my routines. Among other things: journalling, the daily Wordle challenge with my mum, a scheduled run, a workout, my mid-morning coffee, lifting my daughter out of her cot in the morning, reading to my son at night, making porridge in the morning, the first walk of the day, Monday night football with friends.&lt;/p&gt;
&lt;p&gt;If the things you do every day drain your energy rather than revive you, it might by time to start thinking more intentionally.&lt;/p&gt;
&lt;h2&gt;Do it till it becomes habitual&lt;/h2&gt;
&lt;p&gt;The little things you repeat that make up your day are the things that make up your life. Cultivate a life of routine, and your routines will become powerful habits. This is the route to building an intentional life well crafted and meaningful.&lt;/p&gt;
&lt;p&gt;What makes a routine become a habit? Nir Eyal describes a routine as simply a series of actions regularly followed. Whereas a habit is an ingrained behaviour done with little or no thought; not doing it feels uncomfortable. Whereas skipping a routine “doesn’t feel bad and without proper forethought, can be easily skipped or forgotten”.&lt;/p&gt;
&lt;p&gt;You are in control of what routines you build into your life.&lt;/p&gt;
&lt;h2&gt;Bad routines sneak in&lt;/h2&gt;
&lt;p&gt;Our lives are full of routines, for better or worse. Our brains are clever and are very good at performing repetitive tasks on auto-pilot. If you don’t intentionally program your own routines, your mind will do it for you. And before you know it, your life will be full of routines that don’t represent the person you want to be.&lt;/p&gt;
&lt;h2&gt;Start with intention&lt;/h2&gt;
&lt;p&gt;Intention is the key to Cal Newport&#39;s “&lt;a href=&quot;https://www.youtube.com/watch?v=fWCbaDfEQwE&amp;amp;ab_channel=CalNewport&quot;&gt;Deep Life Stack&lt;/a&gt;”. I recently listened to The Deep Life podcast &lt;a href=&quot;https://www.thedeeplife.com/podcasts/episodes/ep-274-the-deep-life-stack-v2-0/&quot;&gt;episode #274&lt;/a&gt;, where Cal revisits his framework for living a deep, intentional life.&lt;/p&gt;
&lt;p&gt;The key to starting to build your deep life is a level of discipline. Without discipline, you will struggle to build meaningful, positive routines. With it, you’ll build good routines, which will grow into habits, and habits are a vote for the person you want to be.&lt;/p&gt;
&lt;p&gt;For building discipline, Cal breaks initial habit-forming into 3 categories: body, mind and heart. 1. Move your body with the aim to make yourself healthier. 2. Make your mind sharper; “you have an instrument, you have to train it how to think”. 3. Caring for other people.&lt;/p&gt;
&lt;p&gt;The Deep Life stack is a rich guide for building the life you want for yourself. But it starts with disciplined routine-building and the forming of keystone habits.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The key to side project success</title>
    <link href="https://samdking.co.uk/blog/mvp/"/>
    <updated>2023-10-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/mvp/</id>
    <content type="html">&lt;p&gt;Most start-ups fail. Intuitively, they fail because they run out of money. But what’s the biggest reason for this? The Lean Startup, by Eric Ries, speculates it’s because too many companies build the wrong product for the wrong people. He goes on to extoll the value of the MVP (Minimal Viable Product). MVP is the basis for discovering what matters to your audience.&lt;/p&gt;&lt;p&gt;Most developers, myself included, can become jaded when it comes to the concept of an MVP. Often, the MVP is synonymous with low quality, subpar design or even shoddiness. Particularly when working at an agency for a client, the often lo-fi attribute of an MVP can be a hard sell. But it’s an incredibly useful and imperative tool for ultimately building something people want.&lt;/p&gt;
&lt;p&gt;What is low quality or even cringeworthy to a developer or a designer can tick every box for a customer. If it helps them achieve their goal, the fact it may be a little unpolished is unimportant. Better yet, an MVP can tell you where to apply the polish.&lt;/p&gt;
&lt;p&gt;Creators have a habit of thinking they know what their audience wants through intuition. They can spend hours on something they’re truly proud of, only for it to fall flat when put in front of real users. If real users didn’t ask for it, there’s a very real likelihood this can happen.&lt;/p&gt;
&lt;blockquote class=&quot;text-2xl&quot;&gt;
  &lt;p&gt;Customers don&#39;t care how much time something takes to make. They only care if it serves their needs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In his book, Eric shares a wonderful story during the build of his first startup app, where a crucial feature in the app’s 3D avatar world was missing that users unanimously pointed out when using the prototype. The avatars were stuck in the top corner and couldn’t move about their environment. This was around the time The Sims came out, and the standard in the industry had been set when it came to avatars fluidly moving to their destination, efficiently avoiding obstacles on their way.&lt;/p&gt;
&lt;p&gt;Eric’s team couldn’t justify the time spent to program this for an MVP. But the feedback was clear, users wanted to be able to move their avatars to a point on the screen.&lt;/p&gt;
&lt;p&gt;Instead of picking one of the obvious 2 options: crudely implement the movement, or invest significant time and money into doing it right; the team picked a third option.&lt;/p&gt;
&lt;blockquote class=&quot;text-2xl&quot;&gt;
  &lt;p&gt;We used a simple hack, it felt like it was cheating&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They altered the perceived requirement to allow “transportation” of the avatar to any point on the screen. No walking animation required, no obstacle avoidance programming. To their amazement, this was exactly what customers wanted. In feedback, most users described the problem in way of a solution “I want my avatar to move from A to B”. Whereas in reality, they simply wanted their avatar to be at point B.&lt;/p&gt;
&lt;p&gt;In a fraction of the time, the team had satisfied their users’ needs, with minimal cost.&lt;/p&gt;
&lt;p&gt;MVP’s aren’t about hackily cutting corners, they’re about making smart choices with the primary purpose of gathering data about what your customers want. Polish can come later.&lt;/p&gt;
&lt;blockquote class=&quot;text-2xl&quot;&gt;
  &lt;p&gt;The Lean Startup method is not opposed to building high-quality products, but only in service of the goal of winning over customers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’m only halfway through reading the Lean Startup, but the key takeaway is already clear to me. Don’t build what you think customers want, learn what they really do want. This is done through iterating quickly, and relentlessly gathering feedback as you go.&lt;/p&gt;
&lt;h2&gt;MVP in my work&lt;/h2&gt;
&lt;p&gt;I’m a big proponent of iterating quickly in code. I advocate for &lt;a href=&quot;https://samdking.co.uk/blog/crafting-the-perfect-pr/&quot;&gt;quick, small, focussed features&lt;/a&gt; that deliver value to users as quickly as possible. The much maligned waterfall technique of software development proposed requirements gathering was a process done entirely up front of design &amp;amp; build. We’ve since learned this just doesn’t work, and requirements are ever evolving and often poorly understood to begin with.&lt;/p&gt;
&lt;p&gt;A Minimum Viable Product may satisfy just a single requirement for your users. Don’t build 10 features only to find 2 are actually useful to your end users. Build the first and let them guide you to the next most important feature through feedback and data gathering:&lt;/p&gt;
&lt;blockquote class=&quot;text-2xl&quot;&gt;
  &lt;p&gt;Remove any feature, process, or effort that does not contribute directly to the learning you seek.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The MVP gets buy-in from your users and avoids unnecessary work in the wrong direction. Often often it’s the case users don’t really know what they want until they see something that isn’t it.&lt;/p&gt;
&lt;p&gt;An MVP allows you to hedge your bets. Try lots of little experiments and see what sticks. It’s much more valuable to a business to know what doesn’t work than to always be wondering. Failure is learning. Failure can steer the ship.&lt;/p&gt;
&lt;h2&gt;MVP in my side projects&lt;/h2&gt;
&lt;p&gt;An MVP has another very useful benefit when it comes to side projects: motivation. I’ve written recently about how &lt;a href=&quot;https://samdking.co.uk/blog/motivation-is-overrated/&quot;&gt;motivation is overrated&lt;/a&gt;, but until you’ve built up that muscle of consistency, motivation can be all you’ve got.&lt;/p&gt;
&lt;p&gt;This year I’ve struggled to gain any consistency with my side projects. An idea will burn bright for a week or so, I’ll make a load of progress, then get stuck in my head and it’ll fizzle out.&lt;/p&gt;
&lt;p&gt;Focussing on building an MVP for your side project idea is the key to unlocking that consistency and enjoyment in a project.&lt;/p&gt;
&lt;p&gt;With an MVP comes real feedback. When the idea is out in the open and being actually used, there’s greater opportunity for momentum to build. Aim to get from idea to prototype as quickly as possible and start bringing your ideas to reality, and seeing them through!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The brilliance of The Bear</title>
    <link href="https://samdking.co.uk/blog/brilliance-of-the-bear/"/>
    <updated>2023-10-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/brilliance-of-the-bear/</id>
    <content type="html">&lt;p&gt;I’m a big fan of the Hulu/Disney show The Bear. It’s a food comedy/drama about a dysfunctional sandwich shop in Chicago. To appreciate it, you truly have to embrace the entertaining but ofttimes chaotic and jarring interaction of the characters.&lt;/p&gt;&lt;figure&gt;
  &lt;img src=&quot;https://static.tvmaze.com/uploads/images/original_untouched/465/1164941.jpg&quot; class=&quot;my-0&quot; /&gt;
  &lt;figcaption&gt;Image credit: TVMaze&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Season 1 set the scene for the show, in 8 short episodes.
“Carmy” returns home from a successful stint in new York in one of the most prestigious fine dining restaurants to manage his deceased brother’s Chicago sandwich shop.
We’re introduced to Sydney in the first episode, a skilled, keen, young chef looking to ply her trade and introduce her ideas in her father’s favourite sandwich shop.&lt;/p&gt;
&lt;p&gt;Season 1 definitely took me a few episodes to adapt to the relationships between the characters.
There’s a warm, familial bond between the staff at the shop but a whole lot of anger, resentment and disrespect.
Season 1 fills in the backstory of Carmy’s brother Mikey, how the restaurant came to be in so much debt and the estranged relationship Carmy has to his family.&lt;/p&gt;
&lt;p&gt;The season finishes on a high with a perfect setup for season 2.
And boy did season 2 deliver.&lt;/p&gt;
&lt;p&gt;The second season had some wonderful character development, I truly felt a bond growing between the people on screen and my own connection to them.
The writing and depiction of the community that surrounds the shop is excellent.&lt;/p&gt;
&lt;p&gt;Season 2 features 10 episodes, some longer in length too.
The season opens with the renovation from from sandwich shop to world class restaurant underway.
There’s still the chaotic, raging dialog we’ve come to know between the characters, but with each episode we delve deeper into the history and psyche of each of the main characters.&lt;/p&gt;
&lt;p&gt;This season is about personal growth and professional pride.
Honestly it gave me a lot of anxiety and a healthy dose of respect to those in the hospitality and food industry.
The precision and level of expertise and focus required to function in a restaurant setting is astronomically high.
To see the humble beginnings of working-class sandwich shop chef workers go through the personal transformation they do is heartwarming and inspiring.&lt;/p&gt;
&lt;p&gt;The show doesn’t shirk away from industry jargon and appears to depict a fairly authentic kitchen environment.
A kitchen is a delicate ecosystem where rules and structures must be followed to the letter to survive.
One must give their all to the cause, often to the detriment of their own life and personal relationships.
A fact that is starkly realised and begins to unravel in typically dramatic fashion in the season 2 finale.&lt;/p&gt;
&lt;p&gt;It’s not yet known if the shoe will be picked up for a 3rd season, and although I’d love to see it, I can comfortably say I feel satisfied with what the show has delivered in its first 2 seasons.
It’s been a pleasure to watch and see the drama unfold on screen.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The thrill of the race</title>
    <link href="https://samdking.co.uk/blog/thrill-of-the-race/"/>
    <updated>2023-09-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/thrill-of-the-race/</id>
    <content type="html">&lt;p&gt;I’ve got the run bug. And it’s a strong one. I dabbled with running back in 2012, when I trained for and &lt;a href=&quot;/blog/the-marathon-experience/&quot;&gt;ran a marathon&lt;/a&gt;, but it felt no more than a bucket list item back then. The training was gruelling, lonely, somewhat aimless, and unsociable. Fast forward 11 years and my relationship with running could not be more different.&lt;/p&gt;&lt;p&gt;Last weekend &lt;a href=&quot;https://www.strava.com/activities/9910598905&quot;&gt;I ran a half marathon&lt;/a&gt;.
My second half marathon race, and I achieved an 11-minute PB from &lt;a href=&quot;https://samdking.co.uk/blog/my-half-marathon-experience/&quot;&gt;my previous attempt&lt;/a&gt; 19 months prior.
If the race taught me anything, it&#39;s this: if running is the hobby, racing is the treat.
The cherry on top.
But why is racing so great?
In this blog post I will attempt to explain.&lt;/p&gt;
&lt;p&gt;You can be forgiven for thinking racing, in the general sense of the word, favours the victor only.
Our visions of historic races involve elite people at the top of their game battling it out for the ultimate prize.
You come first, or you lose.
But to us mere mortals, racing is so much more than that.&lt;/p&gt;
&lt;p&gt;There’s an old adage about running a marathon.
Your training is 95% of the marathon, the race is your victory lap, celebrating the completion of your training.
Really this can be applied to most long distance races, not just the marathon.&lt;/p&gt;
&lt;p&gt;And for my half marathon attempt, I’d put in the work.
A proper, structured 16-week training plan of running 4+ times a week, averaging approximately 50km in distance.
A concerted period of confidence and fitness building with a single, focused target in mind.&lt;/p&gt;
&lt;h2&gt;Race day&lt;/h2&gt;
&lt;p&gt;When you line up behind the start line with your fellow runners, there’s a spine-tingling sense of anticipation; the buzz in the air is palpable.
You’ve set a target, you’ve put in the miles, you’ve tapered so you’re fresh; and this moment right here is the culmination of your effort.&lt;/p&gt;
&lt;p&gt;When the horn sounds, it’s show time.
The rush of adrenaline means you’re walking, or rather running, on air for the first few minutes.
You can’t believe how easy it feels.
The atmosphere is electric.
The warm sense of camaraderie and togetherness.
You feel on top of the world and with every step, stronger. Your legs have never felt fresher.&lt;/p&gt;
&lt;p&gt;This is the reward at the end of months of hard work.&lt;/p&gt;
&lt;p&gt;Everything is in your favour.
Your outfit is precisely selected, your shoes are fast, and you’re fuelled up to your eyeballs.
Your focus is unwavering, the route ahead clear, the distance set.
You’re laser focused on one thing: crossing that finish line.
Training runs are the hard bit; &lt;em&gt;this&lt;/em&gt; is the easy bit.
Everything is in place for you to succeed.&lt;/p&gt;
&lt;p&gt;But you reign it in.
You have a plan.
To not throw everything out there in the first few kilometres.
It takes discipline to hold your pace and your excitement, because no race is &lt;em&gt;won&lt;/em&gt; in the first few minutes, but many are lost.&lt;/p&gt;
&lt;p&gt;Training is full of “am I good enough?” moments.
Can I hit my target?
Perhaps I was too ambitious.
They’ll be as many bad days as good ones.
But how confident you feel standing on that start line is directly proportional to how often you gritted your teeth and got it done anyway.&lt;/p&gt;
&lt;p&gt;For the first few kilometres, you can’t believe how effortless the pace feels compared to those early goal pace runs in training.
“How on earth am I going to do this for X distance?” you exclaimed.
But you do.
Because today is race day and today it matters.
All those hard efforts where the only prize was a tick and some kudos on Strava have paved the way for this.&lt;/p&gt;
&lt;p&gt;There’s a real sense of friendly competition and a boost each time you catch up with and overtake another runner.
You don’t get this in training.
You realise everyone’s running their own race, everyone has their own plan.&lt;/p&gt;
&lt;p&gt;At some point during the race, you will feel it in your bones that your goal is achievable.
You know you’re going to hit that PB today.
When that feeling comes, nothing can stop your charge to the finish line.&lt;/p&gt;
&lt;p&gt;It won’t always be that way.
Not every race can be perfect.
But even when that PB is just out of reach, the realisation cannot take away from the rush of race day.
The admiration and energy from the crowd.
The familiar, rhythmic patter of those around you.
The shared competitive spirit of the human body and mind.
The unwavering grit to get over the finish line.&lt;/p&gt;
&lt;p&gt;And the post-run high?
Unmatched.
You’ve heard of the runners high, but the post-race high; that’s something else.
Once you’ve collected your medal, caught your breath, taken the load off your legs, and maybe delivered a few fist bumps, all that’s left is to hazily bask in the feeling of accomplishment.&lt;/p&gt;
&lt;p&gt;Race day energy is an unexplainable, magic phenomenon.
As runners, we live for this.
It solidifies and validates our love of running and in one moment vindicates our months of preparation.
And the formula is simple.
Consistent effort and a hunger to improve.
You don&#39;t need to be the best, you just need to better than you used to be.
It’s a high accessible to so many.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>To-dos ruin your life</title>
    <link href="https://samdking.co.uk/blog/todos-run-your-life/"/>
    <updated>2023-09-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/todos-run-your-life/</id>
    <content type="html">&lt;p&gt;To-dos. I think most people have a love/hate relationship with to-dos. They’re a great way of organising what’s in your mind into a salient list of achievable goals. God help me remembering this stuff if I didn’t write it down.&lt;/p&gt;&lt;p&gt;But the dark side of to-dos is the accumulation of mental debt.
If you relied purely on your memory to remember tasks, there’s a good chance those tasks that are no longer relevant would drop out of your head.
But in a structured to-do list, they’re always there.
Etched into your subconscious and a constant reminder every time you check your list.
Both a blessing and a curse.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/todos-chart.png&quot; /&gt;
  &lt;figcaption class=&quot;text-center text-sm italic&quot;&gt;My current rate of to-do completion in &lt;a href=&quot;https://samdking.co.uk/to-dos/2023/&quot;&gt;2023&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I have several of these kind of tasks. Added months ago, perpetually on the back-burner until I’m compelled to finally tackle it.
And I don’t think I’m alone.
We all have niggly jobs we know need fixing but can’t bring ourselves to schedule.
They don’t cause any real day-to-day pain, they just need doing at some point.&lt;/p&gt;
&lt;p&gt;This is a problem.
Or it certainly feels like one.
But is it a system problem, or a personality trait?
How do you ensure long term, non-essential tasks get completed?
Maybe scheduling several of them into a specific day in the future.
However this relies on a level of enthusiasm on the day to complete, and assuming there are no blockers to completing the task.
Are some people just better at churning these tasks out?
Is this a habit of a Highly Effective Person (I still need to read &lt;a href=&quot;https://www.amazon.co.uk/Habits-Highly-Effective-People-Powerful/dp/0743269519&quot;&gt;that book&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;There’s an interesting parallel with issues in software and an approach I approve of:
If a reported issue has had no activity in a set period of time, automated processes will close the issue, deeming it to be unimportant.
If it turns out to be important in the future, it’ll get re-issued and the process begins again.&lt;/p&gt;
&lt;p&gt;I really like this approach.
A small, anally-retentive part of me squirms at the idea of closing “active” issues.
But that feeling quickly dissipates when the action invariably results in zero consequences.&lt;/p&gt;
&lt;p&gt;There&#39;s also a notion in software issue tracking of &amp;quot;wontfix&amp;quot; (translation: this is an issue, but I don&#39;t intend to fix it).
That is, in an ideal world, this could do with resolving, but in reality, this is not a big enough problem to warrant my time.&lt;/p&gt;
&lt;p&gt;Perhaps to-dos lists are essential in our overloaded modern lives, which we fill with leisure, work, home and family commitments.
There’s always house maintenance, gifts to buy, purchases to research, and applications to fill in.
But perhaps we should be a little more lenient on ourselves and our goals.
Few things in life are essential.&lt;/p&gt;
&lt;p&gt;Is the entire notion of a backburner-list just a continual reminder you&#39;re a little bit lazy?&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Crafting the perfect PR</title>
    <link href="https://samdking.co.uk/blog/crafting-the-perfect-pr/"/>
    <updated>2023-08-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/crafting-the-perfect-pr/</id>
    <content type="html">&lt;p&gt;I find myself inside pull requests a lot at work. Whether I’m authoring one myself or reviewing a co-worker’s, I’ve become pretty familiar with the Github PR screen and what makes a good PR review experience. So here’s my top tips to improve your PRs.&lt;/p&gt;&lt;h2&gt;Base it off a solid, well-researched issue&lt;/h2&gt;
&lt;p&gt;This isn’t a hard rule, but it’s much nicer to have some separate context for why this PR exists. Your PR should contain this information (why it came to be), but the detail should be in a clear, well-written issue.&lt;/p&gt;
&lt;p&gt;In some organisations, a pull request can’t exist without an issue, as work is scheduled based on the backlog of issues. In more relaxed environments like at Arena Flowers, I try to stick to, and encourage, the convention of issue first, PR second.&lt;/p&gt;
&lt;h2&gt;Keep it succinct&lt;/h2&gt;
&lt;p&gt;It was renowned programmer Kent Beck that stated:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For each desired change, make the change easy (warning: this may be hard), then make the easy change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I believe this can be translated to how a pull request should be approached.&lt;/p&gt;
&lt;p&gt;Every new feature or change of behaviour to an existing feature typically requires a change to the current codebase. It’s your job as the author of this work to present these changes in as clear a fashion as possible.&lt;/p&gt;
&lt;p&gt;It’s tempting to plough on with your new feature, making every little change required to accomplish your goal, and swallowing up the context that the change was made into a monolithic PR. But when you take this approach, when you finally present this PR for review to your peers, you’re met with confusion, or perhaps even a wall of silence.&lt;/p&gt;
&lt;p&gt;Every blocker you encountered, every decision you made along the way, has been combined together and presented in one big contextless chunk. And your expectation as the author is that somehow your colleagues are able to understand and follow your thought process across all these changes and give you some meaningful feedback.&lt;/p&gt;
&lt;p&gt;There’s a better way.&lt;/p&gt;
&lt;h2&gt;Small PRs are joyful&lt;/h2&gt;
&lt;p&gt;If you can summarise your PR in a sentence, you’ve won the PR game. If you can get an insta-sign-off from a colleague, congratulations, you’ve won the PR game.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Make your PR easy to review.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those micro changes to your existing codebase to facilitate your Brand New Feature; let them breathe in their own PR. Get them reviewed, merged and deployed. And your Brand New Feature is one step closer to being complete.&lt;/p&gt;
&lt;p&gt;If that change happens to alter a core behaviour of your system, introduce a &lt;a href=&quot;https://samdking.co.uk/blog/set-your-features-free-with-flags/&quot;&gt;feature flag&lt;/a&gt;. You’re then setting the ball in motion for your Brand New Feature by adding flexibility to the existing system. This way when the time comes to merge and enable your new code, accommodation is simple.&lt;/p&gt;
&lt;p&gt;Yes, this will slow down development of your Brand New Feature, but nothing slows down the release of a feature more than having it sit in review until it’s stale and no longer relevant.&lt;/p&gt;
&lt;h2&gt;The PR is your sales pitch&lt;/h2&gt;
&lt;p&gt;The PR is your feature’s early documentation. It’s the sales pitch to your team as to why this code should be added to your codebase. Sell it.&lt;/p&gt;
&lt;p&gt;Your change might be so simple even a non technical person can see why it’s being made. Great, but document it. Explain why it’s being added. Why is it needed? What was wrong with the previous code?&lt;/p&gt;
&lt;p&gt;A PR is always in your history, even after it’s merged. It’s easy to say that PR is done. But it’s always there, providing value when it’s needed in 5 years time when a new crop of developers have entered your team looking for context.&lt;/p&gt;
&lt;p&gt;But the documentation should not be confined to your PR. Your PR is the genesis for this documentation, but it should be moved somewhere central and accessible for your team shortly before or after merging.&lt;/p&gt;
&lt;h2&gt;Entice your reviewers&lt;/h2&gt;
&lt;p&gt;Well written text documentation is great. But nothing sells a feature more than a series of screenshots, or better yet, a video. Invite your peers on a journey of what this PR will give to your users. Or how it might improve developer experience going forward.&lt;/p&gt;
&lt;p&gt;Making a screen recording demoing the feature you’ve spent weeks building might feel like a pointless chore at the end, but it might be the difference between someone engaging and providing valuable feedback on your PR, and them passing on by.&lt;/p&gt;
&lt;p&gt;This supplementary, immersive documentation can also be used as a guide for users of the feature down the line. Double benefit.&lt;/p&gt;
&lt;h2&gt;Keep it on point&lt;/h2&gt;
&lt;p&gt;If you’re distracted by a typo or a method ripe for refactor while you’re building out your feature, then your reviewers will be too.&lt;/p&gt;
&lt;p&gt;Leave it out of the PR. Keep your PR targeted to your end goal.&lt;/p&gt;
&lt;p&gt;By all means open up a side quest PR fixing a typo. Get it reviewed and merged and move on. But don’t let it muddy up your feature and add visual clutter to your hard work. Every line counts.&lt;/p&gt;
&lt;h2&gt;Run your automated checks&lt;/h2&gt;
&lt;p&gt;This almost goes without saying, but it’s so vital it bears inclusion. Your CI pipeline should run your automated test suite and linting checks. And indeed anything else vital to the running of your system. And obviously it should pass.&lt;/p&gt;
&lt;p&gt;I’ve worked on enough codebases without this to know if you &lt;em&gt;can&lt;/em&gt; make a mistake and break the build, you &lt;em&gt;will&lt;/em&gt; (Murphy’s law). If your automated test suite fails, block merge. This is trivial to do but might be the difference between uptime and downtime!&lt;/p&gt;
&lt;p&gt;Nothing breeds confidence like reviewing a PR with a suite of shiny green ticks next to it. You can be reasonably assured nothing breaking has been introduced, and that the new code adheres to your coding guidelines.&lt;/p&gt;
&lt;h2&gt;Get sign off&lt;/h2&gt;
&lt;p&gt;Every company will have their own internal structure for sign-off for something going live. But the key thing is to make sure the people who might be affected by your PR are notified ahead of it going live. It may not require their sign-off, but a heads-up is always appreciated. No one likes surprises.&lt;/p&gt;
&lt;h2&gt;Make it previewable&lt;/h2&gt;
&lt;p&gt;This isn’t always possible in legacy codebases and older CI setups, but ideally every PR should have its own preview link. Ideally, also, its own self-contained database.&lt;/p&gt;
&lt;p&gt;Seeing changes with your own eyes is infinitely more likely to get a good review than just lines of code. If your changes are visual but you don’t have this ability, copy the changes and other relevant code into a website like CodePen and share this.&lt;/p&gt;
&lt;p&gt;If your application uses Docker, or a &lt;a href=&quot;https://jamstack.wtf/&quot;&gt;Jamstack&lt;/a&gt; compatible service such as Netlify, you can relatively easily spin up an instance of your application based off the code in the PR and get a real URL to navigate to. This is incredibly useful for end-to-end and real world testing of your PR, where necessary.&lt;/p&gt;
&lt;h2&gt;Happy PRing&lt;/h2&gt;
&lt;p&gt;As an author of a Pull Request, you have a responsibility to your team and peers. With a little foresight, empathy and preparation, your team will look forward to your PRs coming into their in-trays.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Motivation is overrated</title>
    <link href="https://samdking.co.uk/blog/motivation-is-overrated/"/>
    <updated>2023-08-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/motivation-is-overrated/</id>
    <content type="html">&lt;p&gt;The mind is a funny thing.&lt;/p&gt;&lt;p&gt;I woke up yesterday, Tuesday morning, and felt pretty achey and tired from a 7-a-side football session the evening before. I’d travelled by train as the car was temporarily out of action, making a typical 2-hour round trip to play into a 3 and a half hour journey. The late night took its toll.&lt;/p&gt;
&lt;p&gt;I had a 50 minute easy run scheduled for today. Sometimes I fit this into the middle of my day, but often on a Tuesday I’ll delay it till the evening to give my body most of the day to recover.&lt;/p&gt;
&lt;p&gt;This Tuesday was a typical one; I was lacking motivation for the run. When you run frequently, or indeed, when you do anything frequently, the motivation to do the activity fluctuates. Motivation (or lack of) kills consistency. Do your best to ignore it.&lt;/p&gt;
&lt;p&gt;Improvement comes when you don’t wait for motivation to strike.&lt;/p&gt;
&lt;p&gt;Improvement is consistently showing up, knowing full well this session might not be the best one, and being OK with it.&lt;/p&gt;
&lt;p&gt;When I eventually got out for my run, I briefly let myself dwell on the lack of my lack of motivation. Am I overtraining? Am I getting bored of running? Maybe I’m stagnating. Perhaps it was never for me. Pretty intrusive, demotivating stuff.&lt;/p&gt;
&lt;p&gt;Then I reminded myself just 2 days before I ran a personal best 5k time at Parkrun. The day after I strapped my shoes on again and ran a rejuvenating long run along the South Downs in the wind and rain, finishing strongly downhill into Brighton. I felt alive and unstoppable.&lt;/p&gt;
&lt;p&gt;Two days later, with a football session in between, unsurprisingly my body was a little worse for wear. The high had worn off. And the demotivation of yet-another-week had set in.&lt;/p&gt;
&lt;p&gt;But I got out there, because I planned to. I know consistency is key, and I know motivation is fleeting and unreliable. Don’t listen to motivation. Let it drive you when you’re up high, but know that it won’t be there to drag you through the low moments.&lt;/p&gt;
&lt;p&gt;Motivation helps you get started, but if you know something is good for you, don’t wait for it, just do it.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2023 goals check-in</title>
    <link href="https://samdking.co.uk/blog/2023-goals-check-in/"/>
    <updated>2023-07-12T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2023-goals-check-in/</id>
    <content type="html">&lt;p&gt;I think mid-way annual goal check-ins are a great idea. They’re a moment to reflect and reevaluate your annual goals, and to tweak your targets for the rest of the year. Six months into the year, it’s not uncommon for some goals to reveal themselves to be a little too lofty. Or that a change of heart or direction has changed a goal’s trajectory or level of importance in your life. It’s not a moment for judgement; it’s a useful moment for any required course correction. So without further ado, I’m going to dig into mine.&lt;/p&gt;&lt;p&gt;Original post: &lt;a href=&quot;https://samdking.co.uk/blog/2023-goals/&quot;&gt;https://samdking.co.uk/blog/2023-goals/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;First off, a few stats from my site for the first half of the year to kick things off:&lt;/p&gt;
&lt;h2&gt;The vital stats, 1st January - 30th June&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Blog posts&lt;/th&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Books read&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Films watched&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TV episodes watched&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Podcasts listened to&lt;/td&gt;
&lt;td&gt;246&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distance run (km)&lt;/td&gt;
&lt;td&gt;873&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distance walked (km)&lt;/td&gt;
&lt;td&gt;693&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distance other (km)&lt;/td&gt;
&lt;td&gt;225&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I’ve been posting almost 2 blog posts a month which I’m really happy with. I slipped off that schedule in June, but I’m already back on course in July.&lt;/p&gt;
&lt;p&gt;Reading began with some gusto at the start of the year but has, inevitably, wained. I feel like I’m starting to pick this up again, and I’m still on track to read more books than last year (10).&lt;/p&gt;
&lt;p&gt;Films is something that I’ve not found time for recently, and I’m disappointed by that. I never regret time set aside for a film and I need to acknowledge this more. Still, I’m on track to watch more than last year (20).&lt;/p&gt;
&lt;p&gt;TV started with some solid new series started with my other half. I love getting into a good series in the winter months. An improvement in the weather saw this seasonal activity reduce. The last few months of the football season also coincided with a complete drop-off of non-football viewing.&lt;/p&gt;
&lt;p&gt;Podcasts has seen a big jump I had to increase the Y axis on the graph on my site due to exceeding any week total from 2022! I regularly hit 11 hours of listening in June. Not intentional, but it coincides with an increase in overall activity. On track to smash 2022’s listening total (344 episodes).&lt;/p&gt;
&lt;p&gt;I’ve hit 25km+ in all but 3 weeks in the first half of the year, including 7 40km+ weeks (4 in the first half of 2022). An increase in running has been simultaneously a surprise but also somewhat expected. It wasn’t in my plan, but meeting up with a Strava friend and running regularly together has injected some friendly competition and impetus to run more.&lt;/p&gt;
&lt;p&gt;An increase in walking distance has been fuelled by a loose unofficial target to hit 10k steps every day in 2023. I lost my streak during a bout of gastroenteritis in April, but save for those 5 days, I got back on the train and have hit my target every day since.&lt;/p&gt;
&lt;h2&gt;Revisiting my yearly goals&lt;/h2&gt;
&lt;h3&gt;Garage gym renovation&lt;/h3&gt;
&lt;p&gt;The biggest disappointment so far this year. This has not yet got off the ground. We’ve made first steps to this being a reality in that we’ve done a clear-out. The next steps are to purchase some basic equipment and to just start the workout. Finances and lack of knowledge mean the equipment is unlikely to be optimal at first, but that’s OK. Getting started on building the habit is way more important here.&lt;/p&gt;
&lt;p&gt;I’d be gutted with myself if I don’t get this off the ground in the latter half of 2023.&lt;/p&gt;
&lt;h3&gt;Lighting in office&lt;/h3&gt;
&lt;p&gt;Half done. After some (a lot) of research on streaming lights, I found a second hand Elgato Key Light Air, which has done wonders for my video conferencing setup. I’m really happy with the results and am glad I pulled the trigger on this purchase.&lt;/p&gt;
&lt;p&gt;I still have a goal to kit out my home office with more general room lighting at some point, but this is no longer a priority for the year, so most likely won’t get done.&lt;/p&gt;
&lt;h3&gt;Start composting&lt;/h3&gt;
&lt;p&gt;Done. Bought a bin, found a location, bought a fork for turning. I now compost regularly.&lt;/p&gt;
&lt;h3&gt;Start a side business&lt;/h3&gt;
&lt;p&gt;Sadly this one hasn’t materialised. Like a lot of my ideas, I fail to get them off the ground to get any sort of traction and they tend to whither away. I’m still very much on the train of earning a modest side income to supplement my job, so I’m keeping this on the table for the remainder of 2023.&lt;/p&gt;
&lt;h3&gt;Prioritise sleep&lt;/h3&gt;
&lt;p&gt;This has been going well. I’ve blogged twice about this, with a third in the pipeline. This area of my life has shown improvement, but now is the time to double down and lock in the gains. I noticed towards the end of June that I’d started slipping back into old ways on numerous days. This needs to be nipped in the bud to try and cement this habit in the remainder of the year.&lt;/p&gt;
&lt;h3&gt;Fitness goals&lt;/h3&gt;
&lt;p&gt;My swim progress has been zilch. My plans for a once/month cadence hasn’t materialised. In all honesty, I’m not going to be motivated to do this on my own. So I either need to set a regular date in stone and be consistent about it, motivation be damned; or perhaps find an accountability partner to swim with. I’m not going to be too strict on myself with this though. If it doesn’t happen in 2023, it’s no biggie.&lt;/p&gt;
&lt;p&gt;I am annoyed that bouldering has not seen any progress. I’m still just as motivated to make this happen, and a recent conversation with my old sparring partner may well kickstart this return. Watch this space. I’d love if I could make this a regular (fortnightly) fixture in my life again.&lt;/p&gt;
&lt;p&gt;I have been cycling more. Mostly due to joining a second football group on Thursday nights in a neighbouring town. I do feel a little guilty I’ve added to my football commitments and neglected swimming and bouldering. But it has come with added benefit of a 12km round cycle ride there and back. Healthy, and green.&lt;/p&gt;
&lt;p&gt;My running has increased, somewhat unintentionally. It’s still a vital escape for mentally, so I’m going with the flow for now. I achieved my much coveted sub-20 at the 5K distance in June, and am currently in training for a half marathon in the autumn where I hope to get as close as I can to completing in 1:30:00. I feel like I’m in a real state of momentum with my running at the moment and I don’t want to break that.&lt;/p&gt;
&lt;h3&gt;This site&lt;/h3&gt;
&lt;p&gt;This site has been neglected if I’m being honest. There have been a few tweaks here and there and I still update my feed weekly, but I’ve not found the time to hit the big 5 goals I set out at the start of the year.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;&lt;a href=&quot;https://samdking.co.uk/books/&quot;&gt;visual books page&lt;/a&gt;&lt;/strong&gt; is high up on the list. I know how I want to do this, I just need to carve out the time. I blogged about rejuvenating my &lt;strong&gt;&lt;a href=&quot;https://samdking.co.uk/feed/&quot;&gt;weekly feed&lt;/a&gt;&lt;/strong&gt; by discussing the concept of &lt;a href=&quot;https://samdking.co.uk/blog/analysing-life-trends/&quot;&gt;Life Trends&lt;/a&gt; in a recent post. Sharing more &lt;strong&gt;opinions&lt;/strong&gt; alongside my data is something I’ve not figured out yet, but it remains a priority. An improved &lt;strong&gt;&lt;a href=&quot;https://samdking.co.uk/fitness/&quot;&gt;fitness page&lt;/a&gt;&lt;/strong&gt; is still in my upcoming plans for the year. And finally, a &lt;strong&gt;design spruce-up&lt;/strong&gt; is still on the cards, but this is probably the lowest on the list.&lt;/p&gt;
&lt;p&gt;I still find my site to be a great catalyst for inspirational ideas I can drive into it. But so far I’ve not found the time I committed last year to building features. Busyness at work has been a large contributor to that.&lt;/p&gt;
&lt;p&gt;I would certainly like to end this year with a noticeably improved site than I started with. But I won’t beat myself up if I don’t get round to this. Having continually updated stats throughout the year and a fairly regular posting schedule keeps it feeling fresh (to me at least).&lt;/p&gt;
&lt;h2&gt;In conclusion&lt;/h2&gt;
&lt;p&gt;It’s not been a bad first half of the year. Still some key areas I’d like to hit and habits I’d like to build, but I’m pleased with the progress so far. No major auto-correction needed and for the most part, my 6-month-old goals still align with my outlook today.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The disappointment of Black Mirror Season&amp;nbsp;6</title>
    <link href="https://samdking.co.uk/blog/disappointment-of-black-mirror-season-6/"/>
    <updated>2023-07-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/disappointment-of-black-mirror-season-6/</id>
    <content type="html">&lt;p&gt;I’ve always loved Black Mirror. In some ways it feels like my perfect mix of a television show. I love the dark storylines and topics it seldom shies away from. I love the dystopian view of technology and its potentially hazardous effects on society. The shock value and quality of the writing. The ingenuity of the twists always leave you feeling like you’ve been through a thrill ride. Black Mirror manages to sow a seed in your brain that slowly percolates into your consciousness long after the episode finishes.&lt;/p&gt;&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://static.tvmaze.com/uploads/images/original_untouched/465/1163018.jpg&quot; alt=&quot;Aaron Paul in Beyond the Sea&quot; class=&quot;w-full lg:w-5/6 mx-auto rounded-sm mb-4 drop-shadow-xl&quot; /&gt;
  &lt;figcaption&gt;Aaron Paul in &quot;Beyond the Sea&quot;. Image credit: TVMaze&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;And then there was season 6, the latest season to drop on Netflix. Oh, the hopes were high. It had been a long wait for a new season after the 2019 release of season 5. &lt;strong&gt;WARNING:&lt;/strong&gt; From this point on, this post contains spoilers.&lt;/p&gt;
&lt;p&gt;Season 6 began with &lt;strong&gt;“Joan is Awful”&lt;/strong&gt;. A light-hearted, almost slapstick story of an ordinary woman who discovers her life has been captured, modified for entertainment value, and broadcast on the streaming network “Streamberry”. This episode was OK. The simulated multi-universe-generating super computer end reveal was a good one, but it didn’t make up for the generally weak storyline. The big name cameos felt a bit forced too. But the concept did at least feel Black Mirror-esque in its ability to provoke thought and a concern for technology.&lt;/p&gt;
&lt;p&gt;The second episode &lt;strong&gt;“Loch Henry”&lt;/strong&gt; was more of a gritty police drama than a Black Mirror episode. Warm, relatable characters and a decent plot. Another typical “woh” twist towards the end, and a great sense of visual, eery dread created with the use of old film equipment in parts. And it didn’t shirk the shock value of killing off a main character. But it left me wondering if I was watching a Black Mirror episode at all. An OK standalone hour of television, but a weak Black Mirror episode in my book.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Beyond The Sea”&lt;/strong&gt;, the 3rd instalment, was a long one. And it felt it. Very odd pacing in this one, for a Black Mirror episode. An intriguing concept of transferring the consciousnesses of 2 astronauts on a long mission to Mars into lifelike human replicas of themselves on Earth. The harrowing nature of the demise of the first astronaut’s replica on Earth went someway to explain the mixed public reception of the technology. But I wish they’d spent more of the episode detailing some of the backstory of how the technology came to be. The final twist was a gut-wrencher and smartly done, but it didn’t make up for meandering character development in this episode. It’s also a personal struggle to see Aaron Paul as anyone other than Jesse Pinkman.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Mazey Day”&lt;/strong&gt; was just weird. The most un-Black Mirror episode I can think of. And again, not an awful standalone episode of a TV show, but little for a Black Mirror fan to gobble up. It follows a young, successful actress who we’re lead to believe has gone off the rails in the middle of filming a movie due to a hallucinogenic hit-and-run incident. But it turns out she actually fell victim to the mythical curse of the werewolf, and periodically transformed at the turn of the full moon. Captivating, and gorey. But just plain weird. And, critically, not what I signed up for.&lt;/p&gt;
&lt;p&gt;The final episode of the season, &lt;strong&gt;“Demon 79”&lt;/strong&gt; may be the strangest of the bunch. And a clear sign Black Mirror is branching out from its original premise. A late 70s, Northern, working class city is the scene and the protagonist is a young, shy immigrant woman who lives alone and works in a department store. After several flashes of violent daydreams, she manages to summon a demon on her lunch break(!) Quirky characters and a fun script give this episode some life. But it’s hard to get past the absurdity of the concept. The plot plays out somewhat predictably, for a Black Mirror episode, and as we’re left wondering if indeed the end is nigh—as the Demon proclaimed— armageddon ensues and the protagonist, Nida, signs up for an eternity of perpetual nothingness exiled with the Demon, Gaap. What do we take away from this episode? To be mindful of accidentally summoning demons, for fear of potentially bringing an end to human civilisation?&lt;/p&gt;
&lt;p&gt;Season 6 wasn’t a failure, from an entertainment standpoint, but it was a rather large departure away what’s grown Black Mirror as a cult favourite among fans. The “shit, this could really happen” plots in plain-sight modern society. Where a piece of technology augments society just enough to wreak havoc and make you question humanity. There have been so many previous episodes that have been eerily dark and visceral enough to have stayed with me. I doubt any of season 6’s episodes will.&lt;/p&gt;
&lt;p&gt;See what other television &lt;a href=&quot;https://samdking.co.uk/tv/2023/&quot;&gt;I&#39;ve been watching&lt;/a&gt; in 2023.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Analysing life trends</title>
    <link href="https://samdking.co.uk/blog/analysing-life-trends/"/>
    <updated>2023-05-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/analysing-life-trends/</id>
    <content type="html">&lt;p&gt;One of the reasons I began journalling and tracking my “vitals” is for analysing trends in my mood and lifestyle. To help achieve this, I capture a summary alongside my journal entries in the form of tags.
&lt;/p&gt;&lt;p&gt;I’ve talked about tags previously in my &lt;a href=&quot;https://samdking.co.uk/blog/my-journalling-setup-in-notion/&quot;&gt;Notion journalling setup&lt;/a&gt; post.
So far I’m not doing a lot with these tags, but recently I’ve been wondering if there’s an untapped treasure trove of data hidden there.&lt;/p&gt;
&lt;p&gt;Currently my tags are aggregated across a week and output chronologically on my feed page in the form of emoji.
This was a sort of “I’ll think of what to do with this later” approach when I was designing this page.
It’s visually effective, looks nice, and serves as loose insight of my week.
But in all honesty as time has gone on, it’s become meaningless visual clutter.&lt;/p&gt;
&lt;p&gt;What I really care about is the frequency of these tags and how that changes over time.
If I’m talking about work a lot in my journal, there’s gonna be a lot of “work” tags.
Struggling with my mental health, there’s gonna be an abundance of “health” tags.
You get the picture.
This isn’t an exact science, but by aggregating these tags over a sizeable enough period (initially I’m thinking 4 weeks), I think it could reveal some insightful trends.&lt;/p&gt;
&lt;p&gt;One could posit, for example, that as frequency of work tags go up, social may go down.
An increase in fitness tags could lead to a decrease in side project tags.
When are my most intense periods of blogging?
Do these happen sporadically, on a regular basis, or in clusters?&lt;/p&gt;
&lt;p&gt;How often am I mentioning my kids?
Have I slacked off when it comes to recording their developments and my thoughts about them when daily journalling?
Does an increase in one area of my life decrease time spent with my children?&lt;/p&gt;
&lt;p&gt;I’m not sure yet on the direction I’ll take this, but I’m looking forward to pulling out some data and visualising it.&lt;/p&gt;
&lt;p&gt;How do you identify trends in your life?
Do you have any metrics you keep or systems in place to aid with this?
Your gut can tell you a lot, but sometimes you can be going down a dark path for a while before you notice a need for a change.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Interviewing, but better</title>
    <link href="https://samdking.co.uk/blog/2023-05-02-interviewing-but-better/"/>
    <updated>2023-05-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2023-05-02-interviewing-but-better/</id>
    <content type="html">&lt;p&gt;Interviewing has to be one of those universal activities no one enjoys. Whether you’re the interviewer or the interviewee, there’s a shared dread involved with being on show for 30, 60, 90 minutes. I’ve come to learn being on both sides of the fence that an interview is as much an audition for the company as it is for the prospective employee.&lt;/p&gt;&lt;p&gt;Regular exposure and practice can get you someway to the process feeling more natural, maybe even enjoyable. But as an interviewee, unless you’re interviewing regularly - which probably isn’t a great sign - stress, awkwardness, inauthenticity are all feelings you’re likely to encounter. So how do we fix it?&lt;/p&gt;
&lt;p&gt;I recently came across &lt;a href=&quot;https://adamwathan.me/&quot;&gt;Adam Wathan&lt;/a&gt;’s new podcast Hackers Incorporated. I’ve followed Adam for many years, from his earlier work on Laravel and collection pipelines, to his SaaS building in public, to his more recent work in his company and CSS framework product: Tailwind CSS.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://hackersincorporated.com/episodes/running-your-business-like-a-band&quot;&gt;episode 3&lt;/a&gt; of Hackers Incorporated Adam likens the process of running your business to being in a band. There are so many great metaphors here and many ring seem to ring true to me, but one in particular, around interviewing captured my attention.&lt;/p&gt;
&lt;p class=&quot;text-center text-xl italic font-bold&quot;&gt;
Don’t interview people, audition them.
&lt;/p&gt;
&lt;p&gt;It would seem ridiculous when looking for a new guitarist for your band to grill applicants about their musical history and past performances in other bands. Sure, a cursory couple of opening screening questions wouldn’t go amiss, but fundamentally, you care about how they play. And more importantly, what the chemistry is like between them and you. And although most tech jobs are not akin to playing guitar in a band, the parallels are there.&lt;/p&gt;
&lt;p&gt;When hiring for a developer, we want to know how they think and approach problems. How they go about tackling a challenge. How they riff and bounce off other developers. What they enjoy about their work. You may be able to wheedle out a sense of this in a question and answer format. But to really know you’ve got to put them in a situation they’ll find themselves in daily.&lt;/p&gt;
&lt;p&gt;When hiring for new Tailwind workers, Adam sets up a series of 1-to-1 pairing sessions with various members of the team. Often this involves hacking on a technology neither participant has prior experience with. This levels the playing field, dims the spotlight, and provides a semi-real world situation in which the prospective employee can show what they’re about and eases the pressure to perform present in most interview scenarios.&lt;/p&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-amber-900 text-xl leading-relaxed&quot;&gt;
💡 “It keeps the power dynamic in check. … Here’s a javascript framework that neither of us  know. Let’s try to make something with it and let’s both go in as idiots.”
&lt;/aside&gt;
&lt;p&gt;“Let’s problem solve together and see how productive it feels” struck a chord. It’s so hard to judge chemistry and fit within a team off the back of a couple of interviews. Aptitude can be tested with an old fashioned coding test, to an extent; but there’s little replacement for simulating a day-to-day scenario than pair-programming with no explicit agenda.&lt;/p&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-amber-900 text-xl leading-relaxed&quot;&gt;
💡 “I would rather go in being the dumb one, because there’s a lot to learn from how the person helps you along and explains the things they understand, that they want you to understand.”
&lt;/aside&gt;
&lt;p&gt;Changing the dynamic so the interviewer is the lesser clued-up one flips the old-fashioned dynamic of an interview on its head. It’s an opportunity to see how the candidate teaches and empathises with your lack of knowledge.&lt;/p&gt;
&lt;p&gt;There’s so much to learn and absorb when learning with someone. Did you enjoy the exercise? Did it feel natural? Did you keep up with one another? Was there a good back-and-forth? All these are things you’d look for when auditioning for a new guitarist for your band.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>When a tweak becomes a refactor</title>
    <link href="https://samdking.co.uk/blog/when-a-tweak-becomes-a-refactor/"/>
    <updated>2023-04-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/when-a-tweak-becomes-a-refactor/</id>
    <content type="html">&lt;p&gt;I recently wanted to make a change to the fitness page on my site. To hide football activities from appearing in run data, in my code there is a rudimentary check that rejects any run activities logged on a Monday (when I regularly play football).&lt;/p&gt;&lt;p&gt;This worked OK as a temporary solution, but is beginning to miss some genuine run activities.
Occasionally I won’t play football on a Monday, and I&#39;ll instead go for a run.
I&#39;ve also started to sometimes do a short warm-up run around the park before playing football.
In both these cases, these runs are mistakenly hidden.&lt;/p&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-black&quot;&gt;
  &lt;strong&gt;Note:&lt;/strong&gt; I now log football workouts separately to runs, in their own Google Sheet. However, this is a manual copy-over process at the moment. For historical data, and in case I miss any activities, I&#39;ve kept the above logic in place.
&lt;/aside&gt;
&lt;p&gt;I wanted to do a small refinement of the “Monday” logic - a simple tweak.
But as all coders know, sometimes a simple tweak is not a simple tweak.
And sometimes, it’s an opportunity for a good old-fashioned refactor.&lt;/p&gt;
&lt;h2&gt;The tweak&lt;/h2&gt;
&lt;p&gt;Currently, I have logic where I check the day of the activity, if it was a Monday, zero out the duration when summing the run data for a given year and week:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;running&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; run &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My idea was to refine this logic to check a) that the day was Monday and b) that the hour was 9pm.
Yes, I could potentially start a run between 9 and 10pm, but this was much less likely in my schedule than running at any point on a Monday.&lt;/p&gt;
&lt;p&gt;New code:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;running&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getHours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;21&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; run &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sorted. Except, for one reason or another, I didn’t have the full timestamp from my Strava data.
I was converting the activity timestamp to a zero-timed date (midnight).
This was happening in my rather clumsily-written method &lt;code&gt;getStravaData&lt;/code&gt;, which retrieves Strava activity data from a variety of different Google Sheets:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/strava.js&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getStravaData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1MM6EkFB0*************ZqseynEQhg&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// walk&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1xSMO-Eeb*************_GGsEl9lnQ&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// run&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1wa3f5U4C*************nMzX-Oajd8&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// workouts&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1ygT11IY7*************YCIm-IZn7U&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ride&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1E18DfjVV*************Sp1heCmq1A&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// swim&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimDataByDate&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; row&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; d &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39; at&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Activity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;distance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimDataByDate &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This parses the date/time string format “Feb 9, 2021 at 9:06AM”, removes the time portion and constructs a new &lt;code&gt;Date&lt;/code&gt; object.
It then groups by this, grouping activities on the same day together.&lt;/p&gt;
&lt;p&gt;This made doing lookups and summing durations of activities on a particular day (or week) fairly trivial.
If I modify this logic to include the time as well, I’ll lose the day-grouping functionality I’d put in place.
The solution?
A good old fashioned refactor.&lt;/p&gt;
&lt;h2&gt;Smelling the code&lt;/h2&gt;
&lt;p&gt;Sometimes the need for a refactor is obvious - you want to achieve something which you can’t do in your current code without reworking it.
Sometimes it’s just a whiff of something in your code.
Like this:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1MM6EkFB0*************ZqseynEQhg&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// walk&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1xSMO-Eeb*************_GGsEl9lnQ&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// run&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1wa3f5U4C*************nMzX-Oajd8&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// workouts&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1ygT11IY7*************YCIm-IZn7U&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ride&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1E18DfjVV*************Sp1heCmq1A&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// swim&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Why was I waiting for each spreadsheet to download sequentially using &lt;code&gt;await&lt;/code&gt;?
Node has asynchronous capabilities but right in and I wasn’t utilising it.&lt;/p&gt;
&lt;p&gt;A tweak to use &lt;code&gt;await Promise.all([..])&lt;/code&gt; instead of separate &lt;code&gt;await&lt;/code&gt;s gave a nice speed boost to the code and was a nice quick, early win to gather momentum on the refactor.
&lt;code&gt;Promise.all&lt;/code&gt; will wait for all promises in the array to complete, but will preserve the order of the original array (a key feature as will be clearer later).
The new code:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; Promise&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1MM6EkFB0*************ZqseynEQhg&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// walk&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1xSMO-Eeb*************_GGsEl9lnQ&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// run&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1wa3f5U4C*************nMzX-Oajd8&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// workouts&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1ygT11IY7*************YCIm-IZn7U&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ride&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;getSpreadsheetData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1E18DfjVV*************Sp1heCmq1A&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// swim&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The next smell was figuring out exactly why the data needed to be grouped by date - something I needed to change.
The original use for the fitness data was on my feed page.
I’m displaying the total distance run and walked for each week.&lt;/p&gt;
&lt;p&gt;When constructing my feed, before grouping by week, I collate all the daily data.
I had the following code:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getStravaData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

rows&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;day&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walkDistance&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;runDistance&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;total&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; activity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; total &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; activity&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;distance&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Far from being the most obvious code to read, the code relies on being able to retrieve all the walk and run activities for a given day, and sums together the duration (before later being grouped by week and summed again).
If the meaning of code isn’t immediately obvious, it’s a good candidate for refactoring.&lt;/p&gt;
&lt;p&gt;The second use of &lt;code&gt;getStravaData&lt;/code&gt; in my codebase was on the fitness page, populated by the fitness data file.
It was here I noticed I was doing something really funky:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/fitness.js&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimDataByDate &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getStravaData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; dates &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; weeklyDataByYear &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Array&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dates&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;d&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice the &lt;code&gt;dates&lt;/code&gt; array I’m building up.
To process all the data stored in the &lt;code&gt;walkDataByDate&lt;/code&gt;, &lt;code&gt;runDataByDate&lt;/code&gt; variables, I was calculating an approximate list of all the dates by concatenating the keys from the walk and run data objects and passing them into a &lt;code&gt;Set&lt;/code&gt; to get unique values only.
I then iterated over this dates array with &lt;code&gt;reduce&lt;/code&gt; to build up a hash of activity totals grouped by year, week and activity.&lt;/p&gt;
&lt;p&gt;It’s unclear, unnecessary and somewhat butchering the point of using an object over a simple array.
And here is the full reduce callback logic:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; week&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; year &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;weekNumberYear&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walk&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; run&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; football&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ride&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swim&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimDataByDate&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;total&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; activity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; total &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; activity&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;distance&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;walking&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;running&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;running&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; run &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walking&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; walk &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;other&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;football &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; ride &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; swim&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This could be simplified.&lt;/p&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-black&quot;&gt;
💡 &lt;strong&gt;Note&lt;/strong&gt; &lt;code&gt;yearTemplate&lt;/code&gt; is a helper function which constructs a hash containing keys for every week in a given year, and assigns the value of 0 to each.
&lt;/aside&gt;
&lt;h2&gt;Rework and simplify&lt;/h2&gt;
&lt;p&gt;First, we don’t need to work with objects from our Strava data.
It’s much easier to use arrays we can reason with and more easily loop over.&lt;/p&gt;
&lt;p&gt;Removing the grouping and simplifying the variable names changes our Strava data file above to this:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/strava.js&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; Promise&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walkData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimData&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;activities&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; activities&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;row&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; t&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39; at &#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; time &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;convertTo24Hours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; date &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;d&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;time&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Activity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;distance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimData &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I was able to remove the the repetitive &lt;code&gt;byDate&lt;/code&gt; suffix from the keys in the return data which gives the code more room to breathe.
Next, I was able to replace the clunky &lt;code&gt;reduce&lt;/code&gt; with a simple &lt;code&gt;map&lt;/code&gt;.
It takes the raw data and converts it into an &lt;code&gt;Activity&lt;/code&gt; object encapsulating a date and a distance - the only 2 metrics we’re concerned about.&lt;/p&gt;
&lt;p&gt;Finally, we’ll ensure we’re using the full date and time recorded in the activity.
To calculate the time, I extracted a new method: &lt;code&gt;convertTo24Hours&lt;/code&gt;.
This converts a time like “5:47PM” into the 24-hour format “17:47”:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;convertTo24Hours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;hours&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; mins&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;:&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;parseInt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;n&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; period &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hours24 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; period &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;PM&#39;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; hours &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; hours &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;period &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;AM&#39;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; hours &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; hours&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;hours24&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mins&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we’re working with a simple array of activities, in our fitness data file we can retrieve the new arrays and refactor the &lt;code&gt;reduce&lt;/code&gt; behemoth to something hopefully a little more readable:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/fitness.js&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footballData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimData &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getStravaData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fitnessData &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;walking&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; walkData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;running&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; runData&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;isFootball&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;footballData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rideData&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; swimData&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;flat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; weeklyDataByYear &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;entries&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fitnessData&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;type&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; activities&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  activities&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; date &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; cutoff&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; distance &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; week&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; year &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;weekNumberYear&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;walking&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;running&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yearTemplate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    hash&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;type&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; distance &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First we make it clear what data we want to display (walking, running &amp;amp; other) and what sources of activities it’s comprised of.
We store this in an an easy-to-read object called &lt;code&gt;fitnessData&lt;/code&gt;.
We then convert this into key-value pairs using &lt;code&gt;Object.entries&lt;/code&gt; so we can &lt;code&gt;reduce&lt;/code&gt; it down to an object.&lt;/p&gt;
&lt;p&gt;For the &lt;code&gt;reduce&lt;/code&gt; logic, we already have the different fitness types filtered down (running, walking, other), so it can be simplified considerably, essentially into 3 main parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get the year of the activity&lt;/li&gt;
&lt;li&gt;Get the week of the activity&lt;/li&gt;
&lt;li&gt;Sum the activity’s duration within that year/week&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There’s a little extracted bit of logic in the form of the &lt;code&gt;isFootball&lt;/code&gt; function.
This uses the new logic I posted above:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;isFootball&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getHours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Fixing the feed&lt;/h2&gt;
&lt;p&gt;Since reworking the format of the &lt;code&gt;getStravaData&lt;/code&gt; method in the Strava data file (from returning an object to an array), the feed is now broken.
However, as is often the case with a good refactor, this was a blessing in disguise.&lt;/p&gt;
&lt;p&gt;It provided an opportunity to tidy up and remove some duplicate logic, simplifying the file.&lt;/p&gt;
&lt;p&gt;I made a tweak to the fitness data file above to export the &lt;code&gt;weeklyDataByYear&lt;/code&gt; object, in addition to the &lt;code&gt;totalsByYear&lt;/code&gt; method used by the charts on the fitness page:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/fitness.js&lt;/span&gt;

module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; weeklyDataByYear &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; totalsByYear &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; weeklyDataByYear&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; totalsByYear &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The data contained in this object is tailor-made for the feed.
It replaces the need to import individual run and walk data.
So instead of importing the Strava data file, we can import the fitness data file:&lt;/p&gt;
&lt;pre class=&quot;language-diff-js&quot;&gt;&lt;code class=&quot;language-diff-js&quot;&gt;&lt;span class=&quot;token unchanged language-js&quot;&gt;&lt;span class=&quot;token prefix unchanged&quot;&gt; &lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// _data/feed.js&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; getStravaData &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;./strava&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fitness &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;./fitness&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;token unchanged language-js&quot;&gt;&lt;span class=&quot;token prefix unchanged&quot;&gt; &lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getStravaData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; weeklyDataByYear &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fitness&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this data, I was able to remove the reduce statement which summed the data per day:&lt;/p&gt;
&lt;pre class=&quot;language-diff-js&quot;&gt;&lt;code class=&quot;language-diff-js&quot;&gt;&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; rows&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;day&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt;   &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walkDistance&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;runDistance&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;walkDataByDate&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; runDataByDate&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt;     &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;total&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; activity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; total &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; activity&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;distance&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And replace the weekly calculation of total distance walked and run with a simple retrieval:&lt;/p&gt;
&lt;pre class=&quot;language-diff-js&quot;&gt;&lt;code class=&quot;language-diff-js&quot;&gt;&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;totalDistance&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;activities&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt;   &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;activities&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;total&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; dist&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; total &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; dist&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; walks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; entries&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; e&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walkDistance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; e&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walkDistance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; walks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; weeklyDataByYear&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;walking&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; runs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; entries&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; e&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; e&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;runDistance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; e&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;runDistance&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; runs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; weeklyDataByYear&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;running&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;token unchanged language-js&quot;&gt;&lt;span class=&quot;token prefix unchanged&quot;&gt; &lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token prefix unchanged&quot;&gt; &lt;/span&gt;   &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt;   &lt;span class=&quot;token literal-property property&quot;&gt;walk_distance&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; walks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;totalDistance&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;walks&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt;   &lt;span class=&quot;token literal-property property&quot;&gt;walk_distance&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;walks &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token deleted-sign deleted language-js&quot;&gt;&lt;span class=&quot;token prefix deleted&quot;&gt;-&lt;/span&gt;   &lt;span class=&quot;token literal-property property&quot;&gt;run_distance&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; runs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;totalDistance&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;runs&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token inserted-sign inserted language-js&quot;&gt;&lt;span class=&quot;token prefix inserted&quot;&gt;+&lt;/span&gt;   &lt;span class=&quot;token literal-property property&quot;&gt;run_distance&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;runs &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token unchanged language-js&quot;&gt;&lt;span class=&quot;token prefix unchanged&quot;&gt; &lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Code and logic simplified.
Duplication removed.
Fewer places for bugs to hide.&lt;/p&gt;
&lt;h2&gt;In summary&lt;/h2&gt;
&lt;p&gt;Here’s what my refactoring achieved:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix the bug that was causing some runs to be hidden&lt;/li&gt;
&lt;li&gt;Simplify the fitness logic in my feed script&lt;/li&gt;
&lt;li&gt;Simplify the logic in my Strava script&lt;/li&gt;
&lt;li&gt;Improve the readability of my fitness script&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you can fix a bug quickly and succinctly, often that’s the best thing to do.
But sometimes, especially when the solution is intertwined with other areas of the codebase, it’s best to take a step back and review the code.&lt;/p&gt;
&lt;p&gt;Could other code be rewritten and simplified in order to fix the bug.
As well-renowned software engineer Kent Beck famously once said, &amp;quot;for each desired change, make the change easy (warning: this may be hard), then make the easy change”.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Sleep: the war wages on</title>
    <link href="https://samdking.co.uk/blog/sleep-war-wages-on/"/>
    <updated>2023-04-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/sleep-war-wages-on/</id>
    <content type="html">&lt;p&gt;In February I shared how my attempt to improve my sleep was going &lt;a href=&quot;/blog/sleep-how-its-going/&quot;&gt;so far this year&lt;/a&gt;. &lt;abbr title=&quot;Too long; didn&#39;t read&quot;&gt;TL;DR&lt;/abbr&gt;: not great. I pondered my hang-ups and set some targets to improve things. Now, at the beginning of April, I&#39;m checking in on the first quarter of the year.
&lt;/p&gt;&lt;p&gt;As a reminder, in January I had 20 OK bedtimes, 10 bad ones and 1 danger-zone.
In summary: nothing before 11:15pm.
Check the key in the &lt;a href=&quot;https://samdking.co.uk/blog/sleep-how-its-going/#key-timings&quot;&gt;original post&lt;/a&gt; for timing definitions on the below ratings.&lt;/p&gt;
&lt;h2&gt;My progress in February&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;th&gt;Days&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#DBEDDB] px-2 py-1 rounded&quot;&gt;Excellent&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FDECC8] px-2 py-1 rounded&quot;&gt;Good&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FADEC9] px-2 py-1 rounded&quot;&gt;OK&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FFE2DD] px-2 py-1 rounded&quot;&gt;Bad&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#EEE0DA] px-2 py-1 rounded&quot;&gt;Danger zone&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Improving.
But still a tonne of past-11pm bedtimes.
I was still very much treating 11pm as the target and then falling slightly (occassionally significantly) short.&lt;/p&gt;
&lt;p&gt;The 10:30pm digital curfew was tenuously stuck to, but improved once I enabled Focus Mode and blocked out offending apps on my phone.&lt;/p&gt;
&lt;h2&gt;My progress in March&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;th&gt;Days&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#D4E5EF] px-2 py-1 rounded&quot;&gt;Outstanding&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#DBEDDB] px-2 py-1 rounded&quot;&gt;Excellent&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FDECC8] px-2 py-1 rounded&quot;&gt;Good&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FADEC9] px-2 py-1 rounded&quot;&gt;OK&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FFE2DD] px-2 py-1 rounded&quot;&gt;Bad&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#EEE0DA] px-2 py-1 rounded&quot;&gt;Danger zone&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Better still.
I even had to invent a new time category: Outstanding (10:00-10:15pm).&lt;/p&gt;
&lt;p&gt;I had a mini-breakthrough towards the end of March:
11pm should not be the target.
10pm should be the target; the holy grail.
I know I&#39;m never going to hit 10, at least not for a while, but beginning to wind down then is the key.&lt;/p&gt;
&lt;p&gt;For the final 8 days of March, 6 times I managed a bedtime of 11pm or earlier.&lt;/p&gt;
&lt;h2&gt;My demons&lt;/h2&gt;
&lt;p&gt;As with anything worth having in life, you generally can&#39;t flick a switch.
Meaningful change takes struggle and effort.
Especially if it means changing a core personality trait.&lt;/p&gt;
&lt;p&gt;I am still my most animated self in the evening.
My most creative self.
But that&#39;s not to say I can&#39;t change, maybe even discover a better me in the morning.&lt;/p&gt;
&lt;p&gt;Now I tell myself I want to be the person who goes to bed early.
Staying up late is so entrenched in my psyche that being in bed at 10.30pm feels like I&#39;ve cheated the system.
I feel smug that I&#39;ve outsmarted myself somehow.
I need to bottle this feeling and use it to convince my brain to reprogram an old habit.&lt;/p&gt;
&lt;h2&gt;It&#39;s going to be hard&lt;/h2&gt;
&lt;p&gt;Despite seeing progress at night, getting up has been just as hard.
I&#39;ve not made any substantial changes here in terms of wake-up, and I&#39;ve not felt any difference in how I feel.&lt;/p&gt;
&lt;p&gt;But I&#39;m not expecting it at the moment.
I recognise that this is a gradual shift.&lt;/p&gt;
&lt;h2&gt;Three quarters the year to go&lt;/h2&gt;
&lt;p&gt;So where does that leave the rest of 2023?
I&#39;ve had a mini-breakthrough in the fist quarter, but can I stay the course?
Who knows, but I&#39;m excited to try.&lt;/p&gt;
&lt;p&gt;My next check-in will probably be at the end of June. Wish me luck.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Using Google Sheets as a data source in Eleventy</title>
    <link href="https://samdking.co.uk/blog/using-google-sheets-as-data-source-eleventy/"/>
    <updated>2023-03-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/using-google-sheets-as-data-source-eleventy/</id>
    <content type="html">&lt;p&gt;In &lt;a href=&quot;/blog/sync-your-letterboxd-film-data-with-eleventy/&quot;&gt;part one&lt;/a&gt;, we used a script to setup to sync our transient Letterboxd RSS feed to Google Sheets for some permenance. In part two we&#39;ll look into reading this spreadsheet and outputting the data onto a page using Eleventy. Then we&#39;ll take a look at the underlying class doing all the work: &lt;code&gt;CachedSpreadsheet&lt;/code&gt;.&lt;/p&gt;&lt;h2&gt;Bringing the data to life in Eleventy&lt;/h2&gt;
&lt;p&gt;After syncing your Letterboxd RSS feed with Google Sheets, you should have a spreadsheet full of data to output onto a page in Eleventy.&lt;/p&gt;
&lt;p&gt;Here is how I read the film and organise data in the Google Sheet and render it using Eleventy:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// _data/films.js&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; weekNumberYear &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;weeknumber&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; timeAgo &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;node-time-ago&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; CachedSpreadsheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;../../src/cached-spreadsheet&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; films &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;CachedSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;&amp;lt;SHEET ID&gt;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; reviews &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; films&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; reviews&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;film&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;watched&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; date &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;watched&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;obj&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; film&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;timeAgo &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;timeAgo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; year &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;weekNumberYear&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    obj&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; obj&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    obj&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; obj&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I read the data in the sheet into an array using the &lt;code&gt;sheet()&lt;/code&gt; method on the &lt;code&gt;CachedSpreadsheet&lt;/code&gt; object. I then filter the array, sort the array by date, and reduce it into an hash grouped by year. This is done in a &amp;quot;data file&amp;quot; in Eleventy, meaning we can access this date from any template by calling the name of the file as a variable: &lt;code&gt;films&lt;/code&gt;.&lt;/p&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-black&quot;&gt;
  💡 &lt;strong&gt;Note:&lt;/strong&gt; I use the `weeknumber` NPM package here to get the _ISO week-numbering year_, rather than the actual year. The ISO year contains 52 or 53 full weeks (364 or 371 days instead of the usual 365 or 366 days). This is so it plays nicely with my &lt;a href=&quot;https://samdking.co.uk/feed/&quot;&gt;weekly feed&lt;/a&gt;.
&lt;/aside&gt;
&lt;p&gt;Then in my Nunjucks template:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;
// films.njk

---
layout: layout.liquid
eleventyComputed:
  title: &quot;Films watched in {{ year }}&quot;
  metaDescription: &quot;A collation of films I watched and reviewed in {{ year }}, pulled from my Letterboxd diary.&quot;
pagination:
  data: films
  size: 1
  alias: year
  reverse: true
permalink: &quot;films/{{ year | slug }}/&quot;
---

{% import &#39;macros/years.njk&#39; as &#39;macros&#39; %}

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-3xl md:text-4xl font-extrabold mb-4&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;{{ title }}&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

{{ macros.yearsNav(pagination) }}

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;space-y-8&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  {% for film in films[year] %}
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-xl mb-3 font-bold&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ film.url }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;My Letterboxd review of {{ film.name }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
          {{ film.title }}
        &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;flex gap-4 md:gap-6&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
        {% if film.posterImage %}
          &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;basis-1/3 md:basis-1/4 self-start&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
            {% image film.posterImage, film.title, loop.index0 &gt; 0 %}
          &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
        {% endif %}
        &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;basis-2/3&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-lg mb-3 md:w-4/5 before:text- before:text-slate-500 before:mr-1 after:ml-1 after:text-slate-500 after:text- before:content-[&#39;“&#39;] after:content-[&#39;”&#39;]&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
            {{- film.description -}}
          &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;time&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ film.watched }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text-sm block text-slate-700&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;{{ film.timeAgo }}&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;time&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  {% endfor %}
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We use &amp;quot;pagination&amp;quot; in Eleventy with a size of 1 to produce a URL for each year I have film data for, e.g. &lt;code&gt;/films/2023/&lt;/code&gt;, &lt;code&gt;/films/2022/&lt;/code&gt;, showing the films watched that particular year. This works because the &lt;code&gt;films&lt;/code&gt; variable is populated with a hash of films by year.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/film-page.png&quot; alt=&quot;Films page in Eleventy displaying data parsed from Google Sheet&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now, let’s dig into the &lt;code&gt;CachedSpreadsheet&lt;/code&gt; class under the hood and see what’s going on.&lt;/p&gt;
&lt;h2&gt;Setting the scene&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;CachedSpreadsheet&lt;/code&gt; class is instantiated with a unique spreadsheet ID, which can be found in the Google Sheet URL (URL part after the /d/ and before the /edit):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/google-sheet-id.png&quot; alt=&quot;Address bar in Google Chrome showing Google Sheet webpage&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The constructor for this class is pretty basic:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token function&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;spreadsheetId&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheetId &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; spreadsheetId&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The most significant method on the class is &lt;code&gt;sheet&lt;/code&gt;, which retrieves a cached array of the data contained in the Google Sheet. For the sake of simplicity in this blog post, we’ll assume we’re only dealing with single-sheet spreadsheets. The full definition for the &lt;code&gt;sheet&lt;/code&gt; method is as follows:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;customFields &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;AssetCache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;spreadsheet-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheetId&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;isCacheValid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1h&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getCachedValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loadSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sheetsByIndex&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;fresh spreadsheet cache: &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; (&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; rows &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getRows&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fields &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; customFields &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;headerValues&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; rows&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;row&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fromEntries&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fields&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;f&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;f&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We make use of the &lt;code&gt;AssetCache&lt;/code&gt; class in the &lt;code&gt;@11ty/eleventy-fetch&lt;/code&gt; library for caching data retrieved from the Google Sheet. Really this just speeds up development where you want to avoid multiple read calls to a Google Sheet that hasn’t changed.&lt;/p&gt;
&lt;p&gt;We initialise a new &lt;code&gt;AssetCache&lt;/code&gt; object, passing it a unique identifier, made up of the prefix &lt;code&gt;spreadsheet-&lt;/code&gt;, followed by the spreadsheet ID.&lt;/p&gt;
&lt;p&gt;If the cache is valid for this key, i.e. the data has been cached previously, within the defined cache expiry duration (in this case 1 hour), we can return the cached value and exit the method early. No spreadsheet interaction required at all:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;AssetCache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;spreadsheet-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheetId&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;isCacheValid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1h&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getCachedValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 p-6 text-black&quot;&gt;
💡 &lt;strong&gt;Note:&lt;/strong&gt; The cache duration used here is arbitrary. We’re free to use a more aggressive caching duration, like a day or longer, but it entirely depends on your usage. A small number simply acts as a throttle when hitting the rate-limited Google Sheets API, which you’ll likely hit in development.
&lt;/aside&gt;
&lt;p&gt;If the cache has expired, we load the spreadsheet into memory by calling the async &lt;code&gt;loadSpreadsheet&lt;/code&gt; method, and waiting for it to complete, using &lt;code&gt;await&lt;/code&gt;. Here’s how this method looks:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;GoogleSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheetId&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;useServiceAccountAuth&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;client_email&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;GOOGLE_SERVICE_ACCOUNT_EMAIL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;private_key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Buffer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;GOOGLE_PRIVATE_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;base64&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loadInfo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we have our first interaction with the &lt;code&gt;GoogleSpreadsheet&lt;/code&gt; class, a class provided by the &lt;a href=&quot;https://theoephraim.github.io/node-google-spreadsheet&quot;&gt;google-spreadsheet&lt;/a&gt; NPM package.&lt;/p&gt;
&lt;p&gt;The first thing &lt;code&gt;loadSpreadsheet()&lt;/code&gt; does is guard against repeated calls to this method, by returning early if a &lt;code&gt;GoogleSpreadsheet&lt;/code&gt; instance has already been instantiated. Otherwise, we instantiate an object, passing it the Google Sheet ID.&lt;/p&gt;
&lt;p&gt;Next, the class requires we authenticate.&lt;/p&gt;
&lt;h2&gt;Accessing the sheet&lt;/h2&gt;
&lt;p&gt;The Google Spreadsheet NPM package offers 3 different ways to authenticate. For my needs, and reportedly what most projects use, a “Service Account” with Google is the way to go. A service account connects as a specific &amp;quot;bot&amp;quot; user generated specifically for your application.&lt;/p&gt;
&lt;p&gt;First, though, you’ll need to go to your &lt;a href=&quot;https://console.developers.google.com/&quot;&gt;Google Developers Console&lt;/a&gt; and enable the Sheets API. Select your project or create a new one. Then enable the Sheets API for your project.&lt;/p&gt;
&lt;p&gt;You’ll then need to create a service user by going to Credentials, clicking “Create Credentials”  and selecting “Service Account”. For full instructions on how to setup a service account, visit the &lt;a href=&quot;https://theoephraim.github.io/node-google-spreadsheet/#/getting-started/authentication&quot;&gt;Authentication section&lt;/a&gt; of the package docs.&lt;/p&gt;
&lt;p&gt;You should come out of this process with a JSON key file, which you should download and store locally. You’ll need a way to import this file into your app in development and production. I chose to do this using environment variables.&lt;/p&gt;
&lt;p&gt;You could store the entire JSON strong in an environment variable and parse it in your app, but Google Spreadsheet NPM package only requires the client_email and private_key values from the JSON object, so that’s all I store. In development, I use an .env file which looks like this (values removed):&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token constant&quot;&gt;GOOGLE_SERVICE_ACCOUNT_EMAIL&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;token constant&quot;&gt;GOOGLE_PRIVATE_KEY&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-black&quot;&gt;
💡 Check out the &lt;a href=&quot;https://docs.netlify.com/configure-builds/environment-variables/&quot;&gt;Build Environment Variables&lt;/a&gt; documentation for how to define environment variables in production if you&#39;re using Netlify.
&lt;/aside&gt;
&lt;p&gt;In Eleventy, we can read these values from &lt;code&gt;process.env.GOOGLE_SERVICE_ACCOUNT_EMAIL&lt;/code&gt; and &lt;code&gt;process.env.GOOGLE_PRIVATE_KEY&lt;/code&gt;, like so:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;useServiceAccountAuth&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;client_email&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;GOOGLE_SERVICE_ACCOUNT_EMAIL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;private_key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Buffer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;GOOGLE_PRIVATE_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;base64&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;bg-orange-200 my-8 -mx-6 px-6 py-5 text-black&quot;&gt;
💡 &lt;strong&gt;Note:&lt;/strong&gt; we store the private key as a base64-encoded string in the environment variable. This is so we don’t need to worry about escaping or unescaping any new lines. We use the Buffer class in Node to decode it before using it.
&lt;/aside&gt;
&lt;p&gt;We then pass these credentials into the &lt;code&gt;useServiceAccountAuth&lt;/code&gt; method on the &lt;code&gt;GoogleSpreadsheet&lt;/code&gt; object. We’ll &lt;code&gt;await&lt;/code&gt; a response, then call &lt;code&gt;loadInfo()&lt;/code&gt; which loads the document properties and worksheets.&lt;/p&gt;
&lt;h2&gt;Retrieving rows and persisting the cache&lt;/h2&gt;
&lt;p&gt;With the spreadsheet loaded in memory, we can start interacting with the data in the sheet. We retrieve the first sheet by calling &lt;code&gt;sheetsByIndex[0]&lt;/code&gt; on the &lt;code&gt;GoogleSpreadsheet&lt;/code&gt; instance. On the resultant sheet, calling &lt;code&gt;getRows()&lt;/code&gt; will then give us an array of row data.&lt;/p&gt;
&lt;p&gt;We’ll also do some helpful console logging to provide progress updates when building the site in Eleventy:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sheetsByIndex&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;fresh spreadsheet cache: &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; (&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; rows &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getRows&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The data isn’t yet in a nicely formatted key/value hash, so we have to loop over the array and build objects using &lt;code&gt;Object.fromEntries&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fields &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; customFields &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; sheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;headerValues&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; rows&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;row&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fromEntries&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fields&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;f&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;f&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;customFields&lt;/code&gt; is an optional array argument we can provide when calling the &lt;code&gt;sheet&lt;/code&gt; method. If not provided, we’ll grab all the columns from the Google Sheet using the &lt;code&gt;headerValues&lt;/code&gt; property on the sheet object. It will automatically determine the columns from the values in the first row of the sheet.&lt;/p&gt;
&lt;p&gt;Once we have the data, we’ll do 2 things with it. Persist it to the cache (and &lt;code&gt;await&lt;/code&gt; a response), and return it:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Writing data to the sheet&lt;/h2&gt;
&lt;p&gt;The second role of &lt;code&gt;CachedSpreadsheet&lt;/code&gt; is to write data to the Google Sheet. The definition for this is fairly straight forward:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeRow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loadSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sheetsByIndex&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addRow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;clearCache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sheet&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First, as with reading data, we ensure the Google Sheet has been loaded into memory with &lt;code&gt;loadSpreadsheet()&lt;/code&gt;. We then grab the first sheet, using &lt;code&gt;sheetsByIndex[0]&lt;/code&gt;, and call the &lt;code&gt;addRow&lt;/code&gt; method, passing it a hash of the data we want to add to the sheet.&lt;/p&gt;
&lt;p&gt;Finally, we clear the cache, so subsequent read requests will be forced to retrieve the updated sheet afresh.&lt;/p&gt;
&lt;h2&gt;Clearing the cache&lt;/h2&gt;
&lt;p&gt;At the time I wrote this, there was no way to manually purge the stored asset cache in the &lt;code&gt;@11ty/eleventy-fetch&lt;/code&gt; package (this may be possible now). As the cached data is stored in the file system, under .cache, we can manually purge the cache by deleting the relevant files. That’s what we do in the &lt;code&gt;clearCache()&lt;/code&gt; method:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token function&quot;&gt;clearCache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cachePath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getCachedContentsPath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;existsSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;unlinkSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;unlinkSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are 2 files associated with a cached asset, the configuration, and the JSON data itself. We need to delete both. The former can be identified by the &lt;code&gt;cachePath&lt;/code&gt; property on the &lt;code&gt;AssetCache&lt;/code&gt; object (stored on the class in the &lt;code&gt;this.cache&lt;/code&gt; property). And the latter, by calling &lt;code&gt;getCachedContentsPath(&amp;quot;json&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We remove both these files, using the &lt;code&gt;unlinkSync&lt;/code&gt; method on the &lt;code&gt;fs&lt;/code&gt; file system package (built in to Node). We check to see if the configuration file exists first, i.e. the spreadsheet has been previously cached, using &lt;code&gt;existsSync&lt;/code&gt; to avoid an error.&lt;/p&gt;
&lt;h2&gt;To sum up&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;CachedSpreadsheet&lt;/code&gt; class has 3 main roles: retrieving data, caching data and writing new data. Encapsulating these 3 functions within a single utility class makes the interaction with a Google Sheet a nice, smooth experience in Eleventy. It also provides an abstraction to the underlying package.&lt;/p&gt;
&lt;p&gt;On my site, I have multiple Google Sheets integrations, all individually cached, read and written to/from via the various sync scripts I have. Examples include &lt;a href=&quot;https://samdking.co.uk/blog/sync-your-letterboxd-data-with-eleventy/&quot;&gt;Letterboxd film data&lt;/a&gt;, TV Maze episode data and Spotify podcast data.&lt;/p&gt;
&lt;p&gt;The whole process, end-to-end, for syncing film data, looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check films I’ve watched in my Letterboxd RSS feed&lt;/li&gt;
&lt;li&gt;Sync any new ones to a Google Sheet&lt;/li&gt;
&lt;li&gt;Read and cache the data from the Google Sheet in a data file in Eleventy&lt;/li&gt;
&lt;li&gt;Render a page for each year of film data, outputting the film name, rating, review &amp;amp; poster&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What next?&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;CachedSpreadsheet&lt;/code&gt; class isn’t perfect. For one, it’s not tested. Due to its tight coupling with environment data and the GoogleSpreadsheet class, it would be tricky to test.&lt;/p&gt;
&lt;p&gt;In part 3 of this mini-series of posts, I’m going to refactor and write tests for this class. I am by no means an expert in testing in the Node world, so I’ll be learning as I go. Join me!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Sync your Letterboxd film data with Google Sheets &amp; Eleventy</title>
    <link href="https://samdking.co.uk/blog/sync-your-letterboxd-film-data-with-eleventy/"/>
    <updated>2023-03-01T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/sync-your-letterboxd-film-data-with-eleventy/</id>
    <content type="html">&lt;p&gt;&lt;p&gt;I like watching films, and I like keeping track of what I watch. I’ve done this for some years via Letterboxd, a decent little app for accomplishing this task, including reviewing what you watch and keeping a to-watch list.&lt;/p&gt;
&lt;p&gt;I wanted to integrate with Letterboxd on my website so I could “own” my reviews in case the service went kaput. That lead me to 2 options: integrate with their API, or consume the personalised XML feed URL they provide.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;Unfortunately, their API is invite-only and hasn’t seen a lot of movement. After Googling around, I quickly discounted this as a viable option. The second is simple and useful enough - a basic XML feed of your last 50 reviews - but it is limited, with no option for viewing beyond your last 50.&lt;/p&gt;
&lt;p&gt;Letterboxd does apparently offer a third option of exporting your data to CSV. But this is a manual operation to keep synced and one I wanted to avoid.&lt;/p&gt;
&lt;h2&gt;My solution&lt;/h2&gt;
&lt;p&gt;Instead of consuming the RSS feed directly, limiting me to my last 50 reviews, here&#39;s what I ended up doing:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Before building my static site, run a sync-letterboxd.js script&lt;/li&gt;
&lt;li&gt;This script requests and parses the latest XML file of my recently watched movies&lt;/li&gt;
&lt;li&gt;It stores new entries in a Google Sheet (new = not found in the sheet)&lt;/li&gt;
&lt;li&gt;Eleventy parses the Google Sheet to display all my watched films&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Why Google Sheets?&lt;/h2&gt;
&lt;p&gt;A spreadsheet is typically a poor way to store data you may want to query. However, as I’m using Eleventy, a static-site generator, I don’t necessarily need to &lt;em&gt;query&lt;/em&gt; this data, I simply need to retrieve all entries and pass that data into a template to build. So, it’s actually quite efficient at that.&lt;/p&gt;
&lt;p&gt;Add to that the benefits Google Sheets offers - easy to share, modify, export, etc.&lt;/p&gt;
&lt;p&gt;I use the &lt;code&gt;google-spreadsheet&lt;/code&gt; NPM package to read and write rows in an intuitive way.&lt;/p&gt;
&lt;h2&gt;The sync script&lt;/h2&gt;
&lt;p&gt;Firstly, what libraries am I importing?&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; CachedSpreadsheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;../src/cached-spreadsheet&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; EleventyFetch &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;@11ty/eleventy-fetch&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; xml2js &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;xml2js&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; parse &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;node-html-parser&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; dotenv &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;dotenv&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;CachedSpreadsheet&lt;/code&gt; is a helper class I wrote for abstracting the interaction with cached data from a Google Sheet.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;eleventy-fetch&lt;/code&gt; is an official Eleventy package that allows me to easily fetch and cache the Letterboxd URL. I cache this for a week as that’s how often I update the weekly data feed on my site.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xml2j&lt;/code&gt; is a utility package for easily parsing the XML Letterboxd feed into a Javascript object&lt;/p&gt;
&lt;p&gt;&lt;code&gt;node-html-parser&lt;/code&gt; is used for parsing the HTML snippet embedded in the XML which represents the review description.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dotenv&lt;/code&gt; allows me to use an .env file to store environment data such as API keys (for accessing the Google Sheets API).&lt;/p&gt;
&lt;h3&gt;The main function&lt;/h3&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;syncLetterboxd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; spreadsheet &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;CachedSpreadsheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;&amp;lt;SHEET ID&gt;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; importer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FilmImporter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; importer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;downloadRssFeed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; storedFilms &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fromEntries&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; spreadsheet&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;film&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; film&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; newFilms &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; importer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;reviews&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;film&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; storedFilms&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;link&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;newFilms&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; newFilms&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; importer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFilmData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;newFilms&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;Nothing to sync. Spreadsheet is up to date.&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First we grab an instance of the the cached films Google Sheet, identified by the sheet ID. The sheet ID can be extracted from the URL of your Google Sheet in the browser. &lt;code&gt;CachedSpreadsheet&lt;/code&gt;&#39;s default caching duration is 1 hour, but there’s no rhyme or reason to this number; it was merely picked to minimise requests to the Google API during development.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;CachedSpreadsheet&lt;/code&gt; makes use of the &lt;code&gt;eleventy-fetch&lt;/code&gt; package mentioned earlier to store the spreadsheet data in the .cache directory of the app. More on this later.&lt;/p&gt;
&lt;p&gt;Next we initialise a custom class - &lt;code&gt;FilmImporter&lt;/code&gt;, passing it the CachedSpreadsheet object.&lt;/p&gt;
&lt;p&gt;We then make a call to download the RSS feed from Letterboxd, waiting for the HTTP response before continuing, &lt;code&gt;await&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Next, we build a dictionary of stored films in the sheet (identified by the Letterboxd review URL). Then we loop over the films imported from the XML, and disregard those found in the Google Sheet, storing the result in a &lt;code&gt;newFilms&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;Finally, if &lt;code&gt;newFilms&lt;/code&gt; is not empty, we loop over it, and synchronously write each film to the Google Sheet as a new row.&lt;/p&gt;
&lt;p&gt;If there are no new films to sync, we output a message that the spreadsheet is up to date, for peace of mind.&lt;/p&gt;
&lt;h3&gt;Downloading the RSS feed&lt;/h3&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;downloadRssFeed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; letterboxd &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;EleventyFetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;https://letterboxd.com/samdking/rss/&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;duration&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1d&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; feed &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; xml2js&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;parseStringPromise&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;letterboxd&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;reviews &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; feed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rss&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;channel&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;item&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;eleventy-fetch&lt;/code&gt; package makes this simple. We make a call to my Letterboxd RSS feed URL, indicating we want to cache the response for 1 day. The duration value chosen is semi-arbitrary, but since i’m unlikely to watch more than 1 film a day, this seems a logical amount to avoid spamming the URL.&lt;/p&gt;
&lt;p&gt;Next, we pass the response promise through the &lt;code&gt;xml2js&lt;/code&gt; package function &lt;code&gt;parseStringPromise&lt;/code&gt;. This returns a nice JS object which we can inspect. We dig into the exact data we want in the XML structure and store it in the field &lt;code&gt;this.reviews&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Writing the film data&lt;/h3&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeFilmData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;film&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; img&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; description &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;deconstructDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;description&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;Writing &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; to the spreadsheet&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cache&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeRow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; film&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;link&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    description&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;posterImage&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; img&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getAttribute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;src&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; film&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;letterboxd:filmTitle&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;watched&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;film&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;letterboxd:watchedDate&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toLocaleDateString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;en-GB&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;resolve&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setTimeout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;resolve&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;800&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;deconstructDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; root &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;html&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; root&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;img&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; root&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;p:nth-child(2)&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rawText&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;writeFilmData&lt;/code&gt; does 2 things: 1) deconstructs the review description from the HTML returned by Letterboxd; 2) writes the nicely formatted data to the Google Sheet.&lt;/p&gt;
&lt;p&gt;Letterboxd returns the review description in the following format:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&amp;lt;film poster image URL&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;Your text review&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So it’s pretty intuitive to pick apart. For robustness, we use the &lt;code&gt;node-html-parser&lt;/code&gt; library which takes an HTML string and allows you to interact with it as if it’s in the DOM. Both the image URL and the text description can be plucked out by highlighting the selectors using the &lt;code&gt;querySelector&lt;/code&gt; method on the root node.&lt;/p&gt;
&lt;p&gt;You may argue using a library like this may be overkill for the simplistic HTML, and you may have a point.&lt;/p&gt;
&lt;p&gt;Now that we have the poster image URL and text description, we can construct the rest of the data and return it as an object to import into the Google Sheet. We grab the “title” (which Letterboxd formats with the release year and star review, e.g. &amp;quot;Stand by Me, 1986 - ★★★★&amp;quot;); the review URL; the raw name of the film; and the date it was watched.&lt;/p&gt;
&lt;p&gt;This object is passed into the &lt;code&gt;writeRow&lt;/code&gt; method, called on the &lt;code&gt;CachedSpreadsheet&lt;/code&gt; object. We use &lt;code&gt;await&lt;/code&gt; to ensure this process completes before writing any more data. And so we can stay within Google’s rate limits, we use a little bit of code to delay the execution of the script for 800ms.&lt;/p&gt;
&lt;p&gt;Note that the keys in this hash must match columns in the Google Sheet you&#39;re writing to. Here&#39;s how mine looks after setting up the sheet and syncing some data:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/google-sheet-films.png&quot; alt=&quot;Synced film data in a Google Sheet&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The cached Google Sheet object&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;CachedSpreadsheet&lt;/code&gt; class does a lot of the heavy lifting of this script. It&#39;s responsible for retrieving, writing and caching the data to &amp;amp; from Google Sheets. From the above code, we can deduce this object responds to the following 3 methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sheet&lt;/code&gt; (returns a cached array of rows in the sheet)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clearCache&lt;/code&gt; (clears the cache)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;writeRow&lt;/code&gt; (writes the row to the sheet, and clears the cache)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a follow-up article for another day (soon). Stay tuned!&lt;/p&gt;
&lt;h2&gt;Running the script&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sync-letterboxd.js&lt;/code&gt; is a Node script run by NPM. I define how to run the script in my package.json “scripts” section:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;scripts&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token string-property property&quot;&gt;&quot;sync-letterboxd&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-letterboxd.js&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is run as part of my build script, prior to building my Eleventy site. This is achieved by calling this sync script, sequentially, prior to my site-building command (details omitted for brevity):&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;scripts&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token string-property property&quot;&gt;&quot;sync-letterboxd&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-letterboxd.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token string-property property&quot;&gt;&quot;prod:eleventy&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eleventy --input=content&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token string-property property&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;npm-run-all sync-letterboxd prod:eleventy&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Running sequentially ensures all my film data is up to date &lt;em&gt;before&lt;/em&gt; I instruct Eleventy to build the the pages.&lt;/p&gt;
&lt;h2&gt;Keeping synced&lt;/h2&gt;
&lt;p&gt;This script relies on being run &lt;em&gt;at least as often as it takes you to watch 50 films&lt;/em&gt;. This is tongue-in-cheek, but the crux of this approach is, it relies on a manual sync.&lt;/p&gt;
&lt;p&gt;I have this sync running every time I build or serve the site in development (by running &lt;code&gt;npm run sync-letterboxd&lt;/code&gt;. Since I build the site at least weekly, and my film-watching cadence is around one-a-week, I have absolutely no issue syncing all my watched films.&lt;/p&gt;
&lt;p&gt;If you’re a power-watcher and don’t update your site very often, you’ll probably want to set up an automated job that rebuilds your site regularly, e.g. once a week. As long as you’re not watching more than 50 films in that duration, the script will sync all your films fine.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;There you have it. A way to get around Letterboxd&#39;s 50 limit on your reviews. If you&#39;re not fussed about getting reviews beyond this, you can simply parse the RSS feed and build straight from that. But I love historical data, so getting as much data as I could out of Letterboxd was a priority for me.&lt;/p&gt;
&lt;p&gt;I&#39;m happy to offer any guidance on getting a similar system set up. Let me know on &lt;a href=&quot;https://twitter.com/samdkingdev&quot;&gt;Twitter&lt;/a&gt; or &lt;a href=&quot;mailto:sdking02@gmail.com&quot;&gt;drop me an email&lt;/a&gt; if you could use some help.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Set your new features free with flags</title>
    <link href="https://samdking.co.uk/blog/set-your-features-free-with-flags/"/>
    <updated>2023-02-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/set-your-features-free-with-flags/</id>
    <content type="html">&lt;p&gt;Two big issues plague software development teams, and funnily enough they can seem at odds to each another. The first, the more obvious, technical debt. Old code that’s grown stale and probably wasn’t written by anyone still working on the codebase. No one’s sure what it does or whether it’s still necessary, but it still “works” and certain tests require it to be there to pass.&lt;/p&gt;&lt;p&gt;The second: unresolved features.
We have this problem in my small team at work.
Features that are worked to near completion, get code-reviewed, go through several iterations of amends, before awaiting final sign-off.
But things happen.
Priorities change.
Clients aren’t coordinated and for reasons out of our control, the pull request just sits there.&lt;/p&gt;
&lt;p&gt;New, unreleased code is almost as bad as technical debt.
It has potential value, but is becoming less relevant and more out of date with each passing day.
But whilst it’s sat un-merged on a branch, it is providing zero value.&lt;/p&gt;
&lt;p&gt;I’ve talked previously about &lt;a href=&quot;https://samdking.co.uk/blog/pair-programming-code-review/&quot;&gt;Code Review Headaches&lt;/a&gt; (another reason feature PRs can stall), and how best to avoid them.
My advice in that post was simple:&lt;/p&gt;
&lt;figure&gt;
  &lt;blockquote&gt;Do code reviews. But do them early, do them frequently, keep them small, and merge often.&lt;/blockquote&gt;
  &lt;figcaption&gt;&amp;mdash; me&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Features should be atomic and small.
They shouldn’t be intertwined with layers upon layers of business logic and beurocracy.
A feature being stalled because a client isn’t sure on 5% of it is a poor reason not to begin getting value out of that feature.
And sometimes value can just mean battle-tested in production.&lt;/p&gt;
&lt;p&gt;Even with the best of intentions in the test suite, things go wrong in production.
It is best to weed those niggles out early before that feature has hit launch day.
That is definitely not when you want to be fighting obscure bugs in the database.&lt;/p&gt;
&lt;h2&gt;Feature flag it&lt;/h2&gt;
&lt;p&gt;So we want to keep those feature PRs small, atomic, well-tested, well-reviewed and most importantly: in production.
But how do you do that if the feature isn’t “ready” to be put in front of end-users?
Put it behind a feature flag.
There’s numerous implementation specifics on how to do this depending on your programming language and software stack, so I won’t go into detail in this post.&lt;/p&gt;
&lt;p&gt;But the essence is code can be live, usable, running, without being apparent or accessible to its end user.
All the while any integration details you overlooked, sneaky performance issues or dry-run tests can be ironed out before the real users come to play.&lt;/p&gt;
&lt;p&gt;All that is required is a small toggle somewhere in your application which determines if this code should be “visible”, and a way to toggle it without a deployment.
95% of a feature can be usable but if that 5% that the end user uses to interact with the underlying code is inaccessible, it’s as good as not there to the end user.&lt;/p&gt;
&lt;h2&gt;The paradox&lt;/h2&gt;
&lt;p&gt;I mentioned the conflict between technical debt and unresolved features.
If we merge “unfinished” features into production that are never enabled and properly used, doesn’t this become technical debt?
The short answer is yes, it can.&lt;/p&gt;
&lt;p&gt;But there’s nuance to this game.&lt;/p&gt;
&lt;p&gt;If you’ve built a robust, well-tested, reviewed feature that enhances the product and you’ve grown quite fond of; it is a waste of everyone’s time to let this grow stale in the graveyard of un-merged PRs.
This has potential future value and should be incorporated into the codebase.&lt;/p&gt;
&lt;p&gt;When asked “hey, did we ever finish Feature X, I have a use for it now?”, it’s much better to respond with “yeh, it’s live, just need to enable it and add Y then it’s good to go”; than have to dig out the PR, merge in the main branch, resolve any conflicts, hope the tests still pass, deploy the feature, test it on production, all before entertaining any amends to the original requirements.&lt;/p&gt;
&lt;p&gt;There’s a chance it may never be used and become technical debt no one has a clue about.
But if your company is run half-decently, chances are you don’t make a habit of writing code that never sees the light of day.
Sometimes this code just needs a push, if you’ll pardon the pun.
Features are written because they solve business problems.
Once that feature is polished, get it live and get it breathing in production, even if its end user isn’t ready for it yet.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Derek Sivers and the power of simplicity</title>
    <link href="https://samdking.co.uk/blog/derek-sivers-power-of-simplicity/"/>
    <updated>2023-02-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/derek-sivers-power-of-simplicity/</id>
    <content type="html">&lt;p&gt;I first heard about Derek Sivers when I read his first book, Anything You Want. It’s a wonderfully simple and short book where he talks about his journey from musician to entrepreneur, in the building and eventual selling of his e-commerce business CD Baby.&lt;/p&gt;&lt;p&gt;Derek popped back onto my radar recently when I listened to an interview he did with Ali Abdaal in 2020, which was just recently published on Ali’s podcast Deep Dive.&lt;/p&gt;
&lt;p&gt;And a few days ago, a tweet by Andy Croll popped up on my feed about a recent podcast interview Derek did on Remote Ruby, entitled “&lt;strong&gt;&lt;strong&gt;&lt;a href=&quot;https://remoteruby.com/216&quot;&gt;How Derek Sivers Uses Ruby And His Programming Philosophy&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;”. I hadn’t listened to the show before, I love hearing Derek’s insights, and as I don’t really listen to a lot of technical podcasts, I was well up for giving it a listen. Or as Mr Sivers would say, “hell yes I want to listen to this” (a reference to his 2020 book “Hell Yeah or No”).&lt;/p&gt;
&lt;p&gt;Derek has an infectious nature that instantly puts you at ease when you listen to him. Early in the interview he proclaimed his love for talking about his craft, particularly his programming. Because apparently people rarely ask him about it. I can relate to the joy of talking shop, as I’m sure many programmers will do too.&lt;/p&gt;
&lt;p&gt;One of the concepts Derek talks passionately about, that guides his programming to date, is Simplicity over Easy. A philosophy inspired by a talk by Rich Hickey at Rails Conf 2012: “&lt;a href=&quot;https://www.youtube.com/watch?v=rI8tNMsozo0&amp;amp;ab_channel=Confreaks&quot;&gt;Simplicity Matters&lt;/a&gt;”.&lt;/p&gt;
&lt;p&gt;Derek’s a keen user of the Ruby language, admiring its elegance and expressive nature, but he’s shied away from embracing the full power of Rails, instead favouring the clarity rolling his own code offers. He avoids gems, save for a few essentials, and adopts a simplicity-first approach when coding.&lt;/p&gt;
&lt;p&gt;The notion that because something is easy, it is simple is a complete misnomer. These two words are often conflated but they couldn’t be further apart from one other. On the contrary, it’s often hard to make something simple (and effective).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gem install &amp;lt;package&amp;gt;&lt;/code&gt; is an easy and quick operation to run. But in mere seconds you’ve installed potentially thousands of lines of code with decades of cognitive baggage packaged up within it. But in the interest of speed and ease, this complexity is neatly hidden away behind a tiny public interface.&lt;/p&gt;
&lt;p&gt;Not only that, by installing a package, you’ve taken the responsibility of ensuring that package continues to function within its expected parameters, and securely, within your code. All the while, the details of which are abstracted away under the hood.&lt;/p&gt;
&lt;p&gt;It takes effort to make things plain and simple and &lt;em&gt;easy&lt;/em&gt; to reason with. But here lies ownership, maintainability and pleasure in coding. Derek speaks with such authenticity on this subject that really comes across in this interview. Programming is part of his identity and woven into almost everything he does.&lt;/p&gt;
&lt;p&gt;A self-proclaimed introvert, Derek’s warmness in which he welcomes contact from strangers sets him apart. He relies to every email he receives personally and ends the interview eagerly inviting programmers to email him just to chat about their love of the craft.&lt;/p&gt;
&lt;p&gt;Something that particularly resonates with me is his People Database. A directory of every person he’s had contact with in his life, providing priceless context to repeat interactions. This is a concept i’ve recently explored, albeit with much less detail and finesse, in Notion, and something I touch on in my &lt;a href=&quot;https://samdking.co.uk/blog/2022-in-review/&quot;&gt;2022 In Review&lt;/a&gt; post (under the heading “Social Life”).&lt;/p&gt;
&lt;p&gt;We’re quick to put in processes and structure in business when dealing with customers, but rarely do the same in our personal lives. Spontaneity is a wonderful part of life, granted, but the majority of life is the same. Habits, repetition, processes. Putting systems in place to aid the more mundane aspects of life can in fact open you up for more of life’s great wonders.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Sleep: how it&#39;s going</title>
    <link href="https://samdking.co.uk/blog/sleep-how-its-going/"/>
    <updated>2023-02-07T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/sleep-how-its-going/</id>
    <content type="html">&lt;p&gt;I set &lt;a href=&quot;/blog/2023-goals/&quot;&gt;a goal for 2023&lt;/a&gt; to improve my sleep. Suitably vague, but one of the steps I implemented in January was simply to track my bedtime. My Garmin watch approximates this but I’ve been annoyed by how inaccurate this often is if I have a lower paced evening. So, I now simply jot that time down to the nearest 5 minutes in my journal.&lt;/p&gt;&lt;h2&gt;My system&lt;/h2&gt;
&lt;p&gt;In addition to the time, I use a colour-coded tag system in Notion to see at a glance how “good” my bedtime was.
The descriptors are generally based on how I’ll feel the next day if I sleep at that time (not an exact science).&lt;/p&gt;
&lt;div id=&quot;key-timings&quot;&gt;&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;10:30 - 10:45pm&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#DBEDDB] px-2 py-1 rounded&quot;&gt;Green: excellent&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11pm&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FDECC8] px-2 py-1 rounded&quot;&gt;Yellow: good&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:15 - 11:30pm&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FADEC9] px-2 py-1 rounded&quot;&gt;Orange: OK&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:45 - midnight&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FFE2DD] px-2 py-1 rounded&quot;&gt;Red: bad&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12:15 - 12:30&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#EEE0DA] px-2 py-1 rounded&quot;&gt;Brown: danger zone&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;My progress in January&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;th&gt;Days&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#DBEDDB] px-2 py-1 rounded&quot;&gt;Excellent&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FDECC8] px-2 py-1 rounded&quot;&gt;Good&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FADEC9] px-2 py-1 rounded&quot;&gt;OK&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#FFE2DD] px-2 py-1 rounded&quot;&gt;Bad&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span class=&quot;bg-[#EEE0DA] px-2 py-1 rounded&quot;&gt;Danger zone&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In summary, not awful, but a long way from where I want to be.
A good baseline to improve upon.
11pm is my target, any earlier is a bonus.
A little after 11 is not disastrous, but beyond 11:45 is bad and approaching the danger zone.
The danger zone is a period I&#39;ve identified as &amp;quot;will definitely feel it tomorrow&amp;quot;.&lt;/p&gt;
&lt;h2&gt;My hangup&lt;/h2&gt;
&lt;p&gt;For me it’s always been the way that I have high energy at night and low energy in the morning.
I realise this habit is somewhat self-fulfilling and circular though.&lt;/p&gt;
&lt;p&gt;Not just energy,  my mood is generally better at night than the morning.
As a result, my productivity is better.
I get most of my creative thinking and side project work done during the evening.&lt;/p&gt;
&lt;p&gt;I’m not sure if I can change my nature and reverse this, or whether this would be good for me, but I do know I want to feel better in the mornings.
Not productive, not bursting with energy, just better.
Less groggy and more attentive.
And if that means sacrificing a bit of my “productive” time late at night, so be it.&lt;/p&gt;
&lt;h2&gt;My plan&lt;/h2&gt;
&lt;p&gt;Switch off technology at 10.30pm.
A notable exception to this is logging diary entries, which tends to be one of the last things I do before bed.
After 10:30pm: read, journal, clean or sleep.&lt;/p&gt;
&lt;p&gt;I know from experience this will be hard, but having a hard deadline should make it easier to follow through with it.
I know this is not going to be an instant thing, but I’m hoping to trend towards 11pm as the months progress.&lt;/p&gt;
&lt;p&gt;The key is doing things I know make me happy and improve my wellbeing, like reading and getting an early night, rather than allowing myself to go into auto-pilot and hitting the doom-scroll, hour-swallowing machine.&lt;/p&gt;
&lt;p&gt;I may check in again at the end February, or might leave it until a quarter of the way through the year.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Book Review: Four Thousand Weeks by Oliver Burkeman</title>
    <link href="https://samdking.co.uk/blog/reviews-four-thousand-weeks/"/>
    <updated>2023-01-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/reviews-four-thousand-weeks/</id>
    <content type="html">&lt;p&gt;I found this book to be so relatable and ridiculously readable. The very definition of a page-turner. I finished it in 13 days, reading most evenings, a considerably quicker pace than is typical for me. In this review are a few of my highlights from the book, with some of my commentary alongside.&lt;/p&gt;&lt;h2&gt;On experiencing life’s moments&lt;/h2&gt;
&lt;p&gt;In “The Watermelon Problem”, Burkeman describes the meaning of Persuasive Design as &amp;quot;an armoury of psychological techniques borrowed directly from the designers of casino slot machines&amp;quot;.&lt;/p&gt;
&lt;p&gt;Scarily, for the “express purpose of encouraging compulsive behaviour”. The perils of persuasive design and the “attention economy” are plain to see, and Burkeman recounts a vivid memory where he experienced a disturbing side effect of persuasive design:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I vividly recall walking alone along a windswept Scottish beach, as dusk began to fall, when I experienced one particularly disturbing side effect of ‘persuasive design’, which is the twitchiness you start to feel when the activity in which you’re engaged &lt;em&gt;hasn’t&lt;/em&gt; been crafted by a team of professional psychologists hell-bent on ensuring that your attention never wavers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I love windswept Scottish beaches at dusk more passionately than anything I can ever remember encountering on social media. But only the latter is engineered to constantly adapt to my interests and push my psychological buttons, so as to keep my attention captive. No wonder the rest of reality sometimes seems unable to compete.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a scary thought I hadn’t considered before, but found instantly relatable. Things we used to find interesting haven’t got less interesting, but the bar for what we find immersive and engaging has been artificially bumped up to max by a team of professional psychologists.&lt;/p&gt;
&lt;h2&gt;On distractions and our relationship with time&lt;/h2&gt;
&lt;p&gt;But Silicon Valley is not the only player in this game, and not where the blame solely lies.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Consider the case of being lured from your work by social media: it’s not usually that you’re sitting there, concentrating rapturously, when your attention is dragged away against your will. &lt;span class=&quot;bg-orange-200 py-1&quot;&gt;In truth, you’re eager for the slightest excuse to turn away from what you’re doing, in order to escape how disagreeable it feels to be doing it&lt;/span&gt;; you slide away to the Twitter pile-on or the celebrity gossip site with a feeling not of reluctance but of relief.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We’re told that there’s a ‘war for our attention’, with Silicon Valley as the invading force. But if that’s true, our role on the battlefield is often that of collaborators with the enemy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This rang so true. We’re quick to blame carefully crafted distractions as the cause for not concentrating on what we value, when in reality, we’re looking for a reason to relieve the discomfort. And our phones are the perfect companion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mary Oliver calls this inner urge towards distraction ‘the intimate interrupter’ - ‘that whistles and pounds upon the door panels’, promising an easier life if only you’d redirect your attention away from the meaningful but challenging task at hand&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class=&quot;bg-orange-200 py-1&quot;&gt;Why are we rendered so uncomfortable by concentrating on things that matter&lt;/span&gt; - the things we thought we wanted to do with our lives - that we’d rather flee into distractions?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The more common issue is one of boredom, which often arises without explanation. Suddenly, the thing you’d resolved to do, because it mattered to you to do it, feels so staggeringly tedious that you can’t bear to focus on it for one moment more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;When you try to focus on something you deem important, you’re forced to face your limits, an experience that feels especially uncomfortable precisely because the task at hand is one you value so much&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class=&quot;bg-orange-200 py-1&quot;&gt;We’re attempting to flee a painful encounter with our finitude - with the human predicament of having limited time.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is the crux of Four Thousand Weeks. Our relationship with the finitude of time. Engaging in something where this fact is laid bare - the reality that we must choose our limited time wisely - can be very uncomfortable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;No wonder we seek out distractions online, which it feels as though no limits apply - where you can update yourself instantaneously on events taking place a continent away, present yourself however you like, and keep scrolling forever through infinite newsfeeds, drifting through ‘a realm in which space doesn’t matter and time spreads out into an endless present’&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class=&quot;bg-orange-200 py-1&quot;&gt;…It doesn’t need to feel fun. In order to dull the pain of finitude, it just needs to make you feel unconstrained.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was a revelation to me. The fact that online distractions feels so cathartic is because by their very nature they are infinite. We’ve all experienced time appearing to stand still while we’re consuming content, only to snap out of the trance and realise your evening has disappeared. That feeling is like a drug because it offered an escape from the feeling of finitude.&lt;/p&gt;
&lt;p&gt;When do you feel you most need a fix? For me it’s after a particularly draining mental or physical exercise - an engaging activity with my children, for example. That exhaustion is a reminder we are brittle and our time is finite, and what better way to escape than to an infinite online world?&lt;/p&gt;
&lt;h2&gt;On Reading&lt;/h2&gt;
&lt;p&gt;Reading is an activity I’ve attempted to improve my relationship with over the years. I enjoy it, I have the capacity to become immersed in it. Yet, a good or a bad reading experience is so variable based on my mood. Sometimes I just can’t connect and give in to the activity. Burkeman offers amazing insight into this.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;People complain that they no longer have ‘time to read’, but the reality, as the novelist Tim Parks has pointed out, is rarely that they literally can’t locate an empty half-hour in the course of the day. What they mean is that when they do find a morsel of time, and use it to try to read, they find they’re too impatient to give themselves over to the task.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It’s not so much that we’re too busy, or too distractible, but that &lt;span class=&quot;bg-orange-200 py-1&quot;&gt;we’re unwilling to accept the truth that reading is the sort of activity that largely operates according to its own schedule&lt;/span&gt;. You can’t hurry it very much before the experience begins to lose its meaning.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It refuses to consent to our desire to exert control over how our time unfolds. … Reading something properly just takes the time it takes&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I love this. I feel in almost everything we do we try to become the master of it. So we feel in control of it, and we can bend it to our will.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Our decreasing tolerance for delay is reflected in statistics on everything from road rage and the length of politicians’ sound bites to the number of seconds the average web user is prepared to wait for a slow-loading page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Burkeman remarks on the fact that, unsurprisingly, as technology has improved and things have got quicker, our patience has lessened. We expect things in record time, often instantaneously. Reading bucks that trend. We cannot (properly) read a book any faster than our ancestors could (perhaps slower, even). Which is why “over the last decade or so, more and more people have begun to report an overpowering feeling whenever they pick up a book”.&lt;/p&gt;
&lt;h2&gt;On patience and productivity&lt;/h2&gt;
&lt;p&gt;One of the three principals of patience is “to embrace radical incrementalism”. A mantra that  supposedly the most productive and successful academics made writing a &lt;em&gt;smaller&lt;/em&gt; part of their daily routine than others, favouring staying power over a long period. The action being:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Be willing to stop when your daily time is up, even when you’re bursting with energy and feel as though you could get much more done. If you’ve decided to work on a given project for fifty minutes, then once fifty minutes have elapsed, get up and walk away from it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The urge to push onward beyond that point ‘includes a big component of impatience about not being finished, about not being productive enough, about never again finding such an ideal time’ for work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Stopping helps strengthen the muscle of patience that will permit you to return to the project again and again, and thus to sustain your productivity over an entire career.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is something I struggle with, particularly with creative tasks like writing. But we can think of tasks like this as a muscle that should be regularly but not over worked. Trying to harness all the creative energy you have in a moment for fear of not being able to get it back as a self-fulfilling prophecy.&lt;/p&gt;
&lt;h2&gt;Giving yourself a pat on the back&lt;/h2&gt;
&lt;p&gt;This next set of quotes comes in the “Ten tools for embracing your finitude” chapter. To-do lists are an essential part of most people’s lives now, and as useful as they no doubt are, they can leave void of that feeling of satisfaction.&lt;/p&gt;
&lt;p&gt;When we’re faced with a task, we strive for the feeling of satisfaction upon completing it. But no sooner this moment arrives, we’re onto the next one, rarely appreciating the accomplishment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Since the quest to get everything done is indeterminable by definition, it’s easy to grow despondent and self-reproachful: you can’t feel good about yourself until it’s all finished - but it’s never finished, so you never get to feel good about yourself.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class=&quot;bg-orange-200 py-1&quot;&gt;You begin each morning in a sort of ‘productivity debt’&lt;/span&gt;, which you must struggle to pay off through hard work, in the hope that you might reach a zero balance by the evening.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Burkeman suggests:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Keep a ‘done list’, which starts empty first thing in the morning, and which you then gradually fill with whatever you accomplish through the day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Each entry is another cheering reminder that you &lt;em&gt;could&lt;/em&gt; have spent the day doing nothing remotely constructive.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;In conclusion&lt;/h2&gt;
&lt;p&gt;This is a wonderfully engrossing book, full of insight, and one that makes you take a step back and really observe your own life. Oliver Burkeman gets you to reelevuate your relationship with time and how you use it.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>My maximalist media habit</title>
    <link href="https://samdking.co.uk/blog/2023-01-13-my-maximalist-media-habit/"/>
    <updated>2023-01-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2023-01-13-my-maximalist-media-habit/</id>
    <content type="html">&lt;p&gt;I have a real hang-up about physical media, namely: DVDs and CDs. I was an avid collector in my teens and early 20s, keen to build up a collection that represented everything I enjoyed and, in some ways, that defined me as a person.&lt;/p&gt;&lt;p&gt;Fast forward a decade, and those same disks - trimmed down a little - still sit in container boxes in my office. No disk has seen the light of day for years. Worse, most have been carted to and from no less than 3 homes without use since being purchased. I don’t own a DVD player, my laptop doesn’t accept them nor does my car have a CD slot.&lt;/p&gt;
&lt;p&gt;It’s long been established that physical media is on its way out. And yet, I can’t bring myself to part with them.&lt;/p&gt;
&lt;p&gt;I have a misplaced belief that somehow these plastic boxes represent me in some way, and hold snapshots of my past self. I have misty-eyed visions of, decades from now, happening upon a film or album in its case that I loved when I was 21 and sharing that joy with my children.&lt;/p&gt;
&lt;p&gt;Of course, in reality, the chance of me having a device around that can still play disks is much slimmer than it is now. Media will have long since moved to the cloud and will be accessible at the push of a button, as it largely is already.&lt;/p&gt;
&lt;p&gt;So why do I continue to hold onto them as if they’re some priceless heirloom? Maybe because I’m tight, and giving them away or selling them for pennies is realising the loss of value for something that, in reality, I’ve barely used.&lt;/p&gt;
&lt;p&gt;Perhaps I hold onto the notion of physical items being a part of my character too strongly. A dusty collection of DSLRs, lighting equipment and guitar pedals further reinforce this theory.&lt;/p&gt;
&lt;p&gt;I know it’s a compulsion I need to relinquish to fully embrace the minimalist lifestyle I claim to embody. But it feels like giving a part of me away for little more than &lt;em&gt;space&lt;/em&gt; in return. But I suspect the mental liberation may make it a worthwhile endeavour.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2023 Goals</title>
    <link href="https://samdking.co.uk/blog/2023-goals/"/>
    <updated>2023-01-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2023-goals/</id>
    <content type="html">&lt;p&gt;I enjoy having goals for the year. They act as my guide for the year when I’m feeling a bit lost. Yes they have the power to overwhelm, which is why choosing the right goals off the bat and giving yourself a break is crucial.&lt;/p&gt;&lt;p&gt;So, without further ado, my goals for 2023:&lt;/p&gt;
&lt;h2&gt;Garage gym renovation&lt;/h2&gt;
&lt;p&gt;I decided mid way through last year that I really, &lt;em&gt;really&lt;/em&gt; wanted to a) tidy up and renovate my garage into a home gym and b) start the &lt;a href=&quot;https://stronglifts.com/5x5/&quot;&gt;5x5 workout&lt;/a&gt;. I didn’t have the time nor funds to fit this into 2022, but I’ve put it at the top of my list for this year, as I really want to achieve it.&lt;/p&gt;
&lt;h2&gt;Lighting in office&lt;/h2&gt;
&lt;p&gt;I’m sick of staring at my poorly lit face on my screen during video calls. When there isn’t enough light, webcams compensate by increasing the ISO, which adds noise, leading to a poor quality image; and lowering the frame rate, leading to choppiness.&lt;/p&gt;
&lt;p&gt;My new home office doesn’t get enough natural light as the only window is north facing. I’m going to get some combination of LED ambient room lighting and a key/ring light, especially for calls and screencasts.&lt;/p&gt;
&lt;p&gt;I want to start getting better in front of camera, and hopefully having both good audio (I already have a mic) and video (lighting and potentially a new webcam) will give me the kick I need to follow this path.&lt;/p&gt;
&lt;h2&gt;Start composting&lt;/h2&gt;
&lt;p&gt;I’ve yet to set up a proper composting system since we moved house over 2 years ago. Inspired by &lt;a href=&quot;https://samking.me/posts/sustainability-around-the-home/&quot;&gt;my own post&lt;/a&gt;(!) 3 years ago, I plan to change that in 2023. After reading &lt;a href=&quot;https://samdking.co.uk/blog/reviews-zero-waste-home/&quot;&gt;Zero Waste Home&lt;/a&gt;, I learned composting my food and paper scraps is an essential part of the ethos this book preaches.&lt;/p&gt;
&lt;h2&gt;Start a side business&lt;/h2&gt;
&lt;p&gt;In some ways, I’ve always thought I’d make a good entrepreneur. The Internet has levelled the playing field and made it possible for less shouty, introverted types to launch businesses and start making money online. The past few years I’ve been consuming a lot of this type of content and it’s more than whetted my appetite for starting a little something on the side. I’d love to test the water with this in 2023, even if it doesn’t lead anywhere.&lt;/p&gt;
&lt;h2&gt;Prioritise sleep&lt;/h2&gt;
&lt;p&gt;I talked about my struggles with sleep in my &lt;a href=&quot;https://samdking.co.uk/blog/2022-in-review/&quot;&gt;2022 in review&lt;/a&gt; post. I’ve already added a “bedtime” column to my journal database so I can start tracking this data. I always find habits much easier to build and stay consistent with when they’re tracked. Even if that data remains private, I still feel accountable to it.&lt;/p&gt;
&lt;h2&gt;Fitness goals&lt;/h2&gt;
&lt;p&gt;2022 was such a bumper year for fitness, and I want to get this ball rolling in 2023. I’ve already mentioned above my desire to start the 5x5 workout, which will take some doing to carve into my current schedule and stick with.&lt;/p&gt;
&lt;p&gt;I want to continue the small amount of progress I made at the end of last year with my swimming. This means a swim session at least once a month.&lt;/p&gt;
&lt;p&gt;Bouldering is a hobby I used to enjoy consistently on a weekly basis for a number of years prior to lockdown. I’ve not been back since 2020 and I’d really like to. A friend of mine I used to go with has recently returned, which is just the incentive I need to rekindle my enjoyment of climbing.&lt;/p&gt;
&lt;p&gt;I’m aware I’m starting to run out of time in my schedule here for all these goals, but I’d love to start cycling more. I’m surrounded by the beautiful South Downs and I have a decent enough road bike gathering dust in my garage. I’ll have to sacrifice a few runs to fit in the occasional bike ride, but I’m fine with that.&lt;/p&gt;
&lt;p&gt;For running, it would be advantageous of me to predict an increase in mileage this year. It’s more likely I will back off slightly to make way for other activities. Running is so crucial to my physical and mental health though, so I doubt I will take my foot off the gas too much. My race challenge this year is to run a sub-1h40 half marathon.&lt;/p&gt;
&lt;h2&gt;This site&lt;/h2&gt;
&lt;p&gt;I achieved pretty much everything I wanted last year on this site. The beauty of the Notion integration means it will continue to refresh dynamically week-on-week. With that said, I don’t want it to stagnate. I have a few modest goals I’d like to achieve:&lt;/p&gt;
&lt;h3&gt;Visual books page&lt;/h3&gt;
&lt;p&gt;At the moment, this is a text list as I couldn’t find a reliable API for books. I want to revisit this to bring some more interesting elements to this page.&lt;/p&gt;
&lt;h3&gt;Weekly feed&lt;/h3&gt;
&lt;p&gt;This page is long, and text-heavy. I want to condense the weekly data down and make it a bit more attention-grabby. I’ll be playing with this and plan to build and preview in public on Twitter as I go.&lt;/p&gt;
&lt;h3&gt;Opinions&lt;/h3&gt;
&lt;p&gt;As much as I love collating and presenting my consumption data for my own use and others’ curiosity, the real value in this is my opinion of it. I’ve started book review blog posts and I already review films I watch on Letterboxd. I want to build in a mechanism for leaving a quick review of a podcast or TV episode too. This information would provide context for the episode and is much more valuable than the cold data.&lt;/p&gt;
&lt;h3&gt;Fitness page&lt;/h3&gt;
&lt;p&gt;There’s tonnes of interesting metrics that could be added to this page using my walk and run data. Popular times, popular days, furthest run, average run length, fastest run, biggest mileage week, etc. I&#39;d also like to dig into some Strava maps to see if I can vary up the media on the page.&lt;/p&gt;
&lt;h3&gt;Design spruce-up&lt;/h3&gt;
&lt;p&gt;I&#39;ve never really been happy with the design of the site, nor do I consider myself a designer by any stretch of the imagination. However, there&#39;s scope for some iterative improvements that could bring some more harmony to the site.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2022 in review</title>
    <link href="https://samdking.co.uk/blog/2022-in-review/"/>
    <updated>2023-01-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2022-in-review/</id>
    <content type="html">&lt;p&gt;This past year has been a good one for me. A few hastily-made goals for the year turned into this very blog; a project conceived out of not a lot else. I’ve steadily chipped away at the functionality for this site over the past 12 months, using the &lt;a href=&quot;https://ontheside.network/&quot;&gt;On The Side&lt;/a&gt; Slack community for motivation along the way.&lt;/p&gt;&lt;p&gt;I’d been journalling and collecting stats since March 2021, and I’d been mulling over ways to get some of the data I was collecting online and public. That was the other half of my new personal site: the feed. Lots more from that later, but firstly…&lt;/p&gt;
&lt;h2&gt;How did last year’s goals go?&lt;/h2&gt;
&lt;p&gt;Original post: &lt;a href=&quot;https://samdking.co.uk/blog/2022-goals/&quot;&gt;https://samdking.co.uk/blog/2022-goals/&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://samdking.co.uk/blog/2022-reading-list/&quot;&gt;Read more&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This was an unquantifiable goal, but one I feel I started to embrace towards the end of the year. I found my stride and managed to wheedle reading more into a daily habit to enjoy and unwind, rather than a chore. Mostly non-fiction, I hope to add some more fictional light-reading into the habit for 2023. This year I read 10 books compared to 5 in 2021.&lt;/p&gt;
&lt;p&gt;I will continue to work through this list, although I have a feeling I’ll be publishing a 2023 reading list too (or perhaps extending the original), of all the book recommendations I’ve accumulated this year.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://samdking.co.uk/blog/become-a-confident-swimmer/&quot;&gt;Become a confident swimmer&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In all honesty, this one produced a lot of anxiety for a lot of the year. I read the Total Immersion book cover to cover, and completed the video course on Udemy. But it wasn’t till the autumn when I finally got the push to book my first swimming session at the local pool. I didn’t die. I felt, ironically, like a fish out of water, but I made it.&lt;/p&gt;
&lt;p&gt;I’ve done one further session since and have pathetically and somewhat predictably lost a bit of drive due to lack of improvement. I &lt;em&gt;know&lt;/em&gt; it takes more than 2 hours to get good at something new, I just have to stick at it. And in 2023 I will continue this habit, hopefully at least fortnightly.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://samdking.co.uk/blog/house-projects/&quot;&gt;House projects&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I had lofty goals for this, but finding the motivation for tangible, physical projects like this is my blind spot. I did, however, get a cat flap fitted and we did replace our old boiler. Sadly not with a heat pump (a survey returned the news half of our pipework would have to be replaced to facilitate), but I’ve made my peace with that.&lt;/p&gt;
&lt;p&gt;The office declutter happened in some regard; I moved it. My old office is now a playroom for the kids and spare room for guests. My new office is upstairs and thus quieter. The move facilitated a declutter of sorts, but decoration per-se has been slow-going.&lt;/p&gt;
&lt;p&gt;Lighting improvement has been halted by my often-crippling decision paralysis when it comes to things like this. Still needed, still low on the priority list. A fanciful project for &lt;em&gt;the future&lt;/em&gt;. I am however, currently pursuing a key light for my desk setup. The natural light in my new office isn’t great, meaning videos calls are pretty bad quality. I’d like to remedy this with a proper video light. Perhaps motivating me to finally get in front of the camera in 2023 and starting recording some coding screencasts.&lt;/p&gt;
&lt;h2&gt;My Personal Life&lt;/h2&gt;
&lt;p&gt;Nothing changed too drastically in 2022. My daughter Alba turned one, and Brandon, three; so it&#39;s been a challenging year on the growth front. My wife Charlotte returned to work at the end of the year following maternity leave. Trips have been at a premium, but highlights include a solo trip to France for my sister&#39;s wedding, a family trip to Yorkshire for my brother-in-law&#39;s wedding, and 5 Summer days in a cottage in Kent.&lt;/p&gt;
&lt;p&gt;Work has remained pretty constant for me. I lead the launch of a new Rails site for our corporate partners, co-developed an integration with a new courier, and began work on an internal tool for batch packing in the warehouse using Rails 7 &amp;amp; Hotwire. I&#39;ve also rather gleefully been sunsetting and removing large parts of our old codebase this year, in preparation for a significant upgrade of some our systems in 2023. I have moved home offices from downstairs to up, but other than that, my home setup remained the same.&lt;/p&gt;
&lt;p&gt;I still really enjoy coding in Ruby, but have spent a lot of time levelling up my Javascript working on my personal site. Next year I&#39;ll have to refresh my PHP chops.&lt;/p&gt;
&lt;h2&gt;My weekly stats&lt;/h2&gt;
&lt;p&gt;Link: &lt;a href=&quot;https://samdking.co.uk/feed/2022/&quot;&gt;https://samdking.co.uk/feed/2022&lt;/a&gt;/&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2022-stats.png&quot; alt=&quot;Stats for 2022: 10 books, 20 films, 161 TV shows, 344 podcasts, 1566 km run, 1103 km walked&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This feature came on leaps and bounds this year. Although it’s still very dry visually, the structure is there and the metrics on display are really enlightening for me. You can find out my thought process building this in my post &lt;a href=&quot;https://samdking.co.uk/blog/bringing-your-notion-database-to-life-with-eleventy/&quot;&gt;Bringing your Notion database to life with Eleventy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I like the delineation of weeks, and the process for publishing each week is low effort. I particularly enjoy the visual representation of time through the year, and being able to keep track of my fitness &amp;amp; entertainment habits at a glance.&lt;/p&gt;
&lt;p&gt;Integrations with Google Sheets, Letterboxd, Spotify and TV Maze has allowed me to pull in data from all the various APIs to produce rich feeds based on my recorded data. Spin-offs from the feed page include &lt;a href=&quot;https://samdking.co.uk/books/2022/&quot;&gt;Books&lt;/a&gt;, &lt;a href=&quot;https://samdking.co.uk/films/2022/&quot;&gt;Films&lt;/a&gt;, &lt;a href=&quot;https://samdking.co.uk/tv/2022/&quot;&gt;TV&lt;/a&gt;, &lt;a href=&quot;https://samdking.co.uk/podcasts/2022/&quot;&gt;Podcasts&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://samdking.co.uk/fitness/2022/&quot;&gt;Fitness&lt;/a&gt;. My plan for 2023 is to see where else I can take this concept. And the beauty of data collection is these pages will naturally grow for as long as I continue logging my stats in the services I use.&lt;/p&gt;
&lt;h2&gt;Podcasts &amp;amp; TV 📺&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2022-tv-stats.png&quot; alt=&quot;TV Stats for 2022: 80 hours watched, 108 episodes, 13 shows, 9 new shows&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I’ve watched a lot less TV this year than last. &lt;a href=&quot;https://samdking.co.uk/tv/2022/&quot;&gt;80 hours total&lt;/a&gt;, down from 123 in the ~9 recorded months of 2021. Highlights mostly include shows watched in the first half of the year: &lt;strong&gt;After Life (season 3)&lt;/strong&gt;, &lt;strong&gt;State of the Union (season 1)&lt;/strong&gt; and &lt;strong&gt;Stranger Things (season 4)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2022-podcast-stats.png&quot; alt=&quot;Podcast stats for 2022: 373 hours listened to, 344 episodes, 30 shows, 18 new shows&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Podcast listening has taken a huge leap, from 132 hours in 2021, to &lt;a href=&quot;https://samdking.co.uk/podcasts/2022/&quot;&gt;364 in 2022&lt;/a&gt;. Owing largely to my increase in running and walking mileage. My top 5 shows by listening time were:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The Diary of a CEO with Steven Bartlett&lt;/strong&gt; (2 days, 8 hours) - Steven has a way of engaging with his guests like no other. The calibre of guest is always of the highest order, covering a huge range of interesting topics and emotions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deep Dive with Ali Abdaal&lt;/strong&gt; (1 day, 21 hours) - I discovered Ali in his earlier days on YouTube, and really enjoyed his style and approach to productivity. He&#39;s a proper pro in the game now, and this podcast rarely disappoints. Can sometimes be a little self-indulgent, but with some amazing insights too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hidden Brain&lt;/strong&gt; (1 day, 7 hours) - Always a fascinating listen. Hidden Brain&#39;s production quality and consistency is excellent. The topics and experts provide intriguing and engrossing knowledge into the human psyche.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deep Questions with Cal Newport&lt;/strong&gt; (1 day, 6 hours) - You have to be in the mood for Cal, but when you are, his knowledge and delivery is excellently on point. The episodes are always packed full of useful anecdotes for living a deeper life.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Tim Ferriss Show&lt;/strong&gt; (1 day, 3 hours) - A classic of the genre. Quite often a guest I&#39;m not familiar with, but almost always an opportunity to expand my mind. Tim is always at one with the guests and his relaxed style, whilst sometimes a little verbose, always comes across very personable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also a shoutout to some new shows I discovered in 2022, including &lt;strong&gt;&lt;a href=&quot;https://makelifeworkpodcast.com/&quot;&gt;Make Life Work&lt;/a&gt;&lt;/strong&gt; by Si Jobling, &lt;strong&gt;&lt;a href=&quot;https://chatsinthecupboard.com/&quot;&gt;Chats in the Cupboard&lt;/a&gt;&lt;/strong&gt; by Andy Croll and Vaidehi Joshi, &lt;strong&gt;&lt;a href=&quot;https://thebootstrappedfounder.com/&quot;&gt;The Bootstrapped Founder&lt;/a&gt;&lt;/strong&gt; by Arvid Kahl and &lt;strong&gt;&lt;a href=&quot;https://www.behindthesource.co.uk/&quot;&gt;Behind The Source&lt;/a&gt;&lt;/strong&gt; by my good friend Mike Street.&lt;/p&gt;
&lt;h2&gt;Films &amp;amp; Books 📽&lt;/h2&gt;
&lt;p&gt;I watched 20 films in 2022, slightly less than 2021. Highlights include &lt;strong&gt;No Time To Die&lt;/strong&gt;, &lt;strong&gt;The Humans&lt;/strong&gt;, &lt;strong&gt;Boiling Point&lt;/strong&gt; &amp;amp; &lt;strong&gt;Glass Onion&lt;/strong&gt;. Whilst Charlotte and I don&#39;t dedicate as much time to watching films as we used to - and no longer have the freedom to frequent the cinema - I do still love the escape a good film offers.&lt;/p&gt;
&lt;p&gt;I doubled my book total in 2022 from the previous year. I enjoyed most of what I read this year, focussing mainly on non-fiction. I want to continue the momentum to get through my &lt;a href=&quot;https://samdking.co.uk/blog/2022-reading-list/&quot;&gt;2022 Reading List&lt;/a&gt; (mostly non-fiction), but I&#39;d like to read more novels for fun and relaxation in 2023.&lt;/p&gt;
&lt;h2&gt;My life, according to tags&lt;/h2&gt;
&lt;p&gt;Every time I log a journal entry, I tag it with a relevant topic. I&#39;ve not done a lot with tag data on my website so far, nor analysed them much. However the tallies, variety and repetition of the tags reveal trends from one week to the next.&lt;/p&gt;
&lt;p&gt;I think the tags sum up the various facets of my life pretty well, so I’m going to use them as a basis for the sub-headings below, to describe the key areas of my life in 2022:&lt;/p&gt;
&lt;h3&gt;Fitness 🏃🏻‍♂️&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/2022-fitness-stats.png&quot; alt=&quot;Fitness chart for 2022&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This year has been a great year for running. I set myself a 1,000 km target at the start of the year, which would’ve been a 19% improvement over 2021. In the end, I managed to smash this target, finishing the year on 1,562 km (an 85% improvement).&lt;/p&gt;
&lt;p&gt;Consistency has been the key this year, building in the habit of running at least 3 times a week. I’ve replaced evening runs with early afternoon runs for the most part, which I look forward to more. I&#39;ve developed a regular running schedule of Wednesday, Friday, Sunday.&lt;/p&gt;
&lt;p&gt;I hit a 5k PB in October, achieved at my old stomping ground, Preston Park. 20:49, hitting my target of running a sub-21 5k this year. I also scraped my goal of running my 50th Parkrun: achieved on the last day of the year in Clair Park, Haywards Heath.&lt;/p&gt;
&lt;p&gt;I ran a 10k PB with a time of 42:52 in Hove, smashing my previous PB of 44:51. This race and achivement was particularly rewarding, and showed me what my body was capable of. Finally, I ran my first Half Marathon, in Brighton, in a time of 1:43:33, a time I hope to beat next year.&lt;/p&gt;
&lt;p&gt;Running has been a lifeline this year for my mental health. A true, unadulterated escape from reality when I need it. Regular walking has also been a habit I’ve stuck at this year, averaging over 12,500 steps a day and totalling over 1,000km for the year.&lt;/p&gt;
&lt;p&gt;Stepping up my running at the beginning of the year in preparation for Brighton Half Marathon seemed to negatively affect my football performance on Monday nights for a while. I definitely didn’t feel as spritely after a long Sunday run. But after a few months my body got used to it and the improvement in fitness helped my game. This roughly translated to results when splitting the year in half. The first half I won 9 of 22 games (41%) whereas the second half I won 12/20 (60%).&lt;/p&gt;
&lt;p&gt;I tagged “fitness” 188 times when journalling in 2022; the third most of any tag (after my two children), and over 50% of the days for the year.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/fitness/2022/&quot;&gt;View full stats&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Health 👨‍⚕️&lt;/h3&gt;
&lt;p&gt;Fitness-wise, I’ve managed to remain injury-free in 2022, which takes some doing. Regular exercise has contributed hugely to this I think, as well as a well-worn and regimented nutrition plan pre and post exercise. I’ve had a few knocks at football, which is par for the course, but no muscle strains.&lt;/p&gt;
&lt;p&gt;Illness-wise, similar to 2021, it’s been bumpy. With 2 children now at nursery, there is a veritable cocktail of illnesses that can be brought into the house and unfortunately all you can do is roll with it. In addition to this, fully-remote working has lowered my immune system. Reduced use of public transport and exposure to other people in the workplace have been contributing factors.&lt;/p&gt;
&lt;p&gt;I contracted Covid at the end of May. I didn’t get it too badly, fortunately, but it did completely wipe my fitness levels for a good couple of weeks. And in performance terms, it took me months to get back to the levels I was at pre-Covid.&lt;/p&gt;
&lt;p&gt;Despite ending the year on a relentless fortnight of snot, coughing and no taste or smell, I actually only logged 11 “sick” days in my journal, down from 12 in the partial year of 2021. I classify “sick” as days where I’ve had very little energy to do anything beyond keep myself and my children alive. So, lots of sniffly days around that where I was still able to work and perform basic tasks.&lt;/p&gt;
&lt;p&gt;Overall I’d characterise the year as a strong year for physical health, but a weak one for mental health. Going from 1 child to 2 has very much taken its toll on me. I notched 152 days in my journal tagged to “health”, so it’s something i’m acutely aware of, and something I plan to focus more on in 2023.&lt;/p&gt;
&lt;h3&gt;Side Projects 👨‍💻&lt;/h3&gt;
&lt;p&gt;By far my biggest side project this year has been this site. Fundamentally I wanted somewhere easier to update to store my old blog posts, but secondly a place to kickstart a writing habit. I logged a total of 98 days working on side projects this year, and I’ve plugged away at the functionality for this site consistently all year.&lt;/p&gt;
&lt;p&gt;My second side project is the API for &lt;a href=&quot;http://mnf.davshoward.com/&quot;&gt;mnf.davshoward.com&lt;/a&gt; - a stats site for our regular Monday Night football game I run with my friend Davs. The API (and original frontend for the site) is hosted at &lt;a href=&quot;http://5aside.samueldking.co.uk/&quot;&gt;5aside.samueldking.co.uk&lt;/a&gt;. I’ve not contributed much time to this in 2022; Github tells me 4 PRs were merged. Fortunately, this API ticks on quite happily with minimal maintenance. I have a few ideas for 2023 for this though.&lt;/p&gt;
&lt;h3&gt;Blogging 🖋&lt;/h3&gt;
&lt;p&gt;I posted 14 times on my blog this year. I’m really happy with that. Often I&#39;ll get bogged down in the details and let perfection be the enemy of good when writing. I need to get better at this. I still have half a dozen ideas for posts I plan to get out in 2023 covering the various integrations I’ve done on this site.&lt;/p&gt;
&lt;p&gt;I like that I now think of this blog as a relevant space to post anything that interests me. Technical posts will probably still make up the majority, but I have no qualms broadening the topic to any other facet of my personality and interests.&lt;/p&gt;
&lt;p&gt;I have plans next year to migrate posts from my &lt;a href=&quot;https://samking.me/&quot;&gt;blog on sustainability&lt;/a&gt; to here, to fill in some large empty gaps in the archive. Once again reinforcing that this is not a strictly-themed blog, and above all bringing all my written content together in a single, active place.&lt;/p&gt;
&lt;p&gt;I spent 43 days blogging in 2022.&lt;/p&gt;
&lt;h3&gt;Food 🌮&lt;/h3&gt;
&lt;p&gt;I passed four years as a vegan this year. I couldn’t be happier. The year did end on a sour note though, with me losing my taste and smell for the final few weeks. Let me tell you, Christmas is not a fun time of year to not be able to enjoy the plethora of food available. There’s something deeply soul-destroying about not being able to taste and enjoy food.&lt;/p&gt;
&lt;p&gt;One thing I&#39;ve changed this year is I&#39;ve stopped posting my food on Instagram. This wasn&#39;t a conscious change, I think I just grew out of the fun of doing it. Times change, and you only have finite energy to spend. I will probably still use it to promote vibrant, healthy, enjoyable vegan food, but much less frequently than I was a year ago.&lt;/p&gt;
&lt;p&gt;Midway through the year I began to notice my dwindling personal time and mental capacity was being rather-too-greedily taken up by the somewhat relentless planning involved in food preparation for my family and I to eat. We seemed to be spending more on food and buying more often and haphazardly. Deciding what to cook after a day’s work was mental energy I could do with reclaiming if possible.&lt;/p&gt;
&lt;p&gt;So I implemented a meal plan. A proper one. Like I’d always imagined I should. It was very simple, it just started off as a single note in Apple Notes. It eventually progressed to Notion (more on that below under “Productivity Systems”). The system worked well, and replaced many small shopping trips with a monster online delivery every two weeks. I did a decent job of planning, purchasing and scheduling the food we’d need to cook meals for the next 2 weeks. It was a huge weight off my mind.&lt;/p&gt;
&lt;p&gt;Like any new habit, it started perfectly, revolutionising how I cooked and planned food. I had a neatly drawn-up whiteboard schedule and everything. As time progressed, standards dropped, the whiteboard habit fell away, lunches got more ad-hoc, but I’m pleased to say we’ve kept the fundamental structure: 2 weeks worth of dinners planned, with ingredients purchased fortnightly (with top-ups).&lt;/p&gt;
&lt;p&gt;I tagged &amp;quot;food&amp;quot; 68 times in 2022.&lt;/p&gt;
&lt;h3&gt;Sleep 😴&lt;/h3&gt;
&lt;p&gt;A new tag after I noticed I quite often comment on the quality of it when I journal. Tagging those entries creates a sleep diary of sorts, for looking back on. I&#39;ve read and listened to many resources this year eulogising the virtue of sleep; the importance of which I&#39;ve no doubt of in my mind. But I still have a disconnect between good sleep habits and getting things done. I consistently struggle to get to bed at a reasonable time each night. This is exacerbated when I&#39;m in a low mood and can&#39;t seem to peel myself away from doom-scrolling social media.&lt;/p&gt;
&lt;p&gt;Without going into too much detail, I plan to finely target this as part of working on my mental health next year. I &lt;em&gt;know&lt;/em&gt; going to bed early and consistently improves my wellbeing, so it&#39;s a no-brainer really, if you&#39;ll pardon the pun.&lt;/p&gt;
&lt;p&gt;I tagged &amp;quot;sleep&amp;quot; 49 times in 2022.&lt;/p&gt;
&lt;h2&gt;Scarcely used tags&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Side-business 🕴&lt;/strong&gt; was mentioned a mere 3 times. It’s not something I’ve been able to explore this year. But watch this space.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Investing 📈&lt;/strong&gt; has very much become a passive activity this year, with 5 tags. A combination of financially not being able to actively invest money and the doom and gloom of a bear market has left me somewhat indifferent about it this year.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Betting 💲&lt;/strong&gt; is dead and buried, with 0 mentions. My days of matched betting are behind me, but I’m still making steady use of my winnings, as they fund my Chelsea tickets.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Productivity 🧠&lt;/strong&gt; is a tricky one to identify and subsequently remember to tag. I tagged it 18 times, but as a tag it became a little too broad to use with any regularity. I’ll probably phase this one out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jobs 💼 -&lt;/strong&gt; flirted with for a few intense weeks of the year, mentioned a not-insignificant 25 times. A prospect early in the year ultimately ended with disappointment, so I put this on the back-burner until I know more what I’m after.&lt;/p&gt;
&lt;h2&gt;Productivity Systems&lt;/h2&gt;
&lt;p&gt;In a lot of ways, 2022 was the year of productivity systems. I’ve levelled up with Notion. I set many new ones up; the majority I still use daily to great effect. Here are some of the highlights:&lt;/p&gt;
&lt;h3&gt;Expenditure&lt;/h3&gt;
&lt;p&gt;I wrote &lt;a href=&quot;https://samdking.co.uk/blog/master-your-spending-habits/&quot;&gt;a whole blog post about this&lt;/a&gt;. Tracking my personal spending gave me some piece of mind and feeling of control, that in August I took on the loftier target of tracking our joint spending; a significantly bigger portion of our income. Whilst this does require more maintenance to track, it’s been invaluable at shining a light on our spending habits and planning for the future.&lt;/p&gt;
&lt;h3&gt;Social Life&lt;/h3&gt;
&lt;p&gt;This one is proper nerdy. One thing I’ve noticed since working remotely is I’ve become more introverted. Social get-togethers seem to take more out of me and honestly, with 2 kids, and most of my friends having young children too, it does take a concerted effort to maintain relationships. The solution? A database, of course.&lt;/p&gt;
&lt;p&gt;Over the course of a month, I went through my calendar for the past 2 years and copied the events into Notion and tagged the people I hung out with at those events. For people, I categorise relationship (spouse, family, family-in-law, friend, acquaintance), partner and wedding anniversary (I always forget these). I could definitely add Birthday too, but a separate Google calendar does a pretty good job of that already. Database entries are a great place to also jot down notes such as key dates in that person’s life, achievements, important conversations you’ve had.&lt;/p&gt;
&lt;p&gt;For events, I store location, date, type (house, outdoor, event, pub, restaurant, etc.) and people. The power of relations and roll-ups in Notion mean I’m easily able to see when I last saw someone, what event that was, when I’m &lt;em&gt;next&lt;/em&gt; seeing that person, and how many times I’ve seen them in total. You can also do cool things like calculate the connections a particular person has (by collating the people who attended the same events as them).&lt;/p&gt;
&lt;p&gt;This has been both eye-opening, and a great trigger to send a Whatsapp message to a friend I haven’t spoken to in a few months.&lt;/p&gt;
&lt;h3&gt;Dental hygiene&lt;/h3&gt;
&lt;p&gt;At my last dental check-up, I realised I couldn’t tell my dentist how often I flossed. “Not enough” was my answer I think. He said ideally I’d be flossing daily, but even once a week is much better than never. Now, a week was more frequently than I’d flossed before with any regularity, but this seemed doable. So, shortly after leaving, I set myself up a new Notion database. 14 tickbox fields for the 7 days of the week morning and night, a field for flossing, and a label for the week.&lt;/p&gt;
&lt;p&gt;This “check-in” keeps me accountable to my dental health regimen and gives me that reminder that I need to floss at the end of every week. Lockdown got me into a bad habit of forgetting to brush in the morning too, so this database sorted that right out. I’m now 16 weeks in.&lt;/p&gt;
&lt;h3&gt;Meal Planning&lt;/h3&gt;
&lt;p&gt;I touched on this under the “Food” section. This is a work in progress and one I’m still tinkering with the format of. But it works pretty well for now. I’ve been logging my dinners each night in a “Food” database for as long as I’ve been journalling (it has 232 entries currently). I always had plans to do something with this data at some point.&lt;/p&gt;
&lt;p&gt;Enter, the meal plan. I have two databases working in tandem for this. Plans, and Meals. Without wanting to get too into-the-reeds, &amp;quot;Meals&amp;quot; actually serves as a join table between Plans and my existing “Food” database. A 2-week period of eating is defined as a “Plan”, and a plan, generally, contains 14 Meals. Meals are allocated a day of the week and relate to a single “Food” entry.&lt;/p&gt;
&lt;p&gt;The board view in Notion shows rows of meal plans, with columns of the days of the week, giving a pseudo calendar view for the week’s meals.&lt;/p&gt;
&lt;h2&gt;Goals for 2023&lt;/h2&gt;
&lt;p&gt;I had planned to include this, but as it got a little large, I think it deserves it’s in blog post like 2022 got. So, key your eyes peeled in the next few weeks for that.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Book Review: Zero Waste Home by Bea Johnson</title>
    <link href="https://samdking.co.uk/blog/reviews-zero-waste-home/"/>
    <updated>2022-12-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/reviews-zero-waste-home/</id>
    <content type="html">&lt;p&gt;An eye-opening book, however some of the recommendations and values are a little heavy handed, so I would recommend a healthy dose of self-moderation when reviewing the suggestions. There was definitely enough in here to spark my creativity and realign my compass as to how I live my life, and more pertinently, how I consume.&lt;/p&gt;&lt;p&gt;My main takeaway was: it’s not enough to simply be a stickler for recycling. Slimming down your general waste and increasing your recycled waste is one tiny facet to wasting less. Recycling is an energy intensive activity and one that does not guarantee reuse of the materials.&lt;/p&gt;
&lt;p&gt;Reduce, reuse, recycle is a common idiom many are aware of. But the book elaborates on this mantra, adding two extra Rs: Refuse, Reduce, Reuse, Recycle, Rot (in descending order of importance).&lt;/p&gt;
&lt;p&gt;The biggest difficulty for me is in reducing the amount of packaging I take into my house. Plastic packaging is e&lt;em&gt;verywhere&lt;/em&gt;. You can try to make conscious decisions to buy the product not wrapped in plastic, but this is typically the more expensive option, and often not an option at all.&lt;/p&gt;
&lt;p&gt;What I liked about the author Bea Johnson’s approach, particularly to the biggest “R”: Refuse, is her committed stance to saying no to all waste that may enter her life. She describes saying no as a “muscle that can be strengthened”. Bags, cups, business cards, promotional freebies, junk mail. Even refusing packaging at supermarkets; bringing her own containers or &lt;em&gt;voting with her wallet&lt;/em&gt;, buying from a shop that will.&lt;/p&gt;
&lt;p&gt;This is often inconvenient and at times downright awkward. But remaining true to her morals, she slowly builds up an immunity and a persona to outwardly live her values, and spread the message in every interaction. Once you’ve changed your approach to waste, the next big step is preventing other people bringing waste into your life.&lt;/p&gt;
&lt;p&gt;Thriftiness when it comes to buying items, particularly clothes, is a big part of living sustainability and reducing waste. Buying second hand, ignoring fashion trends and buying good quality, lasting fabrics, lead to a more minimal and content existence. This dovetails perfectly into the minimalist lifestyle and values I try to live by.&lt;/p&gt;
&lt;p&gt;Suffice to say, most of the tips for reducing waste has countless knock-on personal benefits too. Saving money being the big one. Improving the health of your family by saying no to harmless plastics and chemicals another.&lt;/p&gt;
&lt;p&gt;The lengths a person must go to cut all waste is frankly impractical to the point of impossible in today’s society. Making your own yoghurt and cheese and shampoo and cutting out all packaged foods is several steps further than I’d be willing to go. But overall just being more meaningful about where and what you spend your money on is a powerful mental shift.&lt;/p&gt;
&lt;p&gt;The author went viral when she shared the single jar of waste she’d produced in a year; a lofty goal, but one considerably out of reach for most. But that’s not the point of this book. The point is to become acutely aware of how waste flows in and out of your house. Making steps to reduce this will then begin to come naturally.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Running a 10k race</title>
    <link href="https://samdking.co.uk/blog/running-a-10k-race/"/>
    <updated>2022-11-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/running-a-10k-race/</id>
    <content type="html">&lt;p&gt;I ran my first &lt;a href=&quot;https://samdking.co.uk/blog/my-half-marathon-experience/&quot;&gt;Half Marathon&lt;/a&gt; in February this year and loved it. For one reason or another, it’s taken me a while to book my next race, but last month I committed to running Brighton 10k.&lt;/p&gt;&lt;p&gt;I’ve always liked the 10k distance. It’s a good barometer of fitness and a good chance to push for a PB. At the same time, it doesn’t require months of training so is an accessible race for many. I inadvertently set a 10k PB in May of this year on the trails around Burgess Hill. I didn’t set off with the intention but felt good after a few km and pushed myself. I was really happy to finally run a sub-45 10k.&lt;/p&gt;
&lt;p&gt;With some good, consistent training since then (save for a bout of Covid in June) and a string of improving Parkruns, I was confident on a nice flat course of running sub-44 minutes in a race. So when I saw Brighton Athletic Club were putting on their annual 10k race in November, I jumped at the chance.&lt;/p&gt;
&lt;p&gt;Prep leading up to race day was good. A few long runs, a few tempo ones and a strong Fartlek session for some speed work. I was really excited in the week leading up to it. Not so long ago, I never thought I’d be one of those people that looks forward to pretty intense physical exercise, but here we are!&lt;/p&gt;
&lt;p&gt;The night before I started getting some cold symptoms. My daughter had just gotten over a cold and I was pretty worried I might have caught it. I went to bed that night with some trepidation. And that, coupled with usual pre-race nerves, meant I had pretty awful sleep that night.&lt;/p&gt;
&lt;p&gt;I woke up on the Sunday with a Garmin-reported body battery of 35. The optimal is 100. Fortunately, on the illness scale, I didn’t feel too much worse than the night before, and quickly went about my morning routine before the family woke up. Porridge, kit on, bag packed, double checked. And out the door! 8.05 train to Hove for a 9.30 start.&lt;/p&gt;
&lt;p&gt;It drizzled the whole walk to the station, but I was happy to be out and on my way. I had my waterproof layer on, and could see signs of brightening up. My mood was buoyant. No issues changing at Brighton for Hove, and I as I started the pleasant mile and a half walk to the seafront from the station, I was feeling grateful and excited for the race.&lt;/p&gt;
&lt;p&gt;It felt a bit odd turning up on my own. But there was a great hubbub on the seafront of runners and support and everyone seemed happy and raring to go. There was still a chill in the air and I knew at some point I’d have to strip my 3 layers down to 1 and start warming up.&lt;/p&gt;
&lt;p&gt;At around 9:10, with 20 minutes to go, I stripped down, dropped my bag off and shovelled down half a banana and some water. I ran a short warmup along the seafront, before joining the growing crowd on the start line with 5 minutes to go. I wasn’t going to be late for this one like I was for the Half Marathon! Hoping for a fast start, I positioned myself quite near the front, just ahead of the 45-minute pacer.&lt;/p&gt;
&lt;p&gt;My target was 4:21 splits. If I could maintain that I’d be on for a finishing time of 43:30. I was feeling optimistic. This also gave me a bit of leeway for a sub-44’ if I tailed off at the end. As the seconds ticked down to the start, the pack started shuffling forward. It was at this point I somehow lost track of the 45-minute pacers. It was a quick start, with the usual rush of adrenaline you get when the gun goes off.&lt;/p&gt;
&lt;p&gt;I soon realised the 45-minute pacers had got out in front of me, and had a big group of runners swarmed around them. My aim was to always stay ahead of the pacers, that way I knew I was at least on the right side of 45 minutes. I had a bit of catching up to do, and as the first kilometre sign came into view, I was up with the pack and had clocked a first split of 4:17 - a bit quick!&lt;/p&gt;
&lt;p&gt;My heart rate was high - mid 160s - but I felt strong and my running effortless. A perfect mental state to be in during a race. The 45-minute pacers had gone out a bit quick, and as they settled into their pace, I confidently emerged from the pack, eyeing up the next group of runners and trying to calculate what pace I wanted to settle into myself.&lt;/p&gt;
&lt;p&gt;The second kilometre featured a 180-degree turn, coming back on ourselves and onto the Kingsway in Hove. The wind was behind me at this point and I kept true with the pace that had served me well for the first kilometre. I clocked another 4:17 kilometre as we ran past the second marker. Heart rate a little high (approaching 170), but still feeling good.&lt;/p&gt;
&lt;p&gt;I decided at this point 4:17 was not a manageable pace to maintain for the entire race, so for kilometres 3 and 4 I backed off slightly, clocking 2 4:19s. It takes a lot of discipline to back off your pace when you’re feeling good, but even with the relatively short distance of 10k, it’s important to not empty your tank too early.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/10k-race-1.jpg&quot; class=&quot;drop-shadow-2xl rounded-sm mb-3 mx-auto w-3/4&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;Feeling good around the 3rd kilometre marker&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;By the end of kilometre 4, and as we approached the Palace Pier, the crowds were louder and the support greater. There was a bit of a shimmy onto Madeira Drive and it was at this point I started to see the elite runners coming back in the other direction. Sometimes, this can be demoralising, but today it spurred me on. My 5th kilometre was a fast one: 4:16. My heart rate was pushing mid-170 now. I was attempting some quick mental maths on finishing times if I could maintain this pace. I was beginning to dream of sub-43’.&lt;/p&gt;
&lt;p&gt;I wasn’t overly familiar with the course and couldn’t remember where the turn back to Hove occurred. Luckily, it seemed to come along quick, just before Duke’s Mound. I instantly regretted my haste in reaching that checkpoint, as my fellow runners and I were greeted by a gust of wind as we rounded the cone to come back on ourselves.&lt;/p&gt;
&lt;p&gt;I knew it was a little windy today, but hadn’t bargained on quite the level of resistance I was immediately faced with. The reason for the fast first 5k became clearer at this point! I took on some fluids out of a cup - not an easy procedure running at the speed we were. With a combination of the hairpin, the wind and the hydration, I clocked my slowest split for the 6th kilometre of 4:20.&lt;/p&gt;
&lt;p&gt;The 7th kilometre was a struggle. It was the most uphill part of the race (albeit marginally), and I felt annoyed with myself that I hadn’t accounted for the wind in the second half. I was slowly overtaking other runners, but could feel the drag of the wind and my form becoming more lethargic. I don’t remember a lot else about this kilometre, other than receiving a slow pace alert from my watch; I’d dipped under 4:30/km pace.&lt;/p&gt;
&lt;p&gt;According to my GPS data, my pace took a big drop just past the pier, towards the end of the 6th kilometre. I don’t really remember this, so it could’ve been a GPS anomaly, but as I hit the 7th kilometre marker, my watch informed me of my slowest split yet: 4:28. This was the kick I needed to knuckle down and find my target pace again.&lt;/p&gt;
&lt;p&gt;I didn’t really notice my average pace at this point, so I didn’t know if sub-23 was still on. But I was head-down and determined. Somehow during the 8th kilometre I miscalculated in my head and thought the next marker was 9. When I saw 8 I was a bit disheartened. But it was around here I overtook a gentleman who quickly caught up with me again. We were matching pace and overtaking people together. He was friendly and encouraging and focussed my effort at a time when I needed it.&lt;/p&gt;
&lt;p&gt;It’s funny, running, I felt during the race that he was spurring me on and getting the best out of me. But after finding the man on Strava afterwards and exchanging a few words, from his perspective it was the opposite. I think we just found each other at the right part of the race and brought out the best in one another. It was a real blessing.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/10k-race-2.jpg&quot; class=&quot;drop-shadow-2xl rounded-sm mb-3 mx-auto w-3/4&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;Running with my partner around 8.5k in. He&#39;s looking fresher than me!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The 9th kilometre was a strong one; 4:13, my fastest split yet. My confidence was starting to build again.&lt;/p&gt;
&lt;p&gt;As we passed the 9km marker, my new friend spoke more words of encouragement: the wind was about to be in our backs. Indeed, a few paces later, we made a sharp left turn, followed by another, and we were back on the promenade making our final ~800m dash to the finish line.&lt;/p&gt;
&lt;p&gt;This stretch was tougher than I was expecting. I was in 4:00/km territory now, and praying I had enough in the tank to maintain this to the finish. As the finish line came into view, I returned some brief words of encouragement to my partner: “Big final push now”. To my surprise, he told me to run on, and this was all the motivation I needed. With 250m to go I started my charge.&lt;/p&gt;
&lt;p&gt;According to Strava, I crossed the finish line at a 3:20/km pace, which is pretty staggering. I was sprinting. There are few more powerful feelings than having it in you to sprint the finish of a race. I finished just as the clock ticked over 43 minutes, so I was reasonably sure that my chip time would be under 43 minutes. I was thrilled to see my Garmin reporting 42:52, and this was backed up shortly after by the official race text.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/10k-race-3.jpg&quot; class=&quot;drop-shadow-2xl rounded-sm mb-3 mx-auto w-3/4&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;Me on the final stretch, sprinting for the finish line.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I was shot, but buzzing with endorphins and pride at smashing my 10k PB by almost 2 minutes. Not many free things in life beat that runners high.&lt;/p&gt;
&lt;p&gt;I sought out my partner and we shared a quick embrace and word of congratulations, and swiftly went our separate ways. It was only looking at the photos and finishing times the day after did I see he’d finished mere strides behind me.&lt;/p&gt;
&lt;p&gt;A huge thank you to the race organisers of the Brighton 10k. I thoroughly enjoyed myself and look forward to attempting to beat my time next year!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Master your spending habits</title>
    <link href="https://samdking.co.uk/blog/master-your-spending-habits/"/>
    <updated>2022-11-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/master-your-spending-habits/</id>
    <content type="html">&lt;p&gt;Until fairly recently in my adult life, I’ve been in the fortunate position to not have to worry too much about my spending habits. I would say I’m quite a conservative spender, and this, coupled with a job in tech for the last decade, has served me well.&lt;/p&gt;&lt;p&gt;Enter: children. You think you’ve got it all worked out and then children come along and throw a grenade in the middle of your finances.&lt;/p&gt;
&lt;p&gt;A combination of parental leave, childcare and reduced working hours means my wife and my take-home income has dipped quite considerably since our first child came along at the end of 2019. This was anticipated, and we manage just fine, but in the past year I’ve taken to tracking our expenditure more closely to minimise surprises.&lt;/p&gt;
&lt;p&gt;Below is a list of observations and tips I&#39;ve picked up spending on a tight budget for the past 20 months.&lt;/p&gt;
&lt;h2&gt;Pay yourself an allowance&lt;/h2&gt;
&lt;p&gt;Since April 2021, we decided to pay both our salaries into a single, shared account and pay each other an “allowance” (initially £300 a month). This evened out the disparity in our incomes during maternity leave, etc. It was a change which meant tracking my purchases was essential to stay within my means.&lt;/p&gt;
&lt;p&gt;The allowed amount has fluctuated in the 20 months that have followed, a period which included our daughter being born. It was reduced to £250 towards the end of 2021 and recently increased to £275.&lt;/p&gt;
&lt;h2&gt;Track the kind of transaction&lt;/h2&gt;
&lt;p&gt;First, I differentiate between expected expenditure (subscriptions) and unplanned expenditure (adhoc). Typically, if you know your budget, and you know your recurring monthly payments, you should know exactly how much you can spend on other stuff. This number is really useful to know at the start of the month.&lt;/p&gt;
&lt;p&gt;Subscriptions are also notorious for flying under the radar and becoming excess drain on your resources if you&#39;re not tracking them.&lt;/p&gt;
&lt;h2&gt;Understand your budgets&lt;/h2&gt;
&lt;p&gt;In my system, “budgets” are pots of money payments can come out of. I’ve mentioned the monthly allowance, which is the primary budget I track, however, there will typically be things that don’t fall under this. For me, this includes things like payments I will claim back on my health insurance (dental, optician), my “Chelsea pot” (more on that later), and my savings (for emergencies).&lt;/p&gt;
&lt;p&gt;We’re really only interested in the “monthly” budget (where the majority of your payments will come out of), but it’s important to account for &lt;em&gt;&lt;strong&gt;all&lt;/strong&gt;&lt;/em&gt; your outgoings so things don’t slip through the net. And, importantly, so you know exactly how much and what you’re spending.&lt;/p&gt;
&lt;h2&gt;Categorise based on what&#39;s important to you&lt;/h2&gt;
&lt;p&gt;I love to categorise things. Categorising highlights areas of my life that matter to me, and areas that may be leaking money unintentionally. My top 10 categories by total spent of my monthly budget (since April 2021) are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;🎁 &lt;strong&gt;Gifts&lt;/strong&gt;: £34/mo&lt;/li&gt;
&lt;li&gt;🏃 &lt;strong&gt;Running&lt;/strong&gt;: £26/mo&lt;/li&gt;
&lt;li&gt;⚽️ &lt;strong&gt;Football&lt;/strong&gt;: £25/mo&lt;/li&gt;
&lt;li&gt;🍻 &lt;strong&gt;Drinks&lt;/strong&gt;: £24/mo&lt;/li&gt;
&lt;li&gt;🚆 &lt;strong&gt;Transport&lt;/strong&gt;: £23/mo&lt;/li&gt;
&lt;li&gt;💊 &lt;strong&gt;Health&lt;/strong&gt;: £23/mo&lt;/li&gt;
&lt;li&gt;🍔 &lt;strong&gt;Food out&lt;/strong&gt;: £18/mo&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Phone, TV &amp;amp; Internet&lt;/strong&gt;: £16/mo&lt;/li&gt;
&lt;li&gt;🎗 &lt;strong&gt;Charity&lt;/strong&gt;: £13/mo&lt;/li&gt;
&lt;li&gt;👕 &lt;strong&gt;Clothes&lt;/strong&gt;: £12/mo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For me, this provides an excellent insight into my life, and shows the areas I prioritise. I try to categorise less explicitly and instead focus on the purchase&#39;s purpose. What it&#39;s used for, rather than what it is.&lt;/p&gt;
&lt;p&gt;I should note, there are very few of my “personal” purchases I would classify as essential; this is why the majority of our shared income goes into a joint account. This pays for non-negotiables like housing, insurance, childcare and groceries.&lt;/p&gt;
&lt;p&gt;My personal allowance pays for my hobbies and social life and is a good indication of what I spend money on for my happiness. This top 10 list accounts for just over 80% of my total expenditure.&lt;/p&gt;
&lt;p&gt;The other 20% is made up of minor categories including Snacks, Music, Domains &amp;amp; Servers, Bike and Books.&lt;/p&gt;
&lt;h2&gt;Leverage smart credit&lt;/h2&gt;
&lt;p&gt;Having a tight budget does restrict the purchase of high-cost items. This is where credit comes in. First and foremost, &lt;strong&gt;this is not financial advice. I am by no means qualified to provide this.&lt;/strong&gt; In my experience, credit can be leveraged to great effect with a combination of planning, self-control and common sense.&lt;/p&gt;
&lt;p&gt;I try to avoid paying interest at all costs, as this quickly eats into your budget for future months. If I must purchase on a credit card, I aim to pay it off in full the following month. However, it’s Monzo Flex which has been a big help this year. In particular, their interest-free, 3-month plans.&lt;/p&gt;
&lt;p&gt;Credit is essential for big purchases like a pair of running shoes, a more lavish gift or an annual subscription. Spreading out a payment of, say £100, into 3 smaller payments keeps your cashflow happy and your spending less spiky. Scheduling in these future payments with your other recurring subscriptions gives you the visibility on how much you have left to spend in a given month.&lt;/p&gt;
&lt;h2&gt;Software is essential&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/blog/my-journalling-setup-in-notion/&quot;&gt;I love Notion&lt;/a&gt;, and this is where I record my spending data. For my personal expenditure, I have 3 databases: Payments, Types &amp;amp; Retailers. A payment has a date, a description, an amount, a type, a retailer, a budget selector, a subscription toggle and a Flex toggle.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/recent-payments.png&quot; alt=&quot;Screenshot of payments database in Notion showing recent purchases&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Types (categories) aggregate total spend, number of purchases, average purchase price and average spend per month.&lt;/p&gt;
&lt;p&gt;I calculate average spend per month using the following formula:&lt;/p&gt;
&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;prop&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;From Monthly Budget&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; dateBetween&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;now&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; fromTimestamp&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1617231600000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;months&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The “From Monthly Budget” property is the sum total of payments that come out of my monthly budget. &lt;code&gt;dateBetween&lt;/code&gt; calculates the number of months between now and a hard-coded timestamp equal to 1st April 2021 (the day I started tracking).&lt;/p&gt;
&lt;p&gt;Retailers are less important for tracking, but still useful information to keep. Particularly when analysing over a period of time.&lt;/p&gt;
&lt;h3&gt;The humble spreadsheet&lt;/h3&gt;
&lt;p&gt;Notion is great at the above, but where it struggles, I find, is aggregating data grouped by time. Luckily, a spreadsheet is perfect for this, so I supplement my Notion databases with a Google Sheet. With the help of database views in Notion, each month I manually copy over totals from Notion into Google Sheets. This includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Budget&lt;/li&gt;
&lt;li&gt;Total spent&lt;/li&gt;
&lt;li&gt;Surplus (budget - total spent)&lt;/li&gt;
&lt;li&gt;Subscriptions total&lt;/li&gt;
&lt;li&gt;Non-subscriptions total (adhoc spending)&lt;/li&gt;
&lt;li&gt;Credit/Flex total&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Having this data in a spreadsheet makes producing graphs a cinch:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/expenditure-chart.png&quot; alt=&quot;Expenditure chart since April 2021 showing total spend broken down by subscriptions, adhoc &amp;amp; credit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Spotting trends&lt;/h2&gt;
&lt;p&gt;Graphs are incredibly useful, because on the whole, we tend to digest visual things better than numbers. At a glance I can see from the above chart that since introducing Monzo Flex (green on the chart), my monthly spending has fluctuated less. However, with it, I can see I’m spending more on the whole (a habit I’m beginning to reign in).&lt;/p&gt;
&lt;p&gt;Flex has smoothed out non-monthly payments like my 10-weekly protein powder and annual Strava subscription.&lt;/p&gt;
&lt;p&gt;It’s really useful to see when my subs total is consistently increasing as that’s a good opportunity to review if I’m overspending somewhere.&lt;/p&gt;
&lt;h2&gt;Accounting for extra purchases&lt;/h2&gt;
&lt;p&gt;I mentioned earlier about budgets. I’m able to keep my monthly spending &lt;em&gt;fairly&lt;/em&gt; even by allocating pots of money away from my monthly budget. This is optional, and dependent on whether you have other income sources or existing savings you plan to use. My full list:&lt;/p&gt;
&lt;h3&gt;1. Bonus&lt;/h3&gt;
&lt;p&gt;I was fortunate to receive a work bonus last year, and this ended up providing an essential overflow for various joint purchases and some small individual ones too. This pot has been depleted, but if I have the good fortune to receive another bonus, it’ll go in here.&lt;/p&gt;
&lt;h3&gt;2. Insurance&lt;/h3&gt;
&lt;p&gt;I had to claim on a lost wedding ring last year, so these payments came out of this somewhat-transient pot made up of the payout from the insurer.&lt;/p&gt;
&lt;h3&gt;3. Matched betting&lt;/h3&gt;
&lt;p&gt;I got into matched betting in a big way in 2020 (lockdown, eh?). Eventually I exhausted its usefulness and got bored of it, but I made a nice sum of money which I put away for my occasional Chelsea tickets. Dubbed my &amp;quot;Chelsea Pot&amp;quot;.&lt;/p&gt;
&lt;h3&gt;4. Health plan&lt;/h3&gt;
&lt;p&gt;Most of my dentist and optician appointments can be claimed back through my health insurance. This pot covers those payments until I&#39;m reimbursed.&lt;/p&gt;
&lt;h3&gt;5. Gift&lt;/h3&gt;
&lt;p&gt;If I’m gifted money for an occasion, It’ll go in this pot. If I buy something using that gifted money, it’ll come out of here.&lt;/p&gt;
&lt;h3&gt;6. Savings&lt;/h3&gt;
&lt;p&gt;Most of my personal savings are now in long term investments (another 2020 lockdown project!), but while it was cash in a bank account, it existed in this pot.&lt;/p&gt;
&lt;h2&gt;What I&#39;ve learned about my personal spending&lt;/h2&gt;
&lt;p&gt;Gifts are one of the types of purchases which are hard to scale back when you&#39;re budgeting. Gift purchases are on average my biggest monthly expense, and I don&#39;t even consider myself an overly generous person. Over time, you learn to make more frugal and shrewed purchasing decisions. But no one likes to come across as cheap to other people, so this takes some practice.&lt;/p&gt;
&lt;p&gt;My charitable donations have remained the same despite my disposable income shrinking. What used to be ~1% of my spending is now over 5%. I haven&#39;t had the heart to cancel my few recurring donations or stop my occasional sponsorship of a friend.&lt;/p&gt;
&lt;p&gt;I&#39;m quite a hobby-rich person, and for me, £250/mo is not enough to satisfy all my interests. However, it is manageable with a little self-restraint and smart credit decisions. Having a limit forces you to assess what&#39;s most important to you. For example, fitness &amp;amp; health rank consistently high. Spending on clothes and tech have shrunk significantly.&lt;/p&gt;
&lt;p&gt;The recent rise in living costs has caused me to scale back on socialising and the associated costs (drinks, eating out &amp;amp; transport). This is disappointing, as I don&#39;t like having to turn down an opportunity to see friends, but this is simply the reality of having a tight budget.&lt;/p&gt;
&lt;h2&gt;In conclusion&lt;/h2&gt;
&lt;p&gt;When money is tight, pay yourself an allowance. Review your spending regularly, and fluidly adjust the allowance as your circumstances change. But keep it intentionally small. Categorise your spending based on what is meaningful to you and pay close attention to your spend per type.&lt;/p&gt;
&lt;p&gt;Watch those recurring subscription totals. Scheduled payments are useful for budgeting, but don’t let them stifle your ad-hoc budget. Lean on interest-free credit to facilitate larger payments and cost-in the repayments ahead of time.&lt;/p&gt;
&lt;p&gt;Software is your friend. Use a combination of databases and spreadsheets. Keep on top of logging your payments - every few days is sufficient for me.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Is pair programming the answer to code review hell?</title>
    <link href="https://samdking.co.uk/blog/pair-programming-code-review/"/>
    <updated>2022-09-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/pair-programming-code-review/</id>
    <content type="html">&lt;p&gt;I read a thought-provoking Tweet recently which unfortunately I’ve been unable to dig up now. Essentially, it proposed the notion that, when building software, we need fewer code reviews and more pair-programming.&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;Pair programming consists of two programmers sharing a single workstation (one screen, keyboard and mouse among the pair). The programmer at the keyboard is usually called the “driver”, the other, also actively involved in the programming task but focusing more on overall direction is the “navigator”; it is expected that the programmers swap roles every few minutes or so.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;cite&gt;Agile Aliance&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;My experience of pair programming comes from a job I had 5+ years ago, a “fast-paced” agency, hot on tracking every movement of a developer’s day and not so keen on doubling-up for jobs. But it’s where I first discovered pair-programming was even a concept, and where my intrigue grew.&lt;/p&gt;
&lt;p&gt;My next job, another web agency, this time coding primarily in Ruby (from PHP), &lt;em&gt;coding with another developer&lt;/em&gt; was a necessity at first as I got to grips with a new programming language. I emphasise the words as it wouldn’t consider the practice pair-programming per se, as it was more akin to training. But it certainly had the essence of it.&lt;/p&gt;
&lt;p&gt;At my current company, we do 100% code reviews. That’s not to say pair programming is outlawed by any means, but we’re fully remote as a team, and when I joined there just wasn’t the culture. The initial tweet struck home for me because I often get stuck in code review hell after weeks or sometimes months of a feature being built.&lt;/p&gt;
&lt;h2&gt;Why code reviews tend to suck&lt;/h2&gt;
&lt;p&gt;Now, I don’t mind a code review. Or rather, it’s a necessity I am happy to bear. But code reviews can so easily become unmanageable and headache-inducing, and, frankly, pointless. When you’re trying balance a mental model of the codebase in your head and require frequent breaks to clear the forming brain fog, the code review has lost its purpose.&lt;/p&gt;
&lt;p&gt;Code reviews are hard because they require the author to adequately communicate the context and mental model they had when coding. Without this, the code review simply becomes an unhelpful human-linting.&lt;/p&gt;
&lt;h2&gt;My take&lt;/h2&gt;
&lt;p&gt;So back to the initial proposition. Is pair programming more effective than code review? I’m going lay my cards out here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Absolutely pair program. It’s great for morale, learning &amp;amp; problem-solving. Work for an employer that shares this mindset.&lt;/li&gt;
&lt;li&gt;Do code reviews. But do them early, do them frequently, keep them small, and merge often.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do them both. Two developers can still collectively make mistakes (although, significantly less than one), so it’s always worth adding in a third or fourth opinion at the code-review stage.&lt;/p&gt;
&lt;h2&gt;Why pair programming is great&lt;/h2&gt;
&lt;p&gt;The benefit to pair programming off the bat is two developers now have context and knowledge of the code being written. This is a huge plus for the future and is great for avoiding silos of information within your organisation from forming.&lt;/p&gt;
&lt;p&gt;But more than that, pair programming creates better code. An after-the-fact code review is not the time nor place to have an argument about the best way to approach building a feature. Hash this out before or as you’re writing the code.&lt;/p&gt;
&lt;p&gt;Finally, pair programming builds bonds. It gets developers familiar with each others’ approaches and shares problem-solving techniques.&lt;/p&gt;
&lt;h2&gt;But it&#39;s hard&lt;/h2&gt;
&lt;p&gt;Building a culture around pair programming is not easy. It’s a learned skill (like writing good tests). And the benefits to your employer might not be as obvious as its drawbacks. But if your code reviews are becoming a bottleneck to feature roll-out, or if knowledge of your system is becoming siloed to particular developers, pair programming might be worth a go for your team.&lt;/p&gt;
&lt;p&gt;If you pair program frequently, I’d love to hear how it works for you and your team. Reach out to me &lt;a href=&quot;https://twitter.com/samdkingdev&quot;&gt;on Twitter&lt;/a&gt; and let’s chat!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Bringing your Notion database to life with Eleventy</title>
    <link href="https://samdking.co.uk/blog/bringing-your-notion-database-to-life-with-eleventy/"/>
    <updated>2022-08-25T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/bringing-your-notion-database-to-life-with-eleventy/</id>
    <content type="html">&lt;p&gt;Notion is an excellent productivity tool, which I use extensively for my &lt;a href=&quot;/blog/my-journalling-setup-in-notion/&quot;&gt;daily journalling&lt;/a&gt;. Another awesome tool I use as a developer is Eleventy (11ty). 11ty is a static site generator built in Node.js. A static site generator means the building of webpage occurs in a separate process to viewing the website. This has the huge benefit of serving up a load of uncomplicated, plain HTML pages to the end user, really fast.&lt;/p&gt;&lt;h2&gt;Why I chose Notion&lt;/h2&gt;
&lt;p&gt;As much as I enjoy the concept of privately journalling daily, my true goal was to use the data I was collecting each day and putting it on public record. I love habit tracking as a means of personal growth, and having it out there for all to see on my personal website is a great way to stay accountable and consistent.&lt;/p&gt;
&lt;p&gt;One of the criteria for choosing Notion initially as my journalling platform was its API. Its JS client is easy to use and got me up and running nice and quick. After installing the Notion client package, in code, the first step is to create a new client object, using your secret token (skip to &lt;a href=&quot;https://samdking.co.uk/blog/bringing-your-notion-database-to-life-with-eleventy/#your-credentials&quot;&gt;Getting hold of your credentials&lt;/a&gt;):&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Client &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;@notionhq/client&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; notion &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Client&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;auth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;NOTION_SECRET&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You’ll want to store your secret as an environment variable to save committing it to your code. If you&#39;re using Netlify in production, you should set a &lt;a href=&quot;https://docs.netlify.com/configure-builds/environment-variables/&quot;&gt;build environment variable&lt;/a&gt;. In development, you can use an .env file to define key=value variables, e.g.:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NOTION_SECRET=&amp;lt;your secret here&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Read more about &lt;a href=&quot;https://www.11ty.dev/docs/environment-vars/&quot;&gt;environment variables in Netlify&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My journal data is in a single database, which makes it easy to pull out. The following code does the trick:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; beforeDate &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

beforeDate&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;beforeDate&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;beforeDate&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; notion&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;databases&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;database_id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;YOUR DATABASE ID&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;property&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;Auto Date&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token literal-property property&quot;&gt;on_or_before&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; beforeDate&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toISOString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;T&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This queries Notion for a specific database ID (which you need permission to read; more on that later), with a filter on the “Auto Date” column. Filters work basically exactly like they do in the UI, which is cool. For my purpose, I only want entries in the database before a particular date. &lt;code&gt;beforeDate&lt;/code&gt; is set to the first day (Monday) of the current week. This ensures I always get complete weeks of data returned from the API.&lt;/p&gt;
&lt;h2&gt;Paginating and caching&lt;/h2&gt;
&lt;p&gt;By default only the first or last 50 (depending on your sorting logic) are returned. To retrieve all of your entries, you’ll need to pass in the &lt;code&gt;start_cursor&lt;/code&gt; param and recursively loop until the cursor value comes back &lt;code&gt;null&lt;/code&gt; in the response. The database query will return a &lt;code&gt;next_cursor&lt;/code&gt; parameter until there are no more entries to fetch.&lt;/p&gt;
&lt;p&gt;Additionally, you may want to cache this data, certainly during development, to save being rate-limited by Notion (and also to significantly speed up development). You can use the excellent &lt;a href=&quot;https://www.11ty.dev/docs/plugins/fetch/#advanced-usage&quot;&gt;eleventy-fetch&lt;/a&gt; plugin to do this.&lt;/p&gt;
&lt;h2&gt;Making sense of Notion data&lt;/h2&gt;
&lt;p&gt;Notion returns field data in a slightly unintuitive format which tripped me up at first. To retrieve the value of a text field, for example, the following code is required:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;properties&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;TV&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rich_text&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; text&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;plain_text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is due to the fact that a text field in Notion can contain things like links, mentions, annotations, equations, or just simply plain text. Most of the time, I just want the plain text. An exception to this is when I want to retrieve the URL in my “Letterboxd Watch” field:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;properties&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;Letterboxd Watch&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Multi-selects are fairly intuitive to inspect:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;properties&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;Tags&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;multi_select&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tag&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; tag&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Lastly, I use the following code to retrieve the date value of my “Auto Date” formula field:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;row&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;properties&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;Auto Date&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;formula&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;start&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;T&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;field.formula&lt;/code&gt; will return different properties depending on the type of result the formula returns. String, number, boolean and data formats are supported. For my “Auto Date” field I call the &lt;code&gt;date&lt;/code&gt; property, then inspect the start date. All dates have a &lt;code&gt;start&lt;/code&gt; value; date ranges will also have an &lt;code&gt;end&lt;/code&gt; value. I then remove the unused time part, and convert the remaining string into a Javascript &lt;code&gt;Date&lt;/code&gt; object.&lt;/p&gt;
&lt;h2&gt;Why I decided on weeks&lt;/h2&gt;
&lt;p&gt;The next conundrum was how to display the daily journal data. I didn’t want to reveal the day-to-day minutiae of my life, but wanted to group data in a logical and consistent way to be able to make comparisons. I settled on a weekly format, as a week is a decent enough period of time to repeat, is consistent year-on-year, and is frequent enough to keep the feed feeling fresh.&lt;/p&gt;
&lt;p&gt;I grouped my large array of daily data using a &lt;code&gt;reduce&lt;/code&gt; statement:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; weekNumberYear &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;weeknumber&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; byWeek &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; entries&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;all&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; day&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; week&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; year &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;weekNumberYear&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  all&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; all&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;all&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; all&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;year&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;day&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; all&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I group all the entries first by year, then by week number. Here I use the very helpful &lt;code&gt;weeknumber&lt;/code&gt; package to determine the official “ISO” week number for each day. I learned there’s a defined logic which determines the first week of a given year, which may start in December, or several days into January.&lt;/p&gt;
&lt;p&gt;Once grouped into weeks, I loop over each year, then each week and calculate some vital stats for the week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How many todos I completed that week&lt;/li&gt;
&lt;li&gt;How many todos remained at the end of the week&lt;/li&gt;
&lt;li&gt;How many todos added that week&lt;/li&gt;
&lt;li&gt;A collation of tags&lt;/li&gt;
&lt;li&gt;Films watched &amp;amp; reviewed&lt;/li&gt;
&lt;li&gt;TV shows watched&lt;/li&gt;
&lt;li&gt;Podcasts listened to&lt;/li&gt;
&lt;li&gt;Books finished &amp;amp; started&lt;/li&gt;
&lt;li&gt;Total run distance (via external Spreadsheet synced with Strava)&lt;/li&gt;
&lt;li&gt;Total walk distance (via external Spreadsheet synced with Strava)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For each year, I also loop over each week and total up the number of books, films, TV shows and podcasts consumed for my top-of-the-feed aggregation.&lt;/p&gt;
&lt;h2 id=&quot;your-credentials&quot;&gt;Getting hold of your credentials&lt;/h2&gt;
&lt;p&gt;There are three important steps to get access to our Notion data via the API: a client secret, your database ID, and read permissions to said database.&lt;/p&gt;
&lt;p&gt;First, you’ll need to &lt;a href=&quot;https://www.notion.so/my-integrations&quot;&gt;create a new integration in Notion&lt;/a&gt;. For my purposes, I choose “Weekly Feed” as my integration name, selected just “Read content” (no point risking accidental data loss) and “No user information” for my user capabilities.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/notion-integration.png&quot; alt=&quot;My Weekly Feed Notion Integration Setup&quot; class=&quot;w-full lg:w-3/4 mx-auto rounded-sm mb-4 drop-shadow-xl&quot; /&gt;
  &lt;figcaption&gt;My Weekly Feed Notion Integration Setup&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This will create an Internal Integration which is only available for workspaces I am an Admin for, which is exactly what I need; and means no messing about with OAuth is required.&lt;/p&gt;
&lt;p&gt;Once your integration is ready to go, the next step is to grab your database ID. The easiest way I’ve found to get this is to hit the “Share” button in the top right corner of the database page, then select Copy Link. Within this URL is your database ID. You want everything after the domain and everything before the query string: &lt;code&gt;https://www.notion.so/&amp;lt;YOUR DATABASE ID&amp;gt;?v=abcdefg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The final step is to grant permission for your new integration to access this page. Once again, click the “Share” button on your page, then in the text box, start typing the name of your integration (e.g. “Weekly Feed”). It will autocomplete and hopefully show your newly created integration with “Shared with workspace” next to it. Select this, and you’ll be able to start querying data on this page using the API. Neat!&lt;/p&gt;
&lt;h2&gt;Outputting the data in Eleventy&lt;/h2&gt;
&lt;p&gt;To output the processed Notion data in a template, we need to ensure all the code that communicates with Notion and processes the data is in a data file. Let’s call it feed.js. For Eleventy to access this data file successfully, we need to export an asynchronous function which returns the data:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// feed.js&lt;/span&gt;

module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// all the code here&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Eleventy will then register the variable &lt;code&gt;feed&lt;/code&gt;  to use in a template. My feed.liquid template then uses frontmatter and pagination to set up the year grouping, and outputs the weekly entries for that year:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;// feed.liquid

---
layout: layout.liquid
eleventyComputed:
  title: &quot;Weekly Stats for {{ year }}&quot;
  metaDescription: A week-by-feed feed for {{ year }} consisting of data from my journal&#39;s daily entries.
pagination:
  data: feed
  size: 1
  alias: year
permalink: &quot;feed/{{ year | slug }}/&quot;
---

{% assign yearFeed = feed[year] %}

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;feed&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	{% for entry in yearFeed.weeks %}
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;week{{ entry.week }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		  &lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Entry markup --&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	{% endfor %}
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The possibilities are endless&lt;/h2&gt;
&lt;p&gt;There’s plenty more we can do with the feed data. For example, I recently implemented a “Recently” section on my homepage. This grabs the most recent week from the feed, and plucks out the books, podcasts and TV shows I consumed that week.&lt;/p&gt;
&lt;p&gt;Because I don’t start a new book each week, I use some nifty logic which iterates week-to-week to find the last book I started, providing all subsequent weeks have at least one “Books” tag (meaning I read the book that week):&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;currentlyReading&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;weeks&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; books &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; weeks&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// weeks[0] is latest week&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; week &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; weeks&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;books_finished&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      books&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;books_finished&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;books_started&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      books&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;books_started&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;books&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; books&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;week&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tags&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tag&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;Books&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notion makes consuming other data files very straight forward. In the recently.js data file, I use &lt;code&gt;require&lt;/code&gt; to pull in my feed data. Because feed.js exports an asynchronous function, we can retrieve the feed data by &lt;code&gt;await&lt;/code&gt;ing the function call:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; feed &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;./feed&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;feed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; currentYear &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; lastWeek &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;currentYear&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;weeks&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; recently &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; recently&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Automating the rebuild&lt;/h2&gt;
&lt;p&gt;Due to the fact my weekly feed is built on human-entered data, I haven’t made any steps to automating this process yet. Mostly because sometimes I won’t log until the following day, or I’ll go back through the week and fill in a few missing Podcast titles.&lt;/p&gt;
&lt;p&gt;Because of this, I perform a manual rebuild of my site in Netlify. Rebuilding the main branch will deploy the changes “live” immediately, however. So I’ll typically rebuild a Pull Request (PR) I have lying around. Not the cleanest approach, but this then gives me a “preview” URL showing my updated feed. I can make any tweaks needed in Notion, before rebuilding my main branch, publishing the feed changes onto my site.&lt;/p&gt;
&lt;p&gt;Something I’ve considered in the past is an automated weekly script that programatically creates a new PR in Github and emails me the Netlify preview link once generated. Once I’m happy everything looks good, merging this PR would publish the changes live. But at the moment, I’m  happy with the weekly manual publishing process.&lt;/p&gt;
&lt;h2&gt;Eleventy and Notion, working in harmony&lt;/h2&gt;
&lt;p&gt;That’s all folks. I love the combination of journalling and Notion and grouping and visualising the data in Eleventy. If you follow this same approach, &lt;a href=&quot;https://twitter.com/samdkingdev&quot;&gt;let me know on twitter&lt;/a&gt;, I’d love to see your creation.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>My Journalling Setup in Notion</title>
    <link href="https://samdking.co.uk/blog/my-journalling-setup-in-notion/"/>
    <updated>2022-07-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-journalling-setup-in-notion/</id>
    <content type="html">&lt;p&gt;I make a habit of journalling daily, and you can &lt;a href=&quot;/blog/journalled-daily-for-year-what-i-learned/&quot;&gt;read about this practice here&lt;/a&gt;. I started this journal in Notion as a way of getting up to speed with the app. I use the Mac app on my laptop and the Android app on my phone. Notion has stood the test of time, 15 months on, so what do I like about it for journalling?&lt;/p&gt;&lt;h2&gt;Why Notion&lt;/h2&gt;
&lt;p&gt;Notion is a nice bit of software. It’s powerful, yet clean and intuitive. At its heart, it’s a note-taking app, but it features powerful ways to organise your data such as databases and lookups. As a developer, databases are my bread and butter, so I liked the concept of being able to take notes but organise my data into structures too.&lt;/p&gt;
&lt;p&gt;Notion also has a neat concept of views: a way to visualise your data based on certain criteria and groupings.&lt;/p&gt;
&lt;p&gt;Lastly, Notion has an API. This is what attracted me to it, as it allows me to pull in my journalling  &amp;amp; meta data from Notion and mess around with it in code.&lt;/p&gt;
&lt;h2&gt;My journalling setup&lt;/h2&gt;
&lt;p&gt;My journal entries are stored in a single database. There’s no limit to the number of entries you can store in a database, so this isn’t a concern. Alongside my journal entry, I track various metrics for that day as well. These are easily captured by a defined set of fields in the database.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/new-post-in-notion.png&quot; alt=&quot;Drafting a new post in Notion&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Below is a list of the various field types I use. For an in-depth explanation of why I log them as part of my journalling practice, check out my post on &lt;a href=&quot;https://samdking.co.uk/blog/journalled-daily-for-year-what-i-learned/&quot;&gt;why I journal&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Date fields&lt;/h3&gt;
&lt;p&gt;The primary date field which I display on my main view is actually a Formula field. This provides a small time-saver when creating new entries. The formula used is as follows:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token function&quot;&gt;formatDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Auto Date&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;MMM D, YYYY&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This field simply acts as a formatter for another formula field: “Auto Date”. Auto Date holds the important formula here:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Override Date&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Created&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Override Date&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here you can see it checks for a value in the “Override Date” field. This is a standard Date field in Notion, but is hidden by default when composing a new entry (more on that later).&lt;/p&gt;
&lt;p&gt;If this field is empty, it will instead use the value of a “Created” field, which is a simple “Created Time” field type, and is always equal to the timestamp an entry was created.&lt;/p&gt;
&lt;p&gt;What this results in, by default, is a formatted “Date” equal to the date an entry was created (typically, today).&lt;/p&gt;
&lt;p&gt;The “Override Date” is used, typically, for when I don’t get chance to log that day, and I need to back-date an entry. I&#39;ll simply select yesterday’s date from the date-picker on the “Override Date” field.&lt;/p&gt;
&lt;p&gt;Lastly, I created another formula field called “Day”, which takes the value of “Auto Date” and formats it into the day of the week:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token function&quot;&gt;formatDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Auto Date&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;dddd&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is useful for, for example, filtering weekend journal entries only in views, and serves as a useful at-a-glance context for the entry.&lt;/p&gt;
&lt;h3&gt;Tags&lt;/h3&gt;
&lt;p&gt;This is a standard multi-select field containing 20 or so tags. Some are defunct, some seldom used, but the tags remain to preserve past entries. Any number of tags can be associated with a journal entry.&lt;/p&gt;
&lt;h3&gt;To-do management&lt;/h3&gt;
&lt;p&gt;I keep track of to-dos with 2 simple numeric fields: “To-dos Completed” and “To-dos Remaining”, with the former being optional, as I treat it as 0 by default.&lt;/p&gt;
&lt;p&gt;In addition to this, I created a “Todos” formula field, which constructs a nicer, condensed representation of the status of my to-dos on a given day:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token function&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Todos Completed&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Todos Completed&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; done / &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Todos Remaining&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; todo&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This results in the string: “0 done / 3 todo” (for example), and works well in “card” previews of entries.&lt;/p&gt;
&lt;p&gt;There&#39;s a strong case for integrating with an external to-do service to pull this data in. But I&#39;m not a heavy to-do user, so manually keeping track of to-dos completed and to-dos remaining requires little effort.&lt;/p&gt;
&lt;h3&gt;TV&lt;/h3&gt;
&lt;p&gt;I keep track of TV programmes watched with a very simple text field and a strict format for recording. The TV show name followed by the episode in brackets in the format: “S0E00”. If I’ve watched multiple episodes of a show that day, I’ll separate the individual episodes with a comma, e.g.: “TV Show (S0E00, S0E01)”.&lt;/p&gt;
&lt;p&gt;This strict formatting allows me to parse the string on my website and determine which episodes I’ve watched of each show.&lt;/p&gt;
&lt;h3&gt;Film&lt;/h3&gt;
&lt;p&gt;This is a simple URL Field in Notion. I just copy and paste the URL of my review of the film in &lt;a href=&quot;https://letterboxd.com/&quot;&gt;Letterboxd&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Podcasts&lt;/h3&gt;
&lt;p&gt;A simple multiline text field where I enter podcasts I’ve listened to that day, in the format “Show - Episode title”. Multiple podcasts are separated by a semi-colon. As with TV, sticking to a strict format for this allows me to reliably parse it on my website.&lt;/p&gt;
&lt;h3&gt;Food&lt;/h3&gt;
&lt;p&gt;“Food” is a Relation field type, and links to a separate database in Notion, called “Food”. Here, I keep track of all the food I eat, including the ingredients, brands and source of the recipe. Linking to an item in the food database on days where I eat this, allows me to keep track of what meals I eat most often, and when.&lt;/p&gt;
&lt;p&gt;This works as a useful system for meal planning and inspiration too, as I can see what meals I haven’t cooked in a while, and which I eat a lot.&lt;/p&gt;
&lt;h3&gt;Books&lt;/h3&gt;
&lt;p&gt;To keep track of books, I have 2 fields: “Book Started” and “Book Finished”. I use the latter to display books I’ve read on my website, and the former currently just as an internal metric for me for how long a book has taken me to finish.&lt;/p&gt;
&lt;h2&gt;How I visualise my data&lt;/h2&gt;
&lt;p&gt;Notion allows you to categorise your data and visualise it using &amp;quot;Views&amp;quot;. Over my time journalling, I&#39;ve built up a collection of these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Side Project&lt;/li&gt;
&lt;li&gt;Child A&lt;/li&gt;
&lt;li&gt;Child B&lt;/li&gt;
&lt;li&gt;Books&lt;/li&gt;
&lt;li&gt;Social Calendar&lt;/li&gt;
&lt;li&gt;TV &amp;amp; Film&lt;/li&gt;
&lt;li&gt;By Month&lt;/li&gt;
&lt;li&gt;Podcasts&lt;/li&gt;
&lt;li&gt;Fitness&lt;/li&gt;
&lt;li&gt;Health &amp;amp; Relationships&lt;/li&gt;
&lt;li&gt;Tags&lt;/li&gt;
&lt;li&gt;Completed To-dos&lt;/li&gt;
&lt;li&gt;Mondays&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Views are great as they often foreshadow data I&#39;d like to present publicly on my website. They come in 6 different layouts: Table, Board, Timeline, Calendar, List &amp;amp; Gallery. I tend to mostly use Table &amp;amp; Calendar. Below is a summary of what I use each for:&lt;/p&gt;
&lt;h3&gt;Side Project&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Side Project&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A really useful &amp;quot;birdseye view&amp;quot; indicator of when I&#39;m most productive on side projects. Often I feel this comes in fits and bursts, and this calendar view usually backs that theory up. Useful for giving me a nudge to dedicate more time to side projects. A prime candidate for converting into a proper page on my site.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-side-projects.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-side-projects.png&quot; alt=&quot;Side projects view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Child A / Child B&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Child A&amp;quot; / &amp;quot;Child B&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; I like to keep a fairly balanced account of the development and my observations of my two children. These 2 calendar views help me track that. Being able to isolate posts with mentions of each child in allows me to more easily browse &amp;quot;updates&amp;quot; for that child.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-children.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-children.png&quot; alt=&quot;Child A / Child B view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Books&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Books&amp;quot; or a value in the &amp;quot;Book started&amp;quot; or &amp;quot;Book Finished&amp;quot; field&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; This list view collates posts where I talk about a book I&#39;m reading, or indicate I&#39;ve started or finished a book. Used as a note-taker if I read something that day I want to remember.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-books.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-books.png&quot; alt=&quot;Books view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Social Calendar&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Social&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; Since working fully remote, I’m more mindful of how often I get out and do something social with people outside of my immediate family. This calendar view helps me to quickly see how social I’ve been recently.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-social-calendar.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-social-calendar.png&quot; alt=&quot;Social Calendar view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;TV &amp;amp; Film&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts containing a value in the &amp;quot;TV&amp;quot; or &amp;quot;Film&amp;quot; fields&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A calendar view for seeing trends of time spent sitting on the couch - an inactive indicator, to a degree. This view got turned into a &lt;a href=&quot;https://samdking.co.uk/tv/2022/&quot;&gt;TV page&lt;/a&gt; on my site (films to follow later).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-tv-film.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-tv-film.png&quot; alt=&quot;TV &amp;amp; Film view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;By Month&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; All posts, grouped by month&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A pretty slow view to render (more on this later), but useful for scrolling through the &amp;quot;headlines&amp;quot; for a particular month, or glancing at key metrics (I show title, tags, film, TV &amp;amp; todos remaining data on this view).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-by-month.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-by-month.png&quot; alt=&quot;By Month view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Podcasts&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts containing a value in the &amp;quot;Podcasts&amp;quot; field&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A calendar view in the same vein as TV &amp;amp; film, but for podcasts. This view also recently got turned into a &lt;a href=&quot;https://samdking.co.uk/podcasts/2022&quot;&gt;Podcast page&lt;/a&gt; on my site.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-podcasts.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-podcasts.png&quot; alt=&quot;Podcasts view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Fitness&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Fitness&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A seldom used calendar view, pretty much superseded by Strava. I don&#39;t do anything with my fitness-tagged post data at the moment, as walk and run data is exported by Strava to a Google Sheet and displayed on my &lt;a href=&quot;https://samdking.co.uk/feed/2022/&quot;&gt;feed page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-fitness.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-fitness.png&quot; alt=&quot;Fitness view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Health &amp;amp; Relationships&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts tagged with &amp;quot;Health&amp;quot; or &amp;quot;Relationships&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A really helpful calendar view highlighting periods of mental fatigue, among other things. Useful for pre-empting burnout or just for validation that things have been hard recently (and that they&#39;ll get better; they always do).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-health-relationships.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-health-relationships.png&quot; alt=&quot;Health &amp;amp; Relationships view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Tags&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; All posts, grouped by tag&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; An experimental table-layout view for seeing the last 10 posts for a particular tag. What would be incredibly useful is to &lt;em&gt;just&lt;/em&gt; see the relevant content for that tag, to save skimming the whole post; but this was a structural step too far in Notion when creating my setup. Useful for seeing frequency of tags at a glance, as Notion shows only the last 10 most recent posts for each tag by default.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-tags.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-tags.png&quot; alt=&quot;Tags view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Completed To-dos&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts containing a value in the &amp;quot;Todos Completed&amp;quot; field&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A good metric of productivity. A calendar view showing when I&#39;ve completed to-dos. Useful for spotting lulls in productivity and trends, e.g. most common days of the week I tend to complete tasks.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-completed-todos.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-completed-todos.png&quot; alt=&quot;Completed To-dos view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Mondays&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What:&lt;/strong&gt; Posts where the value of the &amp;quot;Day&amp;quot; field is &amp;quot;Monday&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; I play a weekly game of football with friends on Monday evenings. I invariably summarise the game for my own satisfaction; I use this table view of Monday posts to browse these.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/images/notion-view-mondays.png&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/notion-view-mondays.png&quot; alt=&quot;Mondays view&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Room for improvement&lt;/h2&gt;
&lt;p&gt;Notion is slow. Sometimes. On my 8 year old Macbook Pro, sometimes views can take up to 10 seconds to load. It all feels a little clunky, when in theory, most of the data could be stored offline and refreshed in the background.&lt;/p&gt;
&lt;p&gt;On the Android app on my phone (3-year-old Pixel 3), it&#39;s better. But it&#39;s a long way from being a snappy experience. Most of the time, this is fine. But if I was a power user and relied on Notion a lot for my work, this would be irksome.&lt;/p&gt;
&lt;p&gt;Tagging posts is a great way to group themes together and see frequency at a glance, but it&#39;s not very easy to browse &lt;em&gt;just&lt;/em&gt; that content. E.g. see all my Child A journal entries. This isn&#39;t so much a limitation of Notion as it is the way I&#39;ve set it up. Fortunately, I don&#39;t very often need to browse my journal entries in this way.&lt;/p&gt;
&lt;p&gt;One solution would be to create a new &amp;quot;sub&amp;quot; entry for each subject I talk about, but this would increase friction when typing out a journal entry and make the whole process less smooth. So, for now, my setup is fine.&lt;/p&gt;
&lt;h2&gt;How I pull this data into my Eleventy website&lt;/h2&gt;
&lt;p&gt;Netlify&#39;s &lt;a href=&quot;https://github.com/netlify/js-client&quot;&gt;API client&lt;/a&gt; and permission system is easy to use and works nicely for what I need. But this is a post for another day. Stay tuned!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Revisiting 23 year old me: An introspective</title>
    <link href="https://samdking.co.uk/blog/revisiting-23-year-old-me-introspection/"/>
    <updated>2022-05-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/revisiting-23-year-old-me-introspection/</id>
    <content type="html">&lt;p&gt;A little under 11 years ago I embarked on a challenge to complete &lt;a href=&quot;/blog/101-things-in-1001-days-the-results/&quot;&gt;101 tasks in a 1001 days&lt;/a&gt; (roughly 2 years and 9 months). I did not fair well, completing just under a third of the tasks in the time frame (33). It was an interesting challenge to see how my goals change over time though.&lt;/p&gt;&lt;p&gt;In the same vein, I love a bit of introspection, and I thought it would be interesting to revisit the list, see how many I’ve subsequently completed, and see how my outlook on life has changed from my 20s to my 30s. So without further ado:&lt;/p&gt;
&lt;p&gt;I have now completed &lt;strong&gt;54/101&lt;/strong&gt; tasks. Over half!&lt;/p&gt;
&lt;h2&gt;Tasks completed since&lt;/h2&gt;
&lt;div class=&quot;tasks-list&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;4&lt;/span&gt; Visit 5 countries - (Netherlands, Canada, Belgium, Maldives, France).&lt;/li&gt;
&lt;li&gt;&lt;span&gt;17&lt;/span&gt; Watch a live sporting event in a foreign country (Budapest)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;24&lt;/span&gt; See The Strokes live (Hyde Park)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;25&lt;/span&gt; Own my own pet (Chester)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;29&lt;/span&gt; Learn how to ski/snowboard&lt;/li&gt;
&lt;li&gt;&lt;span&gt;30&lt;/span&gt; Play in a football tournament&lt;/li&gt;
&lt;li&gt;&lt;span&gt;37&lt;/span&gt; Make a memorable speech / talk (wedding)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;48&lt;/span&gt; Swim in the sea (Devon)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;50&lt;/span&gt; Join LinkedIn&lt;/li&gt;
&lt;li&gt;&lt;span&gt;53&lt;/span&gt; Have afternoon tea at the Ritz&lt;/li&gt;
&lt;li&gt;&lt;span&gt;54&lt;/span&gt; Go one day without using my phone&lt;/li&gt;
&lt;li&gt;&lt;span&gt;67&lt;/span&gt; Learn to surf&lt;/li&gt;
&lt;li&gt;&lt;span&gt;73&lt;/span&gt; Host a house party&lt;/li&gt;
&lt;li&gt;&lt;span&gt;82&lt;/span&gt; Get up before 6am at least 5 times&lt;/li&gt;
&lt;li&gt;&lt;span&gt;70&lt;/span&gt; Go zorbing (I’m counting zorb football)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;79&lt;/span&gt; Go rock-climbing outside (Wales, barefoot, cut my foot open)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;85&lt;/span&gt; Redesign/recode samueldking.co.uk&lt;/li&gt;
&lt;li&gt;&lt;span&gt;86&lt;/span&gt; Have a dental checkup&lt;/li&gt;
&lt;li&gt;&lt;span&gt;95&lt;/span&gt; Go to the theatre&lt;/li&gt;
&lt;li&gt;&lt;span&gt;99&lt;/span&gt; Relax in a hot tub, outside, on a cold winter&#39;s night (Iceland)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;100&lt;/span&gt; Learn another programming language (Ruby)&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;It’s nice to look back on the 7 and a half years since the challenge ended and reflect on what I have achieved. Learning to ski and surf, owning my own pet, watching Chelsea abroad, learning Ruby and finally recoding this website among a few.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Outstanding goals&lt;/h2&gt;
&lt;p&gt;Of the 48 outstanding, I’ve split them into 3 categories: really should have achieved by now; frivolous goals; and things I want to do before I die.&lt;/p&gt;
&lt;p&gt;I was pleased to see a reasonably even split between the 3 categories. Things I still want to achieve being the highest with 40%, followed by frivolous goals: 36%, and really should have achieved: 23%.&lt;/p&gt;
&lt;h3&gt;Really should have achieved&lt;/h3&gt;
&lt;div class=&quot;tasks-list&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;5&lt;/span&gt; Get a tattoo&lt;/li&gt;
&lt;li&gt;&lt;span&gt;14&lt;/span&gt; Learn how to dive&lt;/li&gt;
&lt;li&gt;&lt;span&gt;46&lt;/span&gt; Host a poker night&lt;/li&gt;
&lt;li&gt;&lt;span&gt;51&lt;/span&gt; Buy a wide-angle or fisheye lens&lt;/li&gt;
&lt;li&gt;&lt;span&gt;55&lt;/span&gt; Visit 5 different museums&lt;/li&gt;
&lt;li&gt;&lt;span&gt;63&lt;/span&gt; Give blood&lt;/li&gt;
&lt;li&gt;&lt;span&gt;68&lt;/span&gt; Earn over £1000 freelancing&lt;/li&gt;
&lt;li&gt;&lt;span&gt;83&lt;/span&gt; Climb a tree&lt;/li&gt;
&lt;li&gt;&lt;span&gt;84&lt;/span&gt; Visit a water park&lt;/li&gt;
&lt;li&gt;&lt;span&gt;90&lt;/span&gt; Have my Les Paul cleaned/setup properly&lt;/li&gt;
&lt;li&gt;&lt;span&gt;91&lt;/span&gt; Sleep in a hammock&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;I’m happy in the end there weren’t too many I felt I really should have done (11 in total from the original 101). These all feel achievable, and but for losing the best part of 2 years for the pandemic, some more may have been.&lt;/p&gt;
&lt;p&gt;I never explored the freelancing route, which is interesting. I seemingly had aspirations to do this in my 20s, but I’ve instead chosen to stick to a combination of a full time job and side projects, rather than any extra paid work on the side.&lt;/p&gt;
&lt;h3&gt;Frivolous&lt;/h3&gt;
&lt;div class=&quot;tasks-list&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;7&lt;/span&gt; Re-watch every episode of Friends&lt;/li&gt;
&lt;li&gt;&lt;span&gt;9&lt;/span&gt; Star Wars Marathon&lt;/li&gt;
&lt;li&gt;&lt;span&gt;10&lt;/span&gt; Put a $100 bet on red or black in Vegas&lt;/li&gt;
&lt;li&gt;&lt;span&gt;16&lt;/span&gt; Take a huge canvas worthy photograph&lt;/li&gt;
&lt;li&gt;&lt;span&gt;19&lt;/span&gt; Read and watch all of Harry Potter&lt;/li&gt;
&lt;li&gt;&lt;span&gt;20&lt;/span&gt; Learn to down a pint of beer&lt;/li&gt;
&lt;li&gt;&lt;span&gt;21&lt;/span&gt; Learn to shotgun a can of beer&lt;/li&gt;
&lt;li&gt;&lt;span&gt;26&lt;/span&gt; Attend a convention&lt;/li&gt;
&lt;li&gt;&lt;span&gt;33&lt;/span&gt; Watch every James Bond film chronologically&lt;/li&gt;
&lt;li&gt;&lt;span&gt;36&lt;/span&gt; Ceiling-high DVD collection (approx. 150 DVDs)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;43&lt;/span&gt; 50 press-ups in a row&lt;/li&gt;
&lt;li&gt;&lt;span&gt;45&lt;/span&gt; Win a game of Poker&lt;/li&gt;
&lt;li&gt;&lt;span&gt;59&lt;/span&gt; Watch 100 of IMDB&#39;s Top 250 movies list&lt;/li&gt;
&lt;li&gt;&lt;span&gt;64&lt;/span&gt; Dual-monitor setup at home&lt;/li&gt;
&lt;li&gt;&lt;span&gt;65&lt;/span&gt; Photograph a private event&lt;/li&gt;
&lt;li&gt;&lt;span&gt;72&lt;/span&gt; Take a really good sunset photograph&lt;/li&gt;
&lt;li&gt;&lt;span&gt;80&lt;/span&gt; Go fancy dress as Doctor Who&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;It’s amusing to me how many of these involve pointless numbers, although in fairness to my past self, are at least quantifiable. Suffice to say, marathons and boxset-rewatching was not the highest on my priorities list in the end.&lt;/p&gt;
&lt;p&gt;Hobbies such as photography fell by the way side. At least in terms of tech. I still enjoy the art of taking pictures, but primarily now with a smart phone rather than DSLR.&lt;/p&gt;
&lt;p&gt;A ceiling-high DVD collection is almost a relic of the past now. I reduced my collection down several years ago but I’m a little ashamed I’ve not culled it completely. I can’t remember when I last watched a DVD!&lt;/p&gt;
&lt;h3&gt;Do before I die&lt;/h3&gt;
&lt;div class=&quot;tasks-list&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;3&lt;/span&gt; Skydive&lt;/li&gt;
&lt;li&gt;&lt;span&gt;11&lt;/span&gt; Learn a Language&lt;/li&gt;
&lt;li&gt;&lt;span&gt;13&lt;/span&gt; Be in a band&lt;/li&gt;
&lt;li&gt;&lt;span&gt;15&lt;/span&gt; Swim a mile&lt;/li&gt;
&lt;li&gt;&lt;span&gt;23&lt;/span&gt; Stay in a hostel&lt;/li&gt;
&lt;li&gt;&lt;span&gt;27&lt;/span&gt; Own a valve amp, play it live&lt;/li&gt;
&lt;li&gt;&lt;span&gt;28&lt;/span&gt; Own a Fender Guitar&lt;/li&gt;
&lt;li&gt;&lt;span&gt;32&lt;/span&gt; Ride a sleeper train&lt;/li&gt;
&lt;li&gt;&lt;span&gt;39&lt;/span&gt; Ride the New York subway&lt;/li&gt;
&lt;li&gt;&lt;span&gt;41&lt;/span&gt; See 25 live gigs&lt;/li&gt;
&lt;li&gt;&lt;span&gt;42&lt;/span&gt; Write a song&lt;/li&gt;
&lt;li&gt;&lt;span&gt;44&lt;/span&gt; Make friends in a foreign country&lt;/li&gt;
&lt;li&gt;&lt;span&gt;49&lt;/span&gt; Learn to rollerblade/skate&lt;/li&gt;
&lt;li&gt;&lt;span&gt;56&lt;/span&gt; Make a short film&lt;/li&gt;
&lt;li&gt;&lt;span&gt;58&lt;/span&gt; Go to a music festival&lt;/li&gt;
&lt;li&gt;&lt;span&gt;62&lt;/span&gt; Go scuba diving&lt;/li&gt;
&lt;li&gt;&lt;span&gt;66&lt;/span&gt; Ride a hot air balloon&lt;/li&gt;
&lt;li&gt;&lt;span&gt;92&lt;/span&gt; Take a trip on my own&lt;/li&gt;
&lt;li&gt;&lt;span&gt;97&lt;/span&gt; Spend Christmas/New Year somewhere beautiful&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;This is the really interesting list for me. A mixture of waning hobbies, lack of consistency, and distant but still desirable goals.&lt;/p&gt;
&lt;p&gt;Skydiving, scuba diving, and riding a hot air balloon &amp;amp; a sleeper train are all still activities I’d love to do one day. Charlotte and I snorkelled in the Maldives, which was mesmerising, but didn’t take the plunge on the scuba dive.&lt;/p&gt;
&lt;p&gt;Music, like photography, has become a less significant part of my life. I would still consider it a passion of mine though, so one day playing live in a band (#13), with a Fender tele (#28) through a Blues Junior (#27) remains a dream of mine 😍.&lt;/p&gt;
&lt;p&gt;Swimming a mile remains a &lt;a href=&quot;https://samdking.co.uk/blog/become-a-confident-swimmer/&quot;&gt;current challenge&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Goal-setting is something I now approach with a bit more trepidation. Goals can hang over you like the proverbial albatross, especially if your time to yourself is limited due to family commitments, for example.&lt;/p&gt;
&lt;p&gt;I would seriously struggle to come up with 101 things I wanted to achieve in the next 3 years now. Perhaps this makes me less ambitious (are you ever more ambititious than in your early 20s?) but I think I have a better grasp on my limitations now.&lt;/p&gt;
&lt;p&gt;I still struggle daily with motivation, especially with more grandiose tasks, so I try to break things down into more achievable, atomic tasks. &lt;a href=&quot;https://samdking.co.uk/blog/journalled-daily-for-year-what-i-learned/&quot;&gt;Journalling daily&lt;/a&gt; helps keep me grounded and track my progress towards my goals.&lt;/p&gt;
&lt;p&gt;A life without working towards something aspirational would be a tedious one, so it&#39;s important to have your sights set on something. Just don&#39;t beat yourself up about it and try and make tiny progress as often as you can.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>CSS Cache Busting in Eleventy</title>
    <link href="https://samdking.co.uk/blog/css-cache-busting-in-eleventy/"/>
    <updated>2022-04-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/css-cache-busting-in-eleventy/</id>
    <content type="html">&lt;p&gt;I’m pretty new to 11ty, and I’m figuring things out as I go. One of those things recently was cache busting my CSS. I’m by no means an expert in front-end development, but I figured it couldn’t be that hard to add a fingerprint hash to my CSS files to ensure changes are always pulled in by the browser when viewing my site.&lt;/p&gt;&lt;h2&gt;Why cache bust?&lt;/h2&gt;
&lt;p&gt;To serve up a quick website, you need to very mindful of caching. If you can, you want to tell the browser to cache a particular URL for as long as possible. That way repeated round-trip to the server to ask for the file’s contents can be avoided. Also, as a rule, URLs shouldn’t change. In a sense, I was breaking both of these guidelines with my CSS.&lt;/p&gt;
&lt;p&gt;Firstly, I was telling the browser to re-evaluate the contents of my CSS each time the URL is accessed. And secondly, the contents of that CSS file was changing each time I deployed any stylesheet changes. And even though my caching strategy was very loose, the browser was still hanging onto stale versions of my CSS file after I deployed a change, which is a problem.&lt;/p&gt;
&lt;h2&gt;Enter, the fingerprint&lt;/h2&gt;
&lt;p&gt;A fingerprint is a hash, unique to the contents of the file. Honestly, I have no idea how this works in practice, but it’s a very useful thing to be able to generate when it comes to caching.&lt;/p&gt;
&lt;p&gt;Instead of always serving up style.css to the browser, and telling it “hey, this might have changes in it, you should go check”, it’s a much smarter idea to just serve up a new URL each time your CSS changes. That’s where the fingerprint comes in.&lt;/p&gt;
&lt;p&gt;By tacking on the CSS file’s unique fingerprint to the end of the file’s URL, we make a new, unique URL each time the CSS file’s contents change. Neat. But how do we accomplish this with Eleventy?&lt;/p&gt;
&lt;h2&gt;Parcel, 11ty, and some custom code in between&lt;/h2&gt;
&lt;p&gt;I’m using Tailwind on my project, a really cool utility-first approach to CSS. The big difference between using Tailwind and defining your own styles in a CSS file, is that changes to your templates trigger changes to your (generated) CSS file.&lt;/p&gt;
&lt;p&gt;This works using Tailwind’s “Just in time” engine. Each time a watched file changes, Tailwind will scan the template for one of its known utility classes, and if it’s found, adds the class definition to your CSS file. What this means in practice is any fingerprinting we do has to be on the generated Tailwind CSS, not your source CSS.&lt;/p&gt;
&lt;p&gt;So, to make this work, I needed to do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Process CSS&lt;/li&gt;
&lt;li&gt;Calculate the generated CSS fingerprint&lt;/li&gt;
&lt;li&gt;Save the processed CSS file with the fingerprinted filename&lt;/li&gt;
&lt;li&gt;Tell Eleventy how to access the fingerprinted CSS file&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&#39;m using using the NPM package &lt;code&gt;npm-run-all&lt;/code&gt; to run my Eleventy and Tailwind scripts at the same time, as it didn’t matter which was processed first. Parcel processed my Tailwind CSS and saved it into Eleventy’s output directory using the following command.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;parcel &lt;span class=&quot;token function&quot;&gt;watch&lt;/span&gt; content/css/*.css --dist-dir _site/css&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And I was building my Eleventy site using the following:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;eleventy &lt;span class=&quot;token parameter variable&quot;&gt;--input&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;content&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I defined both these commands as NPM scripts (&lt;code&gt;prod:tailwind&lt;/code&gt; and &lt;code&gt;prod:eleventy&lt;/code&gt; respectively) and ran them in parallel using &lt;code&gt;npm-run-all&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npm-run-all &lt;span class=&quot;token parameter variable&quot;&gt;--parallel&lt;/span&gt; prod:tailwind prod:eleventy&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For cache-busting purposes, however, we need to do each step sequentially to ensure the process occurs in the correct order. More on this later.&lt;/p&gt;
&lt;h2&gt;Calculating the fingerprint&lt;/h2&gt;
&lt;p&gt;My first bash at this is a simple Javascript file I saved to scripts/hash.js in my repository. It looked like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;fs&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md5 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;md5&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cssFile &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;_site/css/tailwind.css&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fileContents &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cssFile&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hashedFilename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;css/styles-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;md5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fileContents&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;.css&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;content/_data/css.json&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;{&quot;path&quot;: &quot;/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;hashedFilename&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;}&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;renameSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cssFile&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;_site/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;hashedFilename&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It takes the output file of the CSS from running the parcel command above, reads its contents,  then works out the MD5 hash of it. We use this to build a new filename, comprised of the fingerprint hash.&lt;/p&gt;
&lt;p&gt;I’ll talk about the &lt;code&gt;fs.writeFileSync&lt;/code&gt; command shortly, but the final step in the process is to rename the CSS file Parcel generated to the fingerprinted filename.&lt;/p&gt;
&lt;h2&gt;Telling 11ty about the fingerprinted CSS&lt;/h2&gt;
&lt;p&gt;We’ve got the fingerprinted URL taken care of, but now we need to tell 11ty how it can access it, so we’re able to link to it in the template. Our current template looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/css/tailwind.css&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But we need it to look like this:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/css/&amp;lt;fingerprinted-file&gt;.css&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The solution: we can utilise 11ty’s excellent global data files system to generate a JSON file at the point of hashing, which will tell 11ty about the fingerprinted CSS filename. This turns out to be a simply one-liner.&lt;/p&gt;
&lt;p&gt;In short: create a JSON file in the _data directory called css.json, and have this contain a JSON string mapping a “path” key to the fingerprinted CSS filename value. Through the magic of 11ty, when the site is built, we can then reference this value in our template using the variable &lt;code&gt;css.path&lt;/code&gt;, like so:&lt;/p&gt;
&lt;pre class=&quot;language-liquid&quot;&gt;&lt;code class=&quot;language-liquid&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; css &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; css&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;path &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;/css/tailwind.css&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The conditional is needed because we only want to do this fingerprinting malarky in production. In development, the browser won’t cache the CSS file, so we can just reference the generated CSS file straight out of Parcel.&lt;/p&gt;
&lt;h2&gt;Tidying up&lt;/h2&gt;
&lt;p&gt;On my site, I’m only using a single CSS file, tailwind.css. However, it’s conceivable down the line that I may have multiple frontend assets that I want to fingerprint. With that in mind, I adapted hash.js to loop over the directory and fingerprint all CSS files contained within:&lt;/p&gt;
&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;fs&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;path&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md5 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;md5&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; glob &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;glob&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hashedPaths &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fromEntries&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;glob&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;_site/css/!(*-*).css&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; filename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; path&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;basename&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;file&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;.css&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fileContents &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;file&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hashedFilename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;css/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;filename&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;md5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fileContents&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;.css&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;renameSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;file&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;_site/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;hashedFilename&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;filename&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;hashedFilename&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;content/_data/css.json&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hashedPaths&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, we use &lt;code&gt;glob&lt;/code&gt; to read all the CSS files within the _site/css directory, fingerprint them, and rename the original. We use a pattern match on the filename (&lt;code&gt;!(*-*).css&lt;/code&gt;) to ensure we don’t reprocess already fingerprinted files (although this is unlikely to happen in production when builds are done afresh each time).&lt;/p&gt;
&lt;p&gt;Finally, we build up a hash of the fingerprinted filenames (using the original filename, minus the extension, as the key), convert it to JSON, then save the contents to the css.json global data file.&lt;/p&gt;
&lt;p&gt;We can then refer to specific CSS files in the template like so:&lt;/p&gt;
&lt;pre class=&quot;language-liquid&quot;&gt;&lt;code class=&quot;language-liquid&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; css &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; css&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tailwind &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;/css/tailwind.css&lt;span class=&quot;token liquid language-liquid&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I add client-side Javascript to my site, I’ll likely adapt hash.js again to process JS files as well as CSS, and create a more generic &lt;code&gt;assets.json&lt;/code&gt; data file.&lt;/p&gt;
&lt;h2&gt;Scripting it&lt;/h2&gt;
&lt;p&gt;As I need the hashing script to run &lt;em&gt;after&lt;/em&gt; Parcel, but &lt;em&gt;before&lt;/em&gt; 11ty, I can no longer run the various build scripts in parallel. First, however, we need to define a script to run hash.js:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	..
	&lt;span class=&quot;token property&quot;&gt;&quot;hash&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node ./scripts/hash.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, in the build command, we process Tailwind, then hash, then Eleventy sequentially:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	..
	&lt;span class=&quot;token property&quot;&gt;&quot;hash&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node ./scripts/hash.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;npm-run-all prod:tailwind hash prod:eleventy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;prod:eleventy&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eleventy --input=content&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;prod:tailwind&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;parcel build content/css/* --dist-dir _site/css&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;To sum up&lt;/h2&gt;
&lt;p&gt;It took me a while to get my head around this method, and it’s very fair to say I stood on the shoulders of giants to get here. Particularly helpful was Bryce Wray’s excellent article &lt;a href=&quot;https://www.brycewray.com/posts/2020/12/cache-busting-eleventy-take-two/&quot;&gt;Cache Busting in Eleventy, take two&lt;/a&gt;. I took a slightly different approach in the end, but Bryce’s article was essential reading to get me into the mindset.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>I journalled daily for a year and this is what I learned</title>
    <link href="https://samdking.co.uk/blog/journalled-daily-for-year-what-i-learned/"/>
    <updated>2022-03-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/journalled-daily-for-year-what-i-learned/</id>
    <content type="html">&lt;p&gt;I’ve been journalling daily for 365 days. As habits go, it’s one that’s stuck. What have I learned from it?&lt;/p&gt;&lt;h2&gt;Why journal&lt;/h2&gt;
&lt;p&gt;The reason time appears to move so slowly when you’re young, is that so much of what we experience is for the first time. Your mind works hard to learn and store that data for use next time.&lt;/p&gt;
&lt;p&gt;As we grow older, much of life is done on auto-pilot. And for good reason. It would be exhausting otherwise. Humans like patterns and routines, because they’re easy to reproduce efficiently. But it’s one of the reasons life can appear to fly by as you get older. Things literally happen without you consciously being aware of it.&lt;/p&gt;
&lt;p&gt;Journalling as a practice encourages you to take stock of your day, notice things, and capture them. This helps build better memories and prompts you to do things more intentionally.&lt;/p&gt;
&lt;p&gt;I’ve always struggled with memory recall. It’s there, but hazy and the more I try to think about it, the murkier it gets. Articulating and recounting your thoughts each day not only acknowledges them, making them more prominent in your mind, but also gives you a tangible method for retrieving that information in the future.&lt;/p&gt;
&lt;p&gt;Some people like to gratitude journal, whereby you take stock of things that you’re thankful for in your life. Whilst I appreciate this noble practice, I don’t formally do this myself. However, I do like to take stock of my achievements, however small. Simply acknowledging them by writing them down can provide a quick win.&lt;/p&gt;
&lt;p&gt;The things you worry about today will not even register as problems in a year. Journalling is a great way to illustrate this, by looking back and seeing how you’ve progressed with your ability to deal with the emotion and trials and tribulations of life.&lt;/p&gt;
&lt;h2&gt;What I write&lt;/h2&gt;
&lt;p&gt;What I log has evolved over time, and this is exactly the point. You don’t know everything you want to capture at the start. But as you begin to see patterns evolving and things you’d like to track, you can simply add another data point (and in some cases, retroactively backfill if you have access to that data).&lt;/p&gt;
&lt;h3&gt;Events&lt;/h3&gt;
&lt;p&gt;If something significant happens outside of the ordinary, I’ll briefly describe how it went down, and typically share some thoughts on it.&lt;/p&gt;
&lt;h3&gt;Emotions&lt;/h3&gt;
&lt;p&gt;If I’m going through a hard time mentally, I find it a worthwhile experience to write down my thoughts. This doesn’t have to be organised or articulate, anything that helps clear my mind.&lt;/p&gt;
&lt;h3&gt;TV watched&lt;/h3&gt;
&lt;p&gt;I like to keep tabs on a) what I’ve watched and b) the frequency in which I’m watching it. How much time I spend watching TV can often be an indicator of my mental state.&lt;/p&gt;
&lt;h3&gt;Podcasts listened to&lt;/h3&gt;
&lt;p&gt;As with TV, I love to keep tabs of what I’m listening to, and what I haven’t listened to in a while.&lt;/p&gt;
&lt;h3&gt;Film reviews&lt;/h3&gt;
&lt;p&gt;I’ve used &lt;a href=&quot;https://letterboxd.com/&quot;&gt;Letterboxd&lt;/a&gt; as a service for reviewing films I&#39;ve watched long before I started to journal. But, as with TV, I like to keep tabs of the frequency in which I watch films.&lt;/p&gt;
&lt;h3&gt;To-dos completed &amp;amp; remaining&lt;/h3&gt;
&lt;p&gt;I’ve used To-doist for some time to keep track of (typically) long-running to-dos. I’m not a heavy to-do list user, but I started to keep a list as trying to remember long-term items in my head was causing me anxiety. At the end of each day I keep track of how many items I’ve completed that day and how many are remaining. This provides me with potentially useful metrics on productivity over time.&lt;/p&gt;
&lt;h3&gt;Food cooked&lt;/h3&gt;
&lt;p&gt;I’ve done nothing with this data yet, but I decided around the same time as I started journalling, that I’d track the meals that I cook &amp;amp; eat. It’s mostly used as an to aid meal planning and for when I need some inspiration.&lt;/p&gt;
&lt;h3&gt;Tags&lt;/h3&gt;
&lt;p&gt;This is a really useful one, because it allows me to see themes over time. Paragraphs are hard to parse en masse and even harder to find patterns within. I use tags as a summary of what my day consisted of. I add new tags as and when I see fit, but I currently have 18, and I haven’t added any new ones for a while. A day will typically consist of 3-5 tags.&lt;/p&gt;
&lt;h2&gt;How I log&lt;/h2&gt;
&lt;p&gt;I use databases in Notion. Notion is a lovely bit of software, but I have recently experienced some slowness, particularly on Android, which has caused me to reconsider its long term viability. In general, though, I love it.&lt;/p&gt;
&lt;p&gt;One of the most useful features of Notion’s databases is its multiple views. Views help to visualise the database you want to see. I find the calendar views particularly useful. For example, I have views that show:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Social calendar&lt;/strong&gt; - Since working fully remote, I’m more mindful of how often I get out and do something social with people outside of my immediate family. A calendar helps me to quickly see how social I’ve been recently&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Health &amp;amp; Relationships calendar&lt;/strong&gt; - this has been a really interesting one I added a few months ago, to help highlight periods of mental fatigue. If I’ve had a particularly hard day mentally, or my wife and I have had a hard time communicating (kids, amirite) I’ll tag the day with “health” or “relationships”. All these days show up in this calendar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;To-dos completed calendar -&lt;/strong&gt; completed to-dos can loosely be interpreted as periods of increased productivity. Trends of completed to-dos allow me to reflect and maybe even harness that productivity.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notion’s API inspired my &lt;a href=&quot;https://samdking.co.uk/feed/2022/&quot;&gt;Weekly Feed&lt;/a&gt; and its ability to export pages in Markdown makes it a wonderful tool for writing blog posts (including this one right now).&lt;/p&gt;
&lt;h2&gt;How my entries have developed&lt;/h2&gt;
&lt;p&gt;My journal entries started off very brief. Descriptive, but no real explanation or commentary. What started as succinct sentences is now often longer form paragraphs, with more contemplation. Over time I’ve found my journal to be more of an outlet, especially during periods of mental hardship.&lt;/p&gt;
&lt;p&gt;Podcasts listened to got tacked on as a property 6 or so months in, when I realised I was listening to more podcasts than I was watching TV, mostly due to an increase in running. I was able to backfill episodes by consulting my Spotify history. This actually prompted me to switch from Spotify to Google Podcasts due to how difficult it was to view listening history. I find podcasts serve as an authentic indicator of my personality and interests.&lt;/p&gt;
&lt;h2&gt;What I’ve learned&lt;/h2&gt;
&lt;p&gt;It’s hard to keep a daily habit going for a year, but it gets easier once you get over the hump. Consistently logging at a particular time &amp;amp; place in your daily routine goes a long way, as it becomes ingrained and habitual.&lt;/p&gt;
&lt;p&gt;I learned social time must be scheduled and initiated. I work from home, and have 2 young children; there is very little opportunity for serendipitous social interactions in my life at the moment. A social calendar helps me see at a glance how I’m doing at keeping up my social obligations, and if I delve a little deeper, which individual people I could do with making contact with. I’m not an overly social person, but I can identify the links between my mental health and lack of social interaction.&lt;/p&gt;
&lt;div class=&quot;not-prose my-6&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot; data-align=&quot;center&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;It&amp;#39;s taken me a very long time to realise I&amp;#39;m not happy when I&amp;#39;m productive; I&amp;#39;m productive when I&amp;#39;m happy.&lt;/p&gt;&amp;mdash; samdkingdev (@samdkingdev) &lt;a href=&quot;https://twitter.com/samdkingdev/status/1505165256691265540?ref_src=twsrc%5Etfw&quot;&gt;March 19, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;In hindsight, I could’ve worded this tweet better. But in essence, productivity is a bi-product of happiness and contentedness. I will put a task off due to “just not being in the mood”; equally I can knock out a task with little pre-planning or warning, just because my mood is high.&lt;/p&gt;
&lt;p&gt;I don’t have the data visualisations to back this hypothesis up yet, but with the data I’ve collected over the past 12 months, I would love to start doing this and drawing more conclusions similar to this one.&lt;/p&gt;
&lt;p&gt;Relaxing evening time with your partner is happy time. Since my daughter was born, my wife and I have had little time to do our usual evening routine of watching an episode of a TV show or a film. It’s easy to take this time for granted, because I really miss it since it’s been absent in my life.&lt;/p&gt;
&lt;h2&gt;What I could do better&lt;/h2&gt;
&lt;p&gt;Journalling is a great tool for remembering the various thoughts that occur during the day, but only if you remember to write them down at the time! Sometimes I’ll get to the end of the day and I know there was something that popped into my head earlier in the day that’s worth putting a pin in, but invariably it’s now gone.&lt;/p&gt;
&lt;p&gt;I could definitely improve my process by jotting down notes in the entry throughout the day, and then collating and forming into proper sentences later in the day.&lt;/p&gt;
&lt;p&gt;Occasionally I’ll forget to make my daily entry, and it always surprises me how much harder it is to recount the events of the previous day, certainly with any degree of detail. The mind quickly sheds the mundanities of the day.&lt;/p&gt;
&lt;p&gt;As I alluded to earlier, paragraphs are not the easiest way to spot trends and visualise data. As I spot new daily patterns, I could really do with creating a new property for it. Not only can this be much more easily interpreted over time, but it’s a useful prompt when starting a new entry each day.&lt;/p&gt;
&lt;p&gt;I’ve toyed with the idea of a “mood” property, where I summarise my mood at the end of the day as Happy, Neutral or Sad for example. I’ve not pulled the trigger on this yet, but I should be more open to collecting this sort of data, even if it ends up not returning any useful conclusions.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>My Half Marathon experience</title>
    <link href="https://samdking.co.uk/blog/my-half-marathon-experience/"/>
    <updated>2022-03-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-half-marathon-experience/</id>
    <content type="html">&lt;p&gt;Almost 10 years ago, &lt;a href=&quot;/blog/the-marathon-experience/&quot;&gt;I ran a marathon&lt;/a&gt;. It was an amazing experience. A lot of time passed, during which it&#39;s fair to say I fell out of love with running. But the simple joy of Parkrun hooked me back in, and numerous national lockdowns due to the pandemic pushed running back onto my radar properly. But it was seeing my sister complete Brighton Marathon 2021 last September that gave me the push to sign up to my first race in almost a decade.&lt;/p&gt;&lt;p&gt;Moving house during a second Covid lockdown, I decided at the end of 2020 to kick my running habit up a gear. Parkrun was still off, and I had a new town and countryside to explore. At the turn of the new year, I was in a reasonably good habit of running twice a week. My distances were increasing, and I was slowly shaving time off my 10k PB as the year progressed.&lt;/p&gt;
&lt;p&gt;I was running up to 15km distance on my runs but didn&#39;t really see the appeal of going much further. I was clocking on average 18km/week. But when parkrun resumed in August, I was right back on the 5k track. I love the 5k distance, it&#39;s so good for measuring progress and a really accessible distance to work towards as a beginner. 8 or so months of regularly running longer distances had really helped my stamina for 5ks. I set a couple of new PBs, including a 21:31 the day before Brighton Marathon at Preston Park.&lt;/p&gt;
&lt;p&gt;And it was the next day, Brighton Marathon 2021, where the long distance bug bit me hard. My sister was as nervous as anything on the Sunday morning, trying to prepare mentally for her first ever Marathon. And all I could think about was how much I wanted to be joining the race. The pre-race buzz is stong and intoxicating. I knew I needed to get me some of that. After a memorable and celebratory day supporting the runners in Brighton, a few days later I signed up to the Brighton Half 2022.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/ellie-me-marathon.jpg&quot; class=&quot;drop-shadow-2xl rounded-sm mb-3 mx-auto w-3/4&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;Ellie and me at the start of Brighton Marathon 2021&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I was back to running the longer distances at the weekend, fresh with enthusiasm for a new challenge. Admitedly the timing for the half marathon and accompanying training was not ideal. My wife, Charlotte, and I were expecting our second child at the end of October. Suffice to say, the training took a hit in November as we welcomed our baby daughter Alba into the world. November was a challenging month, but I forced myself to get out twice a week and run what I could. And let&#39;s face it, running is as cathartic an exercise as you can get.&lt;/p&gt;
&lt;p&gt;Towards the end of the year, I was starting to increase the mileage and hitting some 12, 14 and 15km distances. At the turn of 2022, I decided I needed a more rigid training plan. I had planned on running twice a week (plus playing football on Mondays), but the training plan I signed up for was insistent on 3 (4 in fact, but we compromised on 3 days). So in the last week of December, I committed to a running schedule of Wednesdays, Fridays and Sundays.&lt;/p&gt;
&lt;p&gt;This was a godsend, looking back. The simple act of having a schedule, even though I was accountable to no one but myself, was enough to keep my training consistent and on track. By the end of January I was regularly grinding out 35km weeks and growing in confidence that I&#39;d be able to smash the 13.1 miles at the end of February.&lt;/p&gt;
&lt;p&gt;My Wednesday session was a tempo run generally, and Friday was invariably Fartlek; a practice I had not done before and found challenging but effective. Sunday was my long run, which started to prove challenging for my regular Monday night football.&lt;/p&gt;
&lt;p&gt;In the first week of February I hit a 20k-er. It was tough. I didn&#39;t fuel properly and stepped up the pace too much in the middle of the run. By the end I was well and truly pooped, and wiped out for the rest of the day. I covered some hefty elevation gains too - 195m. I hit an average pace of 4:58/km which I was pleased with.&lt;/p&gt;
&lt;p&gt;The next Sunday I was back on it. I planned a figure-of-eight route that allowed me to refuel properly at my house halfway through. I paced myself better, and finished strong, hitting the full 21.1km (178m elevation). I ran at a much healthier training pace of 5:11/km. This also included a poorly thought out section of the run through a field of mud.&lt;/p&gt;
&lt;p&gt;My final long run before the day was 16.7k at a pace bang on 5:00/km (153m elevation). I was buzzing for the race the following week. All that was left was to decide what my &amp;quot;race pace&amp;quot; target was to be. My conservative target was sub-1:45 (4:58/km), but I knew I could beat this on the flats of Brighton seafront with the buzz of the crowds behind me. I had a rough plan to find the 1:45 pacer and follow them for at least half the race, and decide how hard to push ahead after that.&lt;/p&gt;
&lt;p&gt;My sister Ellie, the marathon runner back in September, was also racing, and she was staying with us, along with another of my sisters, Cat, who was to be our helper on the day. The day started perfectly to plan and we were out the house, fuelled-up, reasonably well-rested and on the short ride to Brighton.&lt;/p&gt;
&lt;p&gt;We got a spot in Brighton station car park, which was provided for free for the day. Getting out the car the weather was noticably bitter. Bitingly cold, windy, but beautifully crisp and clear. We walked the 20 minutes down to the seafront then made the mistake of joining the sizeable queues for the portaloos. 15 minutes later, we jogged hastily to the starting corrals, only to discover a completely vacant second set of toilets, and the race about to start! With a fast start - and my plan - out the window, we quickly shed our outer clothes and nipped in at the back of our coloured section.&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/ellie-me-half-marathon.jpg&quot; class=&quot;drop-shadow-2xl rounded-sm mb-3 mx-auto&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;Ellie and me at the start of Brighton Half Marathon 2022&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It was a lovely start to the race, running with Ellie, trying to dodge and weave in between people. The first 2 kms passed by quickly, were gently up hill, but at a very slow pace as we couldn’t get through runners quick enough. At 3k I was very mindful of my targets, and could see the road was starting to clear. I said a quick goodbye to Ellie, exchanged a high five, and powered on. The course looped back round past Brighton Marina and started on the gradual downhill back to Brighton. I was cautious not to overdo it, but knew I had a lot of catching up to do, so settled into a solid 4:50/km pace.&lt;/p&gt;
&lt;p&gt;My heart rate was high (165), much higher than in training, but I felt fine. In hindsight I think this was caused by adrenaline. The crowds were great, particularly around the pier. I was mindful to thank people for their support.&lt;/p&gt;
&lt;p&gt;Taking on fluids was a bit tricky. The cups provided were very difficult to drink from at running pace, and stopping seemed counter intuitive. I choked on the first load so kept my future hydration to a few small sips. Running up through Brighton and around the Level was well-supported and an enjoyable section. I hit 10k at the slow time of just under 50 minutes - my slow start to blame. But I’d set my watch to show me average pace and I was keeping a careful eye on that as it gradually ticked under 5:00/km. At this point, I was maintaining 4:50/km for most of my splits so I knew I was on track for a finish under 1h45.&lt;/p&gt;
&lt;p&gt;Kilometres 11 to 16 were largely uneventful, save for a couple of slightly awkward course loops. I was maintaining pace, going past people who had started ahead of me and feeling good. The strong sea wind was in my back, but I knew it was about to change. As we turned left in Hove, the rhymical banging of drums in my ear, and the support loud and clear, I knew this wind was finally going to hit me. And it did. The moment we got onto the seafront and headed East the wind took hold.&lt;/p&gt;
&lt;p&gt;The 17th kilometre was a tough one. No shelter, and no rest from the wind. I tried to maintain pace but dropped off slightly, registering a 4:56. As we got into the less open areas with a bit of cover, things improved slightly. I knuckled down and concentrated on my feet. A 4:55 and 4:56 followed in kilometres 18 and 19. For the first time I was starting to breath very heavily. I started focussing on long exhales, trying to bring my heart rate down. The crowds were growing and support was getting louder. I still had it in my legs, but I was out of breath and my heart rate was pushing 176bpm. An enthusiastic cheer from Cat in the crowds was a nice little booster.&lt;/p&gt;
&lt;p&gt;It was now or never. My watch hit 20km and I knew I had to push it if I could. Support here was thick, with crowds either side cheering runners to the finish. The atmosphere was electric. In hindsight I probably started my final dash either a little too early or a little too strong. But I remembered what I said to Ellie the evening before. If I could run the final kilometre faster than any other, I would be happy. I was trying to suck in as much air as I could and concentrate on the finish. Powering past people I had the last 100-200m in my sights, registering a 4:13 for my 21st kilometre - my fastest by a long way.&lt;/p&gt;
&lt;p&gt;I sprint finished a 4:03 and crossed the line knowing I’d left everything out there and thrilled to see my watch had registered well under 1:45. My official chip time was 1:43:33. I felt proud of myself after catching my breath. There are few things stronger and more naturally wholesome than runners&#39; high. My months of training in the rain, wind and freezing temperatures had all paid off in that moment.&lt;/p&gt;
&lt;p&gt;Although I&#39;d run twice the distance 10 years prior, in many ways, this one felt different, like the beginning of something rather than the end. The marathon was, in hindsight, a one-off challenge I set myself; whereas the half felt like a snapshot of an enjoyable and healthy pastime, and a new, fitter version of myself.&lt;/p&gt;
&lt;p&gt;I feel confident to say I will work up to the marathon distance again before too long, when I can fully commit to the training required. Right now, I&#39;m enjoying my running more than I ever have, and can&#39;t wait for the next immediate challenge (a 21 minute 5k, 45 minute 10k, and 1h 40 half marathon!)&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>House projects</title>
    <link href="https://samdking.co.uk/blog/house-projects/"/>
    <updated>2022-02-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/house-projects/</id>
    <content type="html">&lt;p&gt;You know what it&#39;s like when you move into a new home. As you&#39;ve crawled through the house buying process, your creative juices have been bubbling away with what you&#39;re going to do to your new blank canvas. The possibilities are endless. You move in, you get settled, you spruce a few things up, but soon enough, inertia sets in. Maybe this doesn&#39;t sound familiar to you, but this is an accurate account of my current situation. Enter, 2022.&lt;/p&gt;&lt;p&gt;Your home facilitates your life. It is literally the furniture in your life, and - if you&#39;re fortunate - one of the few reliable and comfortable constants in your life. Because of this, you can easily take it for granted and things can become stale and complacency can grow.&lt;/p&gt;
&lt;p&gt;There&#39;s tonnes of things this year I want to do to improve my home. Both functionally, and aesthetically. My 3 to get my going are as follows:&lt;/p&gt;
&lt;h3&gt;Install a catflap&lt;/h3&gt;
&lt;p&gt;We&#39;ve been in our current house 14 months and &lt;em&gt;still&lt;/em&gt; our poor cat Chester has to scratch on the door or come and find us to be let in and out. And cats like to come in and out a lot. I will likely end up getting a professional in to do this, but I&#39;m counting it as a house project.&lt;/p&gt;
&lt;h3&gt;Improve the lighting&lt;/h3&gt;
&lt;p&gt;Shamefully, we still have bare bulbs hanging in the majority of our rooms. And in most cases, you can do a lot better than overhead lighting for creating a nice mood in a room. Good lighting goes a long way to improving the feel of a room, and my plan is to research and improve our lounge lighting, as a starting project.&lt;/p&gt;
&lt;h3&gt;Declutter my office&lt;/h3&gt;
&lt;p&gt;Again, it&#39;s a little shameful a room I redecorated less than a year ago requires a declutter. But truthfully, it was never properly organised first time round. I would love to make my office a fresh and minimal space for optimal creative thinking.&lt;/p&gt;
&lt;h3&gt;Fit a heatpump&lt;/h3&gt;
&lt;p&gt;This one is a big (expensive) one. Our boiler is over 10 years old and on the blink. I don&#39;t want to replace our old combi like-for-like, and I&#39;m big into the concept of renewable heating solutions. Government schemes have made fitting a heatpump affordable, and most companies offer a free consultation to see if it could work for you. So, there&#39;s really no excuse not to explore this route.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Become a confident swimmer</title>
    <link href="https://samdking.co.uk/blog/become-a-confident-swimmer/"/>
    <updated>2022-01-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/become-a-confident-swimmer/</id>
    <content type="html">&lt;p&gt;At some point after childhood, early on in my adult life, I realised I&#39;d somehow forgotten how to swim well. I can sufficiently &lt;em&gt;not drown&lt;/em&gt;, but if asked to swim up and down a pool, I will quickly tire and lose all remaining confidence in my technique. After saying I wanted to fix this for many years, 2022 is the year I plan to do something about it.&lt;/p&gt;&lt;p&gt;I was inspired to do this after reading Tim Ferriss&#39;s blog post: &lt;a href=&quot;https://tim.blog/2008/08/13/total-immersion-how-i-learned-to-swim-effortlessly-in-10-days-and-you-can-too/&quot;&gt;Total Immersion: How I Learned to Swim Effortlessly in 10 Days and You Can Too&lt;/a&gt;. Tim is a person I&#39;ve admired since reading Four Hour Work Week, and it was reassuring to know someone with the life experiences and confidence of Tim Ferriss had suffered with the same issue as me.&lt;/p&gt;
&lt;p&gt;So, let this post be the record for my swimming endeavours in 2022. I know it&#39;s just a case of discipline and repetition, but - as with anything when confidence is involved - there is a mental block to get over initially before progress can begin.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>2022 Reading List</title>
    <link href="https://samdking.co.uk/blog/2022-reading-list/"/>
    <updated>2022-01-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2022-reading-list/</id>
    <content type="html">&lt;p&gt;I really want to be a person who dedicates time to reading more. Whether that transpires to be via audiobooks, e-books or good old analogue paper, this is the goal for 2022. This is a lofty list, and not something I expect to finish, but one I&#39;ve compiled over the last 18 months. I hope to add add to as well as cross-off as the year progresses.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2023 Update&lt;/strong&gt;: I have added a new list of books I want to read, accumulated over the course of 2022. These are now listed below, under the heading &amp;quot;Supplementary list (2023)&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2024 Update&lt;/strong&gt;: I&#39;ve added a third list of books, accumulated over 2023. See &amp;quot;Supplementary list (2024)&amp;quot;&lt;/p&gt;
&lt;p&gt;Last updated: 22nd January, 2025&lt;/p&gt;
&lt;h2&gt;The original list&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Malcolm Gladwell - &lt;strong&gt;Tipping point&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Martin Dorey - &lt;strong&gt;No. More. Plastic&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Matt Haig - &lt;strong&gt;Reasons to Stay Alive&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Terry Laughlin - &lt;strong&gt;Total Immersion&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Blake Crouch - &lt;strong&gt;Recursion&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Simon Sinek - &lt;strong&gt;Start With Why&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Bea Johnson - &lt;strong&gt;Zero Waste Home&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Joseph R. Dominguez, Monique Tilford, and Vicki Robin - &lt;strong&gt;Your Money or your Life&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Oliver Burkeman - &lt;strong&gt;Four Thousand Weeks&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Matt Haig - &lt;strong&gt;The Midnight Library&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Carol Dweck - &lt;strong&gt;Mindset: The New Psychology&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Ramit Sethi - &lt;strong&gt;I Will Teach You to Be Rich&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Jonathan Haidt - &lt;strong&gt;Happiness Hypothesis&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Blake Crouch - &lt;strong&gt;Pines&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Susan Cain - &lt;strong&gt;Quiet&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Morgan Housel - &lt;strong&gt;The psychology of money&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Mark Manson - &lt;strong&gt;The Subtle Art of not giving a fuck&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Jabon Lund Fisker - &lt;strong&gt;Early Retirement Extreme&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Dale Carnegie - &lt;strong&gt;How to win friends and influence people&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Roger Fisher and William Ury - &lt;strong&gt;Getting to yes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Malcolm Gladwell - &lt;strong&gt;David and Goliath&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Dr Steve Peters - &lt;strong&gt;The Chimp Paradox&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Lynne Twist - &lt;strong&gt;The Soul of Money&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cal Newport - &lt;strong&gt;Deep Work&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Alex Banayan - &lt;strong&gt;The Third Door&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;David Graeber - &lt;strong&gt;Bullshit Jobs&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Steven Pressfield - &lt;strong&gt;The war of art&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Matthew Dicks - &lt;strong&gt;Storyworthy&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Anna Codrea-Rado - &lt;strong&gt;You&#39;re the business&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;M. J. DeMarco - &lt;strong&gt;The Millionaire Fastlane&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Marcus Buckingham - &lt;strong&gt;Nine Lies About Work&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Bruce Hood - &lt;strong&gt;Possessed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Damon Zahariades - &lt;strong&gt;Fast Focus&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Robin Waite - &lt;strong&gt;Take your shot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Anne Lamott - &lt;strong&gt;Bird by Bird&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Jake Knapp and John Zeratsky - &lt;strong&gt;Make Time&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Leil Lowndes - &lt;strong&gt;How to talk to anyone&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Ichiro Kishimi - &lt;strong&gt;The courage to be disliked&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Supplementary list (2023)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Paul Hannam - &lt;strong&gt;The Wisdom of Groundhog Day&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Greg McKeown - &lt;strong&gt;Essentialism&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Eric Ries - &lt;strong&gt;The Lean Startup&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Dr Karen Gurney - &lt;strong&gt;Mind the gap&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Paul Millerd - &lt;strong&gt;The Pathless Path&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Catherine Price - &lt;strong&gt;The Power of Fun: How To Feel Alive Again&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Bjorn Natthiko Lindeblad - &lt;strong&gt;I may be wrong&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Jeff Haden - &lt;strong&gt;The Motivation Myth&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Al Ries and Jack Trout - &lt;strong&gt;The 22 Immutable Laws of Marketing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Jonathan Haidt - &lt;strong&gt;The Righteous Mind&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Matthew Walker - &lt;strong&gt;Why we sleep&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Bill Perkins - &lt;strong&gt;Die with Zero&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Donald Miller - &lt;strong&gt;A million miles in a thousand years&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Mihaly Csikszentmihaly - &lt;strong&gt;Flow&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Katy Milkman - &lt;strong&gt;How to Change&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;David Brooks - &lt;strong&gt;The Second Mountain&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Derek Sivers - &lt;strong&gt;How to Live&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Roy H. Williams - &lt;strong&gt;The Wizard of Ads&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;M. J. Demarco - &lt;strong&gt;Unscripted&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Paul Jarvis - &lt;strong&gt;Company of One&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Celeste Headlee - &lt;strong&gt;Do Nothing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Michael A. Singer - &lt;strong&gt;The Untethered Soul&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Blake Crouch - &lt;strong&gt;Upgrade&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Matthew Dicks - &lt;strong&gt;Someday is Today&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Nicholas Cole - &lt;strong&gt;The Art and Business of Online Writing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Stephen Covey - &lt;strong&gt;The 7 habits of highly effective people&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Joe Keohane - &lt;strong&gt;The Power of Strangers&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Supplementary list (2024)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Adrian McKinty - &lt;strong&gt;The Island&lt;/strong&gt;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Kelly McGonigal - &lt;strong&gt;The Upside of Stress&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Julien Smith - &lt;strong&gt;The Flinch&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Scott Trench - &lt;strong&gt;Set for life&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Gary W. Keller and Jay Papasan - &lt;strong&gt;The One Thing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Tim Urban - &lt;strong&gt;What&#39;s our Problem?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Luke Burgis - &lt;strong&gt;Wanting&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Amy Porterfield - &lt;strong&gt;Two Weeks Notice&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Erin Lowry - &lt;strong&gt;Broke Millennial&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Marie Kondo - &lt;strong&gt;The life changing magic of tidying up&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Ryan Holiday - &lt;strong&gt;Ego is the Enemy&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Max Dickins - &lt;strong&gt;Billy No Mates&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Michael Easter - &lt;strong&gt;The Comfort Crisis&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Steven Bartlett - &lt;strong&gt;The Diary of a CEO&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Shari Harley - &lt;strong&gt;How to Say Anything to Anyone&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Aytekin Tank - &lt;strong&gt;Automate your Busywork&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;David Heinemeier Hansson and Jason Fried - &lt;strong&gt;It doesn&#39;t have to be crazy at work&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;David Heinemeier Hansson and Jason Fried - &lt;strong&gt;Rework&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Nir Eyal - &lt;strong&gt;Hooked&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Ali Abdaal - &lt;strong&gt;Feel Good Productivity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cal Newport - &lt;strong&gt;So good they can&#39;t ignore you&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Anne Helen Peterson - &lt;strong&gt;Can&#39;t even&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Eric Orton - &lt;strong&gt;The Cool Impossible&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>2022 Goals</title>
    <link href="https://samdking.co.uk/blog/2022-goals/"/>
    <updated>2022-01-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/2022-goals/</id>
    <content type="html">&lt;p&gt;This new blog was born out of a desire to make some tangible, achievable but worthwhile goals for 2022. One thing lead to another, and I ended up attempting a rebuild of my old blog with Eleventy, with a gradual migration of the old content.&lt;/p&gt;&lt;h3&gt;My goals&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[x] Launch this new blog!&lt;/li&gt;
&lt;li&gt;[x] Transfer over old blog posts&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://samdking.co.uk/blog/2022-reading-list/&quot;&gt;Read more (2022 reading list)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://samdking.co.uk/blog/become-a-confident-swimmer/&quot;&gt;Become a confident swimmer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://samdking.co.uk/blog/house-projects/&quot;&gt;House projects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My old blog at &lt;a href=&quot;http://samueldking.co.uk/&quot;&gt;samueldking.co.uk&lt;/a&gt; goes back to 2009. I’d just finished University, was job hunting (in a recession) and had some spare time on my hands. I was big into PHP and writing code from scratch, and at a time when I quite fancied my basic CSS and HTML skills.&lt;/p&gt;
&lt;p&gt;I was a “blogger” for a good 3-4 years. Writing got me through some bumpy times in my life and helped me reason about the world and my hobbies and interests. It also helped me hone my writing skills.&lt;/p&gt;
&lt;p&gt;Through one reason or another, by late 2012, I’d basically given up writing regularly. And since then, save for the occasional post, the blog has sat dormant on my main domain, without an update in sight. Until now.&lt;/p&gt;
&lt;p&gt;I discovered Eleventy (or 11ty as it’s also known) and I’ve fallen in love with the idea of static site generators, and regularly writing again. So here we are, a new blog, on a temporary subdomain. The plan is to gradually migrate all my old posts over to 11ty, preserving the URLs (I’m a huge proponent of content permanence), and giving the old writing habit a kickstart.&lt;/p&gt;
&lt;p&gt;This year I mostly plan to write, succinctly, around my 3 main tasks for the year. To dig into these tasks in more detail, follow the links above. And just like that, a blog is (re)born!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>It&#39;s time to get cars out of our communities</title>
    <link href="https://samdking.co.uk/blog/imported/2021-08-30-get-cars-out-of-our-communities/"/>
    <updated>2021-08-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/imported/2021-08-30-get-cars-out-of-our-communities/</id>
    <content type="html">&lt;p&gt;I&#39;ve not written about transport previously, but it&#39;s a topic close to my heart when it comes to sustainable living. It&#39;s something I&#39;ve felt a growing feeling of guilt about, as well as a nagging disdain for what our car obsession has done to our global and indeed local environment. This post explores alternatives for a better future for our local communities.
&lt;/p&gt;&lt;p&gt;Lately, I&#39;ve felt a growing disdain for cars, and traffic in general. Living in a city for the majority of my 20s, I&#39;ve largely dismissed cars as an inevitability of modern life. But since moving out of Brighton 9 months ago, to a &amp;quot;quieter&amp;quot; town, in search of a better quality of life for my family, the abundance of traffic on the roads has become increasingly grating.&lt;/p&gt;
&lt;p&gt;Traffic is unattractive, impractical, noisy, smelly, unhealthy and unsafe. But we live with it, because for the majority, we begrudgingly rely on it ourselves in part to get around. As the adage goes, we are not stuck in traffic; we are the traffic.&lt;/p&gt;
&lt;p&gt;We&#39;re conditioned to live our life around roads. We walk on pavements, waiting for a safe place to cross. We plan journeys on foot relative to road systems. And we instinctively avoid large areas of our environment due to the presence of vehicles; be it moving (roads) or stationary (parking).&lt;/p&gt;
&lt;p&gt;I love taking my 20-month-old on walks to the local parks in our town. He&#39;s increasingly confident on his feet and loves to explore everything. But I&#39;m not alone as a parent in being on constant high alert watching his every move to ensure he&#39;s currently in a &amp;quot;safe zone&amp;quot; (ergo: not wandering towards a road). This is exhausting and honestly takes a lot of the fun out of a peaceful stroll and exploration of our local area.&lt;/p&gt;
&lt;p&gt;I&#39;m a firm believer in minimal discipline, particularly of the punitive kind, but there&#39;s no way to avoid a constant nagging or hand-holding to ensure my child&#39;s safety near roads, where there&#39;s zero tolerance for a lax approach. It&#39;s impossible to guard your child completely from danger, nor would it be beneficial for them, but cars are literal killing machines; something the innocence of youth has yet to learn.&lt;/p&gt;
&lt;p&gt;Abolishing road traffic is of course incredibly fanciful and implausible, probably in my lifetime. But as part of our global targets to cut emissions and hitting carbon neutrality, car-free neighbourhoods must become a reality. We already have Low Traffic Neighbourhoods (LTNs), but these feel more like lip service than promoting any real change. With these, there is a gentle deterrent to driving through a LTN, but for the most part it is not prohibited, merely inconvenient.&lt;/p&gt;
&lt;p&gt;Imagine the community and nature that could flourish in a vehicle-free suburban area. Room to move and explore with minimal danger. Outside spaces for meeting, dining, exercise and entertainment. Room and clean air for nature to thrive. Vast cycling networks for safe, efficient and inclusive travel. Separate designated paths for small electric taxis, bicycle taxis and tuc-tucs for those with reduced mobility to use and cargo bikes for deliveries. Roads and our addiction to private vehicles prevent all this.&lt;/p&gt;
&lt;p&gt;In closing, roads are a fundamental part of our transport ecosystem, and have their place; but keep them out of our towns and cities. Long ago we invented improved modes of transport for travelling short distances efficiently and identified the importance of exercise and clean air to our health and wellbeing. And yet here we still are; building civilisations around complicated, costly and unhealthy road networks, perpetuating a society of &amp;quot;I&#39;m alright, Jack&amp;quot;. We can do better. For our own good, our children&#39;s future and for generations to come.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Is it healthy to raise your child vegan?</title>
    <link href="https://samdking.co.uk/blog/imported/2021-05-13-vegan-baby-weaning/"/>
    <updated>2021-06-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/imported/2021-05-13-vegan-baby-weaning/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Caveat: I am not a dietician or nutritionist. Below is simply my experience and knowledge on the subject. If you have concerns relating to your child&#39;s diet, please seek help from a professional.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&#39;d pondered the question &amp;quot;is it healthy to raise your child vegan?&amp;quot; since my son Brandon came into the world. I&#39;d been vegan myself a year at the time and knew it was right for me. But I felt some societal pressure and, dare I say, a &amp;quot;stigma&amp;quot; against feeding your child a strict vegan diet.&lt;/p&gt;
&lt;p&gt;There&#39;s plenty of schools of thought on this one. Are you denying them the full gamut of food available to humans? Crucially, are you denying them the nutrition they require when growing? Even though I myself had done a fair amount of research on the matter with regards my own nutrition—and been more than satisfied with my findings—I still felt a niggle of doubt when it came to baby weaning.&lt;/p&gt;
&lt;h2&gt;The decision&lt;/h2&gt;
&lt;p&gt;To cut a longer story short, we&#39;re almost a year into weaning Brandon now, and I can confidently say, vegan baby weaning has worked fantastically for us and Brandon, and I couldn&#39;t be happier with our choice. Above all, I was able to reach the realisation that feeding Brandon plants was and is the most natural thing in the world.&lt;/p&gt;
&lt;p&gt;We already know plants are healthy, and I know from my own research which foods contain which nutrients to ensure a varied and plentiful supply. The rest was coming to the conclusion that whatever diet you &lt;em&gt;force&lt;/em&gt; upon your child (as it is somewhat belligerently referred to), you are making a decision for them. Is it right for them to eat meat? Is it right to deny them eating any animal products? That is your decision as parents to make, and, eventually, theirs to decide for themselves when they are ready.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/weaning-avo-broccoli-sweet-potato.jpg&quot; alt=&quot;Boiled sweet potato, broccoli &amp; avocado&quot; /&gt;
    &lt;figcaption&gt;An early meal: boiled sweet potato, broccoli &amp; avocado&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Brandon&#39;s diet&lt;/h2&gt;
&lt;p&gt;Brandon loves his food, has a varied diet, and appears a healthy 18-month old boy. For the most part he&#39;s been fed an exclusively plant-based diet, and we intend to keep it that way until a situation arises that may require a reevaluation. The key for us is not to be overly dogmatic about it. Now&#39;s he&#39;s essentially eating what we are eating, it doesn&#39;t make sense from a practical or logical standpoint to add any meat, fish or dairy to his diet.&lt;/p&gt;
&lt;p&gt;He loves bread, and enjoys an array of other carbs - rice, potatoes, pasta, oats. He has a mixed relationship day-to-day with veg; loves his broccoli and peas but won&#39;t touch spinach or mushrooms. Protein-wise, we try to keep it varied. He enjoys beans and lentils, when disguised in a sauce. He&#39;ll tolerate a chickpea one day then have more fun throwing them the next. Nut butter is a favourite; on toast, on porridge, or on its own. He loves most fruit, especially banana and strawberries.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/weaning-spag-bol-spinach.jpg&quot; alt=&quot;Brandon awaiting his meal of lentil bolognaise with spaghetti and a side of spinach, from his bamboo plate.&quot; /&gt;
    &lt;figcaption&gt;Lentil bolognese with spaghetti and a side of spinach&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;What about fake meat?&lt;/h2&gt;
&lt;p&gt;Given how new a lot of vegan &amp;quot;meat&amp;quot; is, there&#39;s a valid conversation to be had of its long term benefits or drawbacks. Do we feed Brandon fake meat? Yes, mostly because we eat it ourselves. It&#39;s a good, protein-rich, convenient food to add to your diet. When balanced with whole-food sources of protein, we believe and trust it to be a perfectly healthy food.&lt;/p&gt;
&lt;p&gt;Conversely, processed meat has rightfully been under scrutiny for decades, and yet it is still considered a safe and (as part of a balanced diet) healthy food to feed children. We&#39;re now seeing clear links between a heavily processed diet and obesity, and in this scenario, meat alternatives are often framed as a healthier alternative. Quorn in particular have started promoting this angle in their recent campaigns.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/weaning-breakfast.jpg&quot; alt=&quot;Toast fingers, baked beans, roasted tomatoes, sauted spinach, avocado, fried mushrooms and vegan sausage on Brandon&#39;s bamboo plate&quot; /&gt;
    &lt;figcaption&gt;A few months in: a full vegan breakfast&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Supplements&lt;/h2&gt;
&lt;p&gt;We feed Brandon vitamin D drops in his water. Vitamin D is needed to maintain healthy bones, teeth and muscles. Fortified soya milk is also a good source of vitamin D, as well as calcium.&lt;/p&gt;
&lt;p&gt;We are considering Omega 3 supplements. He already has a diet consisting of linseed, hemp seeds and chia seeds, but there are certain Omega 3 fatty acids that you can&#39;t get from plants. ALA, one of the essential fatty acids our body needs, is plentiful in nuts and seeds as well as cruciferous vegetables. However EHA and DHA is generally only found in fatty fish. Your body can convert ALA to EHA and DHA, but it&#39;s not very efficient at doing so.&lt;/p&gt;
&lt;p&gt;The best way to ensure you&#39;re getting the right essential fatty acids (and in particular EHA and DHA) as a vegan is to supplement with algal oil. Algae is the reason fish contain omega-3, as it&#39;s their food source; but we can skip the fish step and go direct by taking supplements in the form of soft capsules. I have started taking Omega 3 supplements recently, and although we&#39;re not currently supplementing Brandon&#39;s diet, it&#39;s useful to know how easy it is to get your recommended intake.&lt;/p&gt;
&lt;p&gt;Brandon has B12-fortified foods in the form of nutritional yeast and soy milk. In the past month, we have weaned him off breastmilk completely and on to a fortified soy milk (Alpro do a good one for little ones), which he has and enjoys most days.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/weaning-couscous-nuggets.jpg&quot; alt=&quot;Brandon eating couscous with veg and not-chicken nuggets from his bamboo plate, sitting in his high chair&quot; /&gt;
    &lt;figcaption&gt;Couscous with veg &amp; not-chicken nuggets&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;If you yourself are vegan, you have likely done some research into the health benefits and risks of a diet free of animal products. This knowledge already puts you ahead of the average parent in deciding what&#39;s best for your child. You likely already know where to get the nutrients you need to thrive; information which will give your baby the best start possible in life when weaning onto solid food.&lt;/p&gt;
&lt;p&gt;The Standard American Diet (SAD) diet (also known as the Standard Western Diet) is well established to be not an overly healthy one. Cultural norms exist around feeding this diet to children, which in turn stigmatises deviation from this age-old way of eating. But I implore any parent to question what they&#39;re putting on their children&#39;s plates, and not to simply accept the status quo as healthy.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/weaning-fritter-new-potato-tomato.jpg&quot; alt=&quot;Smashed chickpea fritter, cut up new potatoes and cut up raw tomato on a bamboo plate&quot; /&gt;
    &lt;figcaption&gt;Chickpea fritter, new potatoes and raw tomato&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.vegansociety.com/resources/nutrition-and-health/life-stages/under-fives&quot;&gt;https://www.vegansociety.com/resources/nutrition-and-health/life-stages/under-fives&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.healthline.com/nutrition/7-plant-sources-of-omega-3s&quot;&gt;https://www.healthline.com/nutrition/7-plant-sources-of-omega-3s&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>Lockdown Eating (Part 2: let&#39;s do lunch)</title>
    <link href="https://samdking.co.uk/blog/lockdown-eating-part-2-lunch/"/>
    <updated>2020-06-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/lockdown-eating-part-2-lunch/</id>
    <content type="html">&lt;p&gt;We&#39;re now over 3 months into lockdown in the UK to combat the spread of the Coronavirus pandemic. Things are gradually starting to go back to &amp;quot;normal&amp;quot;; non-essential shops are reopening, pubs and other leisure facilities will be reopning next week, and those living alone are encouraged to join a &amp;quot;social bubble&amp;quot; for their mental health. New cases are steadily dropping, but there still looms an air of caution and apprenhension amongst a lot of the public, with the threat of a &amp;quot;second wave&amp;quot; looming large.&lt;/p&gt;
&lt;p&gt;Since I posted &lt;a href=&quot;https://samdking.co.uk/blog/lockdown-eating&quot;&gt;Lockdown Eating&lt;/a&gt;, over 2 months ago now, Lockdown life has very much started to feel like the new normal. To me it seems there&#39;s a split in opinion of those adapting, even settling in, to a quieter way of life; and the others, who yearn for their old life and getting things back running again. I fall into the former camp.&lt;/p&gt;
&lt;p&gt;Black Lives Matter has dominated our screens and consciousness for the past 2-3 weeks. The outrage at the unlawful killing of black citizen George Floyd sparked a worldwide movement of protests, both peaceful and provoking. Once again, particularly in the UK, it feels we&#39;re a divided nation. Many marched far and wide to spread the message that black lives matter; the following weekend, a vocal minority took to the streets to counter-protest in the name of patriotism.&lt;/p&gt;
&lt;p&gt;Whilst things are never clear cut, it&#39;s hard to fathom taking the argument against black lives mattering. Or against the persecution and systematic racism that is so embedded in all of society for generations. Against the very notion that black people simply want the same rights, opportunities and safety that white people have in such abundance that they don&#39;t even acknowledge its existance. It&#39;s called white privilege.&lt;/p&gt;
&lt;p&gt;Despite the lingering anger, sadness and fight for justice, inevitably life ticks on. The Premier League has returned—albeit in a safe and sanitised way— and has flooded the Internet and sports channels. From next week we can visit our families again, from a safe distance. In a time when so much has changed about our day to lives, food has remained a true constant. And for those who enjoy cooking and preparing food, it has been a solace.&lt;/p&gt;
&lt;p&gt;Food grounds us, and brings us together. Lunch has been the biggest change during lockdown, for me at least. It&#39;s been nice to give it a bit more focus than before. Between busy work days, quieter days, days of optimism, rainy days and sunny days, there&#39;s been a real mix of dishes I&#39;ve put together over lockdown. Enjoy my selection below of light lunches, leftovers, anything on toast, and big plates!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Light lunches&lt;/h2&gt;
&lt;p&gt;The classic lunch: the sandwich. Or if you&#39;re feeling creative - a bagel or a pitta. There&#39;s always calling for a quick lunch, even when you&#39;re at home, and a sandwich fits the bill perfectly.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/squeakybeanveg&quot;&gt;Squeaky Bean&lt;/a&gt; are a fairly new company (launched 2019) that do some great &amp;quot;deli style&amp;quot; sliced, plant-based meats. Including ham, pastrami and chicken. They go great in a sandwich with some salad and cheese. I put together a few pittas with some easy red cabbage coleslaw I made up that week.&lt;/p&gt;
&lt;p&gt;Pittas are great little pockets that hold mostly anything you&#39;ve got in the fridge! They&#39;ll contain sauce nicely too.&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/ham-coleslaw-cheese-pitta.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Ham, cheese, coleslaw, and salad pitta&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Ham, cheese, coleslaw, and salad pitta&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/ham-pastrami-avocado-coleslaw-pita.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Ham, pastrami, coleslaw, avocado and seeds pitta&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Ham, pastrami, coleslaw, avocado and seeds pitta&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_pTstipcbW/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/pastrami-rocket-coleslaw-avo-pitta.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Pastrami, rocket, avocado and coleslaw pitta&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Pastrami, rocket, avocado and coleslaw pitta&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Coleslaw works brilliantly in regular sliced bread too; here it is with some vegan kebab pieces and spinach. A good tip to make your sandwiches a bit more interesting (and a great use of slightly stale bread) is to toast them lightly, before spreading on some spread or mayo. Yum.&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/coleslaw-spinach-kebab-sandwich.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Coleslaw, spinach &amp; &quot; kebab&quot;=&quot;&quot; sandwich&quot;=&quot;&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Coleslaw, spinach &amp; &quot;kebab&quot; sandwich&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Veganising the classics&lt;/h3&gt;
&lt;p&gt;It&#39;s so easy and delicious to veganise classics. Here I made a chickpea-based tuna salad sandwich (using &lt;a href=&quot;https://cupfulofkale.com/vegan-chickpea-tuna-mayo-salad/&quot;&gt;Cupful of Kale&#39;s recipe&lt;/a&gt;), and a moreish sausage, bean and cheese toastie. The &amp;quot;tuna&amp;quot; is incredible; flavoursome, filling and fresh. It doesn&#39;t taste like fish, but somehow gives your mouth the taste of the sea (in a good way)!&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/chickpea-avocado-sandwich.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Chickpea tuna and avocado sandwich (deconstructed)&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Chickpea &quot;tuna&quot; and avocado sandwich (deconstructed)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I lived off cheese and bean toasties at university. With the plethora of vegan cheeses now available, it&#39;s not difficult to replicate that nostalgic combo of beans and cheese, without the animal products. Add in a sausage and you&#39;ve got a meal in a sandwich. Just whack this in a hot pan with 2 buttered slices of wholegrain bread 😋.&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/cheese-bean-sausage-toastie.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Cheese, bean and sausage toastie&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Cheese, bean and sausage toastie&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr /&gt;
&lt;h2&gt;Leftover lunches&lt;/h2&gt;
&lt;p&gt;There&#39;s nothing quite like opening the fridge and remembering you saved a portion of a delicious dinner you made a few days before sitting in a tupperware. Sprucing it up with some salad or coleslaw and you&#39;ve got yourself an easy and vibrant lunch; you already did most of the work a few days ago.&lt;/p&gt;
&lt;h3&gt;Dial up your daal&lt;/h3&gt;
&lt;p&gt;Here I paired a leftover daal with some fresh rice, crispy cooked kale and dreggs of some coleslaw. This spruced up what would have been a pretty uninspiring small portion of leftover daal!&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_2WT9NJSMy/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/daal-leftovers.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Daal, rice, cripsy kale and coleslaw&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Daal, rice, cripsy kale and coleslaw&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Top your flatbread with a filler&lt;/h3&gt;
&lt;p&gt;I had some leftover flatbread dough (recipe on &lt;a href=&quot;https://samdking.co.uk/posts/lockdown-eating#gaz-oakleys-falafel--flatbreads&quot;&gt;part 1 of lockdown eating&lt;/a&gt;), which I fried up fresh for lunch. On it I added some of the leftover chickpea tuna, avocado, hotsauce and mixed seeds. On the side I had some cherry tomatoes and rocket. This is a delicious way to vary a sandwich filling (make it a topper!), and pairs superbly with a fresh, warm flatbread.&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/flatbread-chickpea-tuna-avo-rocket-cherry-tomato.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Chickpea tuna, avo, rocket, cherry tomato on a flatbread&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Chickpea tuna, avo, rocket, cherry tomato on a flatbread&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Bring it all together&lt;/h3&gt;
&lt;p&gt;The best leftover meals are the truly inventive ones that draw from numerous previous meals sat in the fridge. More often than not, you can make things work together! I actually included this meal in part 1 of this blog post, but I think it bears repeating. Introducing: leftover sausage bean stew, brown rice and leftover roasted sweet potato, coleslaw, and leftover cauliflower wings &amp;amp; ranch sauce. My kind of variety meal!&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-481wpnUCy/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/sausage-bean-stew-leftovers.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Sausage bean stew, brown rice, sweet potato, coleslaw, cauliflower wings&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Sausage bean stew, brown rice, sweet potato, coleslaw, cauliflower wings&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Spice up your rice&lt;/h3&gt;
&lt;p&gt;A real wholesome, ugly, bringer-together meal. Fried veggie rice, toasted pitta, Quorn nuggets from the freezer, a drizzle of Sriracha mayo and topped with seeds. The rice was a bit of a fail the night before, so I thought I&#39;d spice it up for lunch with some of the excellent Quorn nuggets, a crispy, fluffy toasted pitta and a drizzle of spicy Sriarcha mayo. Enjoyed on a warm, late spring day outside, this was a real winner.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/CANiKJUJctH/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/veg-rice-nuggets-pitta.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Veg rice, nuggets, wholemeal pitta, seeds&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Veg rice, nuggets, wholemeal pitta, seeds&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr /&gt;
&lt;h2&gt;Anything on toast&lt;/h2&gt;
&lt;p&gt;I&#39;m reminded by my French friend, things in-or-on bread is an overtly British thing to do and is borderline offensive to other cuisines. I love it. It doesn&#39;t even need to be fancy bread - whatever you&#39;ve got. It&#39;s also a great way to add bulk and protein to a meal, particularly if you keep it wholegrain.&lt;/p&gt;
&lt;h3&gt;Miso mushrooms&lt;/h3&gt;
&lt;p&gt;I made up this recipe based on a meagre fridge offering at the time and have since adapted it to whatever I have available. It&#39;s versatile and the core of it is pretty simple. The method:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add some vegan butter to a pan&lt;/li&gt;
&lt;li&gt;Gently fry some garlic for a few minutes&lt;/li&gt;
&lt;li&gt;Add sliced mushrooms and lightly brown for 3 or 4 minutes&lt;/li&gt;
&lt;li&gt;Add a teaspoon of miso paste and a tablespoon of coconut cream&lt;/li&gt;
&lt;li&gt;Mix and let it bubble away for a minute&lt;/li&gt;
&lt;li&gt;If it&#39;s a bit dry, add some water&lt;/li&gt;
&lt;li&gt;Add a handful of spinach and let it wilt down&lt;/li&gt;
&lt;li&gt;Add a few good grounds of black pepper&lt;/li&gt;
&lt;li&gt;Serve on toast with a combination of seeds, corriander, spring (or crispy) onions and nutritional yeast&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;gallery&quot;&gt;
    &lt;div class=&quot;row&quot;&gt;
        &lt;div class=&quot;column&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/mushroom-miso-spinach-bagel.jpg?nf_resize=fit&amp;w=600&quot; alt=&quot;Miso, mushroom, coconut and spinach on a bagel&quot; /&gt;&lt;/div&gt;
        &lt;div class=&quot;column&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/mushroom-miso-spinach-toast.jpg?nf_resize=fit&amp;w=600&quot; alt=&quot;Miso, mushroom, coconut and spinach on sliced toast&quot; &quot;=&quot;&quot; /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;row&quot;&gt;
        &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/mushroom-miso-spinach-tomatoes.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Miso, mushroom, coconut, spinach, tomatoes and black beans on a bagel&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption style=&quot;max-width: 30rem&quot;&gt;Mushrooms, miso, coconut, spinach on toast. Bottom: added tomatoes and black beans&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;All the protein on toast&lt;/h3&gt;
&lt;p&gt;Hummus is surprisingly relatively low in protein, considering it&#39;s largely made up of chickpeas. It is tasty though. Pair it with some vegan kebab meat substitute, some leftover black beans, a slice of wholegrain toast, and a sprinkling of seeds and you&#39;re ticking all the right protein and healthy fat boxes. Top it off with a healthy handful of spinach and a good dollop of coleslaw.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_C1ppiHDR-/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/hummus-kebab-coleslaw-black-beans.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Hummus, black beans, kebab, coleslaw spinach on toast&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Hummus, black beans, kebab, coleslaw spinach on toast&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Beans on toast doesn&#39;t have to be boring&lt;/h3&gt;
&lt;p&gt;Sometimes beans on toast is all you need, or all you have time for; but if you&#39;re a bit more invested, you can take the humble baked bean and pair it with other things to make a more interesting and complete meal. I fried up some cherry tomatoes and mushrooms, cooked a veggie sausage and slathered it all beans and nutritional yeast. Basically, a Full English, heavy on the beans.&lt;/p&gt;
&lt;figure&gt;
    &lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/beans-mushroom-sausage-tomatoes-toast.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Beans, mushroom, sausage, tomatoes on toast&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Beans, mushroom, sausage, tomatoes on toast&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Eggs are so 20th century&lt;/h3&gt;
&lt;p&gt;Scrambled tofu is the bomb. Creamy, flavoursome, packed with protein, and as delicious as I remember eggs ever being. It takes a little more preparation than eggs, but once you&#39;ve done it a few times you&#39;ll have it down. I&#39;m a big fan of the &lt;a href=&quot;https://www.bosh.tv/recipes/vegan-scrambled-egg&quot;&gt;BOSH!&lt;/a&gt; recipe for this; the combination of firm and silken tofu is the key.&lt;/p&gt;
&lt;p&gt;Serve this on toast with some spinach, cherry tomatoes, bacon, sausage, mushroom, whatever you like! This is seriously wholesome and seriously delicious. And you&#39;re not supporting an industry that, y&#39;know, literally grinds up male chicks because they&#39;re of no use to them. I don&#39;t need that on my conscience.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-RlIfun77a/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/scrambled-tofu-sausages-mushrooms.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Scrambled Tofu, Linda McCartney sausages, mushrooms &amp; spinach on toast&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Scrambled Tofu, Linda McCartney sausages, mushrooms &amp; spinach on toast&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr /&gt;
&lt;h2&gt;Big plates&lt;/h2&gt;
&lt;p&gt;Sometimes, you can go big at lunch. If you have a bit more time, and you&#39;ve had an early or light breakfast - or particularly if you&#39;ve had an active morning - a big lunch is all that will do. Below is a selection of big plates when a sandwich just didn&#39;t cut it.&lt;/p&gt;
&lt;h3&gt;R&amp;amp;R (Roasted &amp;amp; Raw) Veg&lt;/h3&gt;
&lt;p&gt;One of my favourite bowls combines roasted and raw ingredients. This creates a wonderful texture and variation on the palette. Below I had some roasted sweet potato left over - always a good thing to roast more than you need! - and combined it with some leftover brown rice, sauted mushrooms, roasted nuts and seeds, spinach and chopped red onion. Finished off with a drizzle of sriracha.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-ezCYQnPGq/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/sweet-potato-rice-spinach-mushrooms-seeds.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Sweet potato, rice, spinach, mushrooms, seeds, red onion&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Sweet potato, rice, spinach, mushrooms, seeds, red onion&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Salads are never boring if you do them right&lt;/h3&gt;
&lt;p&gt;Pasta salad is something I&#39;ve always enjoyed, it&#39;s a great picnic food. You have great freedom with salad to do anything you like with whatever you&#39;ve got on hand too. I created a pasta salad using some red lentil pasta (mega gainz), red cabbage, courgette, cucumber and vegan mayo.&lt;/p&gt;
&lt;p&gt;On a day I was craving carbs, I cleared up the last portion of pasta salad with a baked potato filled with sauted soy sriracha mushrooms. A monster lunch.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_cggaZnY2W/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/red-lentil-pasta-salad-baked-potato-with-soy-mushrooms.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Red lentil Pasta salad, baked potato with soy mushrooms&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Red lentil Pasta salad, baked potato with soy mushrooms&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Carbonara, part 2&lt;/h3&gt;
&lt;p&gt;Lentil pasta is a great way to enjoy pasta while also upping your protein intake. I mixed some with some leftover vegan al fredo sauce from the &lt;a href=&quot;https://www.bosh.tv/recipes/creamy-carbonara-1&quot;&gt;BOSH! carbonara recipe&lt;/a&gt; and added in some sauted soy mushrooms (again; these are good) and sauted cherry tomatoes. Served with some rocket. This turned out to be pretty much a carbonara, with a bit of a twist. Was delicious though!&lt;/p&gt;
&lt;p&gt;The mushrooms were made with olive oil, soy sauce, maple syrup, smoked paprika and apple cider vinegar. Coat the mushrooms in the sauce and fry until tasty. They won&#39;t go super crispy.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_sELpmJ45H/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/red-lentil-pasta-al-fredo-sauce-fried-mushrooms-cherry-tomatoes-rocket.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Red lentil pasta with al fredo sauce, fried mushrooms and cherry tomatoes, rocket&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Red lentil pasta with al fredo sauce, fried mushrooms and cherry tomatoes, rocket&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Post workout carb bowl&lt;/h3&gt;
&lt;p&gt;I&#39;d just gotten back from a morning cycle ride when I put this meal together. I did a quick marinade of soy sauce, Sriracha, chipotle paste, vinegar and maple syrup and then baked the tofu in the oven. Chucked some garlic ciabatta sticks in the oven and brought a pan of new potatoes up to boil. Served with some coleslaw (do you sense the theme around coleslaw?) and it was the perfect protein-rich, carb-full post-workout lunch. Don&#39;t be afraid of the double-carb if you&#39;re recovering from a workout.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/CAAxqgDpnoP/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/new-potatoes-garlic-bread-tofu-red-cabbage.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;New potaotes, coleslaw, garlic bread sticks, marinated roasted tofu&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;New potaotes, coleslaw, garlic bread sticks, marinated roasted tofu&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;The ultimate picnic food&lt;/h3&gt;
&lt;p&gt;I love picnics. I love the plethora of choice; a smorgasbord on the ground. Often though, it can be a bit of a let-down if you&#39;re the only vegan there. I rustled up these amazing salads which travel well, are incredibly filling, and are a great accompaniment to any picnic.&lt;/p&gt;
&lt;p&gt;First: the pasta salad. Made with pasta, black beans, chickpeas, tomato, avocado, sweetcorn, coriander and mint. I dressed it with olive oil, lime and salt &amp;amp; pepper.&lt;/p&gt;
&lt;p&gt;Second: the potato salad. Made with seasonal jersey royals, Hellman&#39;s vegan mayo, wholegrain mustard, spring onions, chives and half a red onion. I absolutely love potatoes, and when it&#39;s covered in all these wonderful ingredients, it really brings this dish up.&lt;/p&gt;
&lt;p&gt;I served simply with cucumber sticks and bacon sprinkles (absolutely mad for these, ever since I discovered the Pizza Hut buffet as a child). Happy picnicing (a safe lockdown activity)!&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://www.instagram.com/p/CAiTII9Jxz1/&quot;&gt;&lt;img class=&quot;mx-auto mb-3&quot; src=&quot;https://samdking.co.uk/images/ultimate-picnic-food.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Avocado, black bean and chickpea pasta salad; potato salad; cucumber and bacon salad sprinkes&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Avocado, black bean and chickpea pasta salad; potato salad; cucumber and bacon salad sprinkes&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr /&gt;
&lt;p&gt;For all my lunch creations, keep up to date on my &lt;a href=&quot;https://www.instagram.com/samdking&quot;&gt;Instagram&lt;/a&gt;.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Lockdown Eating</title>
    <link href="https://samdking.co.uk/blog/lockdown-eating/"/>
    <updated>2020-04-25T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/lockdown-eating/</id>
    <content type="html">&lt;p&gt;The UK (and indeed most of the world) is currently in Lockdown due to the coronavirus pandemic. In this country, the current rules are we must stay in our homes except to travel to essential jobs, exercise or get supplies. This has been in place since 23rd March, when Prime minister Boris Johnson ordered a drastic set of measures to restrict movement and reduce the spread of the virus. Fast forward 4 weeks, and little has changed in terms of restrictions, except that the initial deadline for the lockdown has been extended a further 3 weeks.&lt;/p&gt;
&lt;p&gt;Lockdown has been a mixed bag. I am one of the lucky ones to still have a job, and one I&#39;ve been able to seamlessly transition to working from home. Spending more time at home has meant spending more time with my new son Brandon, which has been great and something I&#39;m very grateful for. Socially distancing has and will always be a little awkward as it feels like treating people with a wary distrust. But it&#39;s starting to feel a little bit like the &lt;em&gt;new normal&lt;/em&gt;. On the plus side, roads are quieter, the air is cleaner, and with Spring and warmer weather upon us there is a sense of optimism in the air, despite the everpresent feeling of sadness for the families of those who have succumed to the disease.&lt;/p&gt;
&lt;p&gt;Among the inevitable temporary loss of certain hobbies—Chelsea, 5-a-side, bouldering—I&#39;ve made use of the allowed 1 hour of daily exercise by running, pushing Brandon around Preston Park and cycling. All these activities have taken on a new sense of worth now that they&#39;re the only thing keeping me from becoming a slob!&lt;/p&gt;
&lt;p&gt;Cooking has been another thing I&#39;ve started to enjoy even more. There&#39;s a definite challenge with making the most of the ingredients you&#39;ve got; certainly earlier on in the pandemic, amid fears of potential food shortages. Things have settled down now and mostly I&#39;ve been able to get the supplies I need on a roughly weekly basis—albeit with significantly more planning than usual.&lt;/p&gt;
&lt;p&gt;NB - I decided mid-way through to make this a 3-part post, as there&#39;s so much food to show, and I didn&#39;t want to skimp on anything. This first post will focus on dinners.&lt;/p&gt;
&lt;h2&gt;Mealkit deliveries&lt;/h2&gt;
&lt;p&gt;I talked about &lt;a href=&quot;https://samdking.co.uk/blog/gousto-review&quot;&gt;Gousto in detail&lt;/a&gt; back in September last year when I reviewed the food delivery service. Even before the lockdown came into force, there was a bit of a mad panic from everyone about where they were going to get their food from. Supermarket delivery slots were quickly snapped up, and people looked to mealkit companies like Gousto for another source of food.&lt;/p&gt;
&lt;p&gt;Gousto were keen to reassure their existing customers that their service wouldn&#39;t be affected, which was great to hear. At the end of March Gousto stopped accepting new customers due to the huge demand. They also quickly put in place measures to temporarily increase capacity and ensure more optimal courier deliveries. I&#39;ve been seriously impressed with the speed of which some companies have mobilised to deal with the increase of demand of their service, all while adhearing to new social distancing restrictions.&lt;/p&gt;
&lt;p&gt;We&#39;ve been using Gousto for 3-4 meals a fortnight to supplement food bought from the supermarket. It&#39;s a weight off my mind to be able to browse what is essentially a menu and order my meals for the next week.&lt;/p&gt;
&lt;p&gt;Honestly I&#39;ve been blown away by the quality of the recipes Gousto put out, and this has been appreciated all the more during lockdown. And the sheer convenience of having fresh, portioned food delivered to your door has never been better felt.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-chickpea-dal.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Moroccan lentil stew with roasted chickpeas - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/vegan-recipes/moroccan-lentil-stew-with-roasted-chickpeas&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-aWURGnZEj/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-pasta-genovese.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Pasta Alla Genovese - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/vegan-recipes/pasta-alla-genovese&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-kFqcBngFr/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-satay-curry.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Joe&#39;s Satay Sweet potato &amp; kale curry - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/vegetarian-recipes/joes-satay-sweet-potato-kale-curry&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-r4rn3HuRP/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-meatball-masala.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Joe&#39;s Meat-free Meatball masala&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Gousto&#39;s recipe binder&lt;/h2&gt;
&lt;p&gt;Where Gousto comes into its own is your binder of recipes from past meals. It&#39;s like your own recipe book, except you&#39;ve already made and eaten all the meals in it, so you know exactly what to expect both in taste and preparation. This has been a really useful tool during the Lockdown, especially in moments where enthusiasm for meal planning and research has dwindled.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B--bXQhnsGs/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-meatless-stir-fry.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Meat-free sticky chilli stir fry with sticky white rice - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/recipes/meat-free-sticky-chilli-stir-fry&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-xAQ6lHWNt/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/gousto-nutty-veg-curry.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;10-minute nutty veg curry - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/vegan-recipes/10-min-nutty-three-veg-curry-with-basmati-rice&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-481wpnUCy/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/sausage-stew-leftovers.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Leftovers of a sausage stew from the night before, served with homemade coleslaw, rice and sweet potato and leftover buffalo cauliflower wings (w/ cashew ranch sauce)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B--bXQhnsGs/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/chickpea-coconut-curry.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Quick coconut chickpea and tomato curry, served with fluffy couscous, krispy kale and toasted flaked almonds - &lt;a href=&quot;https://www.gousto.co.uk/cookbook/vegan-recipes/10-min-chickpea-spinach-coconut-curry&quot;&gt;recipe&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Big batch cooking (+ leftovers)&lt;/h2&gt;
&lt;p&gt;Now, more then ever, a meal which can sit in a container in your fridge, ready to be heated up in the microwave feels like a lifesaver. So if you can motivate yourself to do some big cooks, your future self will fully appreciate it.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://cookieandkate.com/vegetarian-chili-recipe/&quot;&gt;Cookie and Kate&#39;s veggie chilli&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This one is actually vegan (if you omit the dairy toppings). I also added some sweet potato that needed clearing up, whcih worked really well. Chilli famously heats up really well, so this is a great dish to do a big warming pot of. You can get really creative with toppings to mix it up a bit too.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-m6w_LHv7g/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/chilli.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Chilli, flatbread (see below!) and homemade guacamole&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;&lt;a href=&quot;https://youtu.be/JoF2GvY36lI&quot;&gt;Gaz Oakley&#39;s Falafel &amp;amp; Flatbreads&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Falafel is such a brilliantly versatile, healthy and nutritious meal base. Great in a wrap, but equally as tasty with a salad dish or in a buddha bowl. I didn&#39;t make a huge batch of these, but they easily did 2 dinners; and the recipe would be easy to stretch. The flatbreads in this recipe are game changing as well. A half portion easily makes 6 flatbreads—or enough for 3 meals for 2 people. I&#39;ve loved having some dough balls in the fridge, ready to roll (😏) and chuck in a hot pan.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B94_ZcNHaA6/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/flatbread-and-falafel.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Freshly fried flatbread, with roasted veg, raw salad, falafel and a tahini dressing&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;&lt;a href=&quot;https://domesticgothess.com/blog/2020/03/12/vegan-cottage-pie&quot;&gt;Domestic Gothess&#39; Cottage Pie&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I&#39;ve always loved Shepherd&#39;s Pie, and it veganises amazingly well! This recipe uses lentils; a common substitute for meat. This actually made 6 portions in the end, so leftovers a plenty if you&#39;re a pair. Slather it with simple Bisto gravy (yep, it&#39;s vegan) and loads of green veggies to counteract the (let&#39;s face it) brown.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/shepherds-pie-with-veg.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Leftover shepherd&#39;s pie, with a healthy side of veg&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Bread&lt;/h2&gt;
&lt;p&gt;Everyone seems to be baking bread at the moment. Time + a kitchen = baking! Of course, this helps if you&#39;re able to get hold of flour and yeast; both of which have been at a premium since this started. Really though, what I&#39;m obsessed with at the moment is a side of bread with your meal. It&#39;s hardly revolutionary, but if you char it just right, it delivers the best flavour accompaniment to—dare I say—any meal.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-QPX3XnU6E/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/tortilla-and-chilli.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Toasted tortillas, quartered, served with a veggie chilli and half an avocado&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-m6w_LHv7g/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/flatbread-and-chilli.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Freshly fried flatbread, with the rest of the chilli and some homemade guacamole&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/ciabatta-and-risotto.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Halved, lightly oiled and fried ciabatta, with mushroom and pea risotto&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B_NVC7mHPUo/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/pitta-and-dal.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Toasted wholemeal pitta with a butternut squash daal&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Local businesses&lt;/h2&gt;
&lt;p&gt;Lastly, I can&#39;t not mention the valiant effort our local Brighton eateries have gone to to working away feeding the 5,000 (and the rest!).&lt;/p&gt;
&lt;p&gt;Big shout out to the Roundhill (due to reopen again &lt;em&gt;this&lt;/em&gt; weekend — 25th April!), Laz in the Park, and The Flour Pot. Roasts, burgers, lasagne, cake, fresh bread and pastries—talk about keeping up morale!&lt;/p&gt;
&lt;p&gt;We&#39;ve also been fortunate to be able to continue to get a lot of our store cupboard dry ingredients from &lt;a href=&quot;https://www.storebrighton.co.uk/&quot;&gt;The Store&lt;/a&gt; up the road. The Store is now open for business, operating a 2-person limit at any time, and using pre-bagged dry portions. Once again, it&#39;s amazing to see these local businesses adapting and continuing to trade under difficult circumstances.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;a href=&quot;https://www.instagram.com/p/B-kX80qHKOP/&quot;&gt;&lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/lasagne-takeaway.jpg&quot; /&gt;&lt;/a&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;Vegan red pepper lasagne&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Enjoyed in our front yard in the evening sun. A delicious, authentic and fresh lasagne from &lt;a href=&quot;https://www.instagram.com/laz_lasagna_brighton&quot;&gt;Laz Lasagna&lt;/a&gt;. They do deliveries every Saturday evening of lasagne and desert - check out their Instagram for more details!&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/roundhill-burger.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;The Roundhill Burger&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The Roundhill Burger is a staple of &lt;a href=&quot;https://www.instagram.com/theroundhillpub&quot;&gt;The Roundhill Pub&lt;/a&gt;. This one we had delivered the week before lockdown; and from 30th April, it will be available once again as via collection from the pub (along with their buddha bowl and cauliflower wings)!&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/roundhill-roast.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;The famous Roundhill roast&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;An absolute winner served in the pub, but just as delicious from a takeaway container (if a little crudely presented). We were lucky enough to get in on the roast action the Sunday before lockdown. The best vegan yorkshires in the world.&lt;/p&gt;
&lt;figure class=&quot;mx-auto&quot;&gt;
    &lt;img class=&quot;mb-3 mx-auto&quot; src=&quot;https://samdking.co.uk/images/flourpot-collection.jpg&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;The Flourpot bakery sourdough and pastries&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;We&#39;re also lucky to have 1 of the 5 Flourpot bakery stores just up the road from us. They&#39;ve seamlessly transitioned into a collection and home delivery service for all their products, which is fantastic and a tremendous effort in these hard times. We&#39;ve ordered their sourdough, vegan pastries, hot-cross buns and freshly ground coffee from them.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;It&#39;s a weird, scary time at the moment, particularly if you&#39;ve been personally affected by the virus and the resultant effects on society. If you can, make the most of the increased time at home to get creative. Whether that be in cooking, crafts, music, fitness or whatever you&#39;re into. Keeping yourself busy with something constructive, staying safe and doing your bit to help those less fortunate is how we&#39;re going to stay sane and healthy in this crisis.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Veganuary 2020</title>
    <link href="https://samdking.co.uk/blog/veganuary-2020/"/>
    <updated>2020-02-12T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/veganuary-2020/</id>
    <content type="html">&lt;p&gt;Since 2014, Veganuary has inspired and supported more than half a million people in 178 countries to try vegan for January. 2020 was the biggest year yet, finally - in my opinion - hitting the mainstream. A year into being vegan, I filled my January with as many of the new products as I could get my hands on.&lt;/p&gt;&lt;p&gt;Veganuary is over for another year, and although I had planned to make this post in the middle of January, recently becoming a father has meant my spare time has been limited. I wanted to make a post expressing my joy and gratitude to Veganuary and to celebrate what it has become.&lt;/p&gt;
&lt;p&gt;In 2020, Veganuary feels like it&#39;s truly gone mainstream. Big high street brands were falling over themselves to put out a vegan product this year. KFC, Greggs, Subway, Costa and Caffè Nero all got in on the act, and supermarkets all over the UK seem to have increased their vegan range to coincide. It all means one thing; veganism is picking up steam. If not the reasons behind it, certainly the word is becoming much more normalised and accepted and pushed into people&#39;s consciousness.&lt;/p&gt;
&lt;p&gt;Veganuary was a big help to me last year at the start of my vegan journey, but mainly online, in the form of recipe sharing, motivational quotes and educational pieces on why veganism is so important. This year, it feels like it&#39;s cemented itself as a tangible movement for veganism in the real world.&lt;/p&gt;
&lt;figure class=&quot;flex flex-col gap-1 max-w-2xl mx-auto&quot;&gt;
    &lt;div class=&quot;flex items-start gap-1&quot;&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/meatless-meatball-sub.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/kfc-burger.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex items-start gap-1&quot;&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/greggs-steak-bake.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/greggs-vegan-doughnut.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
      Subway Meatless Meatball, KFC Vegan Burger, Greggs Vegan Steak Bake and Greggs Glazed Doughnut
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;One of the biggest barriers to going fully vegan, I think, is convenience. By bringing vegan options to popular fast food establishments and cafés, the barriers are being broken down. There&#39;s a kneejerk reaction from non-vegans - who perhaps feel their way of life threatened or invaded - to call out the healthiness of these products. And, correctly, they&#39;re often not health foods you want to make a part of your daily diet. But that&#39;s entirely missing the point. Veganism isn&#39;t a diet, and it isn&#39;t about being a health nut. Secondly, they&#39;re being sold alongside products which are equally as unhealthy for omnivores. No one should be under the illusion a KFC Zinger burger nor a Greggs Steak Bake is healthy.&lt;/p&gt;
&lt;p&gt;When a vegan sausage roll is being sold next to an original meat sausage roll - and likewise now with the new steak bake - it gives people a choice. It allows people, with no additional burden of cost or inconvenience, to make a conscious decision when buying food out. This is huge for veganism and a direction which optimstically I see a lot of brands and food outlets going in.&lt;/p&gt;
&lt;p&gt;Not only has high street vegan fast food rightfully got the spotlight this January, supermarkets have been slowly expanding their vegan offerings, with ever-increasing momentum it seems. Most supermarket chains now have their own branded plant-based products. This is different from the vegan products that got lumped into the various free-from ranges. This is a distinct, marketable, fresh brand devoted solely to food without animal products. Again, this is huge!&lt;/p&gt;
&lt;figure class=&quot;flex flex-col gap-1 max-w-2xl mx-auto&quot;&gt;
    &lt;div class=&quot;flex items-start gap-1&quot;&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/waitrose-sandwich.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/pret-sandwich.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex items-start gap-1&quot;&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/plant-kitchen-wrap.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;my-0&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
      Waitrose Coronation No Chicken Sandwich, Pret Falafel Sandwich, Plant Kitchen Smokehouse No Chicken Wrap
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Marks and Spencer&#39;s well-established Plant Kitchen range has some exciting new products for Veganuary. This, on top of a very successful Christmas period where they launched, among other things, a vegan festive roast (which I had on Christmas day, and was delicious). The &lt;em&gt;No Chicken Kiev&lt;/em&gt; is delightful, and shows how far meat substitutes have come. I&#39;ve had seals of approval from meat-eaters on these they&#39;re that good. Tofish and chips is another big British staple which now has a viable, and accessible plant-based alternative.&lt;/p&gt;
&lt;p&gt;Sainsbury&#39;s - who have always had a decent vegan range - are pushing their new brand Plant Pioneers. Among the range is their famous Shroomdogs (as well as new Shroomballs), Fishless fingers, Smoky Vacon Rashers, and numerous jackfruit products. They also feature tins of banana blossum and jackfruit in water (products you&#39;d previously only find in specialised shops), so you can make your own recipes too.&lt;/p&gt;
&lt;p&gt;Wicked Kitchen at Tesco have some amazing looking ready meals, plus a sticky toffee pudding which I can&#39;t wait to get my hands on.&lt;/p&gt;
&lt;figure class=&quot;flex flex-col gap-1 max-w-2xl mx-auto&quot;&gt;
    &lt;div class=&quot;flex items-start gap-1&quot;&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/leon-burger.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
        &lt;div class=&quot;flex-1&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/what-the-pitta.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;my-0&quot; /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
      Leon Chipotle Avo Burger; and a Brighton staple: a What the Pitta Vegan Kebab and Chip box feast
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;They&#39;re all it. Largely because you have to keep up with competition and growing market trends. But regardless of motivation, choice is everything. You can go into any supermarket and, whether you&#39;re doing Veganuary or are a seasoned vegan looking for something quick and easy, you can find something healthy, tasty and nutritious.&lt;/p&gt;
&lt;p&gt;It&#39;s massive that large, well-known chains are kickstarting their year with great vegan offerings to make the most of the surge in demand in January. But the key thing is, these products aren&#39;t just for Veganuary. They will be mainstays in supermarkets because the demand is there. And as long as it&#39;s visible in supermarkets, fast food joints and the like, consumers will grow curious.&lt;/p&gt;
&lt;p&gt;Hurray for Veganuary; long may it continue!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>How&#39;s your Health?</title>
    <link href="https://samdking.co.uk/blog/hows-your-health-thriva/"/>
    <updated>2019-11-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/hows-your-health-thriva/</id>
    <content type="html">&lt;p&gt;A common line of conversation vegans are asked about is health, or more specifically, nutrition. How on earth do you get the protein you need when protein comes from animals?&lt;/p&gt;&lt;p&gt;Now I wasn&#39;t ignorant before becoming a vegan, I knew protein didn&#39;t exclusively come from animals, but it hadn&#39;t quite clicked in my head until recently when I saw a tweet that posed and answered the question:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Where do you get your protein from as a vegan?&amp;quot;
- &amp;quot;The same place your food gets its protein from&amp;quot;&lt;/p&gt;
&lt;p&gt;Plant-based protein is a hot topic at the moment due to the recent Game Changers movie being released on Netflix. The documentary follows the story of several elite athletes as they recall their journey into becoming vegan. In a nut shell, plant-based nutrition is slowly being discovered in the sports world as a means of gaining a physiological advantage over your competitors. Evidence presented in the film reveals that a plant based diet opens up your blood vessels, allowing better blood flow and thus better performance.&lt;/p&gt;
&lt;p&gt;Regardless, for the every-day person, whether a vegan diet can provide the right amount of nutrients to thrive still seems to be a raging debate, and one many anti-vegans jump on. Despite doing my own research over my time as a vegan, and feeling great in myself, I wanted to know for sure what was happening in my body. Enter: Thriva.&lt;/p&gt;
&lt;h2&gt;Thriva&lt;/h2&gt;
&lt;p&gt;Thriva is a company dedicated to helping you &amp;quot;take control of your health&amp;quot;. Launching in 2016, they aim to help keep people healthy, in addition acting as a preventative health service. Catching warning symptoms early and treating them can quite literally be the difference between life and death. Whilst their main product is a &lt;em&gt;not-inexpensive&lt;/em&gt; subscription service, I wasn&#39;t keen to sign on for the long haul, but I was keen to get a one-time vitals healthcheck!&lt;/p&gt;
&lt;p&gt;At £80, it&#39;s not cheap, but there are plenty of discount vouchers around, especially for your first test (I will leave my discount code at the end of the post if you&#39;re interested in giving it a go). I got £25 off my first test, and £55 seemed a reasonable price to pay to get an all-round health check.&lt;/p&gt;
&lt;h2&gt;Getting a sample&lt;/h2&gt;
&lt;p&gt;Signing up, I selected the recommended tests for those on a vegan diet. It was quick, easy and polished experience, and the kit arrived the next day. It comes in a neat little pull out box, filled with everything tucked away that you&#39;ll need to collect and send off a sample. Excited to get started, I skimmed the instructions and attempted to retrieve my first sample. You need to collect 2 (there are 2 small sample tubes for each) for reasons I&#39;m not sure of. As instructed, before breakfast I drank a glass of water, soaked my hand in warm water and used 1 of the 3 supplied lancets to pierce my finger.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/thriva-kit.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;block my-6 mx-auto max-w-2xl w-full&quot; alt=&quot;The letterbox-sized Thriva kit&quot; /&gt;
&lt;p&gt;20 minutes, 3 lancets and a fair bit of frustration later, I&#39;d failed to get enough blood to make a full sample. Annoyed (partially with myself), I got onto Thriva support and, within minutes, they&#39;d sent out another test. Nice. With this one, I read the instructions thoroughly, ensured I was fully hydrated the day before, tried to stimulate my blood flow before using the lancet, and let my hand sit for a bit longer in the warm water before trying the test for a second time.&lt;/p&gt;
&lt;p&gt;Attempt 2: failed. At this point I had no idea what I could be doing wrong and wondered if I had weird blood. I got back onto Thriva, and, to their credit, very patiently asked me a series of questions which ultimately ended in a 3rd test box being sent out. I presume 3 is probably a soft limit for customers, but at no point was I made to feel I was in the wrong which was good, and very positive customer service.&lt;/p&gt;
&lt;figure&gt;
    &lt;div class=&quot;flex gap-1&quot;&gt;
        &lt;img class=&quot;my-0 w-1/2 self-center&quot; src=&quot;https://samdking.co.uk/images/thriva-kit-2.jpg?nf_resize=fit&amp;w=600&quot; /&gt;
        &lt;img class=&quot;my-0 w-1/2 self-center&quot; src=&quot;https://samdking.co.uk/images/thriva-kit-3.jpg?nf_resize=fit&amp;w=600&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        [left] Thriva kit, ready to collect a sample, and [right] sample completed and ready to send off
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This time, I repeated the preparation steps to a tee, and ensured prime placement on my finger for pricking (outside edge at the top), and - finally - I was able to fill up the necessary tubes. The blood was flowing! With that, I labelled my samples, packaged them in the pre-supplied plastic holder, popped in the envelope and mailed it off. A day or so later I received a notification of receipt, and a few days after that, I got an email containing my results! It&#39;s a very streamlined system and, even with my struggles, I came out of with a positive impression of the company.&lt;/p&gt;
&lt;h2&gt;My results&lt;/h2&gt;
&lt;img src=&quot;https://samdking.co.uk/images/thriva-email.png&quot; class=&quot;border border-gray-300 w-full&quot; /&gt;
&lt;p&gt;Upon logging into your dashboard, you&#39;re presented with a neat overview of the various tests done on your sample. Thriva use a traffic light system of good health on the various tests; mine came back with 5 green and 2 orange. Certain levels also split green into light (normal) and dark (optimal), where appropriate.&lt;/p&gt;
&lt;h2&gt;B12&lt;/h2&gt;
&lt;p&gt;The much talked about vitamin on a plant based diet! Thriva measure your B12 levels on a scale of 0-300, with anywhere between 37.5 and 188 being normal. Mine was just below the lower bound, coming in at 34.7. Not anything to be concerned about, but enough to receive a helpful (although, potentially generic) note from a Doctor to keep an eye on it.&lt;/p&gt;
&lt;p&gt;Fortunately for me, I knew exactly why my B12 levels were low. The supplements I bought last year, while I was still dabbling with veganism, had been gathering dust in the cupboard for the best part of 6 months. Which might go some way to explaining the tiredness that sometimes comes over me (or this could just be being an adult in the modern world). I do try to get B12 from other sources too; marmite, nutritional yeast and B12-fortified plant milks are a good source.&lt;/p&gt;
&lt;p&gt;B12 deficiency is much maligned for being the scourge of a plant-based diet. The vitamin comes from bacteria, and a long time ago used to be present naturally in most plants. However due to modern hygiene and sanitisation practises, most of the plants we eat are stripped of it. Animals are a good source of B12 due to having exposure to bacteria during their lives and, ironically enough, B12-enriched animal feed or supplements.&lt;/p&gt;
&lt;p&gt;Developing a daily habit of taking a small, inexpensive supplement of B12 is all anyone following a vegan diet needs to keep their stores topped up.&lt;/p&gt;
&lt;h2&gt;Iron&lt;/h2&gt;
&lt;p&gt;Iron deficiency is another misconception in plant-based nutrition. Whilst red meat is a very good source of iron, there are numerous plant alternatives which provide more than enough of the mineral. Wholegrains, nuts and beans to name a few.&lt;/p&gt;
&lt;p&gt;My results came back inconsistent, which was flagged up. A full iron profile measures 5 iron markers: ferritin, total iron binding capacity (TIBC), transferrin saturation (FESA), total iron and unsaturated iron binding capacity (UIBC). My TIBC was a healthy 55.06 (out of 100), whilst my UIBC (unsaturated) levels were a little low, but still within the normal bounds. Ferritin levels were optimal, total iron was normal, but it was my FESA levels which were considered slightly higher than the optimal range (2.5% over). Given my other iron parameters were normal, the doctor&#39;s note explained it was unlikely to be significant, and can be affected by food eaten previously.&lt;/p&gt;
&lt;h2&gt;Testosterone, Cholesterol and Liver Function&lt;/h2&gt;
&lt;p&gt;There&#39;s a long standing and rather humorous myth that eating soy can lower your testosterone levels. I&#39;m pleased to announce all my testesterone levels were bang on normal.&lt;/p&gt;
&lt;p&gt;My cholesterol levels, which I know is one of the first things to drop when adopting a plant-based diet, were all within the optimal or normal ranges. HDL (the &amp;quot;good&amp;quot; cholesterol) was 1.88 (over 3.88 is considered high) and my LDL was (the &amp;quot;bad&amp;quot;) was an even lower 0.99 (4.9+ is considered very high).&lt;/p&gt;
&lt;p&gt;My liver function was covered by a large number of tests - most of which I&#39;ve never heard of before. Fortunately these all returned either normal or - when applicable - optimal results. I&#39;m no stranger to a drink, and although I don&#39;t often drink to excess, it&#39;s still nice to know your liver is functioning optimally.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;You don&#39;t have to be a hypochondriac to want a quick healthcheck of your bodies functions. It makes sense, especially if you&#39;ve made any significant changes in your life - be it diet, or otherwise.&lt;/p&gt;
&lt;p&gt;Services like Thriva do promote regular healthchecks, but at £80 a pop, their recommendation of quarterly is a bit much for me. I took advantage of a periodic offer where my next test (in January) is free. It&#39;ll hopefully prove useful in checking the progress of my B12 and iron results, but after that I plan to pause my subscription.&lt;/p&gt;
&lt;p&gt;Even with the struggles I had initially in getting a sample - and it&#39;s difficult to know where the blame lies on that one - I would fully recommend Thriva if you&#39;re at all curious about your health. It can either be a resassurance you&#39;re doing things right with your diet and life, or a helpful steer into making improvements in certain areas.&lt;/p&gt;
&lt;p&gt;If you&#39;re keen to try, you can enter the discount code &lt;strong&gt;25OFF&lt;/strong&gt; at checkout to get £25 off your first test! Give it a go and let me know if it helped you.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Overnight Oats</title>
    <link href="https://samdking.co.uk/blog/overnight-oats/"/>
    <updated>2019-11-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/overnight-oats/</id>
    <content type="html">&lt;p&gt;Overnight oats are a delicious and really nutritious way to start your day. Prepared in minutes the night before and topped with as much or as little as you want. If you&#39;re a cereal &amp; milk person, give this a go for a week and see if it improves your mornings!&lt;/p&gt;&lt;p&gt;Since I started tracking calories, I&#39;ve realised even more the importance of a decent breakfast. A 2200 calorie target means a sizeable breakfast sets you up well for the day and means you&#39;re not chasing calories mid-morning.&lt;/p&gt;
&lt;p&gt;Oats are a great way to do this; they&#39;re full of slow-release energy due to their low Glycaemic Index. Even if, like me, you have a desk job, a decent breakfast means you don&#39;t even think about food until noon at the earliest.&lt;/p&gt;
&lt;p&gt;The thing I love about this particular breakfast is it can be mostly prepared the night before in a matter of minutes. Mentally this prepares you for the next day, getting you organised, and gives you a head start in the morning.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/overnight-oats-bowl.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;max-w-2xl mx-auto w-full&quot; alt=&quot;Overnight oats in a coconut bowl&quot; /&gt;
&lt;h2&gt;Overnight Oats Recipe&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;75g rolled oats&lt;/li&gt;
&lt;li&gt;75g frozen berries (any will do)&lt;/li&gt;
&lt;li&gt;200ml soya milk (or any plant based milk)&lt;/li&gt;
&lt;li&gt;1 tablespoon of chia seeds&lt;/li&gt;
&lt;li&gt;1 tablespoon of goji berries or raisons&lt;/li&gt;
&lt;li&gt;1/2 teaspon of cinamon&lt;/li&gt;
&lt;li&gt;small pinch of salt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To top&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 tablespoons of soya/coconut yoghurt&lt;/li&gt;
&lt;li&gt;1 tablespoon of hemp seeds&lt;/li&gt;
&lt;li&gt;1 tablespoon of almond butter (I use Pip&#39;n&#39;Nut)&lt;/li&gt;
&lt;li&gt;1/2 tablespoon of flaxseeds&lt;/li&gt;
&lt;li&gt;a drizzle of maple syrup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I should note: this is a large portion! At 670 calories it&#39;s not a small breakfast. If you&#39;re not too hungry in the mornings you may want to half this to begin with and figure out what proportion works for you.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/oats-ingredients.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;my-0 max-w-2xl mx-auto w-full&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;The oats&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/oats-toppings.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;my-0 max-w-2xl mx-auto w-full&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;The toppings&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Nutrition&lt;/h2&gt;
&lt;p&gt;Between the soya yoghurt, oats, almond butter and hemp seeds, you&#39;ll get plenty of protein here. As mentioned previously, oats are amazing at slowly releasing carbs throughout the morning. You&#39;ll get loads of healthy fats from the seeds and almond butter which will also help you feel satisified. And trust me, this meal will fill you up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calories:&lt;/strong&gt; 670
&lt;strong&gt;Carbs:&lt;/strong&gt; 64g
&lt;strong&gt;Protein:&lt;/strong&gt; 29g
&lt;strong&gt;Fats:&lt;/strong&gt; 27g&lt;/p&gt;
&lt;h2&gt;Method&lt;/h2&gt;
&lt;p&gt;In a container with a lid, add oats, frozen berries, goji berries, chia seeds, cinnamon and salt. Add your milk and stir well. It should be quite runny; if it isn&#39;t, add some water or a little more milk. Stick it in the fridge overnight, and you&#39;re done until the morning!&lt;/p&gt;
&lt;p&gt;By the morning the oats, seeds and berries should&#39;ve soaked up all the milk, and will have turned it a nice red/purple colour. Transfer the oats into a nice bowl (I use &lt;a href=&quot;https://www.coconutbowls.com/&quot;&gt;Coconut Bowls&lt;/a&gt;) and add your toppings. Mine are a suggestion based on honing it over the last few months, but really you can add what you like depending on what you have and what you like.&lt;/p&gt;
&lt;figure&gt;
    &lt;div class=&quot;flex gap-1&quot;&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/overnight-oats-method.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;w-1/2 my-0 self-center&quot; alt=&quot;Overnight oats before soaking&quot; /&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/overnight-oats-method-2.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;w-1/2 my-0 self-center&quot; alt=&quot;Overnight oats after soaking&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Overnight oats; before and after soaking!
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Add yoghurt (I use Alpro, Coyo or Koko), almond butter and a drizzle of maple syrup; then sprinkle over your hemp and flax seeds. You can top further with cacao nibs and chopped hazelnuts too for added decadence! I&#39;ll often add some chopped fresh fruit like banana or apple if I have it around and it needs clearing up as well.&lt;/p&gt;
&lt;h2&gt;Sustainability&lt;/h2&gt;
&lt;p&gt;I&#39;m fortunate that I can get all my oats, seeds and dried fruit from my &lt;a href=&quot;https://samdking.co.uk/posts/sustainability-around-the-home/&quot;&gt;local zero-waste shop&lt;/a&gt;. The frozen berries are the most difficult thing to reduce packaging on, but in my opinion a vital element. Frozen zero-waste stores would be a godsend!&lt;/p&gt;
&lt;p&gt;I try to avoid using almond milk where I can these days, due to comparatively large water use, and the lack of supply due to large draughts in California in recent years. I find soy and oat milk strike the best balance of emissions, land use and water. The taste of the particular variety of milk doesn&#39;t matter much, as there&#39;s so much other flavour going on.&lt;/p&gt;
&lt;h2&gt;Cost&lt;/h2&gt;
&lt;p&gt;Oats are dirt cheap, but with additions I&#39;m aware this is not the most affordable of breakfasts. With that said, most of the ingredients you can buy in bulk, meaning over time it can work out as cheap as your average box of cereal, and a whole lot more nutritious.&lt;/p&gt;
&lt;p&gt;You can use other nut butters, as almond as one of the more expensive. I&#39;ve tried this with peanut and it just doesn&#39;t really work as well as a bit&#39;s too gloopy. Cashew butter worked OK too, so experiment away.&lt;/p&gt;
&lt;h2&gt;And that&#39;s it...&lt;/h2&gt;
&lt;p&gt;There&#39;s a certain smugness when you open your fridge in the morning and there&#39;s overnight oats waiting for you. When the weather starts getting colder, I&#39;m a big fan of the warm classic that is porridge, but sometimes I just can&#39;t be bothered in the morning. This is a great alternative, and one I often prefer to the heaviness of porridge, any time of the year.&lt;/p&gt;
&lt;p&gt;It&#39;s also great on the move if you&#39;ve got a container you can sling in a bag and eat at your destination. I&#39;ve even taken a portion in my backpack on a cycle ride on the Downs to eat halfway. And let me tell you; I had energy for miles!&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Being Vegan On Holiday</title>
    <link href="https://samdking.co.uk/blog/being-vegan-on-holiday/"/>
    <updated>2019-10-14T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/being-vegan-on-holiday/</id>
    <content type="html">&lt;p&gt;A short family holiday to the remote Welsh countryside was a great opportunity to experiment with some vegan cooking for some non-vegans. Finding or cooking good vegan food in a different kitchen can be a challenge, but with good preparation it doesn&#39;t have to be a drag.&lt;/p&gt;&lt;p&gt;Going on holiday can be a stressful time when vegan. If food isn&#39;t something you care a whole lot about, or can survive on not a lot, you can get by. But if, like me, you love food and love being able to try new things and maybe even introduce others to some vegan food, then &lt;strong&gt;preparation is key&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Eating out in foreign lands brings with it a host of challenges; probably more so than self-catering. But the latter usually means a lot of foresight and planning. My parents, sisters and I planned a trip to Wales for 3 days in a cottage. The cottage has a big open kitchen and the weekend provided plenty of opportunity for great sharing food. The difficulty: I was the only vegan out of 11 of us.&lt;/p&gt;
&lt;p&gt;Amongst them was a baby, a toddler, a pescatarian, a couple of flexitarian/veggie-friendly eaters, and the rest largely meat-and-plenty-of-dairy-eaters. So the challenge was, obviously to feed me, but also to fit in with everyone elses food habits, in addition to providing a few vegan samplers to those who don&#39;t often dabble. In summary: it was going to be a busy but fun weekend of cooking and baking.
&amp;quot;
&lt;img src=&quot;https://samdking.co.uk/images/wales-cottage.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;max-w-2xl mx-auto w-full&quot; alt=&quot;Cottage in Brecon Beacons, Wales&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The accommodation we were staying in was a couple of miles off the nearest main road, up a steep hill. We&#39;d ordered a food delivery from Tesco and after arriving were starting to regret it. Fortunately, and in true Welsh charm, a cheery delivery driver confidently pulled up outside the cottage, informing us it wasn&#39;t his first delivery there. Decent luck!&lt;/p&gt;
&lt;h3&gt;Friday night: pizza&lt;/h3&gt;
&lt;p&gt;Once news of a pizza oven filtered, there was no further discussion: Friday was pizza night. And try as I may, I was unsuccessful in securing an artisan vegan cheese from Brighton before I left. But, armed with a Violife Mozarella block, I was easily able to assimilate into a dairy &amp;amp; meat pizza fest. I&#39;m not a vegan cheese convert myself, so I didn&#39;t try to convince anyone to try mine, but used sparingly, I&#39;m on board with vegan pizza and this was no exception.&lt;/p&gt;
&lt;p&gt;I topped with peppers, cherry tomatoes, mushroom, basil and vegan bacon.&lt;/p&gt;
&lt;figure&gt;
    &lt;div class=&quot;flex gap-1&quot;&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/pizza-prep.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;w-1/2 my-0&quot; /&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/stone-baked-pizza.jpg?nf_resize=fit&amp;w=600&quot; class=&quot;w-1/2 my-0&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Pizza prep and final, rustic result (with slight whoops)
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Saturday lunch: &lt;em&gt;pumpkin soup&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;I took it upon myself to make a seasonal pumpkin soup. I&#39;d nabbed a recipe I&#39;d seen shared on Instagram. So with half our party setting out on a walk I began the arduous job of &amp;quot;peeling&amp;quot; the pumpkin. I don&#39;t think I&#39;ve ever peeled a pumpkin; the skin is &lt;em&gt;tough&lt;/em&gt;. So, armed with the sharpest knife in the house, I set about pain-stakingly peeling the skin off.&lt;/p&gt;
&lt;p&gt;The best part of 2 hours later, and I had the pumpkin roasting, the onion, garlic, potatoes and stock bubbling away on the stove, and I could finally catch a rest. Finally, after several batched trips from the blender into a second saucepan, it was complete.&lt;/p&gt;
&lt;p&gt;Lovingly served with roasted potato skins, pumpkin seeds, kale and crispy chickpeas. With hot, crusty bread on the side it was an Autumn treat to savour. Everyone loved it.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/pumpkin-soup-final.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Spiced pumpkin and potato soup, with roasted pumpkin seeds, potato skins, kale and chickpeas&quot; class=&quot;my-0 max-w-2xl mx-auto w-full&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Spiced pumpkin and potato soup, with roasted pumpkin seeds, potato skins, kale and chickpeas
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Saturday evening: &lt;em&gt;cauliflower buffalo wings&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;To start, the non-vegans enjoyed a combo of smoked salmon &amp;amp; cream cheese and grape &amp;amp; goats cheese crostonis. My sister made some avocado and tomato ones for me which were actually really good and goes to show a delicious vegan alternative is never that far away. As part of a second appetiser (we &lt;em&gt;were&lt;/em&gt; on holiday...) a little earlier on, I&#39;d started prepping my Buffalo califlower wings from the BOSH! cookbook. Bit of a different vibe to canapés, but I love caulfilower and thought something different would be appreciated.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/crostini.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Crostini canapés&quot; class=&quot;my-0 max-w-2xl mx-auto w-full&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        The first of the night&#39;s appetisers: crostini canapés
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It was quite fiddly to get the ratios right on the construction - I got through my breadcrumbs quickly, and the remaining got a bit gloopy. I suspect being more careful when dipping and breading might help.&lt;/p&gt;
&lt;p&gt;I held back on the hot sauce a bit (although needn&#39;t have really), and barely  used half of the huge cauliflower that turned up, but the end result went down an absolute treat. Helped out by the hot roasting oven of the Aga - and the fact we ended up leaving them to rest for an hour or so, before reheating - the result was a crispy, chewy, melty &amp;quot;wing&amp;quot; with a decent amount of heat. The ranch on the side was slathered on with equal levels of gusto.&lt;/p&gt;
&lt;p&gt;Another vegan success.&lt;/p&gt;
&lt;figure&gt;
    &lt;div class=&quot;flex gap-1&quot;&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/buffalo-wings-aga.jpg?nf_resize=fit&amp;w=600&quot; alt=&quot;Breaded and primed caulilfower on the aga&quot; class=&quot;w-1/2 my-0&quot; /&gt;
        &lt;img src=&quot;https://samdking.co.uk/images/buffalo-wings.jpg?nf_resize=fit&amp;w=600&quot; alt=&quot;Finished Caulflower Buffalo wings&quot; class=&quot;w-1/2 my-0&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Left: breaded and primed for Buffalo sauce. Right: crisped to perfection and ready to eat
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;A salmon fillet was on the menu for the main for all but me. I swapped out for a simple Frys schnitzel duo, alongside quinoa and roasted veg, which did the job just fine for me. Special mention also to the English Cheesecake Company chocolate cookie cheesecake another of my sister&#39;s picked up for me. Decadant, and very unhealthy but completely moreish and no giveaways it was vegan but for the price tag 😆.&lt;/p&gt;
&lt;h3&gt;Sunday morning: &lt;em&gt;cooked vegan breakfast&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;After so many delicious vegan brunches at Tilt, I decided I wanted to try making my own. Armed with some rustic, homemade hash browns I&#39;d made the day before, I got up early to prepare a vegan feast for the Sunday morning. I was pleased the whole party opted to try the vegan brunch, putting aside yesterday&#39;s sausage, bacon and eggs start to the holiday.&lt;/p&gt;
&lt;p&gt;The final plate consisted of tofu scramble, Linda McCartney sausage, hash brown, avocado, roasted tomato &amp;amp; mushroom, homemade hummus and toast. Quite a feast.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/vegan-breakfast.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;max-w-2xl mx-auto w-full&quot; alt=&quot;Vegan breakfast&quot; /&gt;
&lt;p&gt;The scrambled tofu was delicious, and the first I&#39;ve made with the magic ingredient: Kala namak (black salt). Kala namak is manufactured from the salts mined around the Himalayas and is renowned for its strong &amp;quot;eggy&amp;quot; aroma. In all honestly, it wasn&#39;t as potent as I was expecting though; so I may be a little more liberal in my usage next time!.This recipe, again from the boys at BOSH!, used both firm and silken tofu for a very rich and protein-strong egg substitute.&lt;/p&gt;
&lt;p&gt;The hummus I&#39;d made the previous afternoon and was the dud of the weekend. At home, with my Magimix, I&#39;ve mastered Cookie and Kate&#39;s delish smooth, silky hummus recipe. But in Wales, with just a small blender and Nutribullet, I battled hard but ultimately was defeated when trying to blend the dry, sticky ingredients required for hummus. It turned out OK in that it was edible, but was a far cry from the batch I made at home a few weeks ago.&lt;/p&gt;
&lt;aside&gt;
    Equipment can be a sticking point when cooking away from home. Hummus needs a high powered food processor, and unfortunately the Nutribullet was not up to the job (R.I.P. blade). Done again, I would probably store-buy it as on holiday is not the time you want to be wrestling with a blender. Trust me.
&lt;/aside&gt;
&lt;p&gt;I don&#39;t often cook for 9 people, so it was a bit of a challenge. Next time, I&#39;d cook more food, not being quite so strict in counting out ingredients, to allow for second helpings.&lt;/p&gt;
&lt;h3&gt;Sunday afternoon tea: &lt;em&gt;cake and sandwiches&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;Sunday morning was spent making a coffee cake. I&#39;ve never been particularly into baking, but since being vegan, baked goods are a big deal! Finding a vegan cake out is like golddust. With a bit of help, I managed to bake a tasty - if a little vertically lacking - frosted coffee cake (recipe from [lovingitvegan.com]). A combination of 8-inch tins instead of 7, an Aga oven of unknown temperature, and the seeming lack of a significant enough raising agent (plain flour + 1 tsp baking soda). I ended up using baking powder, not soda, so this may have been to its detriment.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/coffee-cake.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;max-w-2xl mx-auto w-full&quot; alt=&quot;Coffee cake&quot; /&gt;
&lt;p&gt;The cake was very sweet (too much so for my tastes), but the flavour was delicious. The texture was great and the coffee flavour really came through. Baking in a foreign kitchen is tricky, especially when you&#39;re not a strong baker.&lt;/p&gt;
&lt;p&gt;To accompany the cream tea, I made two lots of vegan sandwiches: hummus, avocado and cucumber; and roasted pepper and pesto. I realised afterwards the plan - and more conventional combination - would have been hummus &amp;amp; red pepper; and pesto, cucumber &amp;amp; avocado. Hey ho. The pesto was store bought, but all the other ingredients were homemade. You do have to get a bit more creative with vegan sandwich fillings, but it&#39;s worth the effort!&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/sandwiches-spread.jpg?nf_resize=fit&amp;w=1000&quot; class=&quot;max-w-2xl mx-auto my-0 w-full&quot; alt=&quot;Jars of grains, nuts and seeds&quot; /&gt;
    &lt;figcaption class=&quot;text-center&quot;&gt;
        Sandwiches, and the one thing that tempted to sway me, my family&#39;s signature dish: &quot;Mars bar cake&quot;
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The non-vegan sandwiches were egg mayo, smoked salmon and cream cheese, cheddar and chutney, and cucumber. And honestly they all went down just as well as each other.&lt;/p&gt;
&lt;h2&gt;A great weekend of food&lt;/h2&gt;
&lt;p&gt;This weekend was a great reminder of a few things. The first, family bonding time is so important; I really did nothing else for 3 days but cook, relax and enjoy great company. Secondly, vegan cooking is delicious, and can be easily dropped into a holiday for vegans and non-vegans alike to enjoy.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Going Vegan - my story</title>
    <link href="https://samdking.co.uk/blog/going-vegan-my-story/"/>
    <updated>2019-10-01T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/going-vegan-my-story/</id>
    <content type="html">&lt;p&gt;My journey to being vegan was in some respects pretty typical. I dabbled with vegetarianism, dropped it in favour of a flexitarian lifestyle, before diving into veganism and not looking back. My account of my 3-year journey.&lt;/p&gt;&lt;h2&gt;My story&lt;/h2&gt;
&lt;p&gt;Almost 3 years ago I watched &lt;a href=&quot;https://www.cowspiracy.com/&quot;&gt;Cowspiracy&lt;/a&gt;. I can&#39;t remember what compelled me to watch it but it resonated with me. Shortly after, I decided I wanted to give up meat for a month. I&#39;ve always considered myself an &amp;quot;animal person&amp;quot; but seeing the &amp;quot;Sustainability Secret&amp;quot; in the documentary gave me the push to see if I&#39;d be able to remove meat from my diet for a sustained period of time.&lt;/p&gt;
&lt;p&gt;And, it went pretty well because I ended up doing it for a year, September 2016 - September 2017. But it never really &lt;em&gt;stuck&lt;/em&gt;. I remember always feeling awkward, sometimes ostricised, and generally just a bit restricted in life. I was constantly questioning my inner voice of why am I doing this? Whilst I was clearly able to live without eating meat, I was not thriving and not feeling good for avoiding it.&lt;/p&gt;
&lt;p&gt;I did a write-up after &lt;a href=&quot;https://samdking.co.uk/blog/vegetarianism-my-account/&quot;&gt;I gave up being vegetarian&lt;/a&gt;, and concluded the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The V word is a dirty word, still. And frequently spoke of in a derisory sense. People do not like to have their rights taken away. This is fair enough. But I don&#39;t believe total abstinence is the way forward. Sell the idea of smart and responsible consumption of these foods instead. This year has changed my perspective for good. I feel like I get it now; I am committed to eating more sustainably. But I will still enjoy the veritable array of food we&#39;re lucky enough to enjoy. And it will taste all the better now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unlike past opinions I&#39;ve felt the need to write down, this one has actually aged OK. It&#39;s a reasonably measured and mature way of looking at food. And so I continued. Our home cooking had continued to be largely vegetarian - mostly due to Charlotte still continuing her meat-free diet - but I would induldge my meat desires when out; typically opting for the meat option in restaurants and the like. I guess I was what is commonly referred to as a flexitarian.&lt;/p&gt;
&lt;p&gt;I&#39;m a logical thinker, and although I took a lot of pleasure and nostalgia in eating meat and animal products, there was a nagging feeling bubbling away inside of me that we just shouldn&#39;t really be eating this way. I&#39;d started following a few more vegan accounts on Instagram out of curiousity and was beginning to experiment with vegan meals at home and when out.&lt;/p&gt;
&lt;figure class=&quot;w-full&quot;&gt;
    &lt;div class=&quot;flex gap-1 my-1&quot;&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BgW0IWahqNt/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-indonesian.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BkdSpVNBdkr/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-chickpea-curry.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BghHR2Phue5/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-bbq.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BmJYKviBx-m/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-fridge-clear.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex gap-1 my-1&quot;&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BkECuzXhQ9f/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-moving-mountains.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/Bg4aXWpl-EY/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-carrots.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/BkxNyloBemv/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-buddha-bowl.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
        &lt;a href=&quot;https://www.instagram.com/p/Bhhs9ACBDAX/&quot; class=&quot;flex-1&quot;&gt;
            &lt;img src=&quot;https://samdking.co.uk/images/vegan-meal-baked-potato.jpg&quot; class=&quot;w-full m-0&quot; /&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption class=&quot;italic text-center&quot;&gt;Various vegan meals over 2018 (click for Instagram posts)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Almost unconsciously, I think I was convincing myself veganism was a lifestyle I could get on board with, and a tasty one at that. 2018 was interspersed with holidays and trips out where I satisfied my meat cravings without guilt. However midway through 2018 I decided to watch &lt;a href=&quot;hhttps://www.landofhopeandglory.org/&quot;&gt;Land of Hope and Glory&lt;/a&gt; - a UK take on the infamous Earthlings documentary. If Cowspiracy focuses on environment, What the health on health, then Earthlings is the &lt;em&gt;defacto&lt;/em&gt; vegan film that addresses the third pillar of veganism: animal activism and factory farming.&lt;/p&gt;
&lt;p&gt;I couldn&#39;t make it through Earthlings, but I decided to give the shorter running (49 minutes) Land of Hope and Glory a proper go. Especially as it focuses closer to home, on the UK&#39;s animal farming practises (an industry the patriotic among us would say we&#39;re quite proud of as a nation). By the end I was balling. And so, so angry at humanity. And I&#39;m pretty sure it was at that point I realised I couldn&#39;t go back to eating animals. And the crazy thing is, I knew what went on in the animal agriculture industry. Everyone knows. But from a very young age, we&#39;re heavily conditioned to believe it is not a big deal, and a natural thing; just &amp;quot;how things are&amp;quot;. Bullshit.&lt;/p&gt;
&lt;p&gt;After a bit of a non-commital transitionary period of a few months, I decided going into the Christmas period that it was time to actually fully commit and tell myself and others that I was vegan. It felt good. I had my first vegan Christmas at the end of 2018, which was - admittedly - quite difficult. But I headed into 2019 excited with a fresh outlook on food and, the world, I guess.&lt;/p&gt;
&lt;h2&gt;Being vegan is restrictive. What&#39;s wrong with vegetarianism?&lt;/h2&gt;
&lt;p&gt;In my year of vegetarianism write-up, I made the following opening remarks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;That&#39;s the key point for me. Being vegetarian is a lifestyle change. (NB: this post isn&#39;t about veganism, which I respect as being wholeheartedly more of a commitment than vegetarianism...)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I concluded the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And so, it&#39;s after 365 days off the stuff, I&#39;ve pretty much decided cold, hard vegetarianism is not for me. Ultimately I&#39;m not strong enough nor dedicated to the cause to fight this. If I was, I&#39;d honestly have no excuse not to go the whole hog and become vegan. Vegetarian, whilst enlightening and valuable for numerous reasons, has been a half measure to truly sustainable eating which I ultimately don&#39;t see myself committing to for the rest of my life.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And that&#39;s been the difference for me. I entered into vegetarianism as a challenge; aware of the benefits of eating less meat, but not wholeheartedly committing to it. As time went on I became less and less attached to the movement and the diet. And even back then, I identified that to make a meaningful difference, I had to go vegan (excuse the &amp;quot;whole hog&amp;quot; pun).&lt;/p&gt;
&lt;p&gt;Vegetarianism is a great introduction into a meat-free world, don&#39;t get me wrong; It may even have sowed the seed for me to be where I am now. But it was &lt;em&gt;Land of Hope and Glory&lt;/em&gt;&#39;s reporting of dairy cows that struck home for me. Cows are repeatedly and unnaturally bred for the primary purpose of producing milk around the clock until they can&#39;t any longer. But only half the cows born are able to fulfill this task. The unfortunate males are nearly always shipped off to be slaughtered for beef; sometimes veal.&lt;/p&gt;
&lt;p&gt;It terrified me that the noble and unselfish act of choosing to keep meat off your plate still indirectly feeds the beef industry.&lt;/p&gt;
&lt;p&gt;Sadly the same thing happens in the egg industry. In Germany earlier this year it was reported an estimated 45 million male chicks are killed annually; either via the practise of gassing or crushing to death. Now, I love eggs. They&#39;re cheap, versatile, a decent nutritious meal or a quick snack. It&#39;s also an annoying thing to give up; egg is used in so many food products. Cakes being the big (and hard to give up) one.&lt;/p&gt;
&lt;p&gt;But after finding out how half of all chicks born are treated, I could no longer sit idley by and support that practise. Something being delicious is not a morally justifiable reason for killing a living thing. I am very much firmly in this camp now.&lt;/p&gt;
&lt;p&gt;A video by the animal activist Gary Yourovsky was shared by Gaz Oakley, of &lt;a href=&quot;https://instagram.com/avantgardevegan&quot;&gt;Avant-Garde Vegan&lt;/a&gt;; cited as the video that made him go Vegan overnight. Gaz was and still is a big inspiration for me in vegan cooking so I was prepared to give the 70-minute video my time. The video is a talk he did at Georgia Tech University in 2010; the production quality is low but bear with it. The message is a powerful one. I implore anyone battling with their consciousness on whether to give up milk, cheese and eggs to watch it: &lt;a href=&quot;https://www.youtube.com/watch?v=U5hGQDLprA8&quot;&gt;https://www.youtube.com/watch?v=U5hGQDLprA8&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Vegetarianism feels like a diet; say no to the meat option and you&#39;ll generally get on just fine. And I did. Except I missed meat. I wasn&#39;t doing it for the right reasons. If you are vegetarian, and you feel great - physically and morally - then more power to you. But it just didn&#39;t click for me. Veganism, 9 months on, just feels right. In some ways it no longer feels like an effort; it feels like me. Yes there will be moments of weakness where you&#39;d climb a mountain for a cheese toastie. But like any of those kind of moments, it passes; and you feel all the better for sticking on your path.&lt;/p&gt;
&lt;h3&gt;Key Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cowspiracy (&lt;a href=&quot;https://www.cowspiracy.com/&quot;&gt;https://wwwcowspiracy.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;What the Health (&lt;a href=&quot;https://www.whatthehealthfilm.com/&quot;&gt;https://www.whatthehealthfilm.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Land of hope and glory (&lt;a href=&quot;https://www.landofhopeandglory.org/&quot;&gt;https://www.landofhopeandglory.org&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Gary Yourovsky&#39;s talk: (&lt;a href=&quot;https://www.youtube.com/watch?v=U5hGQDLprA8&quot;&gt;https://www.youtube.com/watch?v=U5hGQDLprA8&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>Gousto: A review</title>
    <link href="https://samdking.co.uk/blog/gousto-review/"/>
    <updated>2019-09-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/gousto-review/</id>
    <content type="html">&lt;p&gt;My exploration and teardown of the food meal plan delivery service Gousto. Judged on sustainability, conveniance and how it fairs for a vegan lifestyle. Complete with discount code if you fancy giving it a go.&lt;/p&gt;&lt;p&gt;Funnily enough I was convinced to try Gousto by a door-to-door salesman (yeh, they do still exist, and yes, I am a little too easily persuaded). It wasn&#39;t a completely cold sell because I&#39;d been itching to try one of the various meal plan delivery companies on the market. Apparently I was bang in the target market too because I see ads for them everywhere.&lt;/p&gt;
&lt;h2&gt;Sustainability&lt;/h2&gt;
&lt;p&gt;In my opinion, food boxes are a bit of a sustainability paradox. Food waste is a big problem in the western world; and Gousto reckon &lt;a href=&quot;https://www.gousto.co.uk/blog/food-waste-global-problem&quot;&gt;UK households waste £700 a year worth of food&lt;/a&gt;. As a solution to this problem, companies like Gousto offer on-demand food boxes with the exact, measured ingredients required to produce a selection of meals from their weekly menu. Not only is this easier for the cook (the scales and measuring spoons can stay in the drawer), it means - providing you&#39;ve cooked all your meals - your waste is nil*.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;* Of course, the caveat is you obviously have to eat all the food you cook. The portions are pretty decently sized with Gousto, especially if you serve yours with bread or a side salad. But generally I&#39;ve found between us we clear it up (even if I have to eat a bit more than I would otherwise).&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The big side effect of this though, is packaging. Gousto are &lt;a href=&quot;https://www.gousto.co.uk/blog/sustainable-recipe-box&quot;&gt;making strides to reduce packaging&lt;/a&gt;, but the fact remains - you end up with a lot of tiny plastic packets. Refrigerated and frozen items come packaged in a nifty, wool-insulted (more on that in a bit) packet, wrapped in plastic. It&#39;s very effective and completely recyclable or compostable; but if you get a weekly Gousto order, you amount an awful lot of wool. It&#39;s a real shame Gousto don&#39;t offer a return service like other competitors.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/gousto-food.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;The contents of a 4-meal box from Gousto&quot; style=&quot;margin: 2rem 0; display: block&quot; /&gt;
&lt;p&gt;Anywhere plastic can be gotten rid of in the box, Gousto have, to their credit (changes made apparently since the picture above was taken). But their sell - convenient, pre-portioned ingredients - is also their weakness from a sustainability standpoint. Whilst a jar of cumin can be bought once, sit in your cupboard, and used 20+ times; during that time with Gousto you might have gone through 20 small plastic packets of the stuff.&lt;/p&gt;
&lt;p&gt;After 4 boxes, I&#39;ve got a nice couple of &amp;quot;wins&amp;quot; displayed in my account area, which tells me I&#39;ve saved 8kg of food waste and 4 hours of time saved. Not bad!&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/gousto-wins.png&quot; style=&quot;margin: 1.625rem auto; max-width: 35rem; width: 100%&quot; /&gt;
&lt;p&gt;I don&#39;t know if the excess packaging cancels out the food waste avoidance from a CO2 perspective, but it&#39;s certainly a very intuitive, organised system of food preparation which is a cinch to use. Which brings me onto my next point: convenience.&lt;/p&gt;
&lt;h2&gt;Convenience&lt;/h2&gt;
&lt;p&gt;I enjoy cooking, and I certainly enjoy eating. But sometimes it can feel like a bit of a chore. For me, Gousto is a great middle ground between ready meal and cooking from scratch. Most of the recipes are less taxing on those evenings after work where your brain is mush. You pick the meals you want from a vibrant, easy-to-use menu app, select a day for delivery (typically this day is stored in your preferences) and the compact box shows up. No popping to the supermarket after work, no running to the corner shop because you&#39;ve run out of something you thought you had.&lt;/p&gt;
&lt;p&gt;You can select between 2 and 4 meals for the week, and you choose the box frequency - weekly, fortnightly, or monthly. You can also skip orders (something I do quite often) or pause your subscription indefinitely.&lt;/p&gt;
&lt;p&gt;For me, it feels like a break from everything involved in planning a meal; recipe sourcing, food checking, costing, food buying and eventually cooking. If your lifestyle involves more eating out, ready meals or quick, low-prep recipes, Gousto may feel longer and more of an effort for you. Essentially you are cooking from scratch, you just get a nice leg up. You&#39;re cooking with wholesome, real, fresh ingredients so you&#39;re getting a decent, healthy meal out of it in the end.&lt;/p&gt;
&lt;figure class=&quot;w-full&quot;&gt;
  &lt;div class=&quot;flex gap-1 my-1&quot;&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-squash-dal.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-thai-curry.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-tofu-noodles.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&quot;flex gap-1 my-1&quot;&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-tofu-rice.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-lentil-balls.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
    &lt;div class=&quot;flex-1&quot;&gt;
      &lt;img src=&quot;https://samdking.co.uk/images/gousto-meal-pesto-dal.jpg?nf_resize=fit&amp;w=500&quot; class=&quot;w-full m-0&quot; /&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;figcaption class=&quot;italic text-center&quot;&gt;A selection of vibrant, exciting, nutritious meals from Gousto&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;If you&#39;re a stickler for tracking your calories and macros, you also get a full nutritional breakdown for every meal. And a lot of the meals are conveniently already in the MyFitnessPal database, if that&#39;s your bag.&lt;/p&gt;
&lt;h2&gt;How is it for vegans?&lt;/h2&gt;
&lt;p&gt;It&#39;s actually very good for vegans. You&#39;re obviously very restricted in what you can have on the menu (but you&#39;re used to that by now, amirite 😏), but the plant-based options (as its referred to on the menu) feel like much more than just a token gesture. I&#39;ve been more than impressed with the quality and flavours of the meals. The menu app is laid out really well; the meals are categorised under helpful sections like 10-minute meals, healthy choices and gluten-free. I only use the one section, but I&#39;ve always found all the vegan options to be worth a try.&lt;/p&gt;
&lt;p&gt;I touched on it earlier, but the insulated packs used to keep food cold - a technology called &lt;a href=&quot;https://www.woolcool.com/&quot;&gt;Woolcool&lt;/a&gt;, whilst made from recyclable and biodegradable materials, isn&#39;t vegan. Boycotting wool isn&#39;t something all vegans agree on - as sheering is something that can be done with no harm to the animal - but sheep, like many other animals, are susceptible to exploitation and cruelty. It obviously works pretty well, due to wool&#39;s natural insulative qualities, but I imagine - or hope - that over time they will seek alternative materials.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;If you&#39;re interested in trying Gousto, you can get &lt;a href=&quot;https://samdking.co.uk/blog/gousto-review/cook.gousto.co.uk/raf/?promo_code=SAM26032043&amp;amp;utm_source=weblink&quot;&gt;60% off your first box&lt;/a&gt; and 30% off your first month with my referral code. It&#39;s ridiculously cheap (£22.75 for 4 meals) and a month is a good amount of time to decide if it&#39;s for you (I got 2 boxes in my first month but you can have up to 4).&lt;/p&gt;
&lt;p&gt;Since trying Gousto, I&#39;ve also had an &lt;a href=&quot;https://allplants.com/&quot;&gt;allplants&lt;/a&gt; box delivered (and don&#39;t plan to stop there!). Keep your eyes on the blog for a review of that soon.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Sustainability around the home</title>
    <link href="https://samdking.co.uk/blog/sustainability-around-the-home/"/>
    <updated>2019-09-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/sustainability-around-the-home/</id>
    <content type="html">&lt;p&gt;I&#39;m a keen believer in living life around the three Rs (Recycle, Re-use, Reduce). Whilst I&#39;m far from perfect, and always looking for other optimisations I can adopt, I&#39;ve made a number of small changes at home over the past few years to be a more conscientious consumer, and human. Here are 9 things I&#39;ve adopted into my homelife, and you may be able to too.&lt;/p&gt;&lt;h2&gt;1. Recycling&lt;/h2&gt;
&lt;p&gt;This one is so plainly obvious it&#39;s hardly worth mentioning. Recycling is ubiqutious in modern society now, and for good reason. Always try to minimise landfill waste wherever you can. Whether by only buying products in recyclable packaging, or perhaps not buying the package at all (more on that later). Above all, always check your local recycling because unfortunately not all councils have the same facilities.&lt;/p&gt;
&lt;h2&gt;2. Composting&lt;/h2&gt;
&lt;p&gt;This is something I&#39;ve started fairly recently, and it&#39;s not something that  comes to mind for urban living. You&#39;ll need a compost caddy (small bin) and a larger outside composting bin, which is often heavily discounted by your local council, so be sure to check their website first.&lt;/p&gt;
&lt;p&gt;We use the Joseph Joseph Stack Food Waste Caddy (available for around £15 from places like &lt;a href=&quot;https://www.johnlewis.com/joseph-joseph-stack-food-waste-caddy-4l/p2175309&quot;&gt;John Lewis&lt;/a&gt; and &lt;a href=&quot;https://www.amazon.co.uk/Joseph-Intelligent-Waste-Stack-Filter/dp/B01BPDY092&quot;&gt;Amazon&lt;/a&gt;, complete with compostable liners. You can easily grab a caddy for much less though, or even use an old ice cream tub if you don&#39;t mind more frequent trips to the main bin. I picked up the &lt;a href=&quot;https://evengreener.com/composting/best-selling-composters/blackwall-220-litre-black-compost-converter-cv220blh&quot;&gt;Blackwall 220 litre compost bin&lt;/a&gt; for outside - but do remember to check your local council website for deals; ours only ended up costing us £10!&lt;/p&gt;
&lt;p&gt;Composting is brilliant because you can keep all the smelly stuff like food scraps and food waste, as well as any other organic matter like weeds, grass clippings, etc. out of your general waste. I was impressed to see how much less I used the main bin once I got my composter.&lt;/p&gt;
&lt;p&gt;Be sure to combine organic matter (greens) with slower-rotting materials (browns) such as newspaper, cardboard and sawdust to get the correct combination for composting. You can read more about this on &lt;a href=&quot;https://evengreener.com/composting-guide&quot;&gt;Even Greener&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;flex&quot;&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/compost-bin.jpg?nf_resize=fit&amp;w=600&quot; style=&quot;width: 50%; margin: 0 1px; align-self: center&quot; /&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/compost-caddy.jpg?nf_resize=fit&amp;w=600&quot; style=&quot;width: 50%; margin: 0 1px; align-self: center&quot; /&gt;
&lt;/div&gt;
&lt;h2&gt;3. Reducing plastic usage&lt;/h2&gt;
&lt;p&gt;Whilst it&#39;s great that a lot of plastic is made from recyclable materials and most can then be recycled again, this is not a sustainable and lasting process. By far the better solution is to not buy that plastic in the first place!.&lt;/p&gt;
&lt;p&gt;We&#39;re incredibly fortunate that a zero-waste, no-plastic store on our road opened their doors earlier this year. We&#39;ve been able to cut out plastic packing for grains, nuts, seeds, dried fruit, shampoo, washing up liquid, laundry detergent, soap and more! You&#39;ll need some glass or metal containers to keep your ingredients in, but stores like this make it incredibly easy and satisfying to top up your store cupboard without touching any plastic.&lt;/p&gt;
&lt;p&gt;This won&#39;t be a service available to everyone, I realise, but Waitrose&#39;s recent experiment of adding refillable, plastic-free products to a few select stores was a roaring success; which means we&#39;re on the way to this becoming mainstream!&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://samdking.co.uk/images/jars.jpg?nf_resize=fit&amp;w=1000&quot; alt=&quot;Jars of grains, nuts and seeds&quot; class=&quot;mb-0&quot; /&gt;
    &lt;figcaption class=&quot;text-center italic&quot;&gt;
        Jars! Credit to Charlotte for the display. The greenery is all her doing too.
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;4. Reusing plastic containers&lt;/h2&gt;
&lt;p&gt;As well as I try to reduce my plastic consumption, sometimes it&#39;s unavoidable. In these cases I always try to spot packaging with resealable seals. This is becoming quite common on products like frozen fruit and veg, and nuts. These are really useful to have around the house for alternatives to plastic bags for packed lunches, or freezer bags for leftovers.&lt;/p&gt;
&lt;h2&gt;5. Trickier recycling&lt;/h2&gt;
&lt;p&gt;Further to point 1, there are several types of cartons commonly found in supermarkets which some councils (ahem, Brighton) won&#39;t recycle as part of general household recycling. Tetrapak is the most common, and something most plant-based milk drinkers will be familiar with. Cooked beans also often come in Tetrapak containers. Brighton has separate sites around the city where Tetrapak can be dropped off; I&#39;ll do a stop every 4-6 weeks once my pile starts overflowing(!)&lt;/p&gt;
&lt;p&gt;In the past few months I&#39;ve also started recycling the catfood pouches we buy from James Wellbeloved with &lt;a href=&quot;https://www.wellbeloved.com/terracycle&quot;&gt;Terracycle&lt;/a&gt;. Taken from their website:&lt;/p&gt;
&lt;blockquote&gt;
    TerraCycle® is the world leader in the collection and reuse of non-recyclable post-consumer waste.  TerraCycle® partners with brands in 21 countries around the world to set up nationwide recycling solutions for types of waste which can’t be recycled by municipal systems so would otherwise end up in landfill/incineration.  TerraCycle®’s ultimate goal is to Eliminate the Idea of Waste® – the waste packaging / products it offers solutions for is recycled with the materials being re-purposed as new products.
&lt;/blockquote&gt;
&lt;p&gt;Suffice to say when I found out about this scheme I was thrilled, as I&#39;d been forced to throw these into general waste prior to that. I&#39;m not sure when I started saving them but Chester&#39;s amounted a fair few!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/terracycle-food-packets.jpg&quot; alt=&quot;Terracycle food packets&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Brighton has various drop-off points around the city, and this is a nationwide scheme, so if you&#39;re currently using food pouches for your pet, check it out!&lt;/p&gt;
&lt;h2&gt;6. Ethical toilet paper&lt;/h2&gt;
&lt;p&gt;It&#39;s mad how much toilet paper we use a year (apparently the average person uses 127 rolls a year, according to &lt;a href=&quot;https://www.theguardian.com/environment/2019/jul/05/toilet-paper-less-sustainable-researchers-warn&quot;&gt;The Guardian&lt;/a&gt;) so it pays to find a good brand.&lt;/p&gt;
&lt;p&gt;We&#39;ve been using &lt;a href=&quot;https://uk.whogivesacrap.org/&quot;&gt;Who Gives a Crap&lt;/a&gt; for the past year; starting off using the delivered boxes but later moving onto buying individual rolls from our local zero-waste store. Who Gives A Crap believe in environmentally friendly materials, and amazingly donate 50% of their profits to help build toilets for those in need. You can read more about their company ethos on &lt;a href=&quot;https://uk.whogivesacrap.org/pages/our-impact&quot;&gt;their website&lt;/a&gt;.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/who-gives-a-crap.jpg?nf_resize=fit&amp;w=1000&quot; style=&quot;width: 100%; max-width: 45em&quot; alt=&quot;Who gives a crap toilet roll&quot; /&gt;
&lt;p&gt;Toilets and sanitsation facilities in general are something we in developed countries take hugely for granted. I&#39;m happy to pay a little more to know a company is helping tackle this global inequality.&lt;/p&gt;
&lt;h2&gt;7. Food miles&lt;/h2&gt;
&lt;p&gt;Lately I&#39;ve tried to look out for where my food comes from a lot more. UK supermarkets are only required to put the country of origin on the label of fresh fruit and veg when they&#39;ve come from outside the EU, but Sainsbury&#39;s are fairly good at always stating this regardless of country. Ideally I&#39;ll look for fruit and veg grown in the UK, or failing that, another close by EU country. Food miles can contribute significantly to your personal carbon footprint.&lt;/p&gt;
&lt;p&gt;Buying fruit and veg from local markets or independent supermarkets usually gives a better likelihood of local produce; and this is something I need to get better at doing. &lt;a href=&quot;https://hisbe.co.uk/&quot;&gt;Hisbe&lt;/a&gt; and &lt;a href=&quot;https://infinityfoodsretail.coop/&quot;&gt;Infinite Foods&lt;/a&gt; in Brighton are great for this.&lt;/p&gt;
&lt;h2&gt;8. Animal and Earth friendly deodorant&lt;/h2&gt;
&lt;p&gt;I&#39;ve recently switched to &lt;a href=&quot;https://nuudcare.co.uk/&quot;&gt;Nuud&lt;/a&gt; deodorant after most of my life using spray-on antiperspirants. I was inspired by their ethos of all-natural, good for the environment (both in waste ingredients and packaging), 100% vegan, and healthier for the body. We as country use &lt;a href=&quot;http://www.hse.gov.uk/waste/metals.htm&quot;&gt;around 600 million aerosals each year&lt;/a&gt;, which is staggering really. I&#39;ll let Nuud do the talking, but I&#39;ve been really happy with the results after about 6 weeks of usage. They offer a sampler tube to see if it&#39;s right for you.&lt;/p&gt;
&lt;h2&gt;9. Energy supplier&lt;/h2&gt;
&lt;p&gt;This is one of those backburner tasks you&#39;re always told to keep on top of; finding the cheapest energy supplier. For us, renewable energy was a big consideration in switching. We were introduced to &lt;a href=&quot;https://octopus.energy/&quot;&gt;Octopus&lt;/a&gt; by my bank &lt;a href=&quot;https://monzo.com/&quot;&gt;Monzo&lt;/a&gt;, and they offered the whole switching in-app. After a little investigation, it seemed the perfect choice. We also got to keep our Smart meter which was a plus. Octopus put it better than I could:&lt;/p&gt;
&lt;blockquote&gt;
    The energy industry in Britain is ruled by a handful of complacent dinosaurs peddling fossil fuels, pricing trickery and poor customer service. In 2016, Octopus entered the market to disrupt the status quo with energy that&#39;s good for the planet, good for your wallet, and, honestly, good for your soul.
&lt;/blockquote&gt;
&lt;p&gt;I was sold!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;There&#39;s always room for improvement; I have many more things I want to optimise in my day-to-day routines in a bid to further cut down on waste. What seems pointless or cumbersome at first can quickly form into a habit and become second nature. In the coming weeks, I plan to write up a closer look at what I put in my general waste in the average week.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>What Vegans Eat</title>
    <link href="https://samdking.co.uk/blog/what-vegans-eat/"/>
    <updated>2019-08-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/what-vegans-eat/</id>
    <content type="html">&lt;p&gt;What I eat in a day, after an energetic start to the day and a hungry shop for ingredients. I list prices and macros for each meal, as well as tips, improvements and suggested tweaks to some online recipes.&lt;/p&gt;&lt;p&gt;Today was an active day. I&#39;ve been tracking the food I eat in terms of calories and macros consumed for most of the time I&#39;ve been vegan. I weigh in at around 10 stone and aim for 2200 calories daily (plus whatever Strava tells me I happen to have lost from working out), with the aim to slowly make my way up to 11 stone. This morning I&#39;d burned 600-odd before lunch so a feast was required.&lt;/p&gt;
&lt;p&gt;By mid-afternoon I was famished, so I decided I&#39;d head to Sainsbury&#39;s and get a snack, tonight&#39;s dinner, tomorrow&#39;s breakfast and tomorrow&#39;s lunch. Here was my haul (total: £25.76):&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://samdking.co.uk/images/sainsburys-shop.jpg&quot; alt=&quot;My Sainsbury&#39;s shop&quot; class=&quot;mb-0&quot; /&gt;
	&lt;figcaption class=&quot;text-center italic&quot;&gt;What vegans eat&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;(The hemp seeds were on offer; I didn&#39;t need them but I eat them daily so got a couple of bags. At £3 a bag it takes the total down to £19.76).&lt;/p&gt;
&lt;aside class=&quot;bg-slate-200 p-5 border-2 border-dashed border-slate-300 my-6&quot;&gt;
	&lt;strong&gt;Aside&lt;/strong&gt;: hempseeds are amazing. Seriously, they have so many amazing nutritional qualities, amongst being high in protein (2 tablespoons are over 9g) and healthy fats (omega-3 and omega-6).
&lt;/aside&gt;
&lt;h2&gt;Flavourful, high-protein dinner&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/high-protein-dinner-ingredients.jpg&quot; alt=&quot;Purchased ingredients for tonight&#39;s dinner&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Organic Black Beans - 70p&lt;/li&gt;
&lt;li&gt;Tofoo Tempeh - £2&lt;/li&gt;
&lt;li&gt;A mango - £1&lt;/li&gt;
&lt;li&gt;A red onion - 15p&lt;/li&gt;
&lt;li&gt;An avocado - 75p&lt;/li&gt;
&lt;li&gt;Mixed Chillies - 80p&lt;/li&gt;
&lt;li&gt;Sweet potato - 36p&lt;/li&gt;
&lt;li&gt;Tomatoes - 40p&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Total: £6.16&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I wanted high protein and I wanted flavour. I haven&#39;t really had tempeh much before but for some reason I decided I just wanted it. I&#39;d also been craving peanuts so fried tempeh in a satay peanut sauce seemed like the perfect combo. I used &lt;a href=&quot;https://minimalistbaker.com/5-ingredient-peanut-sauce/&quot;&gt;The Minimalist Baker&#39;s 5-ingredient peanut sauce&lt;/a&gt; recipe, which I fortunately had all the ingredients for (peanut butter, soy sauce/tamari, maple syrup and chili garlic sauce/Sriracha) in the cupboard.&lt;/p&gt;
&lt;aside class=&quot;bg-slate-200 p-5 border-2 border-dashed border-slate-300 my-6&quot;&gt;
	Tempeh is incredibly high in protein at 20g/100g. As with tofu, it doesn&#39;t really have any flavour itself, but takes flavour well. It has a nice earthy yet smooth texture.
&lt;/aside&gt;
&lt;aside class=&quot;bg-slate-200 p-5 border-2 border-dashed border-slate-300 my-6&quot;&gt;
	It&#39;s incredibly useful to have a good base store cupboard of sauces, flavourings and nut butters at your disposal. Peanut butter makes for a delicious snack on toast or with fruit, as well as being great in smoothies and sauces. Maple syrup is another that&#39;s versatile and tasty; great in sauces and drizzled on pancakes or porridge. Soy sauce/tamari, Sriracha and nutritional yeast are all staples for me too.
&lt;/aside&gt;
&lt;p&gt;For a salad I knew I wanted mango in it somewhere. After a bit of Googling I decided to riff on a few recipes. I ended up with fresh mango, black beans, avocado, red onion, spring onion, lime juice, lime zest, red chili, tomato, sweetcorn and mint. I&#39;d typically have put coriander in it but I was out and forgot to pick some up. Some mint I had left over worked really well. I&#39;d also usually have put some olive oil in here but decided to omit it; I didn&#39;t really miss it. Salads don&#39;t have to be boring!&lt;/p&gt;
&lt;p&gt;To tie it all off - a roasted sweet potato, rubbed with a tiny bit of olive oil, salt and pepper. Perfect.&lt;/p&gt;
&lt;p&gt;It was ace. Macros came in at protein 40g, fat 33g and carbs 87g.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://samdking.co.uk/images/high-protein-dinner-plate.jpg&quot; class=&quot;mb-0&quot; alt=&quot;Roasted sweet potato, peanut tempeh, corn salad, and sliced tomatoes&quot; /&gt;
	&lt;figcaption class=&quot;text-center italic&quot;&gt;
		The finished article
		&lt;a href=&quot;https://www.instagram.com/p/Bz3kkr6ns1H/&quot;&gt;(See on Instagram)&lt;/a&gt;
	&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;There was enough mango salad for 4 and enough tempeh for 2, so it will easily all do another meal.&lt;/p&gt;
&lt;h2&gt;A bold, tasty breakfast&lt;/h2&gt;
&lt;p&gt;I live off porridge or overnight oats most weekday mornings, so I like to do something different on the weekends. &lt;a href=&quot;https://www.facebook.com/tiltcoffeeshopbrighton/&quot;&gt;Tilt&lt;/a&gt;, the local cafe to us, does an amazing vegan brunch featuring a chickpea/tofu scramble (I can never remember which it is). I used to lovingly make scrambled eggs on toast in my pre-vegan days for a lazy Sunday brunch; and tofu scramble - whilst not quite the same - ticks a lot of the same boxes for me and has the bonus of people high protein (thanks soy).&lt;/p&gt;
&lt;p&gt;It&#39;s a little extra work than cracking some eggs in a saucepan, granted, but the end result is just as satisfying. Especially when paired with an avocado and roasted tomato.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/scrambled-tofu-ingredients.jpg&quot; alt=&quot;Breakfast ingredients&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Charlotte potatoes - £1.10&lt;/li&gt;
&lt;li&gt;Garlic powder - £1.00&lt;/li&gt;
&lt;li&gt;Tofoo Tofu - £2.50&lt;/li&gt;
&lt;li&gt;Avocado - 75p&lt;/li&gt;
&lt;li&gt;Soya milk - £1.50&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Total: £6.85&lt;/strong&gt; &lt;em&gt;(Already had soya milk so didn&#39;t open this, used a smidge of garlic powder and didn&#39;t end up cooking the potatoes at all. So the price isn&#39;t really representative here.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I used &lt;em&gt;Loving it Vegan&lt;/em&gt;&#39;s &amp;quot;&lt;a href=&quot;https://lovingitvegan.com/vegan-tofu-scramble/&quot;&gt;Super eggy vegan tofu scramble&lt;/a&gt;&amp;quot;. And although mine lacked the &amp;quot;super eggy&amp;quot; secret element that is the &amp;quot;Kala Namak&amp;quot; black salt, it was a satisfying and filling weekend brunch. It could&#39;ve done with a sauce of some kind. To the ingredients I bought yesterday, I added vegan spread, nutritional yeast, turmeric, paprika, mustard, onion powder and soy milk.&lt;/p&gt;
&lt;p&gt;I halved the recipe and had a big portion. 280g of tofu would easily have served 3 people, so this could&#39;ve gone much further. I served it on granary toast with fried tomatoes and half an avocado.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://samdking.co.uk/images/scrambled-tofu-plate.jpg&quot; class=&quot;mb-0&quot; alt=&quot;Scrambled tofu, toast, grilled tomatoes &amp; sliced avocado&quot; /&gt;
	&lt;figcaption class=&quot;text-center italic&quot;&gt;Breakfast is served&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This was one clocked in at an impressive 32g protein, largely contributed by the tofu. Carbs were 52g and fat a high 32g.&lt;/p&gt;
&lt;h2&gt;A fishy lunch&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/tuna-sandwich-ingredients.jpg&quot; alt=&quot;Lunch ingredients&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Itsu Seaweed thins - £1.50&lt;/li&gt;
&lt;li&gt;Napolina Chickpeas - 90p&lt;/li&gt;
&lt;li&gt;Spring onions - 50p&lt;/li&gt;
&lt;li&gt;Tomato - 18p&lt;/li&gt;
&lt;li&gt;Red onion - 15p&lt;/li&gt;
&lt;li&gt;Hovis Seed Sensations - £1.50&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Total: £4.73&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To the list I added the fridge and store cupboard items vegan mayo, soy sauce, capers, nutritional yeast and some just-ok lettuce from the bottom of the fridge.&lt;/p&gt;
&lt;p&gt;A tuna mayo sandwich is something I used to enjoy in my pre-vegan days. This recipe from &lt;a href=&quot;https://veggiedesserts.co.uk/vegan-tuna-mayo-sandwich/&quot;&gt;Veggie Desserts&lt;/a&gt; (I guess they diversified) did not disappoint. It&#39;s amazing how the capers and nori can trick your brain that it&#39;s a fishy flavour. The soy sauce really lifts it too. The amount of mayo this recipe calls for doesn&#39;t make it exactly healthy (I&#39;d definitely put in a bit less next time), but it&#39;s better than most sandwiches you&#39;ll find in a supermarket.&lt;/p&gt;
&lt;p&gt;I only needed a few of the nori sheets, but my wife will make light work of the rest. The total amount will make around 3 decent sized sandwiches.&lt;/p&gt;
&lt;aside class=&quot;bg-slate-200 p-5 border-2 border-dashed border-slate-300 my-6&quot;&gt;
	Seaweed (nori) is a great source of iodine and calcium and a great vegan alternative source to dairy and fish. In addition to their use in this sandwich, they&#39;re a key ingredient in sushi and also make a great snack on their own.
&lt;/aside&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/tuna-sandwich-plate.jpg&quot; alt=&quot;Lunch sandwich complete&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So there we have it; a day of eating. I don&#39;t normally cook all my meals from scratch like this but I love when I have the time to do it. £20 for essentially a day&#39;s food is pricey, but when you factor in for the week ahead I now have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;half a block of tofu&lt;/li&gt;
&lt;li&gt;most of a loaf of breaf&lt;/li&gt;
&lt;li&gt;a bag of new potatoes&lt;/li&gt;
&lt;li&gt;a whole lotta hemp seeds&lt;/li&gt;
&lt;li&gt;crisps to snack on&lt;/li&gt;
&lt;li&gt;seaweed&lt;/li&gt;
&lt;li&gt;a litre of soy milk&lt;/li&gt;
&lt;li&gt;more garlic powder than I know what to do with&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&#39;s probably about fair. Happy vegan eating!&lt;/p&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.healthline.com/nutrition/6-health-benefits-of-hemp-seeds&quot;&gt;https://www.healthline.com/nutrition/6-health-benefits-of-hemp-seeds&lt;/a&gt;
&lt;a href=&quot;https://vegetarian.lovetoknow.com/Seaweed_Nori_Nutrition&quot;&gt;https://vegetarian.lovetoknow.com/Seaweed_Nori_Nutrition&lt;/a&gt;&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Vegetarianism: my account</title>
    <link href="https://samdking.co.uk/blog/vegetarianism-my-account/"/>
    <updated>2016-09-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/vegetarianism-my-account/</id>
    <content type="html">&lt;p&gt;Today marks 1 year of being vegetarian. &quot;What&#39;s the plan now?&quot; I&#39;ve asked myself for, well, about 11 months. A year of not eating meat was never a goal from the outset; I rather unceremoniously slid into it after watching the eye-opening &lt;a href=&quot;http://www.cowspiracy.com/&quot; target=&quot;_blank&quot;&gt;Cowspiracy documentary&lt;/a&gt;. I was raised and have always been surrounded by meat-eaters, and up until a little over a year ago, I hadn&#39;t even entertained an alternative lifestyle.&lt;/p&gt;
&lt;p&gt;That&#39;s the key point for me. Being vegetarian is a lifestyle change. (NB: this post isn&#39;t about veganism, which I respect as being wholeheartedly more of a commitment than vegetarianism. More on that later.)&lt;/p&gt;

&lt;p&gt;I certainly did not realise how ingrained the notion of consuming meat, fish (and dairy, etc.) was to me. It was just the norm; it&#39;s what humans ate. I was perfectly content going about my life unaware really of the hypocrisy of considering myself an &quot;animal lover&quot; whilst simultaneously eating them. A year of avoiding meat and fish has been eye-opening to what we put into our bodies without a second thought.&lt;/p&gt;

&lt;p&gt;An observation that has intrigued me especially earlier on in the year gone, is the notion that vegetarians (and particularly vegans) will go out of their way to convert you to their way of thinking. Chewing your ear off of the sins of eating meat. My experiences have been on the contrary; it is meat eaters who have vehemently attempted to make me see the error of my ways and to come back to the light, as it were.&lt;/p&gt;

&lt;p&gt;Being vegetarian has opened my eyes to a world of food I never really gave much thought to. A plethora of herbs and spices, vegetables, beans, seeds, pulses, nuts. This is good stuff for humans and good stuff for the planet. And it tastes great. And for the most part it&#39;s not expensive. I wasn&#39;t overweight or unhealthy a year ago as a meat eater, so it&#39;s hard to draw any comparisons between then and now. But I&#39;m confident that this past year&#39;s eating experiment has changed me, physically and mentally, for the better. I&#39;m fortunate dieting is not something I&#39;ve ever felt the need to take up, but I would recommend a vegetarian diet to anyone wanting to lose weight. You have to try much harder to be an unhealthy vegetarian than you do consuming meat.&lt;/p&gt;

&lt;p&gt;Peering in from the outside, I&#39;ve grown to hate a lot about the meat industry. I hate the lie we&#39;re fed daily through advertising at every turn. I hate that meat is so cheap and so frivolously served up for every meal. I hate that capitalism means no one wants to see or change the irrefutable unsustainability of our food habits. Not to mention the disastrous effect it has on our world. This is the crux of Cowspiracy; we simply cannot sustain our habits we&#39;ve grown so accustomed to.&lt;/p&gt;

&lt;p&gt;But there&#39;s no denying to myself, I miss meat. I&#39;ve heard some accounts from past-meat eaters that the desire to eat meat diminishes over time. Not so with me. I only have to in the vicinity of meat and I get cravings. Missing out at restaurants is a big one. We&#39;re not talking fighting off a heroin addiction, it&#39;s easy enough to breeze past the multitudes of meat options and take your pick from the smaller selection available. But I can&#39;t help that feeling of missing out. Especially as someone who takes joy in the many pleasures of eating.&lt;/p&gt;

&lt;p&gt;Home cooking is much less of a hardship. Meals take a little more forethought and generally a tad longer to execute, but weekly food shops are, not considerably, but noticeably cheaper. And there&#39;s no temptation at home. Sure there&#39;s less quick and dirty meals at your disposal, but it&#39;s easy to make the argument this is a good thing in the long run. I still miss cooking a roast, or frying up a full English after a night on the sauce, but any cravings pass once hunger is at bay (it&#39;s the devil).&lt;/p&gt;

&lt;p&gt;I suppose I&#39;ve gotten used to being very easy-going with food as an adult. I enjoy eating food and it&#39;s easy to graciously accept anything put in front of you. I like most foods, I&#39;m open to trying new things, and have no known allergies. Being vegetarian changes that. It cuts out a lot. You have to start planning trips and activities around your new lifestyle. This is not fun. Part of who I am is being easy-going, spontaneous and my adaptability to change.&lt;/p&gt;

&lt;p&gt;And so, it&#39;s after 365 days off the stuff, I&#39;ve pretty much decided cold, hard vegetarianism is not for me. Ultimately I&#39;m not strong enough nor dedicated to the cause to fight this. If I was, I&#39;d honestly have no excuse not to go the whole hog and become vegan. Vegetarian, whilst enlightening and valuable for numerous reasons, has been a half measure to truly sustainable eating which I ultimately don&#39;t see myself committing to for the rest of my life.&lt;/p&gt;

&lt;p&gt;Maybe the futility has dawned on me over time. We&#39;re not going to figure out how to sustainably provide for the World&#39;s growing population by individual minorities ceasing to consume meat and fish. Being vegetarian/vegan is a statement, yes, but ultimately it&#39;s a collective responsibility to simply eat less that&#39;s going to make the greater difference. And one day, with more accessible and attractive alternatives, perhaps humanity can stop altogether. Emptying the oceans, destroying our natural habitat and continuing the often cruel breeding-to-eat cycle can&#39;t be our legacy on this planet.&lt;/p&gt;

&lt;p&gt;The V word is a dirty word, still. And frequently spoke of in a derisory sense. People do not like to have their rights taken away. This is fair enough. But I don&#39;t believe total abstinence is the way forward. Sell the idea of smart and responsible consumption of these foods instead. This year has changed my perspective for good. I feel like I get it now; I am committed to eating more sustainably. But I will still enjoy the veritable array of food we&#39;re lucky enough to enjoy. And it will taste all the better now.&lt;/p&gt;

&lt;p&gt;Eating meat and fish was once considered a luxury. But we now live in a world where struggling families are encouraged (through pricing and advertising) to eat budget, poor-quality meat over fresh, healthier, plant-based produce.&lt;/p&gt;

&lt;p&gt;Being vegetarian is a social, nutritional and ethical journey I would encourage everyone to go on.&lt;/p&gt;

&lt;p&gt;Full disclosure; there have been a few exceptions/discoveries over the year:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sweets - I have a bit of a penchant for the things. Occasionally I will still indulge in some of that gelatin fun. Also: the odd marshmallow&lt;/li&gt;
&lt;li&gt;Prawn crackers - yeh, I know I shouldn&#39;t, but I&#39;ve definitely nabbed a few of these during a chinese takeaway&lt;/li&gt;
&lt;li&gt;Beer/wine - earlier on I had no idea so much was unsuitable for veggies, due to the production processes. But this stuff is hard to avoid, especially when inebriated&lt;/li&gt;
&lt;li&gt;Cheese - as above&lt;/li&gt;
&lt;/ul&gt;

    </content>
  </entry>
  
  <entry>
    <title>Package Development in PHP &amp; Laravel</title>
    <link href="https://samdking.co.uk/blog/package-development-in-php-laravel/"/>
    <updated>2014-11-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/package-development-in-php-laravel/</id>
    <content type="html">&lt;p&gt;Packages are great. For PHP, Composer has made modularising your code and managing dependencies within your app easy peasy.

The topic of this blog post, however, is about what exactly constitutes a package, and where things do and don&#39;t belong. I will be talking in the context of the Laravel, as this is what we use at work, but these points should be roughly relatable to any modern framework that utilises Composer.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;http://bozboz.co.uk/&quot;&gt;Bozboz&lt;/a&gt;, we build websites for clients; we&#39;re a web agency. The websites we build naturally range in size and function, but essentially, they are all similar. All websites boil down to fundamental parts. Frameworks themselves exist as a means of reducing repetitive tasks required within the building of an application.&lt;/p&gt;

&lt;p&gt;Within the context of a typical client&#39;s website, for example, there are familiar elements which are likely to crop up more than once. To name but a few; a CMS, a blog, e-commerce/payment, form processing, etc. Before I go any further, I should point out there are 2 schools of thought I want to go into, so please bear with me whilst I explain them both first.&lt;/p&gt;

&lt;p&gt;Mindset #1: Every website is unique. Even considering websites share common functionality, from one client to the next, they - and their customers - consider their website to be standalone. And in a sense, it is. It has its own domain name, its own physical space on the World Wide Web, its own identity.&lt;/p&gt;

&lt;p&gt;If two websites, being built concurrently or otherwise, happen to share the same functionality. To all intents and purposes, this is a coincidence. They may start off the same, but a few years down the line, there&#39;s every likelihood these two features may end up functioning in completely different ways.&lt;/p&gt;

&lt;p&gt;There&#39;s no inherent between features on 2 sites, other than the fact they may look and behave in the same or similar ways.&lt;/p&gt;

&lt;p&gt;Mindset #2: The majority of a website is built up of reusable, shared packages. Some websites we build do contain considerable bespoke, unique, one-off functionality, but this mindset assumes these cases are the exception, not the rule.&lt;/p&gt;

&lt;p&gt;Everything built into a website should be considered, and possibly even imagined and designed, as a standalone component. Anything could be reused on another website.&lt;/p&gt;

&lt;p&gt;This is an attractive concept, especially for managers. The idea a website can be &quot;constructed&quot; using familiar, reusable components.&lt;/p&gt;

&lt;p&gt;-----&lt;/p&gt;

&lt;p&gt;Mindset #1 is the simpler of the two tacts, so I&#39;ll start with that. I should point out, this is by no means a  no-package-manager approach. As I made abundantly clear at the start, I believe package managers are here to stay. God knows we&#39;ve all been in dependency hell at some point, trying to download a fresh copy of a new library; copy and pasting the new library version over the old one and hoping for the best.&lt;/p&gt;

&lt;p&gt;What this method advocated is that all parts of the app itself - basically anything but the framework and library/component functionality (Router, Mail, Curl, Auth, Image Manipulation, etc.) - belong in the app, not a package. In the case of a Laravel app, this would include routes, filters, controllers, composers, views, configuration, assets, the list goes on.&lt;/p&gt;

&lt;p&gt;While this seems like a fairly logical code-split between apps and packages, what happens to the code shared across projects? It gets duplicated; plain a simple. As soon as it becomes part of an app, it is &lt;em&gt;the app&lt;/em&gt;. it is no longer a versioned, stand-alone package. For example, lets say you&#39;ve built a kickass blog for a site and a manager asks you to re-skin and include on an upcoming site, you&#39;re bang out of luck. You&#39;re looking at a copy and paste job at best. These two virtually identical blogs must now be managed entirely individually.&lt;/p&gt;

&lt;p&gt;Which is where mindset #2 comes along. This approach attempts to target the common issue above. Essentially; &quot;We&#39;re using this admin interface in most of our sites, let&#39;s package it up and just install it via Composer on sites that need it!&quot; Perfect. We&#39;re utilising the same package manager we installed the framework with, to install the various common parts of an app. Simple!&lt;/p&gt;

&lt;p&gt;Not so fast. By representing parts of an app as packages, we are delegating the intellectual property (if you like) of a particular feature of the website to that package. This is fine in the case of a Curl package. In this case, we don&#39;t care how a request is made, we just care about the end result, which (in the lifetime of the package) will always be reliably consistent. We are &lt;em&gt;relying&lt;/em&gt; on the very tip of the package&#39;s functionality. The public API a Curl package offers is relatively very small.&lt;/p&gt;

&lt;p&gt;If we rely on a blog package to form part of the app, we are passing over the responsibility of rendering a blog almost exclusively to the package. From the appearance of the listing pages, to the URLs used, to the structure of a blog post; almost everything about a blog package is public to the app that uses it. If one thing changes, the app would likely need to be very aware of it.&lt;/p&gt;

&lt;p&gt;Now, I admit, I am being rather black and white in this instance. You might argue Laravel offers the ability to override views and publish (and modify) a package&#39;s assets, migrations and configuration. And you&#39;d be right. But in my experience, this is offering a bandaid to a potential deep wound of a problem. Extending classes using the IoC container is an option, but not an elegant one. Routes cannot be deferred, or modified within the app without a clever but convoluted use of events. Packages, and the way they are situated in the context of an app, just don&#39;t seem to be designed to work in this manner.&lt;/p&gt;

&lt;p&gt;Quickly, you see, what started as a solution to the problem of duplication has instead become a problem in itself. We&#39;ve investigated various half-way approaches, notably keeping the business logic (in old skool terms, the models) organised in a versioned, installable package, and the app stuff (controllers, views, etc.) confined to the installing app. This approach gives greater flexibility of behalf of the app, but you&#39;re losing the quick install and cross-site porting of packages. Not to mention the line between core-package logic and app-logic is a blurry one at times.&lt;/p&gt;

&lt;p&gt;In a way, it&#39;s not even so much a technical issue to overcome as it is a question of logic and philosophy even. If one site copies functionality belonging to another site, is this functionality now common and consistent to both sites, and will it continue to be in both app&#39;s lifetimes? Or is it now a unique (yet similar) instance, since being taken from its original context?&lt;/p&gt;

&lt;p&gt;And, really, this is the constant development conundrum see-saw at Bozboz, since we opted for greater modularisation and Composer. What&#39;s the answer?&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>101 things in 1001 days - the results</title>
    <link href="https://samdking.co.uk/blog/101-things-in-1001-days-the-results/"/>
    <updated>2014-09-07T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/101-things-in-1001-days-the-results/</id>
    <content type="html">&lt;p&gt;Almost 3 years ago, I started my &quot;Day Zero&quot; challenge, or as knew it as, the &quot;101 things in 1001 days&quot; challenge.

I hadn&#39;t realised, but 1001 days was up over 70 days ago, and I finished on the grand total of 33 tasks complete. Not quite a third of the list.&lt;/p&gt;
&lt;p&gt;Reviewing some of these challenges I&#39;d set myself, it made me realise how much I&#39;ve changed in that time. And how your priorities in life are constantly evolving.&lt;/p&gt;

&lt;p&gt;So although I failed the challenge pretty miserably, I might as well learn something from it. So, with that in mind, here is my review of the challenge (started 28th September 2011).&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;1) Run a marathon - COMPLETED 15/04/12. I&#39;d already signed up when I started this list, but I&#39;d barely started training so confidence was low. Definitely the proudest of my accomplishments on this list.&lt;/li&gt;

&lt;li&gt;2) Eat vegetarian for a week - COMPLETED 12/08/12. This was a bit of a silly one, but the aim was less not eating meat for a week, and more to simply make me  consider other options. My eyes have definitely been opened to this over the past few years, and if I was a bit stronger willed, I&#39;d probably have given up meat for good by now.&lt;/li&gt;

&lt;li&gt;3) Skydive - INCOMPLETE. This one was always optimistic. Truth be-told, this challenge never gained any traction and remained a distant idea. One day.&lt;/li&gt;

&lt;li&gt;4) Visit 5 countries - INCOMPLETE (3/5; Amsterdam, Canada, Belgium). I&#39;m a little disappointed I never completed this one. With a bit more effort I could&#39;ve easily ticked off a couple more. The three I did visit were excellent trips though.&lt;/li&gt;

&lt;li&gt;5) Get a tattoo - INCOMPLETE. Maybe one day. Maybe. Bottled this one, really.&lt;/li&gt;

&lt;li&gt;6) Earn over £******/YEAR - COMPLETED 01/07/2014. A third pay-rise in this period finally allowed me to hit my planned salary at this point in time. Happy to have achieved this.&lt;/li&gt;

&lt;li&gt;7) Re-watch every episode of Friends - INCOMPLETE. I do miss Friends, and I will likely do this at some point, but I just never got round to this.&lt;/li&gt;

&lt;li&gt;8) Rewatch every episode of Lost - COMPLETED 01/07/13. Now this I did watch. I&#39;d never actually seen the last few episodes of the last season, but I decided to start from scratch and re-watch all 6. It was a fun trip down memory lane, but a disappointing ending to an otherwise exciting show.&lt;/li&gt;

&lt;li&gt;9) Star Wars Marathon - INCOMPLETE. Really disappointed I never got round to doing this. And I put off watching any of the films during this challenge with the sole purpose of completing this one. But allas, life.&lt;/li&gt;

&lt;li&gt;10) Put a $100 bet on red or black in Vegas - INCOMPLETE. I&#39;m not sure where the motivation for this one came from. But it didn&#39;t happen. Not ruling out it happening in the future though.&lt;/li&gt;

&lt;li&gt;11) Learn a Language - INCOMPLETE - Gutted I never did this one. Lots of opportunities but just never committed to a proper learning schedule. One day.&lt;/li&gt;

&lt;li&gt;12) Road trip across the US/Canada - COMPLETED 26/09/12. This was part of a memorable trip to Canada to see friends. Roadtripping under your own steam really is the most freedom you can experience on a holiday. Would recommend it to everyone.&lt;/li&gt;

&lt;li&gt;13) Be in a band - INCOMPLETE. This one never materialised. I&#39;m still into playing music, but not as much, and truthfully, I never pursued this with any great vigour. &lt;/li&gt;

&lt;li&gt;14) Learn how to dive - INCOMPLETE. No excuses with this one.&lt;/li&gt;

&lt;li&gt;15) Swim a mile - INCOMPLETE. Another regret, that I never got my stamina back in the pool. I&#39;d like to become a more confident swimmer, but I guess I just keep putting it off.&lt;/li&gt;

&lt;li&gt;16) Take a huge canvas worthy photograph - INCOMPLETE. Photography is another hobby that has dwindled in the last few years. I&#39;ve upgraded my camera since the start of the challenge though, and intend to keep this going.&lt;/li&gt;

&lt;li&gt;17) Watch a live sporting event in a foreign country  INCOMPLETE. Disappointed I haven&#39;t been able to do this yet, but definitely see this happening in the near future.&lt;/li&gt;

&lt;li&gt;18) Watch Chelsea at Stamford Bridge - COMPLETED 29/11/11. This one&#39;s done and then some. Since I started the challenge, Chelsea has become a much bigger part of my life. Since starting this, I&#39;ve been to 20 games with Chelsea, across the UK.&lt;/li&gt;

&lt;li&gt;19) Read and watch all of Harry Potter - INCOMPLETE (7/15) This was part of an initiative to get me reading more. I&#39;d never read/watched Harry Potter before this challenge, and I can at least now say I&#39;ve seen the films. The books, one day I&#39;ll read.&lt;/li&gt;

&lt;li&gt;20) Learn to down a pint of beer - INCOMPLETE. Silly, but I can&#39;t believe I never seized an opportunity to do this over the last 3 years. The folly of youth, eh?&lt;/li&gt;

&lt;li&gt;21) Learn to shotgun a can of beer - INCOMPLETE. See above.&lt;/li&gt;

&lt;li&gt;22) Score a goal in an 11-a-side match - COMPLETED 19/08/12. I&#39;ve had the opportunity to play in an 11-a-side game a handful of times during the challenge. On one of them, I scored. I hope it won&#39;t be my last.&lt;/li&gt;

&lt;li&gt;23) Stay in a hostel - INCOMPLETE. If it&#39;d been abroad more (see #4), this probably would&#39;ve become a reality. This will likely still happen at some point.&lt;/li&gt;

&lt;li&gt;24) See The Strokes live - INCOMPLETE. Disappointed with this one. Chances to see The Strokes have been few and far between the last few years. This is definitely a &quot;before I die&quot; task to complete.&lt;/li&gt;

&lt;li&gt;25) Own my own pet - INCOMPLETE. Living in a flat, I&#39;ve made the decision to wait on this one. Now that we&#39;ve bought a house though, I&#39;m hoping this will become a reality very soon.&lt;/li&gt;

&lt;li&gt;26) Attend a convention - INCOMPLETE. One day.&lt;/li&gt;

&lt;li&gt;27) Own a valve amp, play it live - INCOMPLETE. As with #13, this part of my life has dwindled somewhat. I&#39;d still love to own a valve amp and perform with it.&lt;/li&gt;

&lt;li&gt;28) Own a Fender Guitar - INCOMPLETE. As above. Still got my trusty Gibson Les Paul Studio, although it mainly gathers dust in its case these days.&lt;/li&gt;

&lt;li&gt;29) Learn how to ski/snowboard - INCOMPLETE. I did spend a hungover afternoon after my 26th Birthday in Wycombe Snowdome. But to say I&#39;d learnt how to ski would be pushing it. Learnt how to fall over, a lot. Would still love to do a skiing holiday abroad, but Charlotte is less enthusiastic.&lt;/li&gt;

&lt;li&gt;30) Play in a football tournament - INCOMPLETE. Shocking I never pushed this one through, plenty of opportunities to do this.&lt;/li&gt;

&lt;li&gt;31) Bowl a score of 101 - COMPLETED 09/06/12. This one was pretty easy.&lt;/li&gt;

&lt;li&gt;32) Ride a sleeper train - INCOMPLETE. I&#39;d still love to do this.&lt;/li&gt;

&lt;li&gt;33) Watch every James Bond film chronologically - INCOMPLETE. I&#39;ve watched a fair few of these during the challenge, but never the whole set.&lt;/li&gt;

&lt;li&gt;34) Learn the phonetic alphabet - COMPLETED 01/02/13. This was a fun one actually, and I can now say I&#39;ve learnt it.&lt;/li&gt;

&lt;li&gt;35) Join Twitter / Tweet Regularly - COMPLETED 30/10/11. Hard to imagine a world without Twitter now!&lt;/li&gt;

&lt;li&gt;36) Ceiling-high DVD collection (approx. 150 DVDs) - INCOMPLETE. This challenge has trailed off in momentum somewhat, although I must be nearing ~100 by now.&lt;/li&gt;

&lt;li&gt;37) Make a memorable speech / talk - INCOMPLETE. One day, I promise.&lt;/li&gt;

&lt;li&gt;38) Learn to Juggle - COMPLETED 08/05/14. Proud of this achievement.&lt;/li&gt;

&lt;li&gt;39) Ride the New York subway - INCOMPLETE. Unfortunately we didn&#39;t return to New York during this period. We definitely want to go back and do all the things we missed out the first time though.&lt;/li&gt;

&lt;li&gt;40) Eat 5 new foods - COMPLETED 14/03/13 -  1) Seabass 2) Blue cheese 3) Asparagus 4) Crab 5) Anchovies&lt;/li&gt;

&lt;li&gt;41) See 25 live gigs - INCOMPLETE (14/25). Although incomplete, 14 gigs is not bad. As with other tasks, the enthusiasm for this has dwindled since the start of the challenge. Replaced, from a time and financial viewpoint, by football match-going. &lt;/li&gt;

&lt;li&gt;42) Write a song - INCOMPLETE. What can I say? I probably should&#39;ve found time for this.&lt;/li&gt;

&lt;li&gt;43) 50 press-ups in a row - INCOMPLETE. No excuses.&lt;/li&gt;

&lt;li&gt;44) Make friends in a foreign country - INCOMPLETE.&lt;/li&gt;

&lt;li&gt;45) Win a game of Poker - INCOMPLETE. &lt;/li&gt;

&lt;li&gt;46) Host a poker night - INCOMPLETE. I tried to get this going a couple of times, but the occasion never materialised. Planning one currently at work.&lt;/li&gt;

&lt;li&gt;47) Canoe/kayak - COMPLETED 24/10/12. Did this on the serene, transparent Lake Louise in Alberta, Canada.&lt;/li&gt;

&lt;li&gt;48) Swim in the sea - INCOMPLETE. Plenty of opportunities. Need to get over this semi-fear soon.&lt;/li&gt;

&lt;li&gt;49) Learn to rollerblade/skate - INCOMPLETE. This one was easy, no excuses here.&lt;/li&gt;

&lt;li&gt;50) Join LinkedIn - INCOMPLETE. Shortly after making the decision to join LinkedIn, it got a lot of bad press and, to be honest, I had no real inclination to join in the first place. Seems only useful in more corporate careers.&lt;/li&gt;

&lt;li&gt;51) Buy a wide-angle or fisheye lens - INCOMPLETE. As I mentioned earlier, my photography hobby has definitely become less intense. I&#39;d still really like a wide-angle lens, but this probably more of a long-term wishlist item than something I would put to good use at the moment.&lt;/li&gt;

&lt;li&gt;52) Have an alcohol free month - COMPLETED 01/02/12. Done. It was what it was. Haven&#39;t repeated; I do enjoy a drink.&lt;/li&gt;

&lt;li&gt;53) Have afternoon tea at the Ritz - INCOMPLETE. I do owe Charlotte an anniversary gift of afternoon tea somewhere fancy, but house-buying got in the way this past year.&lt;/li&gt;

&lt;li&gt;54) Go one day without using my phone - INCOMPLETE. Shocking I never completed this really. I even put my phone through the washing machine recently, and was still back on my old one the same day.&lt;/li&gt;

&lt;li&gt;55) Visit 5 different museums - INCOMPLETE (1/5). I should probably visit more museums.&lt;/li&gt;

&lt;li&gt;56) Make a short film - INCOMPLETE. Had a few ideas for this, but have never really found the time and creativity.&lt;/li&gt;

&lt;li&gt;57) Put the equivalent of £100 a month into a savings account - COMPLETED 20/10/12. I picked up my regular saving after I began this challenge, and reached my target pretty early on. Regular saving is what started the idea of buying a house. You really should do it if you don&#39;t already.&lt;/li&gt;

&lt;li&gt;58) Go to a music festival - INCOMPLETE. This really is something I should&#39;ve done. One year I&#39;ll do Glastonbury. I promise.&lt;/li&gt;

&lt;li&gt;59) Watch 100 of IMDB&#39;s Top 250 movies list - INCOMPLETE (~40). Although incomplete, this task did make me watch movies I probably otherwise wouldn&#39;t have; so it&#39;s been a worthwhile challenge.&lt;/li&gt;

&lt;li&gt;60) Bungee jump - COMPLETED 22/07/12. Done!&lt;/li&gt;

&lt;li&gt;61) Be able to recall all 50 states - COMPLETED 08/12/11. A silly, rather unpatriotic game I got pretty good at. I enjoy memory games, it&#39;s like a workout for your brain.&lt;/li&gt;

&lt;li&gt;62) Go scuba diving - INCOMPLETE. One day.&lt;/li&gt;

&lt;li&gt;63) Give blood - INCOMPLETE. I feel really bad I never got this one done. Definite planning went into this a couple of times at work, but I was never organised enough to follow through. No brainer; give blood.&lt;/li&gt;

&lt;li&gt;64) Dual-monitor setup at home - INCOMPLETE. Bit of a superficial one here. My working at home lessened since I wrote this task so I haven&#39;t really had the need for a second monitor.&lt;/li&gt;

&lt;li&gt;65) Photograph a private event - INCOMPLETE. This went the same way as my other photography tasks unfortunately.&lt;/li&gt;

&lt;li&gt;66) Ride a hot air balloon - INCOMPLETE. I probably should&#39;ve done this by now. It&#39;s something I&#39;ve always wanted to do.&lt;/li&gt;

&lt;li&gt;67) Learn to surf - INCOMPLETE. I really should learn to surf.&lt;/li&gt;

&lt;li&gt;68) Earn over £1000 freelancing - INCOMPLETE. I set myself this task to give myself some experience on the &quot;other side of the fence&quot;, if you like. I know people who have made the switch to freelancing so I thought I&#39;d try a bit. In reality, I dabbled sporadically with a couple of things, but it never kicked off. Maybe one day.&lt;/li&gt;

&lt;li&gt;69) Try 10 new restaurants - COMPLETED 21/12/12. I really should&#39;ve wrote these down. This was pretty easy to achieve, I love going to new restaurants, and eating out in general really.&lt;/li&gt;

&lt;li&gt;70) Go zorbing - INCOMPLETE. Still on the to-do list!&lt;/li&gt;

&lt;li&gt;71) Go go-karting - COMPLETED 12/04/12. Twice. I came first and second. Must do this again some time, it&#39;s a lot of fun and plays right into my competitive side.&lt;/li&gt;

&lt;li&gt;72) Take a really good sunset photograph - INCOMPLETE. Hmm, I was really into photography 3 years ago.&lt;/li&gt;

&lt;li&gt;73) Host a house party - INCOMPLETE. Surprised I haven&#39;t done this actually.&lt;/li&gt;

&lt;li&gt;74) Influence someone else to do 101 things in 1001 days - COMPLETED 10/11/11.&lt;/li&gt;

&lt;li&gt;75) Save all loose change in a jar - COMPLETED.&lt;/li&gt;

&lt;li&gt;76) No internet for a weekend - COMPLETED 24/10/12. Achieved during our RV trek across Canada, where Internet signal was at a premium.&lt;/li&gt;

&lt;li&gt;77) Bake someone a Birthday cake - COMPLETED 14/11/12. Charlotte, the lucky recipient, a couple of Birthdays ago.&lt;/li&gt;

&lt;li&gt;78) Host a dinner party - COMPLETED 20/12/13. I put on a Christmas dinner party last year. It was a success&lt;/li&gt;

&lt;li&gt;79) Go rock-climbing outside - INCOMPLETE. Although I did an indoor one in Milton Keynes, and a tiny outside one (possibly meant for kids) in Kent.&lt;/li&gt;

&lt;li&gt;80) Go fancy dress as Doctor Who - INCOMPLETE. I did have a pretty killer Doctor Who (Matt Smith) outfit, but amazingly I don&#39;t think I&#39;ve been to a fancy dress party since I started this challenge.&lt;/li&gt;

&lt;li&gt;81) Take a fortnight&#39;s holiday from work - COMPLETED 17/12/11. Extended breaks from work are welcomed and healthy in my book. This was a long Christmas break I think.&lt;/li&gt;

&lt;li&gt;82) Get up before 6am at least 5 times - INCOMPLETE (~4/5). I&#39;m not a morning person. Like, at all. Definitely managed this a few times, but the fifth eluded me.&lt;/li&gt;

&lt;li&gt;83) Climb a tree - INCOMPLETE. Oh dear. How did I not achieve this?&lt;/li&gt;

&lt;li&gt;84) Visit a water park - INCOMPLETE. Center Parcs was the closest I got to this.&lt;/li&gt;

&lt;li&gt;85) Redesign/recode samueldking.co.uk - INCOMPLETE. If this was needed 3 years ago, it definitely is needed now. Many failed attempts later, and I&#39;m still staring at the original 2009 design. I was 21 in that picture. Truthfully, my day job&#39;s got more-and-more programmatic and less and less about design over the last few years. I rarely flex my rather limited design acumen much any more. &lt;/li&gt;

&lt;li&gt;86) Have a dental checkup - INCOMPLETE. Charlotte&#39;s given me hell for this one. I *think* I may have a slight phobia of the Dentists. But this is normal, right?&lt;/li&gt;

&lt;li&gt;87) Throw out any clothes I no longer wear - COMPLETED 10/07/14. This was long overdue, and felt good.&lt;/li&gt;

&lt;li&gt;88) Celebrate my 25th Birthday in style - COMPLETED 02/02/13. I had no idea what I intended by &quot;in style&quot;, but Charlotte&#39;s surprise Birthday party fit the bill. Man, was that a shock.&lt;/li&gt;

&lt;li&gt;89) Stay in a fancy hotel - COMPLETED 25/10/12. Thanks to Will (previously contracting at Sony), we got a cheap rate at the Four Seasons in Vancouver. It was pretty swanky.&lt;/li&gt;

&lt;li&gt;90) Have my Les Paul cleaned/setup properly - INCOMPLETE. Man, I&#39;m lazy.&lt;/li&gt;

&lt;li&gt;91) Sleep in a hammock - INCOMPLETE. Never did this. Would still like to.&lt;/li&gt;

&lt;li&gt;92) Take a trip on my own - INCOMPLETE. Okay, this is scary. Humans aren&#39;t designed to be by themselves. Closest I got to this was the away end at Manchester City on my own. We lost 2-1.&lt;/li&gt;

&lt;li&gt;93) Get at least 5 new pairs of shoes/trainers/boots - COMPLETED 29/07/12.&lt;/li&gt;

&lt;li&gt;94) Get a rug for the living room - COMPLETED 29/12/11. Part of a joyous day in IKEA. Precious memories.&lt;/li&gt;

&lt;li&gt;95) Go to the theatre - INCOMPLETE. Another activity I&#39;ve promised and still owe Charlotte.&lt;/li&gt;

&lt;li&gt;96) Build a gingerbread house - COMPLETED 18/12/11. &lt;/li&gt;

&lt;li&gt;97) Spend Christmas/New Year somewhere beautiful - INCOMPLETE. A bit gutted this one never materialised. But Christmas is a ridiculously busy period for Charlotte at work.&lt;/li&gt;

&lt;li&gt;98) Buy a spiffing suit - COMPLETED 07/04/13. Purchased last year from Ted Baker.&lt;/li&gt;

&lt;li&gt;99) Relax in a hot tub, outside, on a cold winter&#39;s night - INCOMPLETE. Part of #97 no doubt. Definitely one for the not too distant future.&lt;/li&gt;

&lt;li&gt;100) Learn another programming language - INCOMPLETE. I really should&#39;ve achieved this. But since the challenge started, I have improved my PHP, Javascript and learnt Sass and a bit of node.js, so I&#39;m not exactly static. &lt;/li&gt;

&lt;li&gt;101) Write a letter to myself to open on day 1001 - COMPLETED 27/11/11. The contents of this are private, but I think they epitomise the outcome of this list.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;I&#39;m divided on my opinion of the conclusion of this challenge. On the one hand, 3 years is not a long time in the grand scheme of things, priorities change, opinions change, I&#39;ve changed.&lt;/p&gt;

&lt;p&gt;The other side of it leaves a little disappointed at a lot of the things I haven&#39;t completed. Some are things I really have no excuse for not completing, others I&#39;m okay with, and will continue to pursue. I know I can and should be more proactive about some of the things in my life.&lt;/p&gt;

&lt;p&gt;But you can&#39;t dwell on this too much.&lt;/p&gt;

&lt;p&gt;Hey, I could start a new list and be sitting here having completed 40% of the list, rather than 33%, but it&#39;ll likely tell a similar story.&lt;/p&gt;

&lt;p&gt;I tell you what, I&#39;d like to meet someone who attempted the Day Zero challenge and managed to complete every one. If I wasn&#39;t too put off by their over eager &quot;go get &#39;em&quot; approach to life, I&#39;d buy them a beer and find out what makes them tick.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Trailwalker - my experience</title>
    <link href="https://samdking.co.uk/blog/trailwalker-my-experience/"/>
    <updated>2013-07-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/trailwalker-my-experience/</id>
    <content type="html">&lt;p&gt;Trailwalker was hard; the hardest challenge I’ve ever undertaken. But it’s one I won’t forget in a long time. Here is my experience.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/1375135898_2.jpg&quot; style=&quot;width: 100%; margin: 0 auto&quot; /&gt;

&lt;p&gt;As a bit of background, Oxfam’s Trailwalker is a 100km endurance challenge started by the Queen&#39;s Gurkha Signals Regiment over 30 years ago. I was asked to participate by a couple of colleagues at work, and, having completed the Brighton Marathon less than 6 months earlier, agreed with little trepidation.&lt;/p&gt;

&lt;p&gt;Fast forward what must’ve been about 9 months, and the three of us (Mike, Nichola and I - unfortunately our fourth member had had to pull out days before due to an ill-timed combination of injury and illness) were kitted up in Queen Elizabeth Country Park, Hampshire, ready to begin the challenge of our lives.&lt;/p&gt;

&lt;p&gt;The first half passed largely without incident. 50km was a distance we’d walked in training several weeks before; the weather was perfect, the Support crews flawless and we were all very much enjoying the occasion. We were also making good time - despite starting 10 minutes late, we were ahead of our planned schedule.&lt;/p&gt;

&lt;p&gt;At checkpoint 5 we received a couple of very welcomed additional guests as part of our Support crew. Despite the weather finally breaking, and rain beginning to fall, we set off in good spirits.&lt;/p&gt;

&lt;p&gt;Stage 6. It rained. A lot. This particular stage - in fact every stage from this point onwards - we had covered in training so was familiar to us. But the constant rain for over 2 hours, whilst manageable, did take a hit on our morale by the end. I was cold, wet and missed the sunshine.&lt;/p&gt;

&lt;p&gt;After a change of clothes and a cup of warm soup at Checkpoint 6, things were looking on the up again as we set out on a reasonably dry seventh stage, Botolphs to Devils Dyke. I don’t remember this stage being particularly difficult technically; Devils Dyke and the surrounding areas had become almost a second home to us in our training. However halfway through this stage I began to feel nauseated.&lt;/p&gt;

&lt;p&gt;Throughout training I’d always been pretty hot on fueling my body. Eat and drink little and often they say. I’d studied the sorts of foods I should be eating, and briefed myself on rough recommended quantities and frequencies of consumption. What I hadn’t really bargained on was a feeling that prevented me from doing these things. In my case, nausea. Feeling sick is not a nice feeling at the best of times, but 2/3 of the way through a long distance walk, having been up for 18 hours, was definitely not the one.&lt;/p&gt;

&lt;p&gt;I spoke very little that stage, my feet knowing the path to Devils Dyke, and my eyes being guided by the bright floodlights illuminating the Checkpoint. As far as checkpoints go, Devils Dyke was the “big one”. Teams are provided with a big meal, there’s a good support following, and even a little music. It also happens to have the highest drop-out rate. For those unfamiliar with the area, Devils Dyke is on the outskirts of Brighton - a 10 minute drive home. Unfortunately for me though, all I could think about was my seemingly worsening sick feeling in my stomach.&lt;/p&gt;

&lt;p&gt;Devils Dyke - Checkpoint 7 - turned out to be our longest rest stop of the event. I was doing my best to eat what I could and Mike was away for long periods trying to get some medical attention for his knee. By the time we trekked onwards, I was feeling slightly better, and content with the short term knowledge that Stage 8 was the shortest of the lot - a modest 6.4km.&lt;/p&gt;

&lt;p&gt;Despite the short distance, the feeling of sickness returned, fatigue began to set in, and I could feel myself wavering. My teammates did their best to maintain morale, but it was another stage where I remained mostly silent. Darkness had set in a couple of hours before, and it was very much a trudge to the next Checkpoint. Checkpoint 8 was very much welcomed - as was any form for rest at this stage in the event. I slumped in a chair, feeling about as worse as I had at any point.&lt;/p&gt;

&lt;p&gt;I knew the fact that I was shivering and that the thought of consuming food wasn’t a pleasant one were not good signs. I put on a brave face and drank some tea, had a few sips of soup and ate a slice of bread. Mike and Nichola had gone off to get massages so I was on my own contemplating the next 2 stages. The next being the longest of the lot - a monolithic 15km. I knew I couldn’t give up. I’d beaten the “big one”; I was 6.4km closer to the finish. It was at this point the last few hours caught up with me, and I stumbled into the darkness and, well, left a marked impression on the landscape - a gift from my gut.&lt;/p&gt;

&lt;p&gt;I knew this was not a good sign. I knew if my energy levels were wavering, they certainly would be now. But despite alarm bells ringing, all I could think about was how much better I felt. It felt like whatever had been pissing me off inside for the last 5 hours was gone. I thought about telling my teammates, but it didn’t seem necessary. I was feeling positive for the first time in hours, and, post-massage, Nichola and Mike also seemed to be in high spirits.&lt;/p&gt;

&lt;p&gt;We knew what to expect from Stage 9. We knew it was going to be difficult, but we’d walked it on 2 occasions in training. What we could not prepare for though was the sheer monotony of it. When you’re on a half-day training walk, you don’t think about the walk. You talk, you joke, you appreciate the countryside. You don’t do that when this is your 80th kilometer and you’ve been walking 18 hours. The nausea stayed away for the best part, but the sheer mental agility required in the 9th stage was staggering. The floodlights for Checkpoint 9 - the beacon of hope as I remember coining it - was cruelly visible as early as halfway into the stage. When that’s all you have to aim for as you’re stumbling through the darkness by way of torchlight, time estimates, pace and logic goes out the window. 7.5km can seem like an eternity. &lt;/p&gt;

&lt;p&gt;As we approached the 9th checkpoint - Kingston Hollow, the final major checkpoint, just 9.9km to go - the sun was just at the point in the morning sky where it was spreading a warming gold glow across the landscape. Despite the previous 3 and a half hours, it was the feeling of hope we needed to provide the final push.&lt;/p&gt;

&lt;p&gt;After a sock and t-shirt change, and with us all now sporting our lime green Trailwalker T’s, purchased the evening before, we began the final slog to the finish. Standing in our way first was the mother of all hills (I forget the name). I’m fairly certain this hill finished off what was left of my dwindling energy reserves. The remaining 8k-or-so, whilst charged with optimism, saw my lagging behind my team mates and taking everything I had left to keep going.&lt;/p&gt;

&lt;img src=&quot;https://samdking.co.uk/images/1375135898_1.jpg&quot; style=&quot;max-width: 400px; float: right; margin: 20px&quot; alt=&quot;Trailwalker Finishing Podium&quot; /&gt;

&lt;p&gt;With sight of the Racecourse - the finish line - I knew the whole thing was almost complete. As we began the final kilometer, walking alongside the perimeter fences of the racecourse, it dawned on me I was probably the closest I’d ever come to spontaneously bursting into tears. It was a feeling I hadn’t experienced before. I wasn’t sad, but there was an overwhelming feeling of something inside that needed to get out. The tiredness, the physical excursion and the emotion of the occasion was likely bubbling over. Somehow as we approached the finish line, and I caught sight of a big crowd of people all watching, clapping and cheering our final approach, I sucked it up, and beamed my way across the line.&lt;/p&gt;

&lt;p&gt;Probably one of the proudest moments of my life.&lt;/p&gt;

&lt;p&gt;--------&lt;/p&gt;

&lt;p&gt;The above was largely a download of my consciousness that I wanted to get written down while it was still fairly fresh. I will read through again shortly and correct anything non-sensical. While I’m at it, I want to thank my teammates Nichola and Mike for pulling me through, as well as Andy, who was there in spirit, and in person at the finish line. This whole production could not have happened without our excellent Support crews - Kim and James, and their supporting members Chilly and Charlotte. You were as supportive as we could’ve imagined, and took care of our every need. And lastly, thank you to everyone for their continual words of support, before, during and after the event, as well as your kind donations to the cause. Final words go to the organisers of the Trailwalker. Absolutely sterling job. Everyone involved was friendly, enthusiastic and supportive throughout. &lt;/p&gt;

&lt;p&gt;Thank you all.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Emergence</title>
    <link href="https://samdking.co.uk/blog/emergence/"/>
    <updated>2013-03-21T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/emergence/</id>
    <content type="html">&lt;p&gt;A suitably ambiguous title I know, but it will become clear soon enough. On a slow evening earlier this week, after a brief perusal of the latest goings-on on Twitter, I found myself on the 37signals website. More specifically, reading their free downloadable &quot;&lt;a href=&quot;http://gettingreal.37signals.com&quot;&gt;Getting Real&lt;/a&gt;&quot; book. Flicking through it, I stumbled upon a brief excerpt from (I assume) a book called &lt;em&gt;The Pragmatic Programmers&lt;/em&gt;. This particular page caught my attention the most.&lt;/p&gt;
&lt;blockquote&gt;&quot;Emergence is one of the founding principles of agility, and is the closest one to pure magic. Emergent properties aren’t designed or built in, they simply happen as a dynamic result of the rest of the system.&quot;&lt;/blockquote&gt;

&lt;p&gt;I love this idea.&lt;/p&gt;

&lt;p&gt;I&#39;m a coder/programmer/engineer, whatever you want to call it, but fundamentally I enjoy solving problems through code. The whole concept of &quot;emergence&quot;, where functionality and features are born organically out of code I&#39;ve written intrigues me.&lt;/p&gt;

&lt;p&gt;The writer, Andrew Hunt, goes on to explain &#39;“Emergence” comes from middle 17th century Latin in the sense of an “unforeseen occurrence.”&#39;, that &quot;You can’t plan for it or schedule it, but you can cultivate an environment where you can let it happen and benefit from it.&quot;.&lt;/p&gt;

&lt;p&gt;The gist of the excerpt is that many, bloated, modern software development practises decrease the chance of emergence occurring; the idea of tying a process down, reducing the creativity it could&#39;ve born. It all comes down to the KISS principal (Keep It Simple, Stupid); do you not over-complicate your system, and the simplicity will speak volumes.&lt;/p&gt;

&lt;p&gt;The example Andrew gives is a simulation of a flock of birds, where simple rules programmed into the application, can produce a mesmerising end product. A basic collision-detection algorithm can produce complex behaviours as &quot;the flock wends and wafts its way gracefully through the sky&quot;.&lt;/p&gt;

&lt;p&gt;In my day job, I manage to achieve lots of small wins and small examples of emerging behaviours by sticking to the DRY (Don&#39;t Repeat Yourself) mantra. By adhering to simple separation of concerns principals - separating business logic from business data - applications can be transformed simply by swapping between datasets. With a tightly-coupled system and an ignorance of the bigger picture whilst building, happy accidents (read: emergence) seldom occur.&lt;/p&gt;

&lt;p&gt;To borrow Andrew&#39;s closing line, &lt;em&gt;Keep it small. Keep it simple. Let it happen.&lt;/em&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Twitter and such</title>
    <link href="https://samdking.co.uk/blog/twitter-and-such/"/>
    <updated>2012-08-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/twitter-and-such/</id>
    <content type="html">&lt;p&gt;Twitter&#39;s great. But it&#39;s not without its foibles.&lt;/p&gt;
&lt;p&gt;A few observations I&#39;ve made:&lt;/p&gt;

&lt;h4&gt;When someone says something nice about you (or your company, depending who your Twitter account represents), especially if it&#39;s meaningful, the most common thing to do is Retweet it.&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;The intention&lt;/strong&gt; &quot;Wow, look at this nice thing someone&#39;s said about me (/my company), I want to shout about it!&quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In reality&lt;/strong&gt; You&#39;re preaching to the choir; you&#39;re sharing with people &lt;em&gt;who already follow you&lt;/em&gt;, who need no further reason to follow you. Ideally, that retweet would be much better suited as marketing to non-followers.&lt;/p&gt;

&lt;h4&gt;You want to mention someone, but it&#39;s not personal to them and you want the tweet to appear on all your followers feed. So you end up sticking a dot in front of their name, or referring to them as &quot;that @guy&quot;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;The intention&lt;/strong&gt; You want to mention someone, but it&#39;s comedy gold so you want everyone to see it&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In reality&lt;/strong&gt; It just ends up looking a bit desperate, unless you&#39;re clever enough write it in a way that doesn&#39;t say &quot;This tweet is so important and funny that I want everyone to read it&quot;. Which leads me onto...&lt;/p&gt;

&lt;h4&gt;The #fb hashtag&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;The intention&lt;/strong&gt; Share your tweeting gold with not only your Twitter following, but also all your Facebook friends.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In reality&lt;/strong&gt; Despite this being a fairly uncommon method of sharing your social-media-platform-agnostic thoughts, I cringe every time I see it. As a continuation from the above point, it screams &quot;Oh my god, this tweet is so golden I want to share it with ALL MY FOLLOWERS!&quot;

&lt;/p&gt;&lt;p&gt;Don&#39;t get wrong, the concept of social media - more so, Twitter - is not lost on me. I&#39;m aware many people use it as a means of raising their ego and self-marketing themselves, but there is a level of subtlety and tactfulness that should be observed if one wants to avoid looking like a douche.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Doing it yourself</title>
    <link href="https://samdking.co.uk/blog/doing-it-yourself/"/>
    <updated>2012-07-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/doing-it-yourself/</id>
    <content type="html">&lt;p&gt;I&#39;ve never really *got* web development frameworks. Sure, I understand what they&#39;re trying to achieve and I can appreciate they can save you a lot of time. But I don&#39;t see the benefit of them in the long term.&lt;/p&gt;
&lt;p&gt;Almost all frameworks start out with someone trying to fulfil a purpose. If the framework takes off, a few more people may get involved and contribute their ideas. Before long, you&#39;ve got a handful of different opinions on what makes this framework good and what it&#39;s trying to achieve. Don&#39;t get me wrong, this is a good thing. When someone questions your decision making, it forces you to really look at it and either bite their hand off explaining why it&#39;s the bee&#39;s knees, or quietly retreat and admit your idea wasn&#39;t the best.&lt;/p&gt;

&lt;p&gt;Frameworks gathering steam, merging in ideas from all over the place, moving forward collectively, all seem to end up with the same flaw; over flexibility. The nature of a framework is catering to as many people as possible. And as often as you&#39;ll get loyal followers proclaiming their framework *can* do everything and anything, it doesn&#39;t necessarily make it the right choice for your particular purpose.&lt;/p&gt;

&lt;p&gt;It&#39;s at this point the prospect of building your own custom solution rears its self, as it often does in my mind. It seems a decent enough premise; build an efficient system from the ground up that caters for your needs; built, naturally, with future scalability in mind. You&#39;ll know the system inside out and the problems you face and the solutions you come up with during the build process is invaluable knowledge you won&#39;t acquire from simply implementing an existing framework.&lt;/p&gt;

&lt;p&gt;With that said, the huge spanner in the works of this plan is the thing every developer seems to lack, and is commonly referred to as money: time. The amount of time and resources involved is almost immeasurable.&lt;/p&gt;

&lt;p&gt;Unfortunately, in the real world, the &quot;right solution&quot; is seldom the &quot;perfect solution&quot;. If a modern &quot;rapid development&quot; framework can get you 90% there without breaking a sweat, and you have to make do for the final 10%, to coerce the framework into behaving the way you want, then so be it. If you were building it yourself you&#39;d probably be barely out the starting blocks.&lt;/p&gt;

&lt;p&gt;I remember once being told, any problem you face in web development has already been solved by someone before; don&#39;t bother trying to solve it again. Of course, with this mentality, innovation on the web would be dead. As in life, pick your battles.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>How to feed a developer</title>
    <link href="https://samdking.co.uk/blog/how-to-feed-a-developer/"/>
    <updated>2012-07-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/how-to-feed-a-developer/</id>
    <content type="html">&lt;p&gt;I&#39;m a web developer by trade; concerning myself more with how stuff works, rather than how it looks. It&#39;s somewhat of a cliche, but, as with a lot of people, I don&#39;t feel I &lt;em&gt;chose&lt;/em&gt; my career, it sort of chose me. I simply did what I found interesting. I liked computers, so I did 3 years at University studying them; got myself an internship, followed by a job, and since then haven&#39;t really looked back since.&lt;/p&gt;
&lt;p&gt;It&#39;s interesting when you step back and look at the job and try to figure out what makes you tick. What is it about your job that keeps you stimulated and coming back for more. For me, I hadn&#39;t really thought about it a whole lot. That is, until I stumbled across an article online entitled &quot;&lt;a href=&quot;http://www.nczonline.net/blog/2012/06/12/the-care-and-feeding-of-software-engineers-or-why-engineers-are-grumpy/&quot;&gt;The care and feeding of software engineers (or, why engineers are grumpy)&lt;/a&gt;&quot;.&lt;/p&gt;

&lt;p&gt;This is an insightful opinion of a front-end consultant responding to an article accusing software engineers of saying &quot;no&quot; too much. He begins explaining the stereotype of an engineer, that we can be &quot;arrogant, disagreeable and moody&quot;, and I agree with that. I&#39;ve found myself to be at least 2/3 of those things sometimes on a daily basis. The article is quite in depth, but the take-home point, at least for me, is that, all developers want to do is create something and get it out there for people to use. When this process is hindered, we&#39;re infinitely less efficient.&lt;/p&gt;

&lt;p&gt;We are creators. We enjoy buildings things for people to use. Whilst the complications and politics of our daily jobs often cloud this, when all is said and done, this is what makes developers tick.&lt;/p&gt;

&lt;p&gt;The stereotype is, software engineers are good at programming, we just like to code all day long, and when we get interrupted we get angry. Whilst this simplistic view isn&#39;t untrue, it&#39;s often a lot more complex than this. As the writer makes plainly clear, we&#39;re &quot;Creators, not builders&quot;. When we&#39;re told to code something that&#39;s been speced out and signed off, we&#39;re not creating, we&#39;re building. We are ideas people, we have an opinion about everything, and when we&#39;re thrown into a project with all these decisions made (often wrongly) we&#39;re already disheartened.&lt;/p&gt;

&lt;p&gt;As the author points out, &quot;engineers are highly logical&quot;; sure, our code is the moneymaker, but if we&#39;re part of the creative process from the start of a project, it&#39;s that much easier when it comes to building the product. And more often than not you get a better-built product with less bugs at the end of it.&lt;/p&gt;

&lt;p&gt;In conclusion, the article is a must-read for developers and project managers. The former for that &quot;yes! Someone understands me&quot; feeling, and for the latter, to help understand and get the best out of your developers.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Marathon Experience</title>
    <link href="https://samdking.co.uk/blog/the-marathon-experience/"/>
    <updated>2012-04-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-marathon-experience/</id>
    <content type="html">&lt;p&gt;I ran my first marathon on Sunday 15th April; the Brighton Marathon. It was amazing.&lt;/p&gt;
&lt;style type=&quot;text/css&quot;&gt;
figcaption { font-size: 11px; text-align: center }
.intro { font-size: 1.6em }
&lt;/style&gt;
&lt;p&gt;I’m not a long distance runner, I don’t even remember doing cross-country at school. I only properly started running just over a year ago, but after seeing my friend Hannah (and 10,000 others) run in the Brighton Marathon 2011, with almost no running experience, I was inspired to sign up for the next one.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://samdking.co.uk/images/marathon-medal.jpg&quot; class=&quot;mx-auto mb-0&quot; /&gt;&lt;figcaption&gt;My 2012 Brighton Marathon Finisher medal&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;After 6 months of grueling training, involving many early sunday morning runs, various injuries, carb packed diet changes and a laundry basket seemingly always full with sportswear; the day had arrived. The week before it began to dawn on me the task that was ahead. I’d only run 18.5 miles as my furthest training run, despite aiming for 20, and it had been no easy task. Additionally I’d hurt my ankle several months ago, and despite experiencing pain in lateral movement of the joint, ruling out 5-a-side football, the consistent back and forth motion of running didn’t seem to aggravate it. The night before I was involuntarily going through every bad scenario in my head. Could I run the distance? Would I get an injury? Would I hit the wall? Would I do long term damage? Had I eaten the right kind of food? Suffice to say, my confidence levels were pretty depleted.&lt;/p&gt;
&lt;p&gt;After shoveling in as much porridge and bagel into my stomach as possible, I set out on the short walk to the start line in Preston Park. It was a surreal walk; many of my training runs had began at Preston Park, but this would be the last time in a while I’d be on my way there in running shoes. First thing that hit me was the sheer amount of people. I arrived just before half 8, with girlfriend and parents in tow, for a 9am start. The park was rammed; Expectantly so, given the 15,000 entrants and expected 100,000 spectators, but it was a shock having seem the park almost empty on many of my winter runs.&lt;/p&gt;
&lt;p&gt;Lining up in the corrals, with the minutes ticking down before the start, I found my nerves were actually almost gone. A feeling of excitement came over me as I realised everything up until now had been leading up to this. There was a definite air of encouragement and anticipation amongst the runners; all I could see in either direction was a mass of brightly coloured and eager participants, ready to set off on the journey of a lifetime. The gentle shuffle to the start line was just the build up I needed to fully prepare myself for what was ahead of me. I couldn’t help but smile as I eventually began the race, it felt like all the eager spectators eyes were on me, it’s a feeling like no other.&lt;/p&gt;
&lt;p&gt;The first mile was actually the biggest hill, leading to the highest point in the race, a strategic boost right at the start, well planned by the organisers. It was a hill I’d done many times in training and a relatively short one, so it posed no threat and I was still buzzing from the excitement of starting.&lt;/p&gt;
&lt;p&gt;The first 6 miles or so were fairly uneventful - exactly what I was hoping for. Despite running on familiar ground, nothing can compare to the buzz of running in an official race, it all seemed new. I was so glad I decided to emblazon my name on my vest, hearing people cheering is one thing, but hearing people cheer your name fills you with confidence. Although the support in the early stages was quite small, it was still hugely encouraging to see and hear it. I started conservatively, as I’d read and had been suggested many times, and despite being overtaken in the early stages by the more eager, I was very glad I paced myself.&lt;/p&gt;
&lt;p&gt;The next 6 miles were in the countryside, again, an area I’d tackled many times in training. It was a lovely part of the race, very calm and peaceful, with a few gentle to moderate hills.   Although I didn’t bond much with my fellow competitors, there was a strong feeling of togetherness and a bond as we ran, that is completely amiss during training. I was growing in confidence and began passing a few of the slower competitors. The water and fuel breaks were perfectly placed, it was amazing to see the organisation and helpfulness of the volunteers involved, always greeting you with a cold drink, a smile and words of encouragement.&lt;/p&gt;
&lt;p&gt;It was a little discouraging to see the faster runners coming back down as I was making my way up the course, but it was all to be expected, and did little to dampen my spirits. I knew what I was aiming for, and it certainly wasn’t a sub-4 hour finish. I was pleased to see a friendly face in the faster group, coming towards me on the other side of the road; we exchanged a quick hello and a few words of encouragement, before I continued on my way.&lt;/p&gt;
&lt;p&gt;As I approached halfway, I was feeling great, which I was surprised about, but didn’t dwell on it for too long; I was stoked to be feeling so fresh with half of the race gone! The crowds on the run back from Ovingdean to the centre of Brighton were fairly patchy, but as we approached the pier, I could feel the energy building up as the crowds got more concentrated and much louder. When I got to the pier, both sides of the road were jam packed with cheering people, and as the DJ read out my name off my vest I couldn’t help but beam at the support of everyone around me. As at the start, it’s an unmatched feeling of pride and gratitude. &lt;/p&gt;
&lt;p&gt;After a quick toilet break just past halfway, I carried on my run. I’d been very happy with the first half of the race, but I knew the hard part was yet to come. The seemingly straight endless run into Hove, with the double-back was ahead of me - a run I’d only done once - and I wasn’t much looking forward to it. I knew the infamous Road to Hell was straight after it, so I tried to put both out of my mind. &lt;/p&gt;
&lt;p&gt;As I trudged through the miles - 13, 14, 15, my thighs began to get heavy. My shins and calves had been faithful to me and had given me little grief throughout. My ankles were their usual wobbly selves, but to be fair, they had taken me boldly so far and I was confident they’d take me the rest of the distance. &lt;/p&gt;
&lt;p&gt;I’d taken a few strategic walk breaks in the race up until now - a technique I’d read about a few weeks earlier. Supposedly giving the muscles used when running a short rest will help them to perform better and for longer, thereby decreasing the likelihood of being forced to walk through muscle pain. The thought behind it is, you’ll be able to make up the short time lost walking strategically in the middle of the race at the end, when many are forced to walk through exhaustion.&lt;/p&gt;
&lt;p&gt;The support was consistent throughout the 6 or so miles back and forth, with many families gathered on the sides of the road, their kids offering sweets and words of encouragement. It was touching and really helps you to mentally keep going on the long straight roads. I was relieved when the road veered round to the right and the stretch was complete. Being nearer the centre again, the crowds were more concentrated, and as I followed the road round to the right, the crowd cheering my name, I knew I was approaching the final part (albeit still 8 miles to go) and found some inner strength and confident strode into it.&lt;/p&gt;
&lt;p&gt;I could see the power station - the well known landmark marking the turning point back to the finish - but it seemed so far away. I’d run this road on several training runs, but with only single figures under my belt. With 18+ miles in my legs, I was feeling it. People around me had opted to walk, with a few unlucky soles getting medical treatment on the side of the road. I knew I should probably take in some more fuel at this point, but with the multitude of energy drinks, gels, shot blocks and sweets in my system, I couldn’t quite stomach the thought.&lt;/p&gt;
&lt;p&gt;I had a nervous wobble, where I thought my ankle might give way, but I walked it off and was pleased to be able to carry on running.&lt;/p&gt;
&lt;p&gt;I reached mile 20, Hove lagoon, and I knew the dreaded final stretch was approaching. At 20 and a half miles, on the corner just before entering the industrial part of the course, I received a much needed boost from the Alzheimer’s Society supporters. They could see I was suffering and their words of encouragement were enough to steal a smile from me. As I made my way onto the long, baron stretch of road, the intimidating factories on the right, and the faster runners running in the opposite direction on my left - having already completed the road to hell - I desperately shook the thought of the dreaded “runners wall” out of my head.&lt;/p&gt;
&lt;p&gt;This bit of the race was somewhat of a blur for me. I was exhausted, my body most likely craving some more fuel, and all I could really think of was the next step in front of me. I was surprised to see myself managing to overtake people in front of me, because at times I felt I wasn’t moving much faster than walking pace. &lt;/p&gt;
&lt;p&gt;At last, I reached the part where the road veered off to the right, and into the factory car park. I knew I’d soon be on my way back. Unfortunately I wasn’t familiar with the particular part of the course, with it being off limits to the public normally. My legs were disappointed to discover it was a longer loop than my mind was expecting and for the first proper time I dropped to an exhausted walk, to catch my breath and prepare myself for the final bit. Surprisingly, my thighs immediately shouted back at me; it was painful to walk. It was an odd dilemma - exhaustion from running versus pain from walking. I knew I was a mere 4 miles or so from the finish and could sense I was so close to starting the final stretch back to the finish line. Deciding I’d rather get there as quick as possible, I opted for running.&lt;/p&gt;
&lt;p&gt;I picked up a gel and a fresh pack of water as I turned the corner to come back, thinking I’d probably need it to get back the final 4 miles. Chocolate flavour. Interesting. I ripped off the top and had a small gulp. That was almost too much - I was never going to finish it so I quickly discarded it, took a gulp of water and prepared myself for the task ahead. The run back to Hove Lagoon seemed to go quicker than the run there - thank God, and as I passed more and more walkers, I thanked my lucky stars I still had it in me to keep a running pace. I put it down to my carb loading!&lt;/p&gt;
&lt;p&gt;I took the very short but steep ramp back onto the esplanade - a few metres that my muscles complained greatly at me for, and I suppressed with a grimace. I wasn’t sure if the sight of the 2 piers - so far away in the distance - was a good one or not. The crowds, though, were a godsend. While there was nothing physically demanding about the “Road to Hell” - it’s flat as a pancake, the almost complete absence of support was enough to do a number on your mental strength.&lt;/p&gt;
&lt;p&gt;I’d done this particular route so many times in training, and it had seemed so short during casual 10 mile runs. The last hour or so, I’d been getting myself through by breaking the course up into small manageable chunks - advice I’d taken in before the race. I visualised the King Alfred swimming pool in Hove, the point just before Hove lawns, and that was what I was now running towards. The crowd at this point of the race could tell how much every runner needed help, it felt like almost every single person was applauding or cheering or shouting my name. I consumed my last jelly baby from a small girl reaching out a bowl onto the course. That, I could just about stomach.&lt;/p&gt;
&lt;p&gt;Hove lawns had never seemed so long as I ran past the 24-mile marker. It was around this point, that I somehow began pushing. The heavy feeling in my thighs and hamstrings that had plagued me for the last hour or so began to be relieved. I was overtaking people and the faster I ran, the more the crowd got behind me. I kept telling myself I still had 2 miles to go, and that I’d need this energy for last 500 yards or so. But adrenaline had taken over at this stage. &lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://samdking.co.uk/images/1334608816_1.jpg&quot; class=&quot;mx-auto&quot; /&gt;&lt;figcaption&gt;Managing a half smile on the last stretch.&lt;br /&gt;Not bad for 26 miles.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;As I got to the end of Hove lawns and back onto the main road, a little over a mile to go, I could feel myself speeding up further. The road was wider, the crowds were thicker and the finish line was edging closer. I couldn’t see the finish line yet, but as I passed the West Pier, I knew once I got to Brighton Pier I would almost be there. My legs were unrelenting. I’d had nightmares of images of people limping over the line, barely able to move by the end, but somehow I found myself giving it every I’d got. As I reached Brighton Pier, and turned the final corner towards the finish line, going against all advice I’d read, my legs opened up. It was a bit of a blur but I must’ve overtaken half a dozen people or so as I ran the final few metres to the finish lane.&lt;/p&gt;
&lt;p&gt;I’d made it. I couldn’t believe it. As I passed under the gantry I was reminded of the feat I had just completed. I had run a marathon. I was told I should be very proud of myself. And I was. I limped towards the swarms of volunteers, gratefully receiving my finishers medal around my neck and a silver blanket securely around my shoulders. It was utterly surreal, and as the muscle exertion finally caught up with me after 26.2 miles and a final dash for the finish line, I all but collapsed on the grass.&lt;/p&gt;
&lt;p&gt;I later found out I came in at a time of 4:28:26, coming under my target time of 4 hours 30 minutes; I was overjoyed.&lt;/p&gt;
&lt;p&gt;Completing a marathon is a feeling like no other. I urge you, give it a go.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Creativity</title>
    <link href="https://samdking.co.uk/blog/creativity/"/>
    <updated>2012-03-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/creativity/</id>
    <content type="html">&lt;p&gt;It&#39;s been some time since I&#39;ve &lt;em&gt;had&lt;/em&gt; to produce a design from scratch. In my day job I&#39;m mainly a back-end developer, and recently I&#39;ve been getting my hands dirty with the command line and a little sys admin duty. I&#39;m occasionally tasked with putting together a page, to produce a visually pleasing combination of elements. This, I have no problem with. I&#39;ve noticed lately though, that my ability to simply sit down and produce a design from scratch has been lacking.&lt;/p&gt;
&lt;p&gt;Whilst natural talent is an obvious ingredient to good design, I believe &lt;em&gt;practising&lt;/em&gt; good design is as important. Although any designer will tell you every design is different and must be approached as such, there will always be common processes, some subconscious, that a designer goes through when producing something. A truly good designer will is consistent.&lt;/p&gt;

&lt;p&gt;I&#39;ve always thought I have a keen eye for design, in fact I made my way into the industry with a more front-end design focus; and whilst I&#39;ll never be a full-time designer - I just don&#39;t get my jollies that way - I can appreciate good design and I&#39;m aware when something just looks wrong (and can usually offer a fix or two). However, being knee-deep in code for the majority of my working life (and I&#39;m not complaining), my ability to produce a visual masterpiece at the drop of a hat has to take a knock, or at least a back seat.&lt;/p&gt;

&lt;p&gt;As I mentioned at the beginning of this post, whilst my job doesn&#39;t require me to produce any real design, I&#39;ve been forcing myself to splurge my creativity recently as I&#39;ve been dying to redesign, recode and generally reorganise my site for ages. And after knocking out half a dozen half-decent designs over the past few months, the concept of &lt;em&gt;artistic consistency&lt;/em&gt; - if you like - has been a bit of an eye opener for me. I&#39;m a little fussy, and don&#39;t want to settle with something boring and substandard.&lt;/p&gt;

&lt;p&gt;Those hardcore, bedroom dwelling hacker types will always exist and forever be the programmer stereotype. But in this modern world, for a back-end web developer to get by, they need to have - at the very least - a good eye for what looks right. I like to think, with a little practise, I have a bit more to offer than that.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>A message for my legs</title>
    <link href="https://samdking.co.uk/blog/a-message-for-my-legs/"/>
    <updated>2012-02-08T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-message-for-my-legs/</id>
    <content type="html">&lt;p&gt;Legs. You&#39;ve been pretty supportive of me so far in my life. You&#39;ve grown with me, you&#39;ve held me up when i&#39;ve needed it, and you&#39;ve gone the extra mile when it was demanded of you. Now, though, now I really need a big favour.&lt;/p&gt;
&lt;p&gt;I know I&#39;ve been taking the piss a bit recently with all the running, but I need you to just stay with me for the next 10 weeks. I&#39;m afraid it&#39;s going to get harder before it gets easier.&lt;/p&gt;

&lt;p&gt;After the 15th April, I&#39;ll be real nice to you. The only sport I&#39;ll do is swimming. You like swimming.&lt;/p&gt;

&lt;p&gt;P.S. If you can, have a word with the ankles. I know they&#39;re pretty much angry all the time and don&#39;t like anybody else, but just keep &#39;em sweet, they&#39;re the most likely to freak out and ruin it. But remember, there&#39;s no &quot;I&quot; in team. We&#39;ve gotta work together to do this.&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;/p&gt;

&lt;p&gt;Sam&lt;/p&gt;

&lt;p&gt;For context: &lt;a href=&quot;https://samdking.co.uk/blog/running-a-marathon&quot;&gt;Running a Marathon&lt;/a&gt;
&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Running a Marathon</title>
    <link href="https://samdking.co.uk/blog/running-a-marathon/"/>
    <updated>2012-01-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/running-a-marathon/</id>
    <content type="html">&lt;p&gt;I’m currently in training for the 2012 Brighton Marathon in April (&lt;a href=&quot;http://101.samueldking.co.uk/#task-1&quot;&gt;#1 on my 101 list&lt;/a&gt;). The purpose of the post is to point out a few of my experiences and thoughts when undertaking this training and how it draws many parallels to most other activities in life. As your PE teacher probably said to you back in secondary school, it’s mind over matter.&lt;/p&gt;
&lt;p&gt;For the average marathon participant - i.e. someone not planning on completing it in a competitive time - in the case of the marathon, let’s say under 3h45m - it really comes down to commitment to train and a large dose of self belief. At this point I run the risk of starting to sound like a self-help article, but do read on.&lt;/p&gt;

&lt;p&gt;In my experience, reaching a level of fitness for keeping a steady pace for a long period of time, is achievable in a few months. It’s a case of getting on a treadmill and increasing your distance in small steps, week-by-week. If you keep this consistent, you should be able to run 10k &lt;em&gt;fairly&lt;/em&gt; comfortably. The important thing here is not missing weeks.&lt;/p&gt;

&lt;p&gt;Then it comes to down a few other physical fundamentals one must adhere to: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keeping fit and well / avoiding injuries. A decent pair of well-fitted running shoes, a degree of common sense with regards to staying within your abilities, and not overdoing it are important.&lt;/li&gt;
&lt;li&gt;Nutrition. Again, this is largely down to common sense more than anything. Your body needs fuel, and the right foods provide the right fuel for continual exercise. However fit you are, without anything to burn, your body will fail you.&lt;/li&gt;
&lt;li&gt;Hydration is another important aspect that is easily manageable with the right easily-attainable advice online.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To me, the crux is the mental challenge. Every second you continue to run, you’re battling between the decision of taking the next step, or simply stopping. It’s that will power that allows you to run 26 miles, much less your physical ability and condition. If you put this into practise over and over (during training), this mental challenge will become much more manageable. And it’s with this ethos that I believe almost anyone is capable of undertaking such a challenge. &lt;/p&gt;

&lt;p&gt;I am at the stage in my training where I am able to run 12 miles, this is around 1h45 - 2h of running. Unless your legs physically cannot support your body any more (see bullets above) the only thing stopping you from running a few extra miles (increasing milage every week) is your mind. &lt;/p&gt;

&lt;p&gt;Essentially, it’s easy to give up on something. A lot of things are fun to try, some of those will keep you interested for longer, but really it comes down to your staying power and commitment to the cause which leads to your eventual success in the task. A marathon is a commitment. Put in the hours of training, adhere to the basic physical fundamentals, and you’re already on the road to success.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Right, how many self-help cliches did I manage to knock out?&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Mobile Web</title>
    <link href="https://samdking.co.uk/blog/the-mobile-web/"/>
    <updated>2011-12-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-mobile-web/</id>
    <content type="html">&lt;p&gt;Kudos to &lt;a href=&quot;http://www.national-rail.co.uk&quot;&gt;National Rail&lt;/a&gt; for finally putting out a mobile version of their site. This site is indispensable when planning train journeys on-the-go, as I often end up doing. The desktop version of the site did the job - albeit cumbersomely, with a combination of squinting and pinching the screen to zoom in and out - but the mobile version is a lot more smart-phone friendly.&lt;/p&gt;
&lt;p&gt;The main point of this post, however, was to highlight the importance of the mobile web and how influential it is becoming in the way we design. It&#39;d be wrong of me to talk at great lengths about this topic, as I&#39;m really not much of a designer, but one of the main points I wanted to highlight is the simplicity and clarity that mobile design promotes.&lt;/p&gt;

&lt;p&gt;Ever since I can remember, displays have been getting bigger and bigger, and resolutions have got larger and larger. Nowadays, it&#39;s not uncommon to have 27&quot; or even 30&quot; monitors sitting on your desk. This has prompted the birth of expansive multi-columned websites, filled with information, spreading both horizontally and vertically across the screen. Take a standard news site for example, a large portion of the page&#39;s vertical space is taken up with the logo, the navigation, adverts, promotions, etc., and it&#39;s standard to have a sidebar with sub navigations, more advertisements and other articles you might like. Then, lastly, a little way down the page, you&#39;ve got the 500px column of text that is your &lt;em&gt;main content&lt;/em&gt;, i.e. the bit you came to read.&lt;/p&gt;

&lt;p&gt;But why has the idea of a website evolved to that? The Internet was born to enable us to share information more freely. But when we try and consume that information you can&#39;t do so without a number of other distractions forced in front of us before we even see a glimpse of the content we want.&lt;/p&gt;

&lt;p&gt;Enter, &quot;the mobile web&quot; - a breath of fresh air to the way we consume information. With much tighter space limitations, designers are forced to remove any extraneous bits on the page and just serve the content. This is exactly the case with the recent National Rail site mobile site. The team have done their research, found out the main areas of consumption on their site, accessed from a mobile, and wrapped it up into a much nicer UI. No excessive scrolling and zooming and no waiting for unnecessary parts of the page to download.&lt;/p&gt;

&lt;p&gt;Whilst the need for this brevity is much more for low-bandwidth, mobile use, a lesson can be learned when designing for desktop and other larger devices. The concept is simple, serve the user &lt;em&gt;just&lt;/em&gt; what they want, and they&#39;ll be more likely to consume more, and more likely to come back again.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>RIP Gary Speed</title>
    <link href="https://samdking.co.uk/blog/rip-gary-speed/"/>
    <updated>2011-11-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/rip-gary-speed/</id>
    <content type="html">&lt;p&gt;It feels wrong to post about football today without mentioning &lt;strong&gt;Gary Speed&lt;/strong&gt;. At aged 42, the Welsh national team&#39;s manager has been found dead in his home in Cheshire. It&#39;s a tragic loss, and one that has been marked with a flood of tributes on Twitter, from fans and players alike.&lt;/p&gt;
&lt;p&gt;Speed obviously had a big impact on a lot of footballers during his playing career; I remember growing up with him, playing for teams like Leeds United, Newcastle United and Everton, amongst others. He has been heralded as a true gentleman of the sport.&lt;/p&gt;

&lt;p&gt;Suicide is the suspected cause of death and I have heard the word depression being thrown around the Internet however they are just rumours. Whatever the reason, it is tragic nonetheless.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Gigs</title>
    <link href="https://samdking.co.uk/blog/gigs/"/>
    <updated>2011-11-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/gigs/</id>
    <content type="html">&lt;p&gt;In September I started my &lt;a href=&quot;&quot;&gt;101 project&lt;/a&gt;. It&#39;s fairly slow progress at the moment, but one of the things on my list - #41 &quot;See 25 Live Gigs&quot; is well under way, and I&#39;m really just posting this to use as a placeholder for my progress through the 25, and to keep track of who, what and where I&#39;ve seen live music.&lt;/p&gt;
&lt;p&gt;WIthout further ado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cloud Control - September 29th 2011 - Audio, Brighton&lt;/li&gt;
&lt;li&gt;Fenech-Soler - October 7th 2011 - Concorde 2, Brighton&lt;/li&gt;
&lt;li&gt;Lykke Li - November 1st 2011 - Roundhouse, London&lt;/li&gt;
&lt;li&gt;Los Campesinos - November 8th 2011 - The Haunt, Brighton&lt;/li&gt;
&lt;li&gt;Black Keys - February 9th 2012 - Alexandra Palace, London&lt;/li&gt;
&lt;li&gt;The Duke Spirit - March 6th 2012 - Komedia, Brighton&lt;/li&gt;
&lt;li&gt;Vaccines - March 7th 2012 - Brighton Centre, Brighton&lt;/li&gt;
&lt;li&gt;Temper Trap - March 11th 2012 - Brighton Dome, Brighton&lt;/li&gt;
&lt;li&gt;Ben Howard - November 2nd 2012 - Brighton Dome, Brighton&lt;/li&gt;
&lt;li&gt;Black Rebel Motorcycle Club - March 27th 2013 - Brixton Academy, London&lt;/li&gt;
&lt;li&gt;White Denim - November 17th 2013 - The Haunt, Brighton&lt;/li&gt;
&lt;li&gt;Albert Hammond Jnr. - December 5th 2013 - The Haunt, Brighton&lt;/li&gt; 
&lt;/ol&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Adventures of Tintin</title>
    <link href="https://samdking.co.uk/blog/the-adventures-of-tintin/"/>
    <updated>2011-10-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-adventures-of-tintin/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;The Adventures of Tintin: The Secret of the Unicorn&lt;/strong&gt; has just hit the cinemas in the UK and it&#39;s got me all reminiscent of the classic 90s television series that I grew up with, as well as the fantastic comic books by Hergé. I can only hope the new movie lives up to comic books and TV series.&lt;/p&gt;
&lt;p&gt;Following the release of the film, a DVD &amp; blu-ray collection of the complete animated TV series has gone on sale. HMV are offering it at £15/£35 (DVD/Blu-Ray) and I&#39;ve just picked myself up a copy. I loved the series as a child, and can&#39;t wait to recapture the magic again as I relive all 39 episodes over 3 seasons.&lt;/p&gt;

&lt;p&gt;It&#39;s great to rewatch programmes and movies you loved as a child; you get a warm feeling of nostalgia as you remember why you loved it back then. I&#39;ve recently been taking advantage of my 2-month free trial with LoveFilm and their complete back catalogue of Thunderbirds episodes. Thunderbirds was another gem I used to watch as a child and it&#39;s great to reminisce and remind yourself what you used to like so long ago.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Twitterland</title>
    <link href="https://samdking.co.uk/blog/twitterland/"/>
    <updated>2011-10-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/twitterland/</id>
    <content type="html">&lt;p&gt;Well, after a rather long time of just not really &quot;getting&quot; Twitter, thanks to my &lt;a href=&quot;/blog/101-things-in-1001-days&quot;&gt;101 Project&lt;/a&gt; (and heavy persuasion from my work colleagues) I&#39;ve decided to give Twitter a bash. I&#39;m &lt;a href=&quot;http://twitter.com/samdking&quot;&gt;@samdking&lt;/a&gt; - look me up!&lt;/p&gt;
&lt;p&gt;I guess the aspect of Twitter I&#39;ve always found a bit hard to comprehend is the fact that &lt;strong&gt;all&lt;/strong&gt; your activity appears on your public facing profile. The idea behind it, I suppose, is that everything you may choose to say, be it a standalone statement, or a quick reply to someone else&#39;s tweet is deemed relevant enough that it should be all be put in one place.&lt;/p&gt;

&lt;p&gt;it seems a bit of an awkward way to have a conversation, but I suppose this wasn&#39;t the original intention of Twitter. The way I understand it, it&#39;s supposed to be more of an announcement outlet and way to have all these announcements in one central place.&lt;/p&gt;

&lt;p&gt;It all just seems a little odd to me. I&#39;m so old and set in my traditional ways. But who knows? Maybe it will all just fall into place and seem second nature to me within a few weeks. I suppose the only thing left to do is dive in.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Cloud Control in Brighton</title>
    <link href="https://samdking.co.uk/blog/cloud-control-in-brighton/"/>
    <updated>2011-09-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/cloud-control-in-brighton/</id>
    <content type="html">&lt;p&gt;Cloud Control made all sorts of noises tonight in the tight Audio club on the Brighton seafront. The Australian band&#39;s first record &lt;strong&gt;Bliss Release&lt;/strong&gt; has been out for well over a year, but the 4-piece still appear to have a lot of fun banging out track after track off it. Despite a few technical hitches, the band outperformed my expectations and showed they&#39;re worthy new indie kids on the block.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1317251708_1.jpg&quot; width=&quot;100%&quot; alt=&quot;Cloud Control in Brighton&quot; style=&quot;margin: auto; display: block&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Audio proved to be a great venue for the band, with the cramped stage and young, enthusiastic crowd lending itself well to the atmosphere. A highlight was the band reappearing on stage for an encore, amidst deafening cheers from the crowd, only to be told they had 5 minutes before the venue was closing, and promptly launching into a cover of The La&#39;s classic &lt;strong&gt;There She Goes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You could tell the band members were all so strongly connected with one another, with the incredible 4-part harmonies of &lt;strong&gt;Death Cloud&lt;/strong&gt; and &lt;strong&gt;Gold Canary&lt;/strong&gt;. The band&#39;s energy was in abundance throughout, as they banged out hit after hit off the record. It&#39;s difficult to pick out highlights because every song was so flawlessly performed. With just a drumkit, a bass guitar, a keyboard and a guitar with a pedalboard full of treats, it was a joy to watch 4 young, talented musicians producing such an array of sounds.&lt;/p&gt;

&lt;p&gt;As a bonus, I got to meet the band after the gig who were graciously flogging albums and t-shirts. It&#39;s something I&#39;ve never had the pleasure of doing after a gig before. And it was the intimacy that Audio lent to the gig and the friendly nature of the band that made it happen.&lt;/p&gt;

&lt;p&gt;I must also mention the support act, &lt;strong&gt;Big Deal&lt;/strong&gt;, who were excellent. An emerging duo that are definitely worth checking out. Their current record is called &lt;strong&gt;Lights Out&lt;/strong&gt;.

&lt;/p&gt;&lt;p&gt;It&#39;s also worth mentioning that this this post kicks my 101 challenge off with &lt;a href=&quot;http://101.samueldking.co.uk/#task-41&quot;&gt;#41&lt;/a&gt;!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>101 Things in 1001 Days</title>
    <link href="https://samdking.co.uk/blog/101-things-in-1001-days/"/>
    <updated>2011-09-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/101-things-in-1001-days/</id>
    <content type="html">&lt;p&gt;Today, I am launching my project for the next 1001 days (or, in long, that&#39;s roughly 2 years and 9 months). The project is to list down 101 things you would like to achieve in that time. I got the idea off a friend, and my aim is to inspire someone to do the same (y&#39;know, that and actually complete the list).&lt;/p&gt;
&lt;p&gt;The project was an excuse to design a mini-site to keep track of the tasks, and this can be found over on the subdomain &lt;a href=&quot;http://101.samueldking.co.uk/&quot;&gt;101.samueldking.co.uk&lt;/a&gt;. The site is my first real attempt at HTML5 and CSS3, and at the moment does lack browser testing below IE9. Eeek. I know for a fact IE8 and below is gonna freak out at the new elements HTML5 has introduced, and I will combat this as soon as. Anyway... [/geek]&lt;/p&gt;

&lt;p&gt;The aim of this mini-project is to basically just experience more things. Coming up with the 101 things was no mean feat and has taken the best part of a month since deciding to take part in the challenge. It&#39;s difficult to quantity 101 separate tasks or goals you&#39;d like to achieve in the 1001 days. After all, 1001 days isn&#39;t &lt;em&gt;that&lt;/em&gt; long. This challenge should certainly not be confused with a bucket list, which, as far as I understand it, most people make when they reach 50-odd.&lt;/p&gt;

&lt;p&gt;These are quantifiable, often out-of-the-ordinary, yet achievable goals. The list includes  simple material targets that I have set myself, experiences, things I&#39;d like to see or do, and generally things I would like to do and see myself doing in the period of time. The act alone of making a list and having each task in front of me, as tickable target makes it much less likely for the idea to fall out of my head and pass me by.&lt;/p&gt;

&lt;p&gt;I hope to blog about the more interesting tasks, so stay tuned and keep an eye on &lt;a href=&quot;http://101.samueldking.co.uk/&quot;&gt;the list&lt;/a&gt; to track my progress. Wish me luck!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>I love Coldplay</title>
    <link href="https://samdking.co.uk/blog/i-love-coldplay/"/>
    <updated>2011-09-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/i-love-coldplay/</id>
    <content type="html">&lt;p&gt;I make no delusions of my love for Coldplay, they&#39;re definitely up there with my all time favourite bands. Which is why it was such a disappointment when Coldplay announced a meagre 3-date UK tour of their new album &lt;strong&gt;Mylo Xyloto&lt;/strong&gt;. Yes, Coldplay are big; yes, they need no extra help in promotion, but with such an army of fans that they have earned since their inception 15 years ago, it&#39;s a big disappointment to know that many, many fans will miss the opportunity to see them live.&lt;/p&gt;
&lt;p&gt;Following the announcement of the new Coldplay album, tickets for the 3 shows in Glasgow, Manchester and London went on sale today (23/09/11) at 9.30AM BST. By 9:31AM they were sold out. I don&#39;t know the exact details but I&#39;m sure that must&#39;ve broken some sort of speed record and on the face of it, it&#39;s an amazing statistic. Live music is as popular as ever, Coldplay still own the British music scene and their fans are massively dedicated to them. But in reality, half those ticket sales were most likely by ticket touts.&lt;/p&gt;

&lt;p&gt;I&#39;m not going to rant on about how touts are destroying the music industry, because that much is obvious. This post is more to express my disappointment that to see a band as established and successful as Coldplay are, you have to fork out a &lt;em&gt;minimum&lt;/em&gt; of £60. And not only are you forking out that much dosh, but you&#39;re also doing it to watch the band in a impersonal, corporate gargantuan venue like the O2 Arena. And the sad truth is, many will be paying twice, possibly 3 times as much for their tickets due to touts.&lt;/p&gt;

&lt;p&gt;Me? I&#39;ve made my peace with the fact that I wouldn&#39;t get tickets. Rather pretentiously due to my refusal to play refresh-wars with greedy ticket touts, but also my reluctance to pay £60+ for a ticket. There is no doubt that they will put on an amazing show, but until things change, I&#39;m actually okay with putting my wallet back in my pocket and awaiting their latest record, which, if &lt;a href=&quot;http://www.youtube.com/watch?v=1Kf_6BWcOOg&quot;&gt;this&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/watch?v=J6ZWlDks0nQ&quot;&gt;this&lt;/a&gt; are anything to go by, should be a stonker.&lt;/p&gt;

&lt;p&gt;Congratulations to all those genuine Coldplay fans who managed to get tickets.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Being good at things</title>
    <link href="https://samdking.co.uk/blog/being-good-at-things/"/>
    <updated>2011-09-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/being-good-at-things/</id>
    <content type="html">&lt;p&gt;Something dawned on me today when working on my ongoing project to create a lightweight, completely from-scratch PHP framework (I&#39;ve blogged about this &lt;a href=&quot;/blog/thomasfoxcouk-v2-goes-live/&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;/blog/php-frameworks-mvc-and-the-rest/&quot;&gt;times&lt;/a&gt; if you care to catch up). When you&#39;re starting out at something and learning the ropes, your rate of improvement, success and general productivity in the activity is far greater than when you&#39;ve grasped it. In my experience, this is true of learning PHP&lt;/p&gt;
&lt;p&gt;PHP is a programming language that is best known for being one of the easiest to pick up amongst beginner programmers. It&#39;s very lax in its rules and practises and thus it an easy process to throw together some code and get yourself a working application in reasonably quick fashion.&lt;/p&gt;

&lt;p&gt;But like anything; you can know PHP, and you can really &lt;strong&gt;&lt;em&gt;know&lt;/em&gt;&lt;/strong&gt; PHP. I like to think I&#39;m at the stage where I&#39;m a fairly proficient PHP coder, with it being my primary scripting language at work every day. I rarely run into cases now where I have to think - &quot;how do I do that?&quot; - a question that is usually solvable within a few minutes of Googling. Now, I&#39;m at the stage where I&#39;m asking myself the question - &quot;What is the best way to accomplish this?&quot;&lt;/p&gt;

&lt;p&gt;Keeping your code organised, ensuring your code is always &lt;abbr title=&quot;Don&#39;t Repeat Yourself&quot;&gt;DRY&lt;/abbr&gt;, always coding in a concise manner, making sure you&#39;ve got your &lt;a href=&quot;http://www.google.com/search?q=php+separation+of+concerns&quot;&gt;separation of concerns&lt;/a&gt; in order. The list does indeed go on. And despite it making me a better programmer, adhering to these tried and tested best practises, it doesn&#39;t half impede your progress now and again.&lt;/p&gt;

&lt;p&gt;And to bring the subject of this entry into the real world, it&#39;s true of almost any activity that can be mastered. When you know 99% of something, you don&#39;t half obsess over the final 1%. To end: a suitably apt cliché:&lt;/p&gt;

&lt;blockquote style=&quot;text-align: center; margin: 0; font-size: 2em; font-family: Georgia&quot;&gt;&quot;A minute to learn... a lifetime to master&quot;&lt;/blockquote&gt;
    </content>
  </entry>
  
  <entry>
    <title>My quirky, slightly odd obsession</title>
    <link href="https://samdking.co.uk/blog/my-quirky-slightly-odd-obsession/"/>
    <updated>2011-09-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-quirky-slightly-odd-obsession/</id>
    <content type="html">&lt;p&gt;Hi, I&#39;m Sam, and I like boxes.&lt;/p&gt;
&lt;p&gt;Everyone has some quirk in their personality that other people will look at you in a strange way upon discovery. Mine - is boxes.&lt;/p&gt;

&lt;p&gt;I like technology, and technology always comes in a box. If it weren&#39;t for space constraints, I&#39;d probably still have every box anything I&#39;ve ever bought came in. In my defence:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What if I want to sell it later on?&lt;/li&gt;
  &lt;li&gt;The box holds the memory of the joyful day the product entered my life&lt;/li&gt;
  &lt;li&gt;I love the compactness and uniformity of boxes. The ultimate stackable item. Hours of Tetris fun right there.&lt;/li&gt;
  &lt;li&gt;Plus, &lt;a href=&quot;https://samdking.co.uk/tag/apple/&quot;&gt;some companies&lt;/a&gt; make a real effort with the packaging of their products; it just seems a damn shame to chuck it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It might be dull, but it&#39;s a harmless, yet practical obsession.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>&quot;We&#39;ve been scrolling back to front&quot;, Apple declares</title>
    <link href="https://samdking.co.uk/blog/weve-been-scrolling-back-to-front-apple-declares/"/>
    <updated>2011-08-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/weve-been-scrolling-back-to-front-apple-declares/</id>
    <content type="html">&lt;p&gt;One of the most notable points Mac users have latched onto when testing out Apple&#39;s new OS release, &lt;strong&gt;Lion&lt;/strong&gt; is the fact that Apple have decided we&#39;ve been scrolling the wrong way all this time. It&#39;s an interesting topic of discussion, and one that the majority have taken an opposing position on.&lt;/p&gt;
&lt;p&gt;It&#39;s obvious Lion has taken many cues from iOS - the mobile/tablet operating system that features on Apple&#39;s iPhones, iPod touches and iPads - with Launchpad, &quot;invisible&quot; scrollbars and in the redesign of several built in Mac applications. The most obvious UI similarity, though, is the decision to flip what Apple considers to be the &quot;natural&quot; way of scrolling.&lt;/p&gt;

&lt;p&gt;This is a no-brainer on the iOS touch devices. Drag the content up and the content essentially shifts up, revealing more information further down the page. Swipe down and you&#39;re pushing the content down, to see more at the top. This works because it&#39;s the exact behaviour we&#39;d use if we were to &quot;flick&quot; a physical (albeit, long) sheet of paper. However, on non-touch devices, i.e. the PCs we&#39;ve been using for decades, it&#39;s not quite the same. Apple, on the other hand, are now proclaiming they&#39;re all the same, and thus all require the same user interface interaction.&lt;/p&gt;

&lt;p&gt;It&#39;s easy to see both sides of this argument but until you really try for yourself, it&#39;s very difficult to decide for yourself. Personally, I&#39;m yet to upgrade to Lion - for no particularly good reason - however, I&#39;ve been putting my Mac running Snow Leopard through its paces with a little application called &lt;a href=&quot;http://pilotmoon.com/scrollreverser/&quot;&gt;Scroll Reverser&lt;/a&gt; enabled. Whilst not an exact copy of Lion&#39;s UI interactions (it doesn&#39;t bounce when you hit the top and bottom of the page), it offers a pretty realistic Lion experience.&lt;/p&gt;

&lt;p&gt;I&#39;ve got to say, whilst being a tad sceptical at first, I&#39;m warming to Apple&#39;s way of thinking. After about a month of use, it does almost feel a natural way of scrolling; I don&#39;t even have to think about it any more. it&#39;s fascinating how quickly one can get used to what is essentially a 180° change in the way we interact with our computer.&lt;/p&gt;

&lt;p&gt;Of course the issue still remains of compatibility when working on multiple machines. I, for example, work on a Windows 7 equipped PC at work, with a bog-standard scroll-wheel mouse. Interestingly, I have been able to jump between my work and home machines without difficulty. Something I put down to the big difference in interaction between a scroll-wheel and the Apple Magic Mouse. But this is definitely something to think about and something that is likely to be personal preference when considering whether to adopt Apple&#39;s new methodology.&lt;/p&gt;

&lt;p&gt;My advice: be open minded, give it a go for at least a week. It might surprise you as it did me.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>London Riots</title>
    <link href="https://samdking.co.uk/blog/london-riots/"/>
    <updated>2011-08-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/london-riots/</id>
    <content type="html">&lt;p&gt;Rioting has gripped the capital of the UK over the past 3 days, seemingly following the shooting of a 29 year old man from Tottenham, London. The spread of violence doesn&#39;t appear to be slowing down, and has now spread as far as Birmingham.&lt;/p&gt;
&lt;p&gt;I can do nothing more than reiterate the voice of the masses in showing my absolute shock and disbelief at what is unfolding in our capital. Large groups of what has been identified as mostly youths have spread havoc in the form of violence, looting and arson. It hasn&#39;t been fully identified yet as to the reason why these riots are occurring, but there is certainly no justification for the events that are currently unfolding.&lt;/p&gt;

&lt;p&gt;The youth of today are destroying their own city; livelihoods, family businesses, even homes. These thugs are spreading mercilessly through greater London, causing immense levels of damage, disturbance and distress amongst residents and local business owners. Shops are being smashed, stripped of their goods, and then burned to the ground; the perpetrators showing no regard for anyone but themselves.&lt;/p&gt;

&lt;p&gt;The biggest concern at the moment is containing the violence, with the police being stretched to maximum capacity across London and wider areas. But after this violence has passed, many questions will need to be asked as to what could&#39;ve provoked so many people to cause so much distress to so many peoples lives.&lt;/p&gt;

&lt;p&gt;Not only do I feel ashamed to be a part of this generation, but to be British at all. Perhaps the bigger question though is what has become of the human race; that some of us are hell-bent on destroying the society that so many have worked so hard to create.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Commuting</title>
    <link href="https://samdking.co.uk/blog/commuting/"/>
    <updated>2011-07-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/commuting/</id>
    <content type="html">&lt;p&gt;I&#39;ve never really had what you might call a &quot;long&quot; commute to my place of work. I&#39;ve had around half a dozen jobs, in some form or another, and the furthest commute I&#39;ve had has been a combination of a 30-minute walk and 20 minute train ride, when I was down in Southampton. My current commute, since moving to the centre of Brighton at the beginning of this month, now stands at around a 4-minute walk. The shortest, and sweetest yet.&lt;/p&gt;
&lt;p&gt;Considering the millions of people in Britain alone that commute for over an hour to work every day - and have grown to &lt;del&gt;loath&lt;/del&gt; accept it - a short commute is an underrated marvel.&lt;/p&gt;

&lt;p&gt;It&#39;s great to sit down at my desk in the morning and feel as fresh as I did when I left my flat, 5 minutes earlier. The idea alone of sitting in a traffic jam, crammed in a packed train or cycling a mini-marathon to work every morning makes me appreciate my situation even more. Perhaps the biggest perk of all though is the time I can take back; that precious extra half hour in bed in the morning and the added time in the evening for pursuing more interesting exploits.&lt;/p&gt;

&lt;p&gt;The trend amongst our workforce today of living outside the city in so-called &quot;commuter towns&quot; and travelling in to work every day is adding undue strain to our already heaving global environmental problem. But it&#39;s so widely accepted these days, that people don&#39;t even tend to question it any more. Leaving the house at 7 in the morning and returning after dark is something that a lot of city folk have come to accept as part of their 5-day working week.&lt;/p&gt;

&lt;p&gt;The concept of commuting comes from the growth of &quot;business centres&quot; in the big cities; that, whilst offering jobs to hoards of skilled professionals, simultaneously forces these people into taking residence outside the city. Until a more even dispersal of jobs around the country can be achieved, the only option is to force people to commute.&lt;/p&gt;

&lt;p&gt;For me, this is the major turn-off of working in London. Granted the money is better, but at what cost to your quality of life? The lures of the big city will probably at some point prove too tempting; &lt;a href=&quot;https://samdking.co.uk/blog/nyc/&quot; title=&quot;New York&quot;&gt;New York City&lt;/a&gt; being the primary long-term destination of choice. But until then, I love the flexibility working in Brighton offers me. Shorter commutes = happier employees, happier people.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>What did you expect from an album review?</title>
    <link href="https://samdking.co.uk/blog/what-did-you-expect-from-an-album-review/"/>
    <updated>2011-06-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/what-did-you-expect-from-an-album-review/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;The Vaccines&lt;/strong&gt;&#39; debut offering, &lt;strong&gt;What did you expect from The Vaccines?&lt;/strong&gt; came a little early on in the year to be dubbed the sound of the summer, but I&#39;d say the London 4-piece&#39;s 11-track, 36-minute album is a strong contender for the title. I&#39;m often a little hesitant throwing the world &#39;pop&#39; around, but I can safely say this is one of the best pop records I&#39;ve heard this year.&lt;/p&gt;
&lt;p&gt;There&#39;s nothing complicated with &#39;What did you expect...&#39;, it&#39;s just a fun album, with tune after tune, each snappier than the last. &lt;strong&gt;Wreckin&#39; Bar (Ra Ra Ra)&lt;/strong&gt; introduces the record; arguably the catchiest of them all, in under a minute and a half, with a brazen nod of the head to &lt;strong&gt;The Ramones&lt;/strong&gt;. &lt;strong&gt;If You Wanna&lt;/strong&gt; keeps the momentum rolling with the same bright, ferociously strummed guitar, disappointingly losing a little punk from the vocals.&lt;/p&gt;

&lt;p&gt;The album then seems to take an alternative route, with &lt;strong&gt;A Lack of Understanding&lt;/strong&gt;, &lt;strong&gt;Wetsuit&lt;/strong&gt; and &lt;strong&gt;Under Your Thumb&lt;/strong&gt;, whilst delivering notable, bouncing melodies, slow the pace down and at times you find yourself willing for the energy that Ra Ra Ra threw in your face. &lt;strong&gt;Norgaard&lt;/strong&gt; delivers all sorts of fun but, similarly, is over just a little too quickly. &lt;strong&gt;Blow it Up&lt;/strong&gt; brings an awesome combination of loud, meaningful vocals with equally punchy lead guitar. &lt;strong&gt;Post Break-up Sex&lt;/strong&gt; is a trip down teenage memory lane, with poignant, angsty lyrics and an hauntingly memorable chorus to boot.&lt;/p&gt;

&lt;p&gt;Family Friend is a top song to round-off the album. The slowest of them all, it patiently builds momentum to a minute-long crescendo of thumping percussion and shouted lyrics that would feel right at home on a festival stage this summer. The slowly strummed chords and chiming lead guitar and solid drumming makes this is a stand-out track, just begging to be played behind a slow-motion montage.&lt;/p&gt;

&lt;p&gt;This is an album that you feel like you &lt;em&gt;get&lt;/em&gt; within the first few listens. But really, you don&#39;t start appreciating its simplicity until the 10th or so effort. It is a repetitively consistent jollification of an indie pop record. And I&#39;m rating it thusly:&lt;/p&gt;

&lt;p&gt;Rating: 4/5&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Great Escape, Brighton</title>
    <link href="https://samdking.co.uk/blog/the-great-escape-brighton/"/>
    <updated>2011-05-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-great-escape-brighton/</id>
    <content type="html">&lt;p&gt;The Great Escape festival descended on Brighton this weekend. The festival, now in its 5th year, has grown rapidly and is now considered to be one of the best festivals for new music in Europe. I attended for the first time this year and was thoroughly impressed.&lt;/p&gt;
&lt;p&gt;The quality of music for the price is amazing. A 3-day ticket costed around £50 and gave you access to 3 full days of music across 25+ venues around the city. The great thing about a new music festival, compared to an established festival full of household names, is it forces you to try out new music and more often than not, leave you pleasantly surprised. An open mind is a must, but if you&#39;ve got one you will be rewarded greatly.&lt;/p&gt;

&lt;p&gt;London band &lt;strong&gt;The Vaccines&lt;/strong&gt; played out the Saturday night in the picturesque Corn Exchange, a large venue that the band managed to fill to the rafters with their inexplicably catchy breed of indie pop. Just before, in Coalition - a cosy seafront venue (&lt;a href=&quot;https://samdking.co.uk/blog/ratatat/&quot; title=&quot;Ratatat at Coalition, Brighton&quot;&gt;host to Ratatat in December, last year&lt;/a&gt;) Austin band &lt;strong&gt;White Denim&lt;/strong&gt; blew the audiences socks off with an hour-long set of psychedelic punky blues-infused rock. Unadorned, not a pair of skinny jeans in sight but bursting with original sounds and a modest air of confidence about them. I can see this band being big over in the UK in the next year. Just before them was new LA band &lt;strong&gt;Foster the People&lt;/strong&gt;, who&#39;s set I caught the end of. Two songs, including the brilliant new single &lt;strong&gt;Pumped up Kicks&lt;/strong&gt;, were more than enough to see this band has a lot of potential.&lt;/p&gt;

&lt;p&gt;Other highlights of the weekend include Canadian alternative art-rockers &lt;strong&gt;Braids&lt;/strong&gt;, San Franciscans &lt;strong&gt;EMA&lt;/strong&gt;, and Danish singer-songwriter &lt;strong&gt;Oh Land.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I&#39;m disappointed with the volume of music I ended up seeing over the two days, mainly due to alcohol consumption, but the quality was undeniable. A momentary black cloud at the end of the festival was the strict capacity allowances at the Corn Exchange. It meant I only got to see the final 20 minutes of The Vaccines&#39; set. Despite not being on stage till 11.30 on the Saturday night, The Vaccines had festival goers queuing outside the venue on a 1-in-1-out basis, reportedly from 9 o&#39;clock. When I eventually got in at midnight, I was outraged to see so much space in the venue still. It was, thankfully, short lived. But it&#39;s disappointing to know that some of the older venues have such strict policies with regard to numbers.&lt;/p&gt;

&lt;p&gt;Still, it didn&#39;t dampen an amazing weekend of live music and frivolities in an amazing city. Definitely worth going to again next year&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Catfish</title>
    <link href="https://samdking.co.uk/blog/catfish/"/>
    <updated>2011-05-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/catfish/</id>
    <content type="html">&lt;p&gt;I&#39;m fresh from watching Catfish on More4 this evening, a 2010 American Documentary film that follows the relationship between a 24-year old New York photographer and a 19 year old Michigan woman and her family over Facebook. I was intrigued by the trailer for this and knew it&#39;d be the sort of film I would enjoy. There&#39;s something about &lt;a href=&quot;/blog/the-social-network&quot; title=&quot;The Social Network Movie&quot;&gt;Facebook&lt;/a&gt; and the way it&#39;s changed the way we live our lives that I find fascinating.&lt;/p&gt;
&lt;p class=&quot;text-center&quot;&gt;&lt;strong&gt;Warning: Semi-spoiler alert&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I initially thought this film was a &quot;mocumentary&quot;; a staged, scripted documentary-style movie, but its makers stand by their &lt;a href=&quot;http://en.wikipedia.org/wiki/Catfish_%28film%29#Authenticity_questioned&quot; title=&quot;Catfish (film) - authenticity questioned&quot;&gt;claim of authenticity&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The main character (Nev) is instantly likeable, and you warm to him very early on. The first half of the movie gets to know the character of Nev, and his correspondences with Abby, a young talented painter, her mother Angela, and her elder sister Megan; all of whom live in Michigan. The film builds very well, and you feel like you really get to know the characters - a simple movie element that many modern films tend to skimp on.&lt;/p&gt;

&lt;p&gt;For a shaky, amateur-filmed, believably even script-less movie, the suspense built - with the slow realisation and final confrontation - is immense.&lt;/p&gt;

&lt;p&gt;But perhaps the most potent thing about this film is it &lt;em&gt;feels&lt;/em&gt; real. Facebook can literally give you any face you want, and provides anyone with the platform to create any person they want, or even a whole community of fabricated relationships.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>A Weekend of Sporting Achievement</title>
    <link href="https://samdking.co.uk/blog/a-weekend-of-sporting-achievement/"/>
    <updated>2011-04-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-weekend-of-sporting-achievement/</id>
    <content type="html">&lt;p&gt;It was weekend of achievement in the world of sport, on rather opposite ends of the spectrum, with the coveted Grand National on the Saturday and the Brighton Marathon following the day after. It was a weekend of firsts for me too, having made my first bet on a horse and spectating my first marathon. One of the events, however, left a rather bitter taste in my mouth.&lt;/p&gt;
&lt;p&gt;I&#39;ve never been at all bothered by the Grand National, I knew of it, but that was about as involved as I&#39;ve got previously. On a whim, I thought it&#39;d be fun to put a small token bet on one of the horses. It was, however. both my first and last bet on horse racing. Naively, I&#39;ve managed to avoid the truth about horse racing for most of my life, but I was appalled when I read into what the media does not tell you.&lt;/p&gt;

&lt;p&gt;The Grand National is a race that covers over 4 miles of track in total and is usually completed in around 9 minutes. The horses that take part, despite being in the peak of physical fitness, are forced to perform way beyond their natural capacity and are whipped repeatedly to encourage them to reach their target. As many as 5 horses are known to have died either during or in the run up to the race last year, with many more barely being reported. Two horses died &lt;em&gt;during&lt;/em&gt; Saturday&#39;s race at the weekend. As a strong believer in protecting the rights of animals, this shocked and appalled me. These animals died whilst being forced to perform to inexplicable and unnatural feats of stamina and agility and all in the name of sport. It saddens me that greed has taken over people&#39;s perceptions of right and wrong, especially when considering the welfare of helpless animals.&lt;/p&gt;

&lt;p&gt;In stark contrast, I was in absolute awe and amazement at the ability of every single competitor in the Brighton marathon on Sunday. The marathon is a 26-mile test of endurance and demonstrates the power and determination of the human body and mind to overcome such a challenge. I&#39;ve got into running over the past 6 months and although I am nowhere near good enough to compete in a marathon any time soon, I am majorly excited about the prospect of competing next year. The sense of achievement of training for months and running over the finish line after 4-5 hours of continuous running must be staggering.&lt;/p&gt;

&lt;p&gt;The juxtaposition between these events is all too clear. Horses are beautiful and loyal creatures, but when mixed with the capacity humans have towards greed, it has been turned into a barbaric sport. Conversely, the marathon is an immense personal challenge, no one is forced against their will to compete, and all money raised goes to good causes. There is just no comparison in terms of true sporting achievement.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Thomas-fox.co.uk V2 Goes Live</title>
    <link href="https://samdking.co.uk/blog/thomasfoxcouk-v2-goes-live/"/>
    <updated>2011-04-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/thomasfoxcouk-v2-goes-live/</id>
    <content type="html">&lt;p&gt;After &lt;a href=&quot;/blog/php-frameworks-mvc-and-the-rest&quot; title=&quot;PHP Frameworks&quot;&gt;a rather long time&lt;/a&gt;, I&#39;ve finally finished a stable version of the CMS I&#39;ve been building for the past 6 months or so. As it turned out, the first website to be built using it was a rather tiny portolio website for my good friend and upcoming artist extraordinaire &lt;a href=&quot;http://www.thomas-fox.co.uk&quot; title=&quot;Portfolio for self-taught Cambridgeshire artist Thomas Fox&quot;&gt;Thomas Fox&lt;/a&gt;, which, whilst clearly and concisely displays Tom&#39;s artwork, doesn&#39;t show off the strengths and flexibility of the CMS framework.&lt;/p&gt;
&lt;p&gt;I&#39;m quite proud of what I&#39;ve created, as it is designed to offer great flexibility, with much greater control over the website compared to traditional methods of web development. My new approach to web development treats a website as more of an entire well-oiled, communicating application rather than just a series of essentially unconnected webpages.&lt;/p&gt;

&lt;p&gt;It&#39;s something I definitely intend to develop over a long period of time, but I can say with confidence I have high aspirations in terms of its use in future web development. I&#39;m looking forward to putting it through its paces in a larger scale project. However, the next step is to rebuild this site using the framework, something I hope to implement in the next 6 months. I&#39;m also hoping to start documenting the code, and coming up with a well-formed user guide, similar to the excellently presented &lt;a href=&quot;http://codeigniter.com/user_guide/&quot; target=&quot;_blank&quot; title=&quot;CodeIgniter User Guide&quot;&gt;CodeIgniter docs&lt;a&gt;.&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The iPad</title>
    <link href="https://samdking.co.uk/blog/the-ipad/"/>
    <updated>2011-03-14T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-ipad/</id>
    <content type="html">&lt;p&gt;I was fortunate enough to be given an iPad recently. It&#39;s an intriguing device, but one that I wasn&#39;t particularly keen about getting my hands on. I&#39;ve been perfectly happy with my iPhone 4, and saw the iPad as not much more than a bigger iPhone. Despite this, I was certainly not going to turn down the opportunity of owning what has been dubbed a revolutionary device.&lt;/p&gt;
&lt;p&gt;It&#39;s such an overused cliche with the iPad, but it has to be said, the iPad&#39;s usability is nothing short of delightful. On pure tech specs, it isn&#39;t &lt;em&gt;much&lt;/em&gt; more than a large iPhone, but in reality the extra screen real estate turns this device into something totally different and a joy to use. A lot of people were disappointed when it first came out; some expected the power of a Macbook Air, but in tablet form. They can dream I suppose. To me, the iPad is everything I expected and could want in a device of this size and purpose. It does what the iPhone does, but delivers it to you with so much more of a punch that it makes you wonder how you read a book or navigated a website on the iPhone&#39;s 3.5&quot; screen.&lt;/p&gt;

&lt;p&gt;With that said, it&#39;s worth pointing out, the iPad, along with any device, is only as good as the applications you have on it. To get the most out of your iPad, it&#39;s important to ascertain what you really want out of it, and to fully equip yourself with those things. Otherwise, I fear, it could almost become obsolete and as soon as you get bored of your iPad, it will just become a cumbersome paperweight.&lt;/p&gt;

&lt;p&gt;I haven&#39;t really found my calling on the iPad yet, but until I do, I&#39;m content viewing websites, photos and videos on its gorgeous display.&lt;/p&gt;

&lt;p&gt;One point to note is a case is almost mandatory. I&#39;m yet to purchase one, and I feel overly cautious carrying the iPad around with me a the moment.&lt;/p&gt;

&lt;p&gt;I also feel, if given the choice, the 3G is infinitely more useful than the WI-FI only model. Having the ability to connect to the Internet from almost anywhere is the reason I love my iPhone so much and, really, the reason why these devices are so useful. My iPad doesn&#39;t have 3G, and when I first got it, I desperately sought to find out if I could use my iPhone&#39;s 3G connection when out and about. I was disappointed to learn this could only be achieved with a jailbroken iPhone; something I&#39;m a little skeptical about.&lt;/p&gt;

&lt;p&gt;But fear not, for Apple have come up with a solution, if a little half-baked. iOS 4.3 introduces Personal Hotspots - essentially turning your iPhone into a WIFI hotspot. Bitchin&#39;, right? Well, it would be, but unfortunately phone networks charge extra for this service; which, to me, leaves a bit of a sour taste in the mouth. However, it&#39;s something I will probably end up investing in, because it also gives access to a multitude of WIFI networks around the country, especially useful for when I have my laptop out and about.&lt;/p&gt;

&lt;h2&gt;What I think...&lt;/h2&gt;

&lt;p&gt;I believe the iPad to be the start of a change in modern personal computers. A lot of people slate Apple for holding back the potential of these multi-touch devices, that they try to control what can be done on them too much. This is true to a point, with the lack of customisability and the monopoly that is the App store and iTunes, currently the only way to download and add content to the devices.&lt;/p&gt;

&lt;p&gt;But this, in my opinion, is not a bad thing. An enormously large amount of PC-users today do not know how to use their PC, even to a tiny percentage of its capabilities. It&#39;s because of this that a lot of users struggle with - what should be - simple, enjoyable tasks like browsing the web, checking emails, editing and publishing photos, social networking, etc. Computers get viruses, they get sluggish and slow, and, generally, cause a lot more frustration than they should do. The iPad minimises the likelihood of going wrong; it guides you where you need to go.&lt;/p&gt;

&lt;p&gt;I commend Apple for trying to change the way everyday people carry out everyday tasks on their computers. There will always be powerful, complex computers available for carrying out professional, necessary tasks that many technical industries demand; but the iPad is a step in the right direction for personal home computing. For the masses, computers don&#39;t need to be complicated, and the iPad is the essence of simplicity and intuitiveness.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Strokes are back</title>
    <link href="https://samdking.co.uk/blog/the-strokes-are-back/"/>
    <updated>2011-03-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-strokes-are-back/</id>
    <content type="html">&lt;p&gt;The Strokes are back on the scene, five years after releasing their third album First Impressions of Earth. Their new record &lt;strong&gt;Angles&lt;/strong&gt; is out on the 21st of this month. Bizarrely, it will be out a day after in the US. I&#39;m personally quite apprehensive about it - given the two singles I&#39;ve heard off it. But, as with First Impressions, The Strokes are likely going to mix it up a bit from their previous record. It&#39;s definitely going to be one to look out for though.&lt;/p&gt;
&lt;p&gt;If you&#39;re interested in hearing snippets off the new album, check out &lt;a href=&quot;http://hypem.com/#!/search/the%20strokes/1/&quot;&gt;the blogs&lt;/a&gt;, they can&#39;t get enough.&lt;/p&gt;

&lt;p&gt;The New York quintet haven&#39;t changed a lot in half a decade; Albert&#39;s got a little less hair and Nickolai still looks strangely uncomfortable, but still one of the coolest bands on the block.&lt;/p&gt;

&lt;p&gt;The album&#39;s out in 2 weeks, and in the meantime, I&#39;m busying myself with the previous 3 albums and a bit of &lt;a href=&quot;http://samueldking.co.uk/blog/phrazes-for-the-young&quot;&gt;Julian himself&lt;/a&gt;, which sounds better than ever.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Come Fly with me</title>
    <link href="https://samdking.co.uk/blog/come-fly-with-me/"/>
    <updated>2011-02-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/come-fly-with-me/</id>
    <content type="html">&lt;p&gt;I&#39;ve always loved Little Britain for its daring and unique comedy. I think Matt Lucas and David Walliams are a comedy duo for the 21st century. Off the back of another hit series of Little Britain, Matt and David have brought out &lt;strong&gt;Come Fly With Me&lt;/strong&gt;, a &#39;Mockumentary&#39; comedy from the BBC, using the same award-winning sketch-driven format of Little Britain.&lt;/p&gt;
&lt;p&gt;The show is set in a generic airport which I think is a great idea off the bat. Airports contain so many different types of people and these are portrayed expertly by the duo. But the comedy genius comes, in abundance, from the zany characters&#39; interactions with the public; which, whilst being not quite as cringe-worthy and daring as Little Britain, is consistently hilarious.&lt;/p&gt;

&lt;p&gt;A few of the shows highlights, to name but a few, include Ian Foot - a racist bigot, hell bent on keeping Britain foreigner-free, Tommy Reid, a simple-minded man from Scotland who has dreams of becoming a pilot and Taaj Manzoor, a film-loving London boy who works as part of the FlyLo ground crew. The list is endless though, really. Every character is a hit.&lt;/p&gt;

&lt;p&gt;If you&#39;re a fan of Little Britain, &lt;a href=&quot;http://www.bbc.co.uk/programmes/b00trc9v&quot;&gt;this show is a must&lt;/a&gt;. Especially if you like airports. Like Little Britain, this show is so on the edge of what is considered acceptable TV viewing, it&#39;s almost over. But if you&#39;re not easily offended you might just find this programme a gem.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>SamuelDking.co.uk has changed servers</title>
    <link href="https://samdking.co.uk/blog/samueldkingcouk-has-changed-servers/"/>
    <updated>2011-01-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/samueldkingcouk-has-changed-servers/</id>
    <content type="html">&lt;p&gt;After almost 18 months, I&#39;ve finally bitten the bullet and invested in some paid hosting for my domain SamuelDking.co.uk. Simply enough, I&#39;m tired of constantly seeing &#39;Cannot connect to database&#39; messages when trying to view the site. The free hosting wasn&#39;t bad and did its job, but my new server should be a lot more reliable.&lt;/p&gt;
&lt;p&gt;The switch was fairly painless, but if you do find some inconsistencies with the new site, please let me know so I can fix it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>PHP, Frameworks, MVC, and the rest</title>
    <link href="https://samdking.co.uk/blog/php-frameworks-mvc-and-the-rest/"/>
    <updated>2011-01-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/php-frameworks-mvc-and-the-rest/</id>
    <content type="html">&lt;p&gt;I&#39;ve been rather busy the last couple of months having a go at building my own PHP CMS, modelled on the MVC design pattern. At &lt;a href=&quot;http://www.bozboz.co.uk&quot;&gt;work&lt;/a&gt;, I&#39;m currently using a rather large, feature-stuffed home-baked CMS, brewed in-house by our PHP freelancer. Learning the ins and outs of this system over the past 6 months has inspired me to have a go at building my own. Two months later and, well, I&#39;m still working on it. But I like to think it&#39;s certainly getting there.&lt;/p&gt;
&lt;p&gt;MVC - or &lt;a href=&quot;http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller&quot;&gt;Model View Controller&lt;/a&gt;, is a design pattern which encourages the separation of logic and markup. It&#39;s very popular amongst web applications and there are numerous frameworks out there that implement their own take on the MVC pattern. The idea of a CMS is not foreign to me, in fact this very blog is built on a rudimentary procedural-style CMS. However, I was interested in the MVC style of application and wanted to explore how it could be used to create a functional CMS. The main feature of the MVC approach, is all your deep application logic and inner-workings (PHP, MySQL, XML, etc.) can be kept completely separate to the display elements of the website (HTML, CSS,  javascript, etc.). This cuts down on code re-use significantly, promotes good organisation and above all, provides a clear and succinct view for the designers to work on.&lt;/p&gt;

&lt;p&gt;I&#39;ve always had a nasty habit of reinventing the wheel when it comes to coding, or creative things in general in fact; I have to know how something works before I feel comfortable using it. Having been coding PHP for many years, and dabbling in some more advanced object-oriented stuff - especially at work - I thought it would be a good idea to try making my own system. I wouldn&#39;t even want to guess how many hours I&#39;ve put into it so far, but I&#39;m still plugging away it and I&#39;m proud of what I&#39;ve got so far. I imagine it&#39;s the sort of project where I will be constantly making refinements and improvements in the future.&lt;/p&gt;

&lt;p&gt;This all started I suppose when a friend of mine, and skilled artist, &lt;a href=&quot;http://www.thomas-fox.co.uk/&quot;&gt;Thomas Fox&lt;/a&gt; came to me enquiring about a redesign for his Art portfolio. I jumped on it, banged out a few designs, but then got rather excited about the prospect of making a small gallery script to allow easy updating of the gallery. This idea got rather convoluted along the way, and somehow gave birth to the idea of making a whole CMS from scratch. I spent a bit of time studying a few of the packages out there - &lt;a href=&quot;http://www.codeigniter.com/&quot;&gt;CodeIgniter&lt;/a&gt; being the most helpful resource.

&lt;/p&gt;&lt;p&gt;Meanwhile, poor Tom is still awaiting a simple redesign - something I&#39;ve had to stick on the back-burner. But when I finally get round to building the website, I&#39;m intrigued to see how easy it will be to implement my new CMS into the website. I hope to get this up and running in the next few weeks, so stay posted if you&#39;re interested to see how it turns out.&lt;/p&gt;

&lt;p&gt;If that particular project is a success, I may attempt to convert this blog to the new CMS. With a big back-end change like that, however, you can probably expect a fair few front-end refinements too. A whole re-design perhaps. Eventually, the plan is to create a dedicated portfolio, running on the CMS.&lt;/p&gt;

&lt;p&gt;I&#39;m excited about 2011, I think it&#39;s going to be a good year. And while I mention it, Happy New Year!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>BRMC 1000</title>
    <link href="https://samdking.co.uk/blog/brmc-1000/"/>
    <updated>2010-12-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/brmc-1000/</id>
    <content type="html">&lt;p&gt;On Saturday 11th December at Brixton Academy, Black Rebel Motorcycle Club performed their 1000th show since forming in 2001. And they were flawless.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1293052032_1.jpg&quot; alt=&quot;Black Rebel Motorcycle Club&quot; width=&quot;100%&quot; /&gt;&lt;small&gt;Black Rebel Motorcycle Club, Brixton Academy, 11th December 2010&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;This band are amazing. Please see them live. Failing that, buy &lt;strong&gt;Howl&lt;/strong&gt;, followed by &lt;strong&gt;B.R.M.C.&lt;/strong&gt;, followed by &lt;strong&gt;Beat the Devils Tattoo&lt;/strong&gt;, followed by &lt;strong&gt;Baby 81&lt;/strong&gt;, followed by &lt;strong&gt;Take Them On On Their Own&lt;/strong&gt;. If you&#39;re still interested, pick yourself up a copy of &lt;strong&gt;The Effects of 333&lt;/strong&gt;. I&#39;ve yet to hear it, but I&#39;m sure it&#39;s worth a listen.&lt;/p&gt;

&lt;p&gt;It&#39;s not a great photo by any stretch of the imagination, but I thought it was the photo that captured the most atmosphere (and it is better than &lt;a href=&quot;https://samdking.co.uk/blog/the-motorcycle-club-of-black-rebels#content&quot;&gt;last time&lt;/a&gt;)&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Ratatat</title>
    <link href="https://samdking.co.uk/blog/ratatat/"/>
    <updated>2010-12-08T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/ratatat/</id>
    <content type="html">&lt;p&gt;I saw &lt;strong&gt;Ratatat&lt;/strong&gt; at the weekend, and, like a lot of artists in my music collection, they are a band I know due to a couple of songs I discovered by them years back. Ratatat were supporting &lt;strong&gt;Vampire Weekend&lt;/strong&gt; at the Brighton Centre last week (who I&#39;ll get onto shortly), and as much as I enjoyed Vampire Weekend, it was Ratatat who left me yearning for me. Luckily, I managed to get hold of last minute tickets to see the twosome performing again a few days later at a much more intimate venue. I was not disappointed.&lt;/p&gt;
&lt;p&gt;I should first mention Vampire Weekend were flawless. I&#39;m a big fan of both their two albums and it was a real treat to see them perform hit after hit. But to really appreciate a band live there needs to be just that little extra something that I failed to see with Vampire Weekend. Don&#39;t get me wrong, they were entertaining but they lacked any true live stage presence.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1291850443_2.jpg&quot; width=&quot;100%&quot; alt=&quot;Ratatat at Brighton Coalition&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ratatat owned the stage (which, coincidently, was delightfully tiny). As a guitarist myself I was in awe of the noises coming out of the Vox AC30 on the backline; almost synth-like, infinite sustain and bell-like clarity to every riff. And the use of a whammy pedal gives Ratatat their unique layered and harmonised sound. When the opening line to &#39;Seventeen Years&#39; began - arguably the bands best hit, the roof almost came off &lt;a href=&quot;http://www.drinkinbrighton.co.uk/coalition&quot; title=&quot;Brighton Coalition&quot;&gt;Coalition&lt;/a&gt;; It was quite special and highlighted the virtues of a small venue.&lt;/p&gt;

&lt;p&gt;Considering I turned up with the knowledge of only a handful of songs, I remained captivated for the duration of the gig and have duly added the first few albums to my Christmas list. Very impressed.&lt;/p&gt;

&lt;p&gt;On a similar note, I&#39;m seeing &lt;a href=&quot;https://samdking.co.uk/tag/blackrebelmotorcycleclub&quot;&gt;Black Rebel Motorcycle Club&lt;/a&gt; live for the second time this weekend. If they are half as good as they were last time I saw them, I&#39;m in for a treat!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>A Tourist in the Big City</title>
    <link href="https://samdking.co.uk/blog/a-tourist-in-the-big-city/"/>
    <updated>2010-11-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-tourist-in-the-big-city/</id>
    <content type="html">&lt;p&gt;In the second of tonight&#39;s posts, I want to get down a few more of my experiences from &lt;a href=&quot;/blog/nyc&quot; title=&quot;NYC Blog Post&quot;&gt;New York City&lt;/a&gt;. Something you can&#39;t really avoid when travelling - unless you are an extremely clued up type - is being a tourist; especially in a city the size of New York. In the post I describe what it&#39;s like being a tourist in NYC. I&#39;ve also included another of my photographic favourites taken in the city - you can check it out below.

On an entirely unrelated note, this is my 100th blog post!&lt;/p&gt;
&lt;figure class=&quot;text-center&quot;&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/1290557392_1.jpg&quot; alt=&quot;Charlotte in New York City&quot; class=&quot;w-full rounded-sm mb-3 drop-shadow-2xl&quot; /&gt;
  &lt;figcaption&gt;Waiting for a bus on the Upper East Side&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I love travelling and exploring new areas of the world. However, being a tourist sucks. Being a tourist means you don&#39;t know &lt;em&gt;where&lt;/em&gt; you&#39;re going, where is good to go, and finally when you do find this out, how best to &lt;em&gt;get&lt;/em&gt; there. And for some reason, wherever you are in the world - you can always spot a tourist. I guess the camera doesn&#39;t help, eh?&lt;/p&gt;

&lt;p&gt;Tourism is huge in New York; and for good reason. The majority of people in Manhattan at any time are visitors. Tourists are well catered for, with tour guides on every block, gift shops galore and easy access to all the sights New York has to offer. However I&#39;ve always been a firm believer in taking the root less travelled, &#39;off the beaten track&#39;, so to speak. As much as I am in awe of New York&#39;s breathtaking skyline and intricate architecture, there&#39;s something rather hollow about standing in a queue with a hundred others who are there for the exact same reason you are. Tearing up 80-odd floors in a matter of seconds in an elevator, whilst being an amazing feat, leaves me feeling somewhat underwhelmed and detached from the whole experience.&lt;/p&gt;

&lt;p&gt;However, by no means do I want to put people off these pleasures. There is certainly something to get out of these experiences and they are worth doing - if for nothing more than ticking them off your seen list. Also, if you do want to see the big attractions - Empire State Building, Rockafeller Centre, etc. - try hitting them after dark. The best experience I had when in New York was visiting Top of the Rock at around 8 o clock. There were only a dozen or so other people and the cityscape at night really takes your breath away.&lt;/p&gt;

&lt;p&gt;Although somewhat difficult in NYC, due to its size, I find the best way to see a city is just to wander. Plan a few must-see areas you want to see, plan how to get there, and just see what happens along the way. As soon as you move away from the tourist-centric areas, you start to really see what the city has to offer, and ultimately, what the city and people are really like.&lt;/p&gt;

&lt;p&gt;Sticking to the guidebook and seeing all the &#39;must-see&#39; places is great, and you feel like you&#39;ve covered the basics and seen what you should see, but it&#39;s just not possible to find the real gems when you&#39;re on holiday. And that, unfortunately, is the curse of being a tourist. New York City grabs you, gives you a tiny taster of what it has to offer, then leaves you wanting more. Sure is a fun ride though.&lt;/p&gt;

&lt;p&gt;As a footnote, with regard to finding my way around New York, I must commend the American way of doing things when it comes to the grid layout of Manhattan island. It&#39;s so damn logical it pains me to think of how we do it here in England. Everything North of Houston street (FYI, pronounced Howsten) is part of the grid layout.&lt;/p&gt;

&lt;p&gt;In the grid layout, horizontal roads are numbered streets; Vertical roads are known as avenues - for example, 1st Avenue, 5th Avenue, Park Avenue, Madison Avenue, etc., incrementing up from right to left. A &#39;block&#39; represents the distance between one street/avenue and another. This makes finding your way around a breeze, and you&#39;ll be surprised how quickly you start describing distances in blocks. However it does however come with the disadvantage of not getting anywhere fast. I found the system quite refreshing to use, as long as you&#39;re not in a hurry.&lt;/p&gt;

&lt;p&gt;Perhaps the most famous of roads in New York - Broadway - breaks the grid layout, running diagonally from left to right from the tip of the island to the bottom.&lt;/p&gt;

&lt;p&gt;Another aspect I love about the New York is the name of the different areas in the city. TriBeCa is duly named because it is a &lt;b&gt;tri&lt;/b&gt;angular shape area &lt;b&gt;be&lt;/b&gt;low &lt;b&gt;Ca&lt;/b&gt;nal Street. SoHo, is named as such, due to its position &lt;b&gt;So&lt;/b&gt;uth of &lt;b&gt;Ho&lt;/b&gt;uston Street. The small area North of Little Italy: Nolita. Not to mention the most obvious distinction of all: the island of Manhattan can be broadly split into two areas - Downtown and Uptown. I just love the simplicity.&lt;/p&gt;

&lt;p&gt;If you haven&#39;t read my introductory New York post and you&#39;re still thirsty, &lt;a href=&quot;https://samdking.co.uk/blog/nyc&quot;&gt;check it out&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>NYC</title>
    <link href="https://samdking.co.uk/blog/nyc/"/>
    <updated>2010-11-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/nyc/</id>
    <content type="html">&lt;p&gt;I&#39;ve decided to break my 20-day lull with a double-post. The posts are related, yet contradictory (I will explain). The first post for tonight will explain my absence. Or rather, the following photo will. I am proud to say I have now visited the place I consider to be the city of all cities; the big daddy of them all, New York City. In the second post I cover the topic of tourism, or rather, being a &lt;a href=&quot;/blog/a-tourist-in-the-big-city&quot;&gt;tourist in the big city&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1290542864_1.jpg&quot; alt=&quot;New York City from Central Park&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I&#39;ve been in awe of New York for as long as I&#39;ve been a fan of cities, but it really has to be seen to be appreciated. All of the hundreds of classic films and television shows that have been shot in city do not do it justice. Its immensity really has to be experienced first-hand.&lt;/p&gt;

&lt;p&gt;The photo above was actually the first photo I ever took in New York. Taken on a warm autumn evening, just as the sun was disappearing. I love the contrast of colours between the warm sun and the cool night sky descending on the city. And the preciseness of the reflections in their water made this photo an instant favourite for me. Experiencing this scene was my first taste of the diversity that New York has to offer. Here I was, standing in the picturesque gardens of Central Park, a serene lake in front of me, and beyond that; towering sky scrapers. It really is something.&lt;/p&gt;

&lt;p&gt;The thing I love about New York is you can&#39;t help but take everything in around you. There&#39;s something happening in every direction all the time, and just being there, really makes you feel like you&#39;re somewhere special. And the interesting this, it really doesn&#39;t hit you till you leave. In my situation, I returned to Brighton - a place I&#39;ve always considered to be fairly bustling and a happening place. Somehow in the five days I&#39;d spent there, New York had managed to render it a quiet seaside town. I&#39;ll quite happily admit, England really does pale in comparison. Looking up and just seeing sky seemed, for the first time in my life, just a little dull.&lt;/p&gt;

&lt;p&gt;30 years ago, New York City could almost be described as one of the crime capitals of the US, but due to the huge amount of tourism and Government initiative, New York has been transformed into a modern metropolis - and one of the safest in America. But even with the lighting fast pace that New York transforms itself (Lower Manhattan - the target of the 9/11 terrorist attacks - being a prime example of its growth), it still manages to preserve its classic kooky vibe that made New York such a city of culture back in the 20th century.&lt;/p&gt;

&lt;p&gt;It wouldn&#39;t be right not to mention the amazing indie-rock music scene that has emerged from New York. Some of my favourite bands in fact - Interpol, The Walkmen, The Strokes, Vampire Weekend, LCD Soundsystem, TV on the Radio, The National - the list goes on.&lt;/p&gt;

&lt;p&gt;It&#39;s truly an inspiring city for music, not to mention architecture, history, and the performing arts. If you haven&#39;t been, I urge you to book a flight. From London, England, you&#39;re 7 hours away from the metropolitan experience of a lifetime.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://samdking.co.uk/blog/a-tourist-in-the-big-city&quot;&gt;Read the follow-up to this post&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Black Keys</title>
    <link href="https://samdking.co.uk/blog/the-black-keys/"/>
    <updated>2010-11-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-black-keys/</id>
    <content type="html">&lt;p&gt;I write this on the train back to Brighton from London after an evening being entertained by funky blues rockers &lt;strong&gt;The Black Keys&lt;/strong&gt;. I can&#39;t say I was overly keen on the duo before tonight, having only heard a handful of songs. And even now, with their latest album &lt;strong&gt;Brothers&lt;/strong&gt; sounding in my ears, on record I can&#39;t say I&#39;m particularly enamoured with them. Live, on the other hand they&#39;re a different ballgame.&lt;/p&gt;
&lt;p&gt;This, of course isn&#39;t a bold statement and one I&#39;ve made many a time. But it has to be said, the Black Keys just sound entirely different in a live setting. The pounding drums contribute so much more to the feel of every song than they ever did on any recording. And whilst the guitar often sounds weak and lacking any real oomph on the records, it just rips through the mix live and it astounds me how frontman Dan Auerbach can make his single guitar sound like three.&lt;/p&gt;

&lt;p&gt;The black keys blazed through their set consisting mainly of songs from their current album. I was disappointed to not hear my favourite Hold Me In Your Arms but I left feeling wholly satisfied with no complaints.&lt;/p&gt;

&lt;p&gt;Notable mention should go to The Walkmen who I was very impressed with, especially given their support status. I&#39;ve been a fan of the Walkmen for sometime and am definitely considering getting tickets for their London show in January of next year. I&#39;m spoilt for choice for live music in the upcoming months. Next month I have tickets for Black Rebel Motorcycle Club and Vampire weekend and I have Two Door Cinema Club to look forward to in 2011.&lt;/p&gt;

&lt;p&gt;Watch this space for pictures.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Event &amp;amp; Logo Design</title>
    <link href="https://samdking.co.uk/blog/the-event-and-logo-design/"/>
    <updated>2010-10-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-event-and-logo-design/</id>
    <content type="html">&lt;p&gt;It would be quite easy to lump NBC&#39;s new show &#39;The Event&#39; into the fairly standard FBI &#39;big secret&#39; American format of television show, à la &lt;a href=&quot;/tag/flashforward&quot; title=&quot;Blog entries about Flash Forward&quot;&gt;Flash Forward&lt;/a&gt;. It may be a little too early to judge how this programme will play out, although similarly to Flash Forward, 3 episodes in and it has left me hungry for more.&lt;/p&gt;
&lt;p&gt;The Event is being shown by Channel 4 and is available on 4OD. For a change, Britain is only 2 or 3 episodes behind the US.&lt;/p&gt;

&lt;p&gt;I also wanted to draw attention to the show&#39;s logo, stylised THE EVƎNT. I like it, although I may have shaved off the small amount of black on the left side, emphasising the letter &#39;T&#39;.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
   &lt;img src=&quot;https://samdking.co.uk/images/1288481786_1.jpg&quot; alt=&quot;The Event Logo&quot; width=&quot;400&quot; style=&quot;display: block; margin: 0 auto&quot; /&gt;
   &lt;small&gt;Image courtesy of Wikipedia&lt;/small&gt;
&lt;/p&gt;

&lt;p&gt;The design of logos has always been somewhat of a weak point in my arsenal and something I&#39;d love to be good at. In the media today, logos are perhaps &lt;em&gt;the&lt;/em&gt; most important aspect of a brand&#39;s identity, and whilst I&#39;m confident in my website design ability, logo design remains a bit of a grey area in my skills.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Social Network</title>
    <link href="https://samdking.co.uk/blog/the-social-network/"/>
    <updated>2010-10-21T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-social-network/</id>
    <content type="html">&lt;p&gt;I haven&#39;t been looking forward to a film as I have The Social Network for quite some time. From the moment I first saw the familiar white lettering on the blue background I was intrigued. Don&#39;t get me wrong, I&#39;m no Facebook junkie; sure I &lt;a href=&quot;/tag/facebook&quot; title=&quot;Blog posts about Facebook&quot;&gt;blog&lt;/a&gt; about it now and again and I&#39;m on it every day (but who isn&#39;t these days). But I think it&#39;s more the awe-inspiring story of the 26-year old billionaire that had the idea that gets me.&lt;/p&gt;
&lt;p&gt;For starters, I thought the film was great. It was everything I expected it to be and I thought the portrayal of the inception of Facebook was as enlightening as it was exciting. It&#39;s truly amazing to see how an idea that started in the head of a young student can develop into something so universal. As feeble as it is to say, I believe Facebook has defined the past decade, and has changed the Internet and the way we use it for good.&lt;/p&gt;

&lt;p&gt;Personally, I take huge inspiration from films like The Social Network. I&#39;m no computer programmer, and am not deluded enough to believe I can come up with the next Facebook, but if I were to take one thing from this film, it&#39;s that a creative mind can go a long way.&lt;/p&gt;

&lt;p&gt;As a closing comment, I thought the lead Jesse Eisenberg was excellent in this film. His dry wit and quick comebacks made this film and made it thoroughly enjoyable from start to finish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rating: 4/5&lt;/strong&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>(Not so) Hidden iPhone Feature</title>
    <link href="https://samdking.co.uk/blog/not-so-hidden-iphone-feature/"/>
    <updated>2010-10-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/not-so-hidden-iphone-feature/</id>
    <content type="html">&lt;p&gt;If, like me, you often find yourself reading an article on your iPhone in bed, it can be a little annoying when you&#39;re on your side and the iPhone&#39;s accelerometer tries to compensate by changing the orientation and going into horizontal mode. For about 2 months now I&#39;ve put up with it, assuming it was a feature Apple have chosen to lock down, with Jailbreaking being the only option. And after 5 minutes of Googling, it looked to be so.&lt;/p&gt;
&lt;p&gt;But it seems as of iOS 4.0, Apple have provided an option (albeit, a rather hidden one) to lock the iPhone into portrait orientation mode. Perfect for when you&#39;re on your side reading an article and you don&#39;t fancy straining to read text on the screen at an obscure 90-degree angle.&lt;/p&gt;

&lt;p&gt;If, like me, you had no idea this option existed then wonder no more. Here&#39;s a step-by-step:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Double-click the menu button to bring up with the quick-view menu*&lt;/li&gt;
&lt;li&gt;Swipe to the left, bringing up the control menu**&lt;/li&gt;
&lt;li&gt;On the right is the iPod button, in the middle are controls for the iPod, and the furthest left button is the gem you&#39;re looking for.&lt;/li&gt;
&lt;li&gt;Press it to toggle between the locked and unlocked portrait orientation mode.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;* I have no idea if this is the official name&lt;br /&gt;
** Again, who knows how official this terminology is&lt;/p&gt;

&lt;p&gt;A hardly life-saving snippet, but for me, a rather useful one to know.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Quick Timeline Fix - MySQL Error</title>
    <link href="https://samdking.co.uk/blog/quick-timeline-fix-mysql-error/"/>
    <updated>2010-10-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/quick-timeline-fix-mysql-error/</id>
    <content type="html">&lt;p&gt;It&#39;s taken me far too long to figure this bug out, but I&#39;m pleased to announce I&#39;ve finally nipped it in the bud. For as long as version 2 of this blog has been in place, the timeline hasn&#39;t always worked as it should. To summarise, for those who haven&#39;t noticed, clicking on a date in the timeline that should show the blog(s) posted on that day, often came up with &quot;0 entries posted on...&quot; - when clearly the timeline shows otherwise.&lt;/p&gt;
&lt;p&gt;Eventually I realised this is due to the timezone compensation I made in the PHP coding across the site. Unfortunately this change wasn&#39;t reflected in the MySQL responsible for grabbing the blog entry out of the database. So, often, the actual date the blog post was posted on and the date the MySQL thought it was posted on were conflicting.&lt;/p&gt;

&lt;p&gt;To ensure the dates generated by PHP on the site were in GMT (my time), I used the following code:&lt;/p&gt;

&lt;code&gt;
date_default_timezone_set(&quot;Europe/London&quot;);
&lt;/code&gt;

&lt;p&gt;The reason for having to explicitly state the timezone was due to the server being hosted in the US, who are obviously on a different timezone.&lt;/p&gt;

&lt;p&gt;To change the timezone in MySQL was a little trickier. The following code will do it:&lt;/p&gt;

&lt;code&gt;
mysql_query(&quot;SET time_zone = &#39;+0:00&#39;&quot;);
&lt;/code&gt;

&lt;p&gt;The value of &#39;time_zone&#39; determines the GMT offset. By assigning it a value of 0, I am essentially setting it to GMT and overwriting any existing default values that may have been set by the server. This is all fine and dandy, except we&#39;re not currently on GMT, we&#39;re on BST (British Summer Time), which is GMT +1:00. Great, so I can simply change the value of &#39;time_zone&#39;, above, to &#39;+1:00&#39;. However, I really don&#39;t want to have to change this back to +0:00 at the end of the month when the UK returns to GMT, and then keep alternating for eternity; no, there must be a better way. And fortunately there is:&lt;/p&gt;

&lt;code&gt;
mysql_query(&quot;SET time_zone = &#39;&quot;. date(&#39;P&#39;).&quot;&#39;&quot;);
&lt;/code&gt;

&lt;p&gt;The PHP &lt;em&gt;date()&lt;/em&gt; function to the rescue. Using the &#39;P&#39; character in the format string of the &lt;a href=&quot;http://php.net/manual/en/function.date.php&quot;&gt;&lt;em&gt;date()&lt;/em&gt; function&lt;/a&gt; returns the difference to GMT of the current timestamp. As I&#39;ve already set the timezone in PHP to &#39;Europe/London&#39;, it knows that we are in BST. Therefore, &lt;code&gt;date(&#39;P&#39;)&lt;/code&gt; returns +1:00. When the UK changes back to GMT, &lt;code&gt;date(&#39;P&#39;)&lt;/code&gt; will return +0:00. Nifty, eh?&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Canned Laughter</title>
    <link href="https://samdking.co.uk/blog/canned-laughter/"/>
    <updated>2010-10-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/canned-laughter/</id>
    <content type="html">&lt;p&gt;I love comedy, it&#39;s all I really tune into on TV these days, with the possible exception of &lt;strong&gt;True Blood&lt;/strong&gt;. And after catching up with &lt;strong&gt;How I Met Your Mother&lt;/strong&gt; last night and catching the inexplicable &lt;strong&gt;Inbetweeners&lt;/strong&gt; tonight, there is something that puzzles me when it comes to comedy, especially when comparing shows either side of the Atlantic: why is &quot;canned laughter&quot; so often used?&lt;/p&gt;
&lt;p&gt;Friends &amp; How I Met Your Mother - two of my favourite comedies of all time - brilliant as they are - are both lessened by their use of &lt;a href=&quot;http://en.wikipedia.org/wiki/Laugh_track&quot; title=&quot;Wikipedia Article on Laugh Tracks&quot;&gt;laugh tracks&lt;/a&gt;. In my opinion there really isn&#39;t much use for it these days and can spoil the subtlety of humour in some cases.&lt;/p&gt;

&lt;p&gt;The Inbetweeners is a typical British comedy - in the sense that there is no recorded laughter;  although utterly atypical in its content. Its for both these reasons that I think this show is an absolute gem. There really is nothing else like it on Television, past and present, and I truly admire its bravado and daringness in its subject matter. This shows has balls and I challenge any person to watch this show without audibly cringing.&lt;/p&gt;

&lt;p&gt;It is &lt;em&gt;that&lt;/em&gt; bad; &lt;em&gt;that&lt;/em&gt; disgusting but easily that damn good.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Object Oriented Programming</title>
    <link href="https://samdking.co.uk/blog/object-oriented-programming/"/>
    <updated>2010-09-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/object-oriented-programming/</id>
    <content type="html">&lt;p&gt;When learning the ins and outs of web design, after learning the obligatory HTML and CSS,  the next logical step for most is learning a server-side language; the most popular choice being PHP. PHP opens up the possibilities of what can be acheived on a webpage and often bridges the gap between web &lt;em&gt;design&lt;/em&gt; and &lt;em&gt;web development&lt;/em&gt; for most.&lt;/p&gt;
&lt;a style=&quot;float: right; margin: 0 0 20px 20px&quot; href=&quot;http://www.amazon.co.uk/Objects-Patterns-Practice-Experts-Source/dp/143022925X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1285109915&amp;sr=8-1&quot; title=&quot;Amazon link to buy&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1285110097_1.jpg&quot; alt=&quot;PHP Objects, Patterns &amp; Practise&quot; style=&quot;display:block; border: none; width: 200px&quot; /&gt;&lt;/a&gt;

&lt;p&gt;I began playing with PHP a long time ago, doing simple things like showing the current date, including common header files onto a webpage and processing contact forms. PHP is a language that can be easily picked up and adopted by beginners. But nowadays PHP is considered a powerful language that&#39;s up there with the big boys like C++ and Java.&lt;/p&gt;

&lt;p&gt;One of the features that I&#39;ve never spent the time to learn is PHP&#39;s powerful object oriented capabilities. I&#39;m aware of the concept since studying Java at University and I&#39;ve adopted the approach when coding in ActionScript 3.0 for Flash; and it&#39;s something I&#39;ve been meaning to learn for a while. After taking on a particularly badly coded PHP project at work, featuring page upon page of badly coded, repetitive procedural-style PHP, I finally decided to grab a book on the subject of Object Oriented Design. After a bit of researching I ended up buying &lt;strong&gt;PHP Objects, Patterns and Practise&lt;/strong&gt;, a book by &lt;strong&gt;Matt Zandstra.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem with procedural code is it&#39;s very easy to write and for it to work. That&#39;s great when you&#39;re starting out, or even attempting more complicated things. But as a project gets larger and larger it can get harder and harder to maintain without accumulating vast amounts of code duplication and sooner or later bugs will creep in. It&#39;s for this reason an Object Oriented approach to programming is often preferred. The book goes into great detail about the benefit of using this method, and being only 50-or-so pages in, I&#39;ve still got a lot to learn. &lt;/p&gt;

&lt;p&gt;It&#39;s gonna be a steep learning curve; I&#39;m already a little confused with the nuts and bolts of using objects and all the theory that comes with it, however I&#39;m excited at the prospect of furthering my programming knowledge and learning an integral part of what programming is all about. &lt;/p&gt;
&lt;p&gt;If you&#39;re interested in purchasing the book, click on the book above to buy it from Amazon.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>One Window Web Development</title>
    <link href="https://samdking.co.uk/blog/one-window-web-development/"/>
    <updated>2010-09-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/one-window-web-development/</id>
    <content type="html">&lt;p&gt;A quick to post mention &lt;a href=&quot;http://www.panic.com/coda/&quot;&gt;Coda&lt;/a&gt;, from Panic: &#39;Shockingly Good Mac Software&#39;. With a company tag-line as confident and self-assured as that, it&#39;d be a shame not to check out this bit of software. In a nutshell, Panic develop web-based software for Macs. The particular bit of software I&#39;m interested in is &lt;em&gt;Coda&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Coda was designed with the average web developer&#39;s workflow in mind. I, myself, have found it frustrating in the past with the lack of seamlessness and fluidity when it comes to building websites. It&#39;s common to have 3-4 windows open at a time, all providing single tasks that is required when developing for the web. Coda&#39;s aim is to minimise these programs down into one manageable, all-in-one package.&lt;/p&gt;

&lt;p&gt;I&#39;m a little sceptical but also intrigued by this program. And helpfully, Coda offer a 14-day free trial to give it a go for yourself. Unfortunately, from what I&#39;ve heard, it can take a little longer to fully adjust your style of working to fully utilise Coda. However, there are generally positive reviews when it comes to using Coda so I may just take the plunge.&lt;/p&gt;

&lt;p&gt;It&#39;s interesting to see Coda has received an Apple Design Award - an accolade I&#39;ve never come across before, as well as a 5-star rating from MacUser.&lt;/p&gt;

&lt;p&gt;Coda costs $99, which - at today&#39;s conversion rates - comes to about £65.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Arcade Fire</title>
    <link href="https://samdking.co.uk/blog/arcade-fire/"/>
    <updated>2010-09-14T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/arcade-fire/</id>
    <content type="html">&lt;p&gt;I&#39;ve never been able to decide how much I like Arcade Fire. After hearing &lt;strong&gt;Rebellion (Lies)&lt;/strong&gt; back in 2005 I bought the album &lt;strong&gt;Funeral&lt;/strong&gt;. Despite enjoying a handful of tracks of it, I never really gelled with the album as a whole. Arcade Fire, in my opinion, have a particular style that I think you either like or you don&#39;t; and in that respect, I suppose I&#39;m in the former category.&lt;/p&gt;
&lt;p&gt;I wasn&#39;t particularly overwhelmed into purchasing the second album release from the band, &lt;strong&gt;Neon Bible&lt;/strong&gt;. Again, I&#39;ve heard a few songs off it, and although I do like the sound of the band, I can&#39;t see myself playing the album to death.&lt;/p&gt;

&lt;p&gt;But Arcade Fire have a new album out, titled &lt;strong&gt;The Suburbs&lt;/strong&gt;, and with it the single &lt;strong&gt;We used to wait&lt;/strong&gt;. It&#39;s the same old Arcade Fire, that&#39;s plain as day, but I do sense good things about this album, and it&#39;s certainly not without good reviews. I reckon I may just give this one a go.&lt;/p&gt;

&lt;p&gt;Also, check out the accompanying &lt;a href=&quot;http://thewildernessdowntown.com/&quot; title=&quot;Arcade Fire, the Wilderness Downtown&quot;&gt;cutting edge music video&lt;/a&gt; to the latest single, created using increasingly popular HTML 5 mark-up. Google Chrome is recommended to get the full experience. And once you&#39;ve wrapped your peepers round that, and if you consider yourself enough of a web geek, head on over and see more I-can&#39;t-believe-that&#39;s-possible-in-a-web-browser &lt;a href=&quot;http://www.chromeexperiments.com/&quot;&gt;Chrome Experiments&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Mountain Goats Live</title>
    <link href="https://samdking.co.uk/blog/the-mountain-goats-live/"/>
    <updated>2010-09-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-mountain-goats-live/</id>
    <content type="html">&lt;p&gt;I went to see The Mountain Goats at Koko in London last week, and after my last disappointment when &lt;a href=&quot;/blog/the-motorcycle-club-of-black-rebels#content&quot;&gt;photographing live music&lt;/a&gt;, I decided I would definitely try to get some snaps. Having recently purchased an iPhone, I decided I&#39;d put the camera through its paces. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1284213104_1.jpg&quot; width=&quot;100%&quot; alt=&quot;The Mountain Goats Live&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you ask any live music photographer they&#39;ll tell you a live music performance is a particularly tricky environment to photograph; flashing, fluctuating, often dim lighting, high contrast, no flash allowed, etc. Given this, the iPhone was never going to come up trumps, but I was pleasantly surprised with a few of the images I came away with. The iPhone may struggle to focus (exhibit A, above) and be majorly noisy in low light, but one thing it can capture on some level is the atmosphere.&lt;/p&gt;
&lt;p&gt;I really like the low-key, isolated feel of the above image. The warm gold light on the singer, John Darnielle - who was an excellent sport - provides just the right level of illumination, whilst the contrasting cooler stage lights above him help set the scene and create an almost extra terrestrial theme. &lt;/p&gt;

&lt;p&gt;The music was excellent that night. I got into The Mountain Goats back in my first year of University, and since then I&#39;ve acquired various other songs and have grown to like them even more. I actually saw this gig being advertised on Facebook - rare proof interest-specific advertising works, in my case. The venue was a great setting  and the crowd were really up for the show. In the final encore the band gave, the frontman John Darnielle hushed the crowd and sang, unmiked, California Song. It was a truly emotional moment.&lt;/p&gt;

&lt;p&gt;John Darnielle, writer of most of The Mountain Goats material is an amazing character with a truly unique singing voice. The Mountain Goats have over 20 studio albums under their belt, but if you want my concise recommendation - grab yourself a copy of &lt;strong&gt;The Sunset Tree&lt;/strong&gt; and &lt;strong&gt;Tallahassee&lt;/strong&gt;. &lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>My iPhone 4</title>
    <link href="https://samdking.co.uk/blog/my-iphone-4/"/>
    <updated>2010-09-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-iphone-4/</id>
    <content type="html">&lt;p&gt;Two posts within a week with an Apple tag - I&#39;m at risk of being dubbed a &lt;a href=&quot;/blog/why-creatives-use-macs#comments&quot;&gt;fanboy&lt;/a&gt; - although it seems I may have already adopted that status. Don&#39;t get me wrong though, I love reading comments, whatever the content! I intend to keep this iPhone 4 review succinctly short, as it is late, and because I really can&#39;t bare to read (let alone write) reviews that go on and on and on and on and on and on. I digress...&lt;/p&gt;
&lt;p&gt;There&#39;s really only a few points I want to make. Firstly - voice recognition. I must be really behind the times on this because I didn&#39;t quite realise the technology they&#39;ve put into phones these days. Holding down the menu button on the iPhone launches Voice Control - a funky little feature that responds to a host of different voice commands and does a reasonably good job of deciphering your words and translating them into actions. As a childhood admirer of Star Trek, I&#39;ve always been fascinated with voice recognition technology. And although we&#39;ve not created a system nearly as complex as the voice-activated central computer featured in Star Trek, we&#39;re certainly getting there.&lt;/p&gt;

&lt;p&gt;One thing I loved about setting up my iPhone was the seamless integration between it and my Mac. Obviously these devices are designed to play well together, but what I love is how much data can be shared between these devices. Previously, my Samsung phone and Macbook we treated very separately, and never really had much to do with each other. But now, I know my contacts, diary, music, videos, photos and documents are all now the same on both, and always up to date. This is something a lot of PC users with iPhones aren&#39;t able to fully take advantage of. I feel like I&#39;ve got a miniture (and albeit considerably stripped down) version of my main computer with my at all times, which is very reassuring. There&#39;s definitely something to say about using technology that was &lt;em&gt;made&lt;/em&gt; to go together.&lt;/p&gt;

&lt;p&gt;Despite the mass of flaming Apple received upon the release of the iPhone 4, I haven&#39;t had any connectivity issues with regards to the functionality of the side-mounted antenna. One ongoing issue I have with the phone, however, is the motion proximity sensor on the top of the phone. This is what the phone uses to determine whether the screen should be on or off. Logically, when the phone is by your ear, the screen should be off. Only by taking the phone a suitable distance away from your head should the screen come to life. Unfortunately the motion sensor can get a little confused on the iPhone 4, causing the screen to - often randomly - activate, giving your cheek full access to the mute, hold and Facetime buttons (amongst others), and most irritatingly, the big red Hang Up button. A quick Google search shows I&#39;m not the only person experiencing these issues; but luckily Apple has announced it plans to eradicate these problems in the 4.1 software update, to be releases soon apparently. Frustratingly, this hasn&#39;t been an issue on any of the previous iPhone models.&lt;/p&gt;

&lt;p&gt;Overall I&#39;ve been very happy with my iPhone purchase, and cannot foresee going back to - what I now refer to as - a &#39;normal phone&#39;. Having something in my pocket that can call, text, email, browse the web and so much more besides, and yet come in a thinner package than my previous &lt;em&gt;&#39;normal phone&#39;&lt;/em&gt; never ceases to amaze me.&lt;/p&gt;

&lt;p&gt;if I was at risk of being a fanboy prior to writing this, I can&#39;t imagine this has helped me an awful lot. But, quite frankly, Apple make some very nice products. And really, that&#39;s all that matters.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Why Creatives use Macs</title>
    <link href="https://samdking.co.uk/blog/why-creatives-use-macs/"/>
    <updated>2010-08-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/why-creatives-use-macs/</id>
    <content type="html">&lt;p&gt;People love to hate on Macs. A lot of &#39;PC&#39; users have never used a Mac and stubbornly put their foot down because they &quot;just don&#39;t get the hype&quot;. But the fact cannot be ignored, that in creative industries - print, graphic design and the web (to name but a few), Macs are always preferred.&lt;/p&gt;
&lt;p&gt;My current situation gives me a good viewpoint on the Mac vs. PC debate. I currently work as a web developer, and although it&#39;s not my number one choice, I do all my work on a Windows 7 machine. Any work or general browsing I do at home is on my late-2008 white Macbook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I prefer my Macbook.&lt;/strong&gt; Not a surprising statement, granted, but I hope to  explain my reasoning behind it. As I mentioned before, individuals working in the creative industry love their Macs, and - for me - the main reason for this is the beautiful rendering of web-pages. There really is no comparison between the rendering output between, say Firefox on a Mac compared to Firefox on a PC.&lt;/p&gt;

&lt;p&gt;I am always surprised by the visual difference after looking at webpages all day on a PC, to when I go home and visit the same websites on my Macbook. Typography is arguably one of the most important aspects of design - and indeed, the web. And Macs are miles ahead of PCs when it comes to typographic rendering. Text looks clearer, yet smoother and more organic. At the risk of developing a fanboy status, it really is a pleasure to browse the web on a Mac.&lt;/p&gt;

&lt;p&gt;The other difference I notice when surfing on my Macbook is the display (this is obviously not a Mac-specific factor, however I have yet to use a Mac whose display isn&#39;t pristine). The contrast and clarity I get on my 13&quot; Macbook display when compared to the 20&quot; Samsung monitor I have plugged into my machine at work is amazing. To give an example, I can plainly see the difference between #111111 and #000000 on my Mac. Something which I struggle to do at work. Whether this is purely down to the display, or whether the machine has anything to do with is something I can&#39;t speculate on. But I am always pleasantly surprised at the crispness and clarity of OS X on my Mac, when compared to the Windows operating system.&lt;/p&gt;

&lt;p&gt;I pride myself on my competence of using both operating systems, but since buying my first Mac, I think my allegiance lies solely in the corner of the Macintosh computer.&lt;/p&gt;

&lt;p&gt;In other news, my blog celebrated its one year anniversary yesterday. 87 blogs later and I&#39;m still going strong - albeit a little less frequently!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Facebook has made us flakey</title>
    <link href="https://samdking.co.uk/blog/facebook-has-made-us-flakey/"/>
    <updated>2010-08-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/facebook-has-made-us-flakey/</id>
    <content type="html">&lt;p&gt;I&#39;ve always silently despised the Maybe option when RVSPing to an event on Facebook. Why is it there? It&#39;s turning the &#39;Facebook generation&#39; into a fickle, undependable bunch of people.&lt;/p&gt;
&lt;p&gt;Remember the good old days of paper party invitations? You had to decide, firstly, am I available on this date, and secondly, do I want to go? Then you made the decision either way. And although your decision wasn&#39;t set in stone, you usually kept your promise.&lt;/p&gt;

&lt;p&gt;Nowadays, thanks to social media and the like, you receive an invitation, you give it the quick once-over, then you tap maybe, stick it on the back-burner, and before you realise, the event has passed. Thanks to Facebook, we no longer have to make the decision - we no longer have to think ahead to see if we&#39;re free, or even bother to decide if we want to attend said event. And more often than not, we&#39;ll flake on those barely-made plans.&lt;/p&gt;

&lt;p&gt;The other - equally frequent use for the maybe option on Facebook is to let a host down gently. You don&#39;t ever really see yourself attending said event, but you don&#39;t want the host to see their event isn&#39;t up to your standards; so you nonchalantly tap that maybe button. I mean, you &lt;em&gt;may just decide to go - &lt;/em&gt;for all they know. You, on the other hand, have already forgotten all about the event.&lt;/p&gt;

&lt;p&gt;I urge you, don&#39;t be a flakey maybe&#39;er. Be a man. Make a decision. Stick to it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Inception: The Dream World</title>
    <link href="https://samdking.co.uk/blog/inception-the-dream-world/"/>
    <updated>2010-07-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/inception-the-dream-world/</id>
    <content type="html">&lt;p&gt;I write this blog entry for several reasons. Firstly, the last time I blogged was the 13th July - well over 2 weeks ago. To say I&#39;ve become a bit lax is an understatement.&lt;/p&gt;
&lt;p&gt;I have recently started my new job, at bozBoz web design (The lovely guys there have mentioned me in the news section on their &lt;a href=&quot;http://www.bozboz.co.uk/news/web-design-jobs&quot;&gt;homepage&lt;/a&gt;). I&#39;m really enjoying it but it is hard work and after a full day of work - a practise I&#39;m still getting used to - I don&#39;t have much inclination to sit down and blog. I love the recent distinction made by &lt;a href=&quot;http://twitter.com/isayx3&quot;&gt;isayx3&lt;/a&gt; between blogging and doing homework. A comparison that seems oddly true a lot if the time. Isayx3 is one of a handful of photographers i follow online, via twitter and flickr.&lt;/p&gt;

&lt;p&gt;But I digress, I wanted to make this post in response to watching inception - twice (it&#39;s that good). Dreaming has always fascinated me, and inception was the perfect indulgence to my curiosity. If you haven&#39;t seen it yet, do, it&#39;s one of my favourite films of 2010.&lt;/p&gt;

&lt;p&gt;As a brief overview, inception follows an architect&#39;s struggle to prove his innocence and go back home. With a premise as vague and ambiguous as that it&#39;s probably fitting that I mention this struggle occurs both in reality and in various dreamworlds. Sound intriguing? It really is a thrill ride from start to finish.&lt;/p&gt;

&lt;p&gt;The idea behind inception is that you can design a dreamworld, many people can enter into it, and the content of the dream is generated by the dreamers subconscious. One fundamental ideology that stuck with me was the idea that you rarely know when you&#39;re dreaming, it only seems strange after you&#39;ve woken up. Leo dicaprio&#39;s character in the movie exploits this theory throughout, allowing him to fool people into thinking they&#39;re in reality, when in fact they are dreaming. The movie delves much further into this, including the definition of the act of inception, essentially, planting an idea into someone&#39;s head, via the dreamworld. And this is the basis of the movie and the reason why I find dreaming so fascinating.&lt;/p&gt;

&lt;p&gt;It&#39;s been a while since I&#39;ve seen a film that I&#39;ve been so fascinated by I&#39;ve wanted to see it again straight after.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rating: 4.5/5&lt;/strong&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>As much as I love Biffy Clyro...</title>
    <link href="https://samdking.co.uk/blog/as-much-as-i-love-biffy-clyro/"/>
    <updated>2010-07-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/as-much-as-i-love-biffy-clyro/</id>
    <content type="html">&lt;p&gt;I&#39;ve just finished watching the live feed of biffy&#39;s headline set at the iTunes festival and as much as i love the music the band produce, they lack something live.&lt;/p&gt;
&lt;p&gt;And as charismatic and unique a character as he is, I reckon the frontman simon Neil is the weak link. On record, simon Neil has an amazing voice, oozing with Scottish grit. But live, his voice is - well - nothing more than OK. It&#39;s an unfortunate by-product of the energy and enthusiasm he gives to every performance. No one can beat a guitar to death, entertain the crowd and pull off a flawless vocal performance. The backing vocals however, I thought were excellent.&lt;/p&gt;

&lt;p&gt;My other gripe is with his single coil equipped stratocaster; a fantastic guitar in it&#39;s own right, but with the excessive amounts of distortion to their sound they seem to favour live,  the result is a muddled inarticulate sound that more often that not gets lost in the mix. It&#39;s unfortunate because simon&#39;s playing in general is pretty tight.&lt;/p&gt;

&lt;p&gt;It does pain me to point out these faults because I love almost everything biffy clyro have put out. But what can I say? I&#39;m perhaps a little bored and in an overly critical mood.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>A fashion certainty</title>
    <link href="https://samdking.co.uk/blog/a-fashion-certainty/"/>
    <updated>2010-07-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-fashion-certainty/</id>
    <content type="html">&lt;p&gt;I don&#39;t pretend to know anything about fashion, nor care, but this summer there&#39;s something I want to put to men everywhere...&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1279050226_1.jpg&quot; alt=&quot;Shorts = yes, 3/4 Lengths = no&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&#39;Nuff said.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>A Nation Sighs</title>
    <link href="https://samdking.co.uk/blog/a-nation-sighs/"/>
    <updated>2010-06-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-nation-sighs/</id>
    <content type="html">&lt;p&gt;I&#39;m a little late off the mark on this one, I&#39;ve been away from home, in Essex for the past 2 days. The UK England have had a chance to morn the death of another failed England world cup campaign. Was it Capello&#39;s fault? Was it the players&#39; fault? Frankly there&#39;s been enough discussion over the past few days to form your own opinion. I&#39;ve always - perhaps somewhat naively - believed the players are the most important link in the winning chain, well above the manager; and I think this is true of England&#39;s World Cup exit.&lt;/p&gt;
&lt;p&gt;These players earn an exorbitant amount of money each year and they will readily admit they&#39;re getting paid this salary to do the thing they love, &lt;em&gt;play football&lt;/em&gt;. So how is it, if you give these players the biggest platform in the world to play on, with the biggest reward, they flop? Media pressure and expectation from the fans plays a big part in it. But I think the main reason, and as much as I hate to admit this, the England players just aren&#39;t as good as we make them out to be.&lt;/p&gt;

&lt;p&gt;The Premier League is dubbed one of the best leagues in the world, but English players are not in the majority - especially in the more successful teams - and haven&#39;t been for some time. The Premier League is heralded as one of the best, in my opinion, purely for its diversity of nationalities. With the exception of the most recent season, English teams do so well in the Champions League because World Class international players flock to them.&lt;/p&gt;

&lt;p&gt;Despite the confident football these English boys are producing and the goals they&#39;re knocking in at club level; take out the international element of skill and finesse and you&#39;re left with a half baked cake.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rooney - 26 goals for Man United&lt;/li&gt;
&lt;li&gt;Lampard - 22 goals for Chelsea&lt;/li&gt;
&lt;li&gt;Defoe - 18 goals for Tottenham&lt;/li&gt;
&lt;li&gt;Hell, Bent - 24 goals for Sunderland&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That&#39;s an impressive England tally, and yet out of the meager 4 goals we managed to net this World Cup, 1 was an own goal and 1 was scored by a defender. Wayne Rooney. Wayne, Wayne Rooney: Not very nice to hear your own fans booing you? They&#39;re booing because they paid an arm and a leg to fly to South Africa to see you score goals.&lt;/p&gt;

&lt;p&gt;But the final 16 knockout by Germany will - I imagine - be forever tainted with the 39th minute &#39;what if&#39; goal that never was. As unfair and crippling as it was to see the goal not given, I think it&#39;s very shortsighted to dwell on this as a reason we lost to the Germans. Yes, it &lt;em&gt;may&lt;/em&gt; have turned the game around and England &lt;em&gt;may&lt;/em&gt; have had more fortitude to go on and find a winning goal. But when all is said and done, we defended atrociously and the Germans capitalised. Football is, afterall, all about putting away your chances and the Germans did just that.&lt;/p&gt;

&lt;p&gt;Where do I stand on goal line technology? Bring it in. There&#39;s really not a good enough reason not to have it, in this day and age. We live in a technology fueled world; why should it be left out of the biggest sporting event in the world, leaving holes for injustices and forcing the officials on the pitch into making instant match-changing decisions. But, hey, at least &lt;a href=&quot;http://news.bbc.co.uk/sport1/hi/football/world_cup_2010/8771294.stm&quot;&gt;Blatter apologised&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The inaugural iPhone 4</title>
    <link href="https://samdking.co.uk/blog/the-inaugural-iphone-4/"/>
    <updated>2010-06-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-inaugural-iphone-4/</id>
    <content type="html">&lt;p&gt;Last month Apple announced the new iPhone, excitingly named the iPhone 4. I’ve always been aware and mildly interested in the iPhone phenomenon but I’ve never had the desire to jump feet first onto the bandwagon. The usability of the device has always seemed so different to anything I’ve owned in the past, most likely because I’ve never laid down more than £100 on a phone. But I figured it’s a piece of technology that will, in most cases, become second-nature in a short space of time.&lt;/p&gt;
&lt;p&gt;Up until now I’ve never had a big enough reason to push me into dropping the cash on an iPhone; but last weekend I was careless enough to lose my trusty, long-standing Samsung G600. I naively persuaded my conscience that this was fate telling me to succumb to Apple’s inhuman marketing magic, and buy an iPhone 4.&lt;/p&gt;

&lt;p&gt;There’s one niggle I have though, and I know I’m not alone in this. One of the biggest features of the new iPhone that Apple seem to be pushing is FaceTime: Apple’s take on video calling. That’s all well and good, but is it really necessary? Is there really any need to see the person you’re talking to? Isn’t that the joy of telephone conversation? The absence of appearance anxiety and self consciousness . The only time you’re going to be able to appreciate a video chat is when you’re comfortable, composed and in a happy mood, i.e. at home. NOT, as Apple suggests, when you’re out and about with only your phone to hand. With all that said, hypocritically I’m very interested to see how well it actually works.&lt;/p&gt;

&lt;p&gt;In addition to the numerous exciting features Apple have packed into this new device, they’ve managed to make the hottest gadget of the past decade even better looking. Personally, I love the look of this new iPhone, way more than the previous models.&lt;/p&gt;

&lt;p&gt;The only thing left to decide, is white or black, 16 or 32GB, and contract or SIMplicity. This could take some time.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Strokes Incognito</title>
    <link href="https://samdking.co.uk/blog/the-strokes-incognito/"/>
    <updated>2010-06-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-strokes-incognito/</id>
    <content type="html">&lt;p&gt;If you&#39;re a Strokes fan you may have noticed the strong rumour floating around the Internet yesterday that the band will be playing a secret gig in London under the guise &#39;Venison&#39;. The band haven&#39;t really been around since releasing their 3rd album &lt;strong&gt;First Impressions of Earth&lt;/strong&gt; in 2006 but have reportedly been back in the studio recently and are touring around the world in the upcoming months. I still regret not getting tickets for the &lt;a href=&quot;http://www.isleofwightfestival.com&quot;&gt;Isle of Wight Festival&lt;/a&gt; this weekend, where the band will be headlining.&lt;/p&gt;
&lt;p&gt;The Strokes are set to play an intimate gig tonight at &lt;a href=&quot;http://www.dingwalls.com/&quot;&gt;Dingwalls&lt;/a&gt; in Camden, London. According to Dingwalls, tickets sold in a matter of minutes, meaning the hours spent by my computer yesterday evening, refreshing, were disappointingly in vain.&lt;/p&gt;

&lt;p&gt;I can only imagine the electric atmosphere in the venue tonight, with fans desperate to be reminded of why they fell in love with The Strokes back in the year 2000; not to mention the prospect of hearing brand new material.&lt;/p&gt;

&lt;p&gt;Yes, I&#39;m disappointed I didn&#39;t manage to get tickets, but the real disappointment in events like this is the professional ticket touts, ruining it for true fans. Shortly after the tickets went on sale, pairs of tickets for the event were available on eBay for anything up to £400; which is beyond extortionate. It&#39;s just a shame this sort of thing exists; it&#39;s ruining music for the rest of us.&lt;/p&gt;

&lt;p&gt;I write this post with Hard to Explain blaring out my speakers and there&#39;s no denying, The Strokes are one of the most accomplished bands of the past decade and I can only hope one day I&#39;ll get the opportunity to see them live.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Flash Forward that will never be</title>
    <link href="https://samdking.co.uk/blog/the-flash-forward-that-will-never-be/"/>
    <updated>2010-06-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-flash-forward-that-will-never-be/</id>
    <content type="html">&lt;p&gt;After just watching the last &lt;em&gt;ever&lt;/em&gt; episode of Flash Forward I can&#39;t help but feel a little disappointed at its demise. Although apparently it&#39;s not a foregone conclusion that this show has received the dreaded axe; for, apparently, ABC has simply &#39;halted&#39; production of the second series. &lt;a href=&quot;http://samueldking.co.uk/blog/flash-forward-new-search-page&quot;&gt;I&#39;ve mentioned before&lt;/a&gt;, I like this show; and after seeing the finale of the first series, plenty more action is promised if there is to be a second series.&lt;/p&gt;
&lt;p&gt;As well as keeping me hooked throughout the series, Flash Forward has done a great job with &lt;a href=&quot;http://www.tunesonthetube.tv/FlashForward.htm&quot;&gt;music&lt;/a&gt; throughout the series. The finale was no exception; the creators chose a memorable song from a band I&#39;m rather fond of: &#39;The Funeral&#39; - Band of Horses. It&#39;s from the album &lt;strong&gt;Everything All The Time&lt;/strong&gt; and is definitely worth checking out.&lt;/p&gt;

&lt;p&gt;As a side note, I&#39;ve been wincing throughout the series at Sonya Walgner&#39;s tragic American accent. Sonya also plays the rather British Penny Widmore in Lost and is a true bred British actress. However, to my amazement (and lack of film knowledge), the actor who plays Sonya&#39;s on-screen husband, Joseph Fiennes, is in fact also British. All this time I thought he was just giving an intense over-acted performance that Christian Bale is famous for; when in fact he&#39;s just an innocent Brit trying his darndest to be a mean American FBI agent. Good for him.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Wavin&#39; Flag</title>
    <link href="https://samdking.co.uk/blog/wavin-flag/"/>
    <updated>2010-05-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/wavin-flag/</id>
    <content type="html">&lt;p&gt;Another brief post to bring to a certain song to everyone&#39;s attention. The song is Wavin&#39; Flag by K&#39;naan. You may have already heard it on the &lt;a href=&quot;http://www.youtube.com/watch?v=-M3Q54rPjQw&quot;&gt;Coca Cola World Cup advert&lt;/a&gt;, and it&#39;s also on the new Fifa World Cup 10 game. Basically, it rules. It&#39;s &lt;em&gt;the&lt;/em&gt; tune of the summer and most definitely the tune for this years World Cup.&lt;/p&gt;
&lt;p&gt;In other music news, I&#39;ve finally got my hands on the latest BRMC album, Beat the Devils Tattoo. It&#39;s definitely worth checking out if you&#39;re a fan. I&#39;ve only had it for a few days but it is yet to disappoint.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>To sum up...</title>
    <link href="https://samdking.co.uk/blog/to-sum-up/"/>
    <updated>2010-05-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/to-sum-up/</id>
    <content type="html">&lt;p&gt;A Busy schedule and broken Internet at home are poor excuses for not blogging. Time is of the essense, so I&#39;m delivering the briefest, most concise post yet; just as a way to quickly sum up the past week really. Here goes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I still haven&#39;t seen the finale of Lost. It&#39;s getting harder and harder to avoid having the ending spoiled.&lt;/li&gt;
&lt;li&gt;Could not be less excited about:
&lt;ul&gt;
&lt;li&gt;Big Brother&lt;/li&gt;
&lt;li&gt;Eurovision&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Looking forward to:
&lt;ul&gt;
&lt;li&gt;A lazy bank holiday weekend&lt;/li&gt;
&lt;li&gt;World Cup &#39;10&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Glee makes me all happy inside. And I&#39;m not ashamed to admit it.&lt;/li&gt;
&lt;li&gt;How I met your Mother fills me with equal amounts of joy.&lt;/li&gt;
&lt;li&gt;The Lady Boys of Bangkok left me feeling pleasantly surprised.&lt;/li&gt;
&lt;li&gt;I&#39;ve been living down in Brighton for less than 4 weeks; I&#39;ve gained the best part of a stone in weight. Go figure.&lt;/li&gt;
&lt;li&gt;I bought a &lt;a href=&quot;http://www.marshallamps.com/product_range.asp?productRangeId=19&quot;&gt;Mini Marshall amp&lt;/a&gt; last week. It&#39;s fun to go back to basics.&lt;/li&gt;
&lt;li&gt;I&#39;ve just ordered series&#39; 1, 2 and 3 of Gavin and Stacey on DVD for less than £20. Score.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How efficient. Might try this again.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Good music deserves good speakers</title>
    <link href="https://samdking.co.uk/blog/good-music-deserves-good-speakers/"/>
    <updated>2010-05-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/good-music-deserves-good-speakers/</id>
    <content type="html">&lt;p&gt;One of the first things I noticed when I first got a laptop was - plain and simply - the onboard speakers stink. However it seems a lot of people are satisfied with the tinny sounds these small computers put out. Which brings me onto the point of this post. You owe it to the musicians and artists who produce beautiful music to listen to it how it was meant to be listened to. Do your ears a favour and pick yourself up some speakers.&lt;/p&gt;
&lt;p&gt;Recording studios and setups are extensively large and complex for a reason - so the absolute best quality of sound can be captured. It all seems a little pointless to go to this effort if you&#39;re gonna play it through a 2-inch speaker and lose half the nuances and detail in the music. I think one of the greatest advantages a decent speaker lends to a piece of music is the low-end improvement. To hear the low frequencies (bass) in a piece of music, you need a large speaker. When listening to music through laptop speakers, sometimes the bottom end is completely lost, as the speakers just aren&#39;t capable of reproducing frequencies that low. &lt;/p&gt;

&lt;p&gt;The first time you plug into some proper speakers, you&#39;ll notice the huge increase in bottom end to your sound, which really helps to pad out, giving a much more rounded and full sound. It can breathe new life into even the most familiar songs.&lt;/p&gt;

&lt;p&gt;I mention this because my Apple earbud headphones have been on the way out now for some time, and I&#39;ve been considering replacing them with some decent &#39;over-the-ear&#39; sound-canceling headphones. I like the idea of occasionally being able to complete immerse myself in music, and being able to do this when - say - catching some rays in a park on a lazy summer day, makes it all the more appealing. &lt;/p&gt;

&lt;p&gt;I haven&#39;t been blogging much lately as I&#39;ve recently moved down to Brighton for my Internship. I&#39;ve been lucky enough to be given a room to stay in but as is to be expected, things have been a little hectic for the past week or so. However, I&#39;m hoping to get back on track soon.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>&quot;Just Photoshop it out. It&#39;s easy!&quot;</title>
    <link href="https://samdking.co.uk/blog/just-photoshop-it-out/"/>
    <updated>2010-05-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/just-photoshop-it-out/</id>
    <content type="html">&lt;p&gt;A website was recently brought to my attention - &lt;a href=&quot;http://www.clientsfromhell.net&quot;&gt;Clients From Hell&lt;/a&gt; - the name pretty much says it all. It features snippets submitted by designers who have had the disadvantage of working with less than desirable clients. It&#39;s certainly worth a read if you&#39;re a designer. I don&#39;t often rant about things, but there is a recurring theme throughout the articles that grinds my bones.&lt;/p&gt;
&lt;p&gt;Photoshop, or any other design software, is a tool; a creative tool. Just like a piano is a tool for a musician, or a typewriter or word processor is a tool for a writer. Without the creative input, it is nothing. And yet, this concept is hard to grasp for some people. Another recurring theme is the misconception that Photoshop is some magical program with no limits. Take these snippets for example:&lt;/p&gt;

&lt;div class=&quot;quotes&quot;&gt;
	&lt;p&gt;&lt;strong&gt;Client: &lt;/strong&gt;Ok, for my album cover I’ve got the perfect image. It’s my girlfriend, and she’s sitting on her bed in red lingerie with photos of me all over the place, and they’re all on fire, and she’s screaming as she tears up a photo of me and dumps it in a marble bowl.&lt;br /&gt;
	&lt;br /&gt;
	&lt;strong&gt;Me:&lt;/strong&gt; Er, okay, can you send me that image?&lt;br /&gt;&lt;br /&gt;
	&lt;strong&gt;Client:&lt;/strong&gt; No, you have to make it in Photoshop, ‘cause we broke up.&lt;/p&gt;
	&lt;p&gt;&amp;quot;I was wearing a red shirt and jeans in that video I sent you. Can you put me in a suit instead? It’ll look more professional.&amp;quot;&lt;/p&gt;
	&lt;p&gt;After handing me a picture, a client tells me, &quot;We love this picture, so just zoom it out a little and it’ll be perfect.&quot;&lt;/p&gt;
	&lt;p&gt;The art director blew his stack &quot;LOOK—THIS WON’T TAKE MORE THAN TWO HOURS!!&quot; And then he added &quot;I’D DO IT MYSELF IF I KNEW HOW TO USE PHOTOSHOP!!&quot;&lt;/p&gt;
	&lt;p&gt;&lt;strong&gt;Client:&lt;/strong&gt; Can you re-touch the hat off the man?&lt;br /&gt;&lt;br /&gt;
		&lt;strong&gt;Me: &lt;/strong&gt;Yes, what kind of hair would you like?&lt;br /&gt;&lt;br /&gt;
		&lt;strong&gt;Client: &lt;/strong&gt;You will see when you take the hat off.&lt;/p&gt;
	&lt;p&gt;&amp;quot;We don’t like the slideshow at the beginning of the movie. Can’t you turn the pictures into moving images?&amp;quot;&lt;/p&gt;
	&lt;p&gt;&amp;quot;We were thinking if you just photoshopped the lamp off the table, you’d be able to see the kids more clearly that are playing behind it.&amp;quot;&lt;/p&gt;
	&lt;p&gt;Email from client: I’ve attached an image. Could you make it HD and send it back? *attached jpeg with dimensions: 32px by 54px*&lt;/p&gt;
	&lt;p&gt;&amp;quot;Can you take this photo of me and my baby and rotate the baby so you can see more of his face?&amp;quot;&lt;/p&gt;
	&lt;p&gt;&amp;quot;You should know what I want! You’re the professional! Why are you asking me to design my own poster?  Just come up with something and stop wasting my time, I have far more important things to do being a director.&amp;quot;&lt;/p&gt;
	&lt;p&gt;&amp;quot;We need to see this person’s face [points to person in photo with their back to a camera]. You need to turn the person around 180 degrees.&amp;quot;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Because of the &quot;Photoshop culture&quot; we live in (see title) the misconception that Photoshop is some sort of easy automatic image manipulator seems to have formed. When in fact,  Photoshop is a software package whereby a large amount of skill and experience is required to produce anything of any real quality. As for the &amp;quot;magic&amp;quot; quality of being able to literally manipulate the scene of a photograph, well all I can do is laugh. It&#39;s pixels on a screen, people... pixels on a screen. Although it does set the mind wondering about possibilities in the future of multi-layered photographs, able to capture every conceivable detail in a scene. That in its self seems a long way off though.&lt;/p&gt;

&lt;p&gt;On another note, I&#39;m starting my internship at &lt;a href=&quot;http://www.bozboz.co.uk/&quot;&gt;BozBoz&lt;/a&gt; next week. Let&#39;s just say I&#39;ll be glad to be working with people who know what they&#39;re talking about.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Rebels release more dates</title>
    <link href="https://samdking.co.uk/blog/the-rebels-release-more-dates/"/>
    <updated>2010-04-29T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-rebels-release-more-dates/</id>
    <content type="html">&lt;p&gt;As a follow-up to my previous post urging you to experience Black Rebel Motorcycle Club live, I was eager to learn the band has announced more &lt;a href=&quot;http://www.ticketmaster.co.uk/Black-Rebel-Motorcycle-Club-tickets/artist/806799?tm_link=edp_Artist_Name&quot;&gt;dates&lt;/a&gt; at the end of the year. If you&#39;re even slightly in to this band, I urge you, book some tickets! You can do so from tomorrow (30th April). If you want to join me, I&#39;ll be booking up tickets for the London show at the Brixton Academy on the 11th December.&lt;/p&gt;
&lt;p&gt;The support band for this current leg of the tour, Dark Horses, have a free download up for grabs. This was the song they opened with and I think it&#39;s definitely worth a listen. Or at least a &lt;a href=&quot;http://darkhorsesmusic.com/rose.htm&quot;&gt;download&lt;/a&gt; ;)&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The joys of fast glass</title>
    <link href="https://samdking.co.uk/blog/the-joys-of-fast-glass/"/>
    <updated>2010-04-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-joys-of-fast-glass/</id>
    <content type="html">&lt;p&gt;To anyone who isn&#39;t a photographer, the title of this won&#39;t make a whole lot of sense. &#39;Fast glass&#39; refers to lenses with a large maximum aperture, or in number terms, a low f-stop. I&#39;ll explain in a little more detail later on. In the past, I&#39;ve talked about various photography topics including &lt;a href=&quot;/blog/why-you-want-a-dslr#content&quot;&gt;why you should get a DSLR&lt;/a&gt;, &lt;a href=&quot;/blog/the-bokeh-amp-the-rain#content&quot;&gt;achieving good bokeh&lt;/a&gt; and &lt;a href=&quot;/blog/the-arrival-of-the-cactus-v4s-my-new-photo-wall#content&quot;&gt;why you should use off-camera flash&lt;/a&gt;. This post is my attempt at persuading photographers to get their hands on some fast lenses. Why? Well why not continue reading...&lt;/p&gt;
&lt;p&gt;The reason why these particular lenses are called fast lenses is because of the large aperture, which in turn lets in a lot of light, allowing you to get away with faster shutter speeds. This is good for several reasons:&lt;/p&gt;

&lt;h4&gt;1) Soft, dreamy out-of-focus backgrounds&lt;/h4&gt;

&lt;img src=&quot;https://samdking.co.uk/images/1272297997_1.jpg&quot; alt=&quot;Charlotte on the Underground&quot; width=&quot;80%&quot; /&gt;

&lt;p&gt;Demonstrated by the lovely Charlotte, the picture above shows the effect of using a large aperture (f/1.8) and having your subject close to the camera. The result - very shallow depth of field. This allows for complete subject isolation from busy backgrounds. In this case, the background is rendered completely out of focus, resulting in a smooth pastel gradient, which really makes the subject pop out. This picture was taken on the London Underground, on an escalator and was post processed in Photoshop to give a desaturated reddish tint to the image.&lt;/p&gt;

&lt;h4&gt;2) Usable shutter-speeds in low light&lt;/h4&gt;

&lt;img src=&quot;https://samdking.co.uk/images/1272297997_2.jpg&quot; alt=&quot;Charlotte in the park&quot; width=&quot;80%&quot; /&gt;

&lt;p&gt;Another advantage to fast glass is the ability to shoot in low light. In the image above, again featuring our model Charlotte, it is late evening - around 8PM, and their isn&#39;t too much light to play with. I used the widest aperture available - f/1.8 - to let enough light in to give a hand-holdable shutter speed; in this case the camera metered 1/30th of a second. Because the subject was further away from the camera, the depth of field is larger; the background is still out-of-focus, however it is certainly discernible. The above image is unedited, except for the 16:9 crop.&lt;/p&gt;

&lt;h4&gt;3) Framing using a  narrow depth of field&lt;/h4&gt;

&lt;img src=&quot;https://samdking.co.uk/images/1272297997_3.jpg&quot; alt=&quot;Myself demonstrating thin depth-of-field&quot; width=&quot;80%&quot; /&gt;

&lt;p&gt;I touched upon this earlier, but given the very narrow depth of field that comes with using a large aperture, a combination of out of focus foreground and background elements can be used to frame the particular point of focus. In the rather flattering photo of myself above, I&#39;m demonstrating this fact. My face is in focus, but anything in front and behind me is rendered out-of-focus.&lt;/p&gt;

&lt;h4&gt;4) More accurate focusing&lt;/h4&gt;

&lt;p&gt;Due to the fact that fast lenses let in more light, this makes it easier for the camera to auto-focus in low-light situations. &lt;/p&gt;

&lt;h4&gt;5) Sharper images&lt;/h4&gt;

&lt;p&gt;Fast lenses are known for their superior image quality and sharpness, when compared to their slower counterparts. &lt;/p&gt;

&lt;h4&gt;Conclusions&lt;/h4&gt;

&lt;p&gt;So there we have it. 5 pretty decent reasons to look into some fast glass - no pun intended ;) There is of course one common drawback with fast lenses, and that is they&#39;re almost always more expensive than the equivalent slower lenses. But in my opinion, they allow for greater creativity when you&#39;re behind the camera, not to mention flexibility. And you wouldn&#39;t want to be responsible for stunting your own creativity now would you?&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Motorcycle Club of Black Rebels</title>
    <link href="https://samdking.co.uk/blog/the-motorcycle-club-of-black-rebels/"/>
    <updated>2010-04-25T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-motorcycle-club-of-black-rebels/</id>
    <content type="html">&lt;p&gt;Wow! Do these guys put on a show! On Friday night I went to see Black Rebel Motorcycle Club at the HMV forum in London. I wouldn&#39;t say I was a huge fan of this band prior to the event, but nevertheless I was looking forward to seeing some decent live music. Blown away would be an understatement! However good a band sounds recorded, they&#39;re really not worth their name in salt if they don&#39;t perform well live. Let me tell  you, if you haven&#39;t heard or seen this band live, they were undisputedly born to play live.&lt;/p&gt;
&lt;div class=&quot;fakeimage&quot;&gt;&lt;p&gt;Insert awesome front-row live image here&lt;/p&gt;&lt;p class=&quot;sorry&quot;&gt;(Sorry)&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;The graphic above should sum up the small bit of bad news I have to accompany this post. I was hoping to bring my camera along and get some decent shots of the band. Unfortunately, the D40 is considered too &amp;quot;professional&amp;quot; a camera, and therefore wasn&#39;t allowed to bring it into the arena. Bit of a disappointment for me, but by the end of their opener, &lt;strong&gt;War Machine&lt;/strong&gt;,  I was over it. I managed to get right to the barrier, prime photo position of course. And this was reiterated to me for the duration of the first three songs with around a dozen manic photographers snapping away at the band -  talk about rubbing it in. I did have fun identifying each individual camera and lens though. What? I&#39;m a bit of a geek.&lt;/p&gt;

&lt;p&gt;So the night was very much about the music, rather than the visuals. But suffice to say, the music did not disappoint. I&#39;ve been enjoying their recorded songs for a few years now, but seeing them live really brings it home just how good their music is. I really love the simplicity of each song. Many modern bands opt for the safe drums, bass, rhythm guitar, lead guitar setup. But BRMC do the job with just 3 guys, alternating between bass and guitar and the dual-guitar approach. It just works. Black Rebel have such a huge sound that there&#39;s no need for a 4th band member. Throw a harmonica into the mix and you&#39;ve got musical bliss. Something I didn&#39;t know before the gig was that the two frontmen interchange between vocals. It&#39;s a really refreshing setup and a pleasure to experience.&lt;/p&gt;

&lt;p&gt;As rock and roll as it might appear, my only qualm with the performance was the brutal destroying of a bass guitar towards the end of the show. I can&#39;t help but cringe every time I see it happen. Why waste a decent instrument? Tsk, these rock star types.&lt;/p&gt;

&lt;p&gt;I only have a handful of their songs across their six albums, but this i expect to change very soon. The difficult decision will come from which album to purchase first.&lt;/p&gt;

&lt;p&gt; I should give a small mention to the support act Dark Horses. It was unfortunate that they were supporting such a wall-of-sound style band like BRMC. The venue also didn&#39;t play host to their style particularly well, a smaller more intimate venue would have suited them much better. With that said, I enjoyed their music and I think I&#39;ll be buying their album to hear more. They just lacked any real impact and stage presence that Black Rebel oozed in abundance from their first song. I&#39;ve certainly heard worse support acts though.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Moving Pictures</title>
    <link href="https://samdking.co.uk/blog/moving-pictures/"/>
    <updated>2010-04-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/moving-pictures/</id>
    <content type="html">&lt;p&gt;They said a picture is worth a thousand words. If there&#39;s truth in that statement, video certainly has a lot to say, given film (as an example) is captured at 24 frames-per-second. My point?  As much as I love photography, I&#39;ve been fantasising recently about the virtues of video, and the advantages moving pictures have over their still counterparts.&lt;/p&gt;
&lt;p&gt;If you were to take an average 90-minute film and did the maths, you&#39;d be looking at the following equation:&lt;/p&gt;

&lt;p class=&quot;equation&quot;&gt;&lt;b&gt;24&lt;/b&gt; &lt;em&gt;frames&lt;/em&gt; x &lt;b&gt;60&lt;/b&gt; &lt;em&gt;seconds&lt;/em&gt; x 
&lt;b&gt;90&lt;/b&gt; &lt;em&gt;minutes&lt;/em&gt; = &lt;b&gt;129,600,000&lt;/b&gt; &lt;em&gt;words&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That&#39;s a lot of words. The figure is of course, irrelevant, but there&#39;s definitely something true in the statement. A photograph captures a moment in time. It is unnatural in this sense, after all, it is impossible to freeze time. For this reason, although a picture can tell a story, it is certainly limited to the information gathered in the split-second at which the photo was taken. Now, video on the other hand, well, that&#39;s a whole different ball game.&lt;/p&gt;

&lt;p&gt;Video is real life; it&#39;s what we see. But at the same time, it can be whatever you want it to be. You can make your own reality and I admire film makers and their amazing ability to create a visual feast for the eyes. Still photos can capture your attention, but only temporarily, for a short space of time. Video grabs your attention, pulls you in and keeps you there for as long as the artist requires.&lt;/p&gt;

&lt;p&gt;Although I often like to ramble on about some inane point, not really going anywhere in particular, there is a point to this post. I have a Nikon D40. Great camera, produces great pictures. But as you may have picked up from this post, I want more. The Nikon D90 is the D40&#39;s big brother. It does everything the D40 does, but better. And the pièce de résistance... it can capture HD video. Of course being primarily a still-camera, it&#39;s really nothing more than a bonus feature, and it certainly does have its drawbacks. But when used correctly, the D90 can produce stunning cinematic-esque video. And boy do I want it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>An interesting week in the Premier League</title>
    <link href="https://samdking.co.uk/blog/an-interesting-week-in-the-premier-league/"/>
    <updated>2010-04-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/an-interesting-week-in-the-premier-league/</id>
    <content type="html">&lt;p&gt;You can be excused for forgetting about a post I made over 6 months ago, &lt;a href=&quot;http://samueldking.co.uk/blog/premiership-predictions#content&quot;&gt;predicting&lt;/a&gt; how this season would pan out in the Premier League. I originally intended to return to this post a month later to see how accurate my predictions were. However, 6 months later, with weeks remaining of this season, here&#39;s the follow-up. Better late than never...&lt;/p&gt;
&lt;h4&gt;&quot;Chelsea FTW. It has to Chelsea&#39;s season to win the league. Very positive start and I think they&#39;ll only get better. They rip your nerves to shreds though. There may be some shaky games in the mid-to-late season.&quot;&lt;/h4&gt;

&lt;p&gt;Chelsea are still favourites, being a point and 4 goals ahead of Manchester United. They certainly didn&#39;t do themselves any favours this weekend. Nerves ripped to shreds? Check. Shaky games in the mid-to-late season? Check!&lt;/p&gt;

&lt;h4&gt;&quot;United are so used to winning the league now that almost can&#39;t not win it. Definitely going to be another close finish between the top 2 but I think now they&#39;ve lost Ronaldo, Chelsea will pip them to the post this year. Not the side they were last year. But they are still Manchester United.&quot;&lt;/h4&gt;

&lt;p&gt;It&#39;s close alright! It remains to be seen who will pip who to the post, but I think it&#39;s a very safe assumption that this year is going to be as close as it gets. So incredibly lucky this past weekend.&lt;/p&gt;

&lt;h4&gt;&quot;Arsenal have had a great start to the season too, I definitely see them contending for top 3, ahead of Liverpool. Who, despite scoring goals and being the most tenacious sons of bitches in the league (world?), still don&#39;t have what it takes to win the league.&quot;&lt;/h4&gt;

&lt;p&gt;Oh Arsenal. 3 goals conceded in 10 minutes. IF losing to Tottenham mid-week didn&#39;t knock you out the race, losing 3-2 to Wigan certainly did. They&#39;ve had a strong season as predicted, and have certainly looked stronger than Liverpool, who have had a rather lacklustre season. All the best to them in Europe this season though.&lt;/p&gt;

&lt;h4&gt;&quot;Man City? Tottenham? I think at least one of them will run out of steam soon enough, probably Tottenham. City have had a promising start and an expensive squad, but I can&#39;t see them being too much of a challenge for the top 4. It would be nice though.&quot;&lt;/h4&gt;

&lt;p&gt;Both Man City and Tottenham have held their own this season. Having been slightly ahead all season given the results of this past weekend, it looks like Tottenham may just beat City to 4th.  It makes the clash on the 5th May between the sides all the more important. Tottenham have been on fire in their last 2 games, beating Arsenal and Chelsea. If they can beat Man United next weekend, they&#39;ll not only be doing Chelsea a big favour, but it&#39;ll certainly increase their chances of grabbing the 4th spot.&lt;/p&gt;

&lt;p&gt;So there we have it. It&#39;s going to be a thrilling end to the season I reckon. My money is still on Chelsea, they&#39;ll be fools to throw it away now.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>If there&#39;s one thing TV adverts have given us...</title>
    <link href="https://samdking.co.uk/blog/if-theres-one-thing-tv-adverts-have-given-us/"/>
    <updated>2010-04-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/if-theres-one-thing-tv-adverts-have-given-us/</id>
    <content type="html">&lt;p&gt;...It&#39;s good music. I hate adverts as much as the next guy. But it can&#39;t be denied TV adverts have proven to be a great platform for getting across a damn good tune, or even launch a band&#39;s musical career.&lt;/p&gt;
&lt;p&gt;I&#39;ve already mentioned the excellence that is &lt;a href=&quot;https://samdking.co.uk/blog/phoenix-1901#content&quot;&gt;Phoneix - 1901&lt;/a&gt; in Sony&#39;s advert for the PS3. Ford has recently put a great soundtrack to their latest advert for the Fiesta, with the song &#39;Halfway Home&#39; by band &lt;strong&gt;The Cool Hearts&lt;/strong&gt;. And recently featuring in an advert for the Samsung Monte mobile phone, the song &#39;Halcyon&#39; by &lt;strong&gt;Delphic&lt;/strong&gt;, a wonderfully catchy tune.&lt;/p&gt;

&lt;p&gt;Lastminute.com&#39;s latest advertising campaign also features a brilliant instrumental version of &lt;strong&gt;Mumford &amp; Son&lt;/strong&gt;&#39;s hit &lt;strong&gt;The Cave&lt;/strong&gt;. K-Swiss feature a refreshing cover of &lt;strong&gt;The Ramones&lt;/strong&gt;&#39; classic &#39;California Sun&#39; in their latest advert. A few other of my favourites include the use of &lt;strong&gt;Grayson Matthew&lt;/strong&gt;&#39;s cover of &lt;strong&gt;The Beatles&lt;/strong&gt; classic &#39;All You Need is Love&#39; for Blackberry&#39;s latest campaign and who can forget &lt;strong&gt;Yail Naim&lt;/strong&gt;&#39;s virtually-from-nothing hit &#39;New Soul&#39;, which featured on the Apple Macbook Air&#39;s advert.&lt;/p&gt;

&lt;p&gt;It&#39;s safe to say music is a powerful tool in the advertising world, and can often make or break an advert for me. If you&#39;ve got 30 seconds to flog something, you&#39;ve really got to make an immediate and lasting impact on the audience. Music is one of the only mediums that an achieve this.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The wonderful world of temping</title>
    <link href="https://samdking.co.uk/blog/the-wonderful-world-of-temping/"/>
    <updated>2010-04-07T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-wonderful-world-of-temping/</id>
    <content type="html">&lt;p&gt;As a follow-up to the 2-week temporary filing work at Sureterm, last week I was back at the company, doing a single day of work. Except this time, I was on the phones. Now to say this type of work is my idea of hell is a little strong, but it&#39;s somewhere in the ballpark. I never thought I would ever do this type of job, and suffice to say I don&#39;t think I ever will again. I disliked this job for 3 reasons:


I&#39;m not a great fan of telephone conversations in general, as a means of communication.
I am not particularly gifted in the art of &quot;small talk&quot;, or &quot;inane chit-chat&quot;. I.e. the type of conversation you would have with someone you do not know.
Thirdly, I do not like not knowing what I am talking about. And having to pretend to people I do.
&lt;/p&gt;
&lt;p&gt;So there I was, last week, 9:30 and I&#39;m eating my breakfast. Telephone call: &quot;Can you come in and work 11:00 - 7:30 at Sureterm today? Nothing too hard, just a bit of phone work.&quot; Me: Errrrrrrm... *somewhat reluctantly* ooookay.&quot;&lt;/p&gt;

&lt;p&gt;The day started with around 3 hours of basic training and practise. I knew off the bat I was not going to enjoy this. I pick up stuff reasonably quickly, but I&#39;ve always had a problem with memory, or lack of. If someone tells me something specific that I must remember, chances are I will have forgotten it by the time they&#39;ve finished speaking.&lt;/p&gt;

&lt;p&gt;By the end, I was starting to get the hang of it, and I think I&#39;d definitely be good enough to do the job full-time with a few more days practise. Would I want to do the job full-time? Oh hell no. I like to help people; the specification for this job was essentially to take down the callers name, number &amp; reference number and e-mail it off to customer services (I was sort of the &#39;in-between man&#39;). Therefore, I wasn&#39;t directly helping anyone. And unfortunately, there are a some customers who aren&#39;t particularly happy with this system, and are a little peeved that all I can offer them is a promise of a call-back later in the day. &quot;Sorry sir, that&#39;s the best I can do&quot;.&lt;/p&gt;

&lt;p&gt;It was definitely an experience, and I feel I learnt a lot from it, so it can&#39;t be all bad. As for the people who work 9-5 in call centres across the world... how do you do it? I&#39;ve never felt so relieved to finish a working day.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>30 Seconds to anthemic pop rock goodness</title>
    <link href="https://samdking.co.uk/blog/30-seconds-to-anthemic-pop-rock-goodness/"/>
    <updated>2010-04-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/30-seconds-to-anthemic-pop-rock-goodness/</id>
    <content type="html">&lt;p&gt;It has to be said, I&#39;ve grown a little partial to the band &lt;strong&gt;30 Seconds to Mars&lt;/strong&gt;. It&#39;s not something I&#39;m ashamed of, but equally not something I will be shouting from the rooftops. If, after this revelation, you doubt my sanity and musical taste, before you judge, you must check out their collection of hits they&#39;re racking up. Their current single, &lt;strong&gt;This is War&lt;/strong&gt;, is the latest song from the band to catch my attention. And it&#39;s 30 Seconds to Mars doing what they do best.&lt;/p&gt;
&lt;p&gt;Off the back of the 2005 album &lt;strong&gt;A beautiful Lie&lt;/strong&gt;, the band re-released  &lt;strong&gt;The Kill (Bury Me)&lt;/strong&gt; in 2007. I remember really enjoying this single in the summer of that year.&lt;/p&gt;

&lt;p&gt;Fast forward 2 years and the band released their third album &lt;strong&gt;This is War&lt;/strong&gt;, and off it came the singles &lt;strong&gt;Kings &amp;amp; Queens&lt;/strong&gt; and the title track &lt;strong&gt;This is War&lt;/strong&gt;. Kings &amp; Queens was a single that grabbed my attention upon first listen and I must say this is a common trait of their music. It&#39;s not often I can say I&#39;m instantly attracted to a song on first listen, but 30 Seconds to Mars seems to have cracked the formula for producing an instantly-likeable piece of music. Of course they&#39;ve managed to achieve this by consistently adhering to the anthemic cheesy pop-rock balled formula; something which I&#39;ve embarrassingly acquired a liking to.&lt;/p&gt;

&lt;p&gt;But it could be worse. It could be Glee. Wait, I LIKE GLEE. Oh dear. I feel I should probably stop divulging embarrassing revelations about my music tastes. However, if you think you may be in the same boat as me, check out 30 Seconds to Mars. What have you got to loose? ;)&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Only Revolutions you&#39;ll need</title>
    <link href="https://samdking.co.uk/blog/the-only-revolutions-youll-need/"/>
    <updated>2010-04-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-only-revolutions-youll-need/</id>
    <content type="html">&lt;p&gt;A while back now, I raved about Biffy Clyro&#39;s single release, &lt;a href=&quot;/blog/thanks-biffy-the-captain-is-it#content&quot;&gt;The Captain&lt;/a&gt;. Since then, I&#39;ve had the pleasure of acquiring the album &lt;strong&gt;Only Revolutions&lt;/strong&gt;, providing me with 11 more tracks to sink my teeth into. Hold onto your hats people, this album will rock your socks.&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;&quot;We want to affect a change&lt;br /&gt;With voice and electrical noises.&quot;&lt;span&gt;- &#39;Whorses&#39;, Biffy Clyro&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I fully intend to keep this review brief, as I don&#39;t think I can really do this album justice with words. This album really puts Puzzle to shame, and I previously loved Puzzle. I&#39;ve even warmed to the  first single &lt;strong&gt;That Golden Rule&lt;/strong&gt;, which I originally thought of as a bit of a disappointment. The album really nicely wraps up the Biffy Clyro sound and puts a nice big bow on top. And that bow is in the guise of &lt;strong&gt;Whorses&lt;/strong&gt;. Whorses is the final track on the album and, if you listen to one track, make it this one. Still gives me goosebumps.&lt;/p&gt;

&lt;p&gt;What sealed the purchase of this album for me was the inclusion of the hit &lt;strong&gt;Mountains&lt;/strong&gt;. This was a big song for the band when it was released back in 2008 as a non-album single. Only Revolutions has a great combination of classic stripped-back ballads that Biffy Clyro have become known for (à la &lt;strong&gt;Machines&lt;/strong&gt;); and  an eclectic mix of  raw energy and power that we&#39;ve come to expect from these Scottish lads. &lt;/p&gt;

&lt;p&gt;There really isn&#39;t a lot to fault about this album; Every track is a winner. I&#39;m still holding onto the prestigious 5/5 rating, however, as I feel something has to be flawless and really something special to receive that particular accolade. But for now, Biffy, you&#39;ve outdone yourself. Can&#39;t wait to see you thrashing out this album live.&lt;/p&gt;

&lt;p&gt;Rating: &lt;strong&gt;4.5/5&lt;/strong&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Kick Ass</title>
    <link href="https://samdking.co.uk/blog/kick-ass/"/>
    <updated>2010-03-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/kick-ass/</id>
    <content type="html">&lt;p&gt;I saw this film a few days ago now. After watching it I decided I&#39;d wait a few days for it to sink in as, to be quite honest, it caught me off guard a little. This is a strange film. On first impressions it looks like a light-hearted super-hero comedy, with average chumps attempting to beat up bad guys but inevitably getting their asses handed to them. And, as a brief summary, that&#39;s what the film is. But let&#39;s just say there&#39;s a lot more besides.&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;&amp;quot;I&#39;ve always wondered why no one did it before me. [..] You&#39;d think one eccentric loner would&#39;ve made himself a costume. I mean, is every day life really so exciting? Are schools and offices so thrilling that I&#39;m the only one who ever fantasised about this? C&#39;mon, be honest with yourself, at some point in our lives we all wanted to be a super hero.&amp;quot;&lt;/p&gt;

&lt;p&gt;That was the tagline that hooked me in. But make no mistake, this is one violent film! Albeit the violent is comedic, &amp;#0224; la Kill Bill, but it&#39;s safe to say, if you&#39;ve got a weak stomach you might find Kick Ass to be a bit hard to swallow at times. As expected, Kick ass has cheesy teen-comedy esque moments throughout, but the clever integration of realistic, hard-hitting violence helps the film &amp;quot;grow up&amp;quot; a little in my estimations, and move it up to the next level. And to be honest I liked it a lot more than I thought I was going to from the outset.&lt;/p&gt;

&lt;p&gt;There&#39;s something  uniquely dark about this super-hero comedy that made this an enjoyable and watchable film that I intend to see again.  I&#39;d recommend Kick Ass, if only for seeing a sweet little blonde girl in a super hero costume say the 4-lettered C-word to a bunch of fully-grown hench drug lords. A blood bath ensued. &lt;/p&gt;

&lt;p&gt;Rating: &lt;strong&gt;8/10&lt;/strong&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Footballing Injuries</title>
    <link href="https://samdking.co.uk/blog/footballing-injuries/"/>
    <updated>2010-03-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/footballing-injuries/</id>
    <content type="html">&lt;p&gt;I have an odd fascination of horrific injuries to the body, bred - I suppose - from a natural curiosity of the human body. At the same time, this stuff really grosses me out. But I suppose it&#39;s true what they say, human curiosity knows no bounds. If you&#39;re weak stomached, I suggest not reading on.
&lt;/p&gt;
&lt;p&gt;With the injuries some footballers pick up, it really puts into perspective how fragile the human body is. One mistimed tackle and - snap - there goes your leg. Here&#39;s a couple of examples:&lt;/p&gt;

&lt;h2&gt;Petr Cech&lt;/h2&gt;
&lt;p&gt;
  Petr Cech&#39;s injury in October 2006. Not particularly gruesome, but still pretty hard-hitting. Cech almost died from a fractured skull, caused by the knee of Stephen Hunt, an opposing striker. Cech is now forced to wear protective headwear when he plays but was miraculously  out of action for a mere 3 months.
&lt;/p&gt;
&lt;details&gt;
  &lt;summary&gt;Stephen Hunt on Petr Cech&lt;/summary&gt;
  &lt;img src=&quot;https://img.dailymail.co.uk/i/pix/2007/08_02/PetrCech2L_468x328.jpg&quot; alt=&quot;Petr Cech&quot; /&gt;
&lt;/details&gt;

&lt;h2&gt;Djibril Cisse&lt;/h2&gt;
&lt;p&gt;
  Djibril Cisse had his leg broken by a reckless challenge from an opposition player when playing for Liverpool. Cisse suffered a &quot;comminuted fracture of the tibia and fracture of the fibula&quot;, which typically means the bone has been broken in more than two places. And this all came from a fairly innocent-looking challenge, and as you can see from the image, it really doesn&#39;t take much to snap a bone. Unfortunately for Cisse, he went on to break his leg again playing for his country. Now that&#39;s just bad luck.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;details&gt;
  &lt;summary&gt;Jay McEveley on Djibril Cisse&lt;/summary&gt;
  &lt;img src=&quot;https://newsimg.bbc.co.uk/media/images/40477000/jpg/_40477411_cisse_break270gi.jpg&quot; alt=&quot;Djibril Cisse&quot; /&gt;
&lt;/details&gt;

&lt;h2&gt;Eduardo&lt;/h2&gt;
&lt;p&gt;Here you can see a challenge on Arsenal player Eduardo in February 2008. He suffered a broken left fibula and an open dislocation of his left ankle. Something about the word &amp;quot;open&amp;quot; in that sentence doesn&#39;t settle quite nicely. As you can see from the image, this was about as reckless as challenges come, and shows just how physical the game of football can get.	&lt;/p&gt;
&lt;details&gt;
  &lt;summary&gt;Martin Taylor on Eduardo&lt;/summary&gt;
  &lt;img src=&quot;https://sportige.com/wp-content/uploads/2009/07/eduardo_injury.jpg&quot; alt=&quot;Eduardo&quot; /&gt;
&lt;/details&gt;

&lt;h2&gt;David Busst&lt;/h2&gt;
&lt;p&gt;Easily the worst injury in footballing history was to David Busst whilst playing for Coventry against Man Utd in 1996. Busst suffered an extensive compound fractures to both the tibia and fibula of his right leg following a challenge from two Man United defenders. His bone pierced his skin, and the game had to be stopped for 12 minutes for the blood to be cleaned off the pitch. As in indicator of just how horrific the injury was, Man United goalkeeper Peter Schmeichel reportedly vomited on the pitch after witnessing the injury, and had to have several weeks of counseling following the incident. &lt;/p&gt;
&lt;details&gt;
  &lt;summary&gt;Denis Irwin and Brian McClair on David Busst&lt;/summary&gt;
  &lt;img src=&quot;https://perspectivabr.files.wordpress.com/2008/02/foto3.jpg&quot; alt=&quot;David Busst&quot; /&gt;
&lt;/details&gt;

&lt;p&gt;Despite the fragile nature of the human body, our ability to heal is a marvel that should not be taken for granted. The players listed above took less than a year to recover and continued to play football. I can&#39;t imagine what kind of psychological effects suffering an injury like that would cause, but I commend these players for getting back out on the pitch.&lt;/p&gt;

&lt;p&gt; I think I&#39;ve exercised enough of my masochistic side for one day.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note, I do not own any of the images featured. The images belong to their respective owners)&lt;/em&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Portfolio Mini-site launch</title>
    <link href="https://samdking.co.uk/blog/portfolio-minisite-launch/"/>
    <updated>2010-03-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/portfolio-minisite-launch/</id>
    <content type="html">&lt;p&gt;It&#39;s been in a state of almost completion for over a week now, so I think it&#39;s time to launch my portfolio mini-site. It won&#39;t be of interest to the average reader, but I&#39;m hoping it will help my Internship applications. It&#39;s not particularly packed at the moment, but I&#39;m hoping to add to it as I complete more projects.&lt;/p&gt;
&lt;p&gt;The site can be assessed from the following directory: &lt;a href=&quot;http://www.samueldking.co.uk/portfolio&quot;&gt;http://www.samueldking.co.uk/portfolio&lt;/a&gt;. You&#39;ll notice the blog is still the main URL, as I feel it is a bigger part of my identity on the web, at least for the time being. The portfolio consists of websites, animations, games and applications. I decided it was more efficient to host the videos on youTube, and the websites are hosted on their respective domains. However, the remaining portfolio items are hosted on this domain.&lt;/p&gt;

&lt;p&gt;The deadline for the Internships has been extended to the 28th March, this Sunday, however I am hoping to finish my covering letters by tomorrow. If I&#39;m successful, I may be spending June in Brighton... a most appealing thought!&lt;/p&gt;

&lt;p&gt;If you find any faults with the portfolio, please let me know. I&#39;ll be keen to nip errors in the bud as quickly as possible. Thanks!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Magic Mouse</title>
    <link href="https://samdking.co.uk/blog/the-magic-mouse/"/>
    <updated>2010-03-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-magic-mouse/</id>
    <content type="html">&lt;p&gt;However I dress this up, I am still essentially reviewing a mouse. Which does officially count me as a nerd. But - people - this is a nice mouse. I am of course talking about the Apple Magic Mouse, the successor to the popular (although flawed) Mighty Mouse (which, as it happens, has dropped the &#39;Mighty&#39; from its name and is now simply the &#39;Apple Mouse&#39;. Most likely for copyright issues with &lt;a href=&quot;http://en.wikipedia.org/wiki/Mighty_Mouse&quot;&gt;this fella&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/1269383638_1.jpg&quot; alt=&quot;Apple Magic Mouse&quot; class=&quot;w-full drop-shadow-2xl rounded-sm&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;I have only had limited experience with the old Apple &lt;strike&gt;Mighty&lt;/strike&gt; Mouse, however I&#39;m well aware of the issue with the scrolling mechanism. With continual use, dust has been known to collect in it, rendering it basically useless, unless you crack the thing open and clean it out.&lt;/p&gt;

&lt;p&gt;With this in mind, I was keen to see what was so great about the new mouse offering from Apple. In all honesty, I haven&#39;t much experience with mice, and have been content using a laptop with the dinky little touchpad. But even when compared to the generously sized touchpads on Apple&#39;s new laptops, a decent mouse really will always beat a touchpad for usability. With this in mind, I decided I wanted a mouse. A good mouse.&lt;/p&gt;

&lt;p&gt;I researched for a short while, but, to be honest, got a bit bored. I mean - it&#39;s a mouse. So after swallowing the rather steep £56 price tag, I impulse-bought a new Apple Magic Mouse. I wasn&#39;t really too bothered about the wireless capabilities but having used this mouse for several months, I really like the freedom that wireless offers. It also packs a pretty good range on it, although I&#39;ve yet to reap the benefits of this. Might be quite nifty for use as a slide show clicker.&lt;/p&gt;

&lt;p&gt;The appearance of this mouse is flawless, you really can&#39;t fault it. It screams Apple simplicity. I love a good moan as much as the next person, but there really isn&#39;t a whole lot to fault about this mouse at all. The buttons are invisible (or, at least, implemented seamlessly into the rest of the mouse), but they still function as you would expect a button to. Right and left can be assigned to handle primary and secondary click (if you&#39;re on a Mac, and let&#39;s face it, if you&#39;ve got a Magic Mouse you probably are). It does, however, drop the side function buttons that the old mouse had, although  I haven&#39;t felt the need for them at any point whilst using it.&lt;/p&gt;

&lt;p&gt;What really sets this mouse apart though is the gestures it features. The whole top of the mouse is a touchpad, essentially. Move your finger up and down and it scrolls, move it left to right and it scrolls. In fact, move it in any direction, and if you can scroll in that direction - it will scroll! Another nifty feature is the two finger swipe, which I use mainly for moving forward and back when browsing the web. But it can be utilised in most applications. For example, skipping songs in iTunes, navigating through pictures in iPhoto, etc. It really does make web browsing a breeze and is definitely a sign of things to come with the abundance of multi-touch devices, in terms of web usability amongst other things.&lt;/p&gt;

&lt;p&gt;The battery life is pretty impressive. I&#39;m not a particularly heavy user, but I use my laptop a fair few hours of the day, and I managed to get at least a month out of the provided batteries, possibly longer (but you&#39;re asking me to think back several months now). I&#39;m now using high-powered rechargeables - the same I use in my flashes. It&#39;s lasted about 3 weeks and is currently at 47%, so there&#39;s definitely a few more weeks use out of them.&lt;/p&gt;

&lt;p&gt;This is a great mouse. But it&#39;s pricey. And obviously you&#39;re paying for the name. But if you&#39;re on a Macbook or a MBP and find yourself a little restricted by the touch pad at times, this mouse really can increase your efficiency. Sure, there are cheaper alternatives, but do they scream out to you quite as loudly as this sleek little beast? I think not... :)&lt;/p&gt;

&lt;p&gt;Despite my kind words, I&#39;m currently subjecting my Magic Mouse to the embarrassment of being used on an old Dell freebie mouse mat. Oh the horror.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The genius of The Smiths</title>
    <link href="https://samdking.co.uk/blog/the-genius-of-the-smiths/"/>
    <updated>2010-03-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-genius-of-the-smiths/</id>
    <content type="html">&lt;p&gt;I have recently come to realise something: I love the Smiths.

A short time ago I wasn&#39;t in a very good place in my life and thought to myself, &quot;I feel like shit, I feel sorry for myself, I&#39;m going to indulge in some depressing music. (Hey, we&#39;ve all been there at some point) What depressing music do I own? The Smiths are depressing, right?&quot;. At first it did what it said on the tin, but then I began to realise The Smiths aren&#39;t depressing at all. Their music was having a positive effect full of uplifting vibes. This, from a band who sure love to sing about death and heartbreak.&lt;/p&gt;
&lt;p&gt;Since that time I&#39;ve acquired the &lt;strong&gt;Sound of the Smiths&lt;/strong&gt; compilation album and quite frankly, I can&#39;t get enough. The sultry smooth vocals and jangly guitars just radiates good thoughts. I&#39;ll certainly be listening to a lot more Smiths with this recent addition to my music collection.&lt;/p&gt;

&lt;p&gt;Music is a strong healer in down and out situations and can be the very thing that can lift you out of a dark place. Another album which I fully intend to write about but want to make sure I do it justice is the new Biffy Clyro album, &lt;strong&gt;Only Revolutions&lt;/strong&gt;. It&#39;s a stonker* of an album and one that requires appropriate recognition. The song &lt;strong&gt;Whorses&lt;/strong&gt; is definitely worth a few minutes of your attention.&lt;/p&gt;

&lt;p&gt;In other news, my portfolio is close to a state of completion. I&#39;m hoping to get it finished in the next few days. The Internship deadline which I am trying to meet has been extended to the 28th March, which is great news, as I was rushing to complete my applications.&lt;/p&gt;

&lt;p&gt;* What an overly British word!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Skins</title>
    <link href="https://samdking.co.uk/blog/skins/"/>
    <updated>2010-03-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/skins/</id>
    <content type="html">&lt;p&gt;This week is the final episode of the forth series of Skins and I wanted to pay a small tribute to it. I find something very refreshing about Skins that keeps me coming back for more. Yes, it&#39;s depressing. But it&#39;s raw and unique at the same time. It&#39;s not afraid to be controversial or shocking and it&#39;s not afraid to stand up and be different. The ending of the penultimate episode with Freddy (I won&#39;t spoil it if you haven&#39;t seen it) came out of nowhere and really showed the strength of Skins and what it has become. The last episode on Thursday is sure to be a corker. Yes, that&#39;s right. I said corker.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong, Skins is ridiculously over-the-top, not to mention unrealistic and sometimes just downright silly. But this is not a bad thing. If there&#39;s one thing on television that I will not touch it&#39;s reality TV. Reality is boring. We don&#39;t watch television for realism. Same reason we don&#39;t watch films and read books for realism. We want to escape. And getting lost in the teenage world of Skins for an hour a week offers just that.&lt;/p&gt;

&lt;p&gt;I don&#39;t like Naomi and I&#39;m not a big fan of Effy. Well, it&#39;s the actresses I don&#39;t like. Neither of them are particularly believable. It&#39;s like they&#39;re just trying a little too hard. Cooke is an amazing character. He commits to his role 100% and you really believe it. You (and the rest of society) hate him, and that&#39;s the character he plays.&lt;/p&gt;

&lt;p&gt;Add to this a beautifully fitting soundtrack each week, that subtly adds to the grit and angst of each unique episode and you&#39;re onto a winner. Skins lacks that warm satisfying lighthearted feeling that I usually crave from a TV show. But what it lacks in this it makes up for in imagination, originality and an abundance of testosterone.&lt;/p&gt;

&lt;p&gt;Watch this weeks finale, I guarantee you won&#39;t be bored.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Nottingham Uni Halfway There Party</title>
    <link href="https://samdking.co.uk/blog/nottingham-uni-halfway-there-party/"/>
    <updated>2010-03-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/nottingham-uni-halfway-there-party/</id>
    <content type="html">&lt;p&gt;Last week I was asked to come to Nottingham and photograph an event. Despite not being payed, I saw it as a good experience to take some photos and improve as a photographer. The event was a success, and despite a few issues I ended up with some good photos of the night.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1268219200_1.jpg&quot; alt=&quot;Halfway There Party group photo&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here&#39;s a photo I like, part of a series of 4 (turns out it&#39;s hard to get 13 tipsy people to coordinate together for a group photo). In some ways I was glad I wasn&#39;t payed, as it gave me a chance to experiment a bit with my gear and test out a few things, without the worry of ruining photos. I also needed the practise. &lt;/p&gt;

&lt;p&gt;I utilised bounce flash for the event, bouncing off the light coloured fabric ceiling. It worked pretty well most of the time, with some pleasing results. I was hoping to use my 35mm prime lens for the event, but in the end I thought the fixed focal length would restrict me too much. I ended up taking most pictures at the wide (18mm) end of my kit lens, so my estimations were about right. &lt;/p&gt;

&lt;p&gt;One of the biggest camera issues I faced was focussing. The D40 seems to struggle a little with focusing in low light, especially without the focus-assist light (which is disabled when using a flash). Some of the pictures came out too soft, and this is something I will have to look into for next time.&lt;/p&gt;

&lt;p&gt;Overall it was a very positive experience, and a fun evening in general. I hope to do a few more of these sorts of events in the future, as I feel I still have a lot to learn. Oh and thanks to my sister Hannah for getting me the gig :)&lt;/p&gt;

&lt;p&gt;If you&#39;re on Facebook, the entire album can be viewed &lt;a href=&quot;http://www.facebook.com/#!/group.php?gid=366734229496&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Starting work on my Portfolio</title>
    <link href="https://samdking.co.uk/blog/starting-work-on-my-portfolio/"/>
    <updated>2010-03-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/starting-work-on-my-portfolio/</id>
    <content type="html">&lt;p&gt;In addition to this blog, I intended to use this domain name to host a portfolio of my work. To stand a chance of getting any sort of design job, a portfolio is necessary, and this is something I&#39;ve been lacking. Before the big &lt;a href=&quot;/blog/the-macintosh-hd-gives-up-the-ghost&quot;&gt;Macbook meltdown&lt;/a&gt;, I had started to put together some initials designs and actually started work on the website. However, I lost enthusiasm after that went down the drain. However, the work must restart!&lt;/p&gt;
&lt;p&gt;After 2 weeks filing insurance claims as a temp job, I&#39;ve been inspired to think a little bigger and have decided to apply for a couple of &lt;a href=&quot;http://sussexinternships.co.uk/&quot;&gt;internships&lt;/a&gt; and having a portfolio behind me will definitely increase my chances of success. I have a passion for web design and, in addition to the 8-week placement I did in Southampton last year, I&#39;d really like to build up some experience in the sector. I&#39;m also very keen to return to Brighton in the near future.&lt;/p&gt;

&lt;p&gt;On a completely unrelated note, I went for a jog this morning. I learnt just how unfit I am. There&#39;s another target!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Songs that make your ears bleed</title>
    <link href="https://samdking.co.uk/blog/songs-that-make-your-ears-bleed/"/>
    <updated>2010-03-08T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/songs-that-make-your-ears-bleed/</id>
    <content type="html">&lt;p&gt;Everyone has their own opinions on this. And it&#39;s something that often can&#39;t fully be explained or justified: the hatred for a song. A hatred so strong that you can&#39;t possibly listen to it in its entirety. I&#39;ve compiled a short list off the top of my head:&lt;/p&gt;
&lt;ul class=&quot;badlist&quot;&gt;
&lt;li&gt;&lt;strong&gt;Little Boots&lt;/strong&gt; - &lt;em&gt;Remedy&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metro Station&lt;/strong&gt; - &lt;em&gt;Shake it&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Marina &amp;amp; The Diamonds&lt;/strong&gt; - &lt;em&gt;I am not a Robot&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le Tigre&lt;/strong&gt; - &lt;em&gt;Deceptacon&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Extra big to remind me to avoid them at all costs.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>16:9 is King</title>
    <link href="https://samdking.co.uk/blog/169-is-king/"/>
    <updated>2010-02-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/169-is-king/</id>
    <content type="html">&lt;p&gt;Widescreen has been commonplace in televisions for many years now, as well as in computer monitors and laptop screens. Ultra wide aspect ratios have been favoured by movie makers for even longer. And why? Because it&#39;s awesome, that&#39;s why. Everything looks better in widescreen. Yes, even photographs.&lt;/p&gt;
&lt;p&gt;Widescreen is so widely used these days that our eyes almost expect it, they&#39;ve grown acustomed to it. I am no scientist and have no research to backup my subjective ramblings, however I believe humans essentially &lt;em&gt;see&lt;/em&gt; in widescreen. Due to the positioning of our eyes on our face, the combined image that our eyes make up is essentially in a wide format. At the risk of saying something stupid, I will now stop with my non-scientific analysis of vision.&lt;/p&gt;

&lt;p&gt;Photographs are, by default, not in a particularly widescreen format. Out of a compact camera, you&#39;ll generally get a 4:3 aspect ratio. It&#39;s pretty square, and to be honest I don&#39;t like it. SLRs will get you a slightly wider ratio  in the form of 3:2. Most broadcasts on TV these days will be in a 16:9 format - wider still. Film still has the undisputed edge in wide screen format, with an aspect ratio of 2.39:1. If that all made little sense, this diagram should explain better:&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/aspect_ratios.png&quot; alt=&quot;Aspect Ratios&quot; width=&quot;400&quot; height=&quot;220&quot; /&gt;&lt;/p&gt;

&lt;h4&gt;Widen your Photos&lt;/h4&gt;

&lt;p&gt;Change the feel of your images by giving them the widescreen treatment. It  work work well for every photo, but I&#39;ve been surprised with how it can breathe life into an otherwise dull photograph. If you&#39;re after a cinematic film look, crop to the extreme, lower your saturation and boost your contrast.&lt;/p&gt;

&lt;p&gt;Logic dictates that I should now provide a visual example. But, allas, my photo taking has come to a gradual halt recently. This will change! Until then, go forth and widen and crop to your hearts content.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>To Shuffle or not Shuffle</title>
    <link href="https://samdking.co.uk/blog/to-shuffle-or-not-shuffle/"/>
    <updated>2010-02-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/to-shuffle-or-not-shuffle/</id>
    <content type="html">&lt;p&gt;There&#39;s definitely a debate to be had about the use of Shuffle when listening to music. As usually seems to be the case in these situations, I&#39;m still somewhat undecided over which I prefer. Although the term is sufficiently self-explanatory, to clarify, &lt;em&gt;shuffle&lt;/em&gt; involves the playback of your tunes in a random order. This is usually a pre-determined list, to enable you to skip backwards and to ensure all songs are played at least once before being played again. But now we&#39;re just getting into technicalities.&lt;/p&gt;
&lt;h4&gt;Arguments For&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Keeps it fresh&lt;/li&gt;
	&lt;li&gt;You discover tunes you may not have otherwise listened to&lt;/li&gt;
	&lt;li&gt;Songs at the bottom of a tracklisting will get as much as play as those higher up&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Arguments Against&lt;/h4&gt;

&lt;p&gt;You might argue listening to a CD in a random order goes against how the record was meant to be heard.  There are certainly cases where the order is imperative, and should be preserved. For example, on a film score or soundtrack, or anything where a story is being told.&lt;/p&gt;
&lt;p&gt;I&#39;ve also found that with memorable albums that I&#39;ve grown up with, the order is as significant in my mind as each individual song is. When one song ends, your mind &lt;em&gt;expects&lt;/em&gt; to hear a song, and when it doesn&#39;t the poor thing gets confused. Well, perhaps not. But why upset the harmony that is a beautifully constructed record?&lt;/p&gt;

&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;So I suppose you could say my allegiance is with the non-shuffle approach. However, I do have to commend the invention of Shuffle, purely for the spontaneity. Sometimes you just don&#39;t know what you want to listen to. But guess what? Your iPod does. Shuffle that baby and see what comes up, it may surprise you.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Project Rock Band</title>
    <link href="https://samdking.co.uk/blog/project-rock-band/"/>
    <updated>2010-02-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/project-rock-band/</id>
    <content type="html">&lt;p&gt;Despite the fact that I get the grand average of around 3 visitors a day on my blog (hey, I&#39;m happy it&#39;s not 0 ;)), I feel compelled to write this anyway. I&#39;ve played guitar since the summer after my GCSEs, so, with a quick bit of maths, that adds up to about 6 and a half years. Wow. Didn&#39;t know it had been that long. I&#39;ve only had the pleasure of playing with fellow musicians for about 2 of those years. That, I have decided, must change. And thus: &lt;strong&gt;Project Rock Band&lt;/strong&gt; (Nothing official about this title, I do believe Jack Black already coined it in School of Rock. Meh.)
&lt;/p&gt;
&lt;p&gt;Given that the chances of finding band members on this blog as a result of this post is around 0.1%, this is more of a positive statement, a challenge to myself more than anything else. However, if on the off chance you&#39;re in the same boat as me and wish to form the world&#39;s greatest rock band, why not drop a comment on the end of this post. I might just be pleased to meet you.&lt;/p&gt;

&lt;p&gt;I&#39;ve posted it before, but here&#39;s my &lt;a href=&quot;http://www.last.fm/user/skamst&quot;&gt;last.fm&lt;/a&gt; page for an idea of the music I like listening to. When it comes to making music, however, I&#39;m pretty open minded.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The reinvention of my favourite sweets</title>
    <link href="https://samdking.co.uk/blog/the-reinvention-of-my-favourite-sweets/"/>
    <updated>2010-02-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-reinvention-of-my-favourite-sweets/</id>
    <content type="html">&lt;p&gt;Following a rather half-arsed wander around my town&#39;s new Woolworthes replacement - the prestiogous 99p store - I stumbled upon something quite magnificent. You may remember a post I made last month about the &lt;a href=&quot;/blog/the-disappearance-of-my-favourite-sweets&quot;&gt;disappearance of my favourite sweets&lt;/a&gt;. Well, I am proud to announce, Bassetts now sell a very similar product under the name &#39;Bassetts Allsorts - Red Liquorice&#39;.
&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/1266338867_1.jpg&quot; alt=&quot;Bassetts Allsorts&quot; width=&quot;100%&quot; /&gt;

&lt;p&gt;Look at those little beauties. And it doesn&#39;t seem like Bassetts have changed a lot from the original Fruit Allsorts. Visually they appear the same and I didn&#39;t notice any differences in taste. Despite thoroughly enjoying devouring the packet, I did have a few qualms. The first being the lack of variety. Around 80% of the pack was made up of the orange and yellow sandwiches (middle and 3rd from the right). Another disappointment is due to the smaller packet. At a weight of 170g, it falls shy of the Fruit Allsorts&#39; weight of 200g. However this injustice may lie in the hands of the 99p store.&lt;/p&gt;

&lt;p&gt;The question remains though, are they really back? Or is it another failed product that the 99p store is  selling off? Either way, it&#39;s nice to know they&#39;re around.&lt;/p&gt;

&lt;p&gt;I&#39;m a little ashamed to say the above picture does have a little post processing applied to it. The vignette, levels and contrast were added/adjusted in Photoshop. All done to make the sweets pop a little more from the background. Although I prefer to get a perfect image straight out the camera, sometimes a little PP is necessary. The Westcott 28&amp;quot; Softbox was used for the lighting in this shot, held directly above by myself. The camera was triggered by a remote, held in my other hand.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>A hidden gem of an album</title>
    <link href="https://samdking.co.uk/blog/a-hidden-gem-of-an-album/"/>
    <updated>2010-02-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-hidden-gem-of-an-album/</id>
    <content type="html">&lt;p&gt;I thought I&#39;d break my week long lull (don&#39;t ask) with a hats-off to an album I have recently rediscovered. The album is To Lose my Life and the band is White Lies. I&#39;m not too sure how successful this album was, as I dip in and out of the mainstream music quite erratically throughout the year. I remember when I acquired this album last year, I tipped it as a good&#39;en, but I&#39;m only now really discovering how good an album it is.&lt;/p&gt;
&lt;p&gt;My highlights include: &lt;strong&gt;E.S.T.&lt;/strong&gt;, &lt;strong&gt;Unfinished Business&lt;/strong&gt; and &lt;strong&gt;From The Stars&lt;/strong&gt;, as well as the excellent singles &lt;strong&gt;Farewell to the Fairground&lt;/strong&gt; and the album-titled track, &lt;strong&gt;To Lose my Life&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is a consistently solid album from start to finish, with each song reading like a story. I have a bad habit of missing lyrics and heading straight for the instrumental elements (a trait I put down to playing guitar). And with White Lies you&#39;d be a fool to not listen to the lyrics; morbid in places, but meaningful and punchy at the same time.&lt;/p&gt;

&lt;p&gt;If you haven&#39;t heard this album, I urge you to give it a listen.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>New additions to my lighting gear</title>
    <link href="https://samdking.co.uk/blog/new-additions-to-my-lighting-gear/"/>
    <updated>2010-02-03T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/new-additions-to-my-lighting-gear/</id>
    <content type="html">&lt;p&gt;I got a few new toys for my Birthday, adding to my ever-growing lighting setup. I&#39;m still a noob when it comes to off-camera lighting but I&#39;m learning more every day and this kit should keep me occupied for a while.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://samdking.co.uk/images/1265219420_1.jpg&quot; alt=&quot;The lighting family&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In an order that&#39;s relatively easy to follow:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Manfrotto 5001b (6&#39;2&quot;) light stand (shipped from USA)&lt;/li&gt;
	&lt;li&gt;Calumet 10&#39; Air-cushioned light stand&lt;/li&gt;
	&lt;li&gt;Westcott 43&quot; Collapsible silver reflective umbrella (shipped from USA)&lt;/li&gt;
	&lt;li&gt;Calumet 35&quot; Convertible umbrella&lt;/li&gt;
	&lt;li&gt;2x Manfrotto Umbrella Adapters&lt;/li&gt;
	&lt;li&gt;Manfrotto Superclamp&lt;/li&gt;
	&lt;li&gt;Jessops 360AFD Flash&lt;/li&gt;
	&lt;li&gt;Nikon SB-600 Flash&lt;/li&gt;
	&lt;li&gt;TTL Cable&lt;/li&gt;
	&lt;li&gt;Gel strap + envelope of mixed gels&lt;/li&gt;
	&lt;li&gt;Cactus V4 wireless trigger + receiver&lt;/li&gt;
	&lt;li&gt;iShoot wireless trigger + 2 receivers&lt;/li&gt;
	&lt;li&gt;Nikon ML-L3  remote&lt;/li&gt;
	&lt;li&gt;Nikon 18-55mm kit lens&lt;/li&gt;
	&lt;li&gt;Westcott Apollo 28&quot; softbox (shipped from USA)&lt;/li&gt;
	&lt;li&gt;(Shot taken with my D40 + 35mm f/1.8)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you made it through that list and were wondering why I have 2 lots of wireless triggers/receivers... blame it on the Chinese. No, seriously, what happened was I ordered the &lt;a href=&quot;http://www.gadgetinfinity.com/&quot;&gt;Cactus&lt;/a&gt;&#39;s, hoping they&#39;d come before Christmas. 4 weeks later they still hadn&#39;t arrived so I went on eBay and grabbed some alternatives that had been shipped over in advance and were being delivered from a UK address. Unfortunately, I was informed after buying them that the last batch of the UK stock had been sold and they&#39;d need to be shipped from China. Sigh.&lt;/p&gt;

&lt;p&gt;Suffice to say, I eventually got them both, but it was well into the new year. And now I have two. I&#39;m yet to decide which I prefer, neither seat the SB-600 comfortably. I would conclude with the advice &quot;buy locally&quot;, but I recently made an order from B+H in the US, and it was a breeze (once I&#39;d surrendered the lump of money they wanted for VAT, various other taxes and handling and so forth). So despite the slight extra cost, my order turned up in a matter of days. Here that, China? &lt;strong&gt;A matter of days&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you want me to shoot you (...) - let me know! I&#39;m in need of models.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Text: dark on light &amp;gt; light on dark</title>
    <link href="https://samdking.co.uk/blog/text-dark-on-light-light-on-dark/"/>
    <updated>2010-02-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/text-dark-on-light-light-on-dark/</id>
    <content type="html">&lt;p&gt;A somewhat ridiculous statement you might say, given the design and colour scheme of this blog. And I hate to admit it, but there is something much more readable about dark text on a light background, compared to a light text on a dark background. I feel some examples coming on...&lt;/p&gt;
&lt;table border=&quot;0&quot; align=&quot;center&quot; cellspacing=&quot;0&quot;&gt;
	&lt;tr&gt;
		&lt;td class=&quot;darkonlight&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. In fringilla, urna eget elementum aliquet, nisl enim cursus odio, nec interdum neque neque nec nulla. Donec eleifend, massa at interdum viverra, magna mauris hendrerit nunc, eu pulvinar dui neque auctor arcu. Donec nec augue eu mauris iaculis euismod eget vitae risus. &lt;/td&gt;
		&lt;td class=&quot;lightondark&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec elit laoreet ligula dapibus lacinia. Curabitur vel lobortis felis. Nulla consectetur dictum massa, ac venenatis arcu tristique eget. Vivamus euismod odio nec risus suscipit at sodales felis consectetur. Maecenas tortor lacus, varius et porttitor sed, iaculis ac lacus. &lt;/td&gt;
		&lt;/tr&gt;
	&lt;tr&gt;
		&lt;th colspan=&quot;2&quot;&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Personally, lefty wins.
		&lt;/th&gt;&lt;/tr&gt;
	&lt;/table&gt;

&lt;p&gt;This  becomes more apparant when the amount of text is increased. On a blog, where there may potentially be large paragraphs of text, it may be beneficial for the user to stick with the light on dark tactic. In that vain, I do appear to have made the wrong decision. I&#39;d be interested in other opinions about this. I&#39;m not about to start redesigning the whole blog, but it&#39;s something worth considering for the future.&lt;/p&gt;

&lt;p&gt;On a completely unrelated topic, it&#39;s my Birthday today! Go me.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Sleep Challenge (week 1)</title>
    <link href="https://samdking.co.uk/blog/the-sleep-challenge-week-1/"/>
    <updated>2010-01-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-sleep-challenge-week-1/</id>
    <content type="html">&lt;p&gt;After a positive start, I admit I have been slacking a little. However, overall my sleep pattern has improved. As more of a night person I&#39;m finding it difficult to persuade my body it&#39;s time to sleep at a time that - to me - seems too early (not to mention the ever present number of distractions available). Mornings aren&#39;t much better; it&#39;s all about motivation (or lack of). And that is something I am hoping to improve in week 2. Without further ado, here all the results of week 1:&lt;/p&gt;
&lt;table border=&quot;1&quot; align=&quot;center&quot; cellspacing=&quot;0&quot;&gt;
	&lt;tr&gt;
		&lt;th&gt;Date&lt;/th&gt;
		&lt;th&gt;Morning&lt;/th&gt;
		&lt;th&gt;Night&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sat 23rd Jan&lt;/td&gt;
		&lt;td&gt;---&lt;/td&gt;
		&lt;td&gt;11:07PM&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sun 24th Jan&lt;/td&gt;
		&lt;td&gt;07:53AM&lt;/td&gt;
		&lt;td&gt;11:04PM&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Mon 25th Jan&lt;/td&gt;
		&lt;td&gt;08:45AM&lt;/td&gt;
		&lt;td&gt;11:04PM&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Tues 26th Jan&lt;/td&gt;
		&lt;td&gt;08:10AM&lt;/td&gt;
		&lt;td&gt;11:03PM&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Wed 27th Jan&lt;/td&gt;
		&lt;td&gt;08:30AM&lt;/td&gt;
		&lt;td&gt;12:25AM &lt;i&gt;*&lt;/i&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Thurs 28th Jan&lt;/td&gt;
		&lt;td&gt;08:45AM&lt;/td&gt;
		&lt;td&gt;12:30AM &lt;i&gt;**&lt;/i&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Fri 29th Jan&lt;/td&gt;
		&lt;td&gt;09:30AM&lt;/td&gt;
		&lt;td&gt;12:10AM &lt;i&gt;***&lt;/i&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sat 30th Jan&lt;/td&gt;
		&lt;td&gt;09:15AM&lt;/td&gt;
		&lt;td&gt;11:43PM&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sun 31st Jan&lt;/td&gt;
		&lt;td&gt;09:30AM&lt;/td&gt;
		&lt;td&gt;---&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td colspan=&quot;3&quot; class=&quot;conclusion&quot;&gt;Conclusion: &lt;i&gt;FAIL&lt;/i&gt;&lt;/td&gt;
		&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;As you can see, I have half-arsed excuses for the night time mishaps, however I really don&#39;t have much of an excuse for all the late rising. I can only hope for more of a success next week.&lt;/p&gt;

&lt;p&gt;In addition to week 2 of the sleep challenge, I will be attempting a new challenge. I call it &quot;The Water Challenge&quot;. As you know, doctors recommend 2L of water a day. I get nowhere near this (if you don&#39;t count tea), so I will be attempting 2L a day for a week. However, to make it a little easier to measure, I&#39;ll be using imperial measurements - the pint to be specific. Therefore, i will aim to drink 4 pints of water a day - approximately 2.3L (a little more can&#39;t hurt).&lt;/p&gt;

&lt;p&gt;Lastly, the new design has been finished for a few days now. Switchover to this new version will happen imminently. So imminently in fact, you may be reading this on the new design. You lucky person, you.&lt;/p&gt;

&lt;p&gt;
	&lt;i&gt;*&lt;/i&gt; Match of the Day&lt;br /&gt;
	&lt;i&gt;**&lt;/i&gt; Pub&lt;br /&gt;
	&lt;i&gt;***&lt;/i&gt; Situations out of my control
&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The New Design!</title>
    <link href="https://samdking.co.uk/blog/the-new-design/"/>
    <updated>2010-01-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-new-design/</id>
    <content type="html">&lt;p&gt;The new design has finally arrived. And it took longer to implement than I thought it would. I will update this message tomorrow when I&#39;m thinking more clearly. There are a few things I&#39;d like to introduce about the new version. There are a few bugs I need to iron out, so if you catch one - please give me a shout (leave a comment). Thank you!&lt;/p&gt;
&lt;p&gt;Here is the rest of the post. I just thought I&#39;d briefly highlight a few of the changes I made; some more obvious than others, and some you probably will never notice.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://samdking.co.uk/tagcloud/&quot;&gt;Tag cloud&lt;/a&gt;&lt;/strong&gt; - Firstly, what was previously known as &lt;em&gt;keywords&lt;/em&gt; is now known as &lt;em&gt;&#39;tags&#39;&lt;/em&gt;. I just prefer the term more, and it seems a little more relevant. You&#39;ll probably recognise the tag cloud design from other blogs. It follows the simple functionality of - the more frequent the tag, the larger it appears in the cloud.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Individual blog styling&lt;/strong&gt; - Not so apparent yet, but each post has a custom stylesheet associated with it, allowing for more individual looking blogs. When I&#39;m feeling particularly creative, this feature will hopefully become more apparent.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search&lt;/strong&gt; - The search function has moved, so it now appears on every page. This just makes sense, really. Still works in exactly the same way, fire a word in the box and you&#39;ll find all the blogs that contain that word, in relevance order.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;New commenting system&lt;/strong&gt; - I go into more detail about this in the new &lt;a href=&quot;https://samdking.co.uk/faq/&quot;&gt;Frequently Asked Questions section&lt;/a&gt;, however to summarise, it&#39;s a stripped back version of the old one. I&#39;m not sold on it visually yet, so you may see small modifications to it in the near future. The idea behind it is to encourage more comments. I love comments, it makes me feel special :)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unless you&#39;re of the technical mind, feel free to skip this next section.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timeline&lt;/strong&gt; - this is essentially what the new design is based around. I liked the idea of a timeline, plus it gave me a chance to experiment with some AJAX coding. Again, more on this on in the FAQ section.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;More cross-browser compatible&lt;/strong&gt;- When designing version 1 of the site, I wasn&#39;t really aware of cross-browser issues, however since then it&#39;s something I&#39;ve learnt to consider. In building version 2, I made a conscious effort to increase compatibility across all browsers. As far as I&#39;m aware, version 2 is free of any visual quirks and oddities that &lt;del&gt;Internet Explorer&lt;/del&gt; some browsers like to throw up.&lt;/p&gt;&lt;/li&gt; 

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Javascript Improvement&lt;/strong&gt; - This was a tough one, but I&#39;m proud to announce the Javascript used on the website is now completely non-intrusive. I am not sure if this is the correct word (it escapes me at this point in time), but what I am getting at is all the Javascript is now contained in a seperate file, with the HTML file containing zero Javascript. Not even a tiny bit. This is a good practise to follow, and something I will be implementing in all future projects.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Whole backend recoded&lt;/strong&gt; - Not anything that the casual reader will notice, but the whole backend of the website has been recoded. Although not really necessary, I like to keep things fresh and running as efficiently as possible. As well as keeping my skills in check and up to date!&lt;/p&gt;&lt;/li&gt; 
&lt;/ul&gt; 

&lt;p&gt;So there you have it. Version 2 is out and I&#39;d love to hear what you think of it. Drop me a comment below.&lt;/p&gt;

&lt;p&gt;P.S. I&#39;m 22 tomorrow!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Verdict: Imogen Heap was murdered</title>
    <link href="https://samdking.co.uk/blog/the-verdict-imogen-heap-was-murdered/"/>
    <updated>2010-01-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-verdict-imogen-heap-was-murdered/</id>
    <content type="html">&lt;p&gt;No where near as sinister as it sounds. I&#39;m talking about Jason Derulo&#39;s chart topping number &#39;Whatcha Say&#39;. I&#39;m not as behind the times as this statement suggests. In fact I have just taken this long to decide my true feelings. I love Hide &amp; Seek by Imogen Heap, I think it&#39;s a brilliantly unique song. Now usually I try to avoid the mindset that a remix or sample taken of a good song must be bad. But in this case, I must agree.&lt;/p&gt;
&lt;audio controls=&quot;&quot; src=&quot;https://samdking.co.uk/media/whatcha_say.mp3&quot;&gt;&lt;/audio&gt;

&lt;p&gt;The first time I heard it, I was a bit put off,  it&#39;s American trash. But after a download and a few listens I was beginning to like it. In essense, they took arguably best bit of Hide and Seek and sped it up a little. And I was even starting to get on board with Jason Derulo&#39;s parts.&lt;/p&gt;

&lt;p&gt;Several months on and I&#39;ve now done a 180. Maybe I was a little naive before, but what was I thinking? Maybe a few good listens of  Heep&#39;s song was the slap in the face I needed. Hide and Seek was how it was meant to sound. Raw, atmospheric and an almost lonely quality to the song. Jason Derulo has managed to strip the song of  those qualities when sampling it. Not to mention the fact that the whole song is about him cheating on his partner and them finding out. Hard hitting stuff, this.&lt;/p&gt;

&lt;p&gt;Jase, nice try, I admire you for that. But I will be listening to your version no more.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>An interesting grammar debate about commas in lists</title>
    <link href="https://samdking.co.uk/blog/interesting-grammar-debate-about-commas-in-lists/"/>
    <updated>2010-01-27T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/interesting-grammar-debate-about-commas-in-lists/</id>
    <content type="html">&lt;p&gt;I&#39;ve just read an article on the Internet off someone&#39;s blog regarding the use of commas in a list. Now I&#39;ve always been a little fanatical about grammar, or more the lack of it in todays society. Modern technology (Internet, social networking, mobile phones, etc.) are to blame, but that&#39;s a blog entry for another day. This particular article struck home as I can clearly remember the moment when the &quot;correct&quot; method for writing a list was taught to me. Or so I thought.&lt;/p&gt;
&lt;p&gt;The article: &lt;a href=&quot;http://www.davidgagne.net/2002/03/12/list-groupings-correct-use-of-commas/&quot;&gt;http://www.davidgagne.net/2002/03/12/list-groupings-correct-use-of-commas/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I just discovered this guy, and I intend to read more of his blog because he seems to know what he&#39;s talking about. Plus he has an inane, yet enthusiastic way of explaining it; which I think is great. I thought about summarising his argument, but the best way to understand is simply to read the article.&lt;/p&gt;

&lt;p&gt;What I thought I knew is now up in the air. And it seems there isn&#39;t a definitive answer. Writing a list will never be the same again.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Misleading yet suitabily effective advertising</title>
    <link href="https://samdking.co.uk/blog/misleading-yet-suitabily-effective-advertising/"/>
    <updated>2010-01-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/misleading-yet-suitabily-effective-advertising/</id>
    <content type="html">&lt;p&gt;Opening up my preferred bit torrent website for some routine TV programme downloading, I was presented with a rather provacative advert. Now this isn&#39;t the first time I&#39;ve seen this particular ad, and it caught me attention the first time I saw it too. What I found amusing about it was what it was advertising. And hey, I&#39;m not judging: if it works, it works!&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/1264545037_1.jpg&quot; alt=&quot;Provocative Advert&quot; style=&quot;float: left; margin-top: 5px; margin-right: 15px&quot; /&gt;

&lt;p&gt;Now I won&#39;t post the actual website, but it&#39;s for an online roleplaying game, similar to World of Warcraft. Coincidently, &#39;WOW&#39; also seem to be applying alternative advertising techniques, using Mr T as their spokesperson. This particular website, however, have taken a different tact.&lt;/p&gt;

&lt;p&gt;Given the audience of these types of games is probably mainly teenage boys, what adolescent could say no to a half naked lady offering a seductive head-tilt and an even more seductive play on words? After all, &lt;em&gt;I&lt;/em&gt; screenshotted that bad boy, cropped it and uploaded it onto my blog! That &quot;Play NOW&quot; button is just begging to be pressed.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Sleep Challenge</title>
    <link href="https://samdking.co.uk/blog/the-sleep-challenge/"/>
    <updated>2010-01-23T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-sleep-challenge/</id>
    <content type="html">&lt;p&gt;Currently I&#39;m stuck in the most relentless and annoying sleep pattern. A combination of unemployment, sheer laziness and post-adolescent nocternal altertness (OK I just made that up) has caused me to get stuck in the annoying late-to-bed-late-to-wake repetition loop. But this will change; and this post marks this change.&lt;/p&gt;
&lt;p&gt;Starting from tonight, for the next 2 weeks I will be following the following (ha) sleep schedule:&lt;/p&gt;

&lt;table cellpadding=&quot;10&quot; border=&quot;1&quot; style=&quot;border-collapse: collapse; border-color:#888; margin: 0 auto&quot;&gt;
&lt;tr&gt;&lt;th align=&quot;right&quot;&gt;Go to bed at:&lt;/th&gt;&lt;td&gt;11:00PM&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th align=&quot;right&quot;&gt;Wake up at:&lt;/th&gt;&lt;td&gt;7:00AM&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;The scedule allows for a solid 8 hours sleep and if followed correctly, will snap me right out of the sleep pattern and back into normal-people hours.&lt;/p&gt;

&lt;p&gt;It should be pointed out that schedule allows for very little in the way of a social life (as non-existant as mine currently is). For this reason, regardless of whether I manage to meet the nightly target of 11PM, the morning target of 7:00PM must always be adhered to. With that said, I will always endeavour to meet both daily targets.&lt;/p&gt;

&lt;p&gt;To save cluttering up the blog, I will keep to a weekly-update system. So expect an update next Saturday - the 30th January.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Facebook: The Idiots breeding ground</title>
    <link href="https://samdking.co.uk/blog/facebook-the-idiots-breeding-ground/"/>
    <updated>2010-01-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/facebook-the-idiots-breeding-ground/</id>
    <content type="html">&lt;p&gt;Apologies for this rant, but it&#39;s something I&#39;d like to share. Something that has come about fairly recently on Facebook (correct me if I&#39;m wrong) is fan pages. Now as I understand, these are for celebrities, musicians, actors, etc. - anyone who has &quot;fans&quot;. However it seems the intellectually-challenged sector of Facebook has managed to confuse and misuse this feature.&lt;/p&gt;
&lt;p&gt;As an example, let&#39;s say I wanted to become a fan of Scrubs&#39; very own Zach Braff. I would visit his fanpage on Facebook and select the &quot;Become a Fan of&quot; button. Pretty obvious use of the &quot;fanpage&quot;, don&#39;t you think?&lt;/p&gt;

&lt;p&gt;Well it seems these fanpages are being used to broadcast ridiculous statements containing no real information or anything in the way of content. Pages like &quot;OMFG! He dumped me! Hes such a bastard. HE IS GOING TO PAY!!!!!11&quot; and &quot;stop chatting shit behind my back! grow sum balls nd tell me 2 my face!!&quot; - you get the idea. I can only assume these kind of fanpages are created by sexually-frustrated, grammatically-challenged teens. Of course, if you can relate to this statement, you want to become a fan of this. And it turns out people actually join these fanpages. In their hundreds of thousands in fact.&lt;/p&gt;

&lt;p&gt;What&#39;s wrong with this? Well, on these &quot;fanpages&quot;, every time the owner writes anything on the wall, it repeats the whole name of the fanpage. In exactly the same way when you write something on your personal profile, your name appears before it. Fair enough, you might say, were it not for the senseless messages seen on the fanpage walls. Something along the lines of &quot;Yea! 1000 members! woop woop!&quot;, &quot;OMG! 25,000 pplz. Dis is well popular!&quot;. Put it together and you get a rivetingly necessary message along the lines of:&lt;/p&gt;

&lt;p style=&quot;width: 75%; margin-left: auto; margin-right: auto; font-size: 1.2em&quot;&gt;&lt;strong&gt;stop chatting shit behind my back! grow sum balls nd tell me 2 my face!!&lt;/strong&gt; Yea! 1000 members! woop woop!&lt;/p&gt;

&lt;p&gt;And more often than not, this is pretty much the extent to the fanpages&#39; content. The way I see it, shouldn&#39;t this kind of content - if it must exist at all - be contained to groups? I dunno, maybe Facebook has changed since I was a frequent user. Just seems a little bizarre to me.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The disappearance of my favourite sweets</title>
    <link href="https://samdking.co.uk/blog/the-disappearance-of-my-favourite-sweets/"/>
    <updated>2010-01-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-disappearance-of-my-favourite-sweets/</id>
    <content type="html">&lt;p&gt;It&#39;s something I&#39;ve feared for a while now, and as of today I have given up hope. It seems Bassetts Fruit Allsorts no longer exist. I just need a minute...

The daringly delicious alternative to Liquorice Allsorts seems to have vanished from the face of the Earth. I can only assume this is due to lack of popularity, as the general concencus online seems to be negative. I find this hard to believe, and I stand alone when I say I love loved Fruit Allsorts.&lt;/p&gt;
&lt;p&gt;Growing up I was always intrigued by liquorice allsorts. But due to a dislike of black liquorice, they were always just out of reach. I&#39;ve always loved sweets and there was something about Liquorice Allsorts that &lt;em&gt;looked&lt;/em&gt; so tasty.&lt;/p&gt;

&lt;p&gt;And then one day, it was like someone read my mind. &quot;Liquorice Allsorts... &lt;strong&gt;without the liquorice!&lt;/strong&gt;&quot; It was perfect. And to this day I remember my first bag. Everything I&#39;d dreamed of. In my darker days (when they were 50p a bag in Sainsburys) I was known to munch through several bags a week.&lt;/p&gt;

&lt;p&gt;But it seems the die-hard Liquorice fans have driven away Fruit Allsorts. If I ever get round to it I&#39;ll send a firm letter to Cadbury (who bought out Bassetts) and ask them for a more official answer. But for now, I wave my fist at thee in defiance. Fruit allsorts, I salute you in all your fruity-non-liquoricey goodness!&lt;/p&gt;

&lt;p&gt;That is all&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The hottest riff in the World today</title>
    <link href="https://samdking.co.uk/blog/the-hottest-riff-in-the-world-today/"/>
    <updated>2010-01-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-hottest-riff-in-the-world-today/</id>
    <content type="html">&lt;p&gt;Well, perhaps a bit of an exaggeration. But I always get a little overexited whenever I hear this. The song is Plan B - Stay Too Long, which, as a whole package is an alright song. But the verse riff stands out for me as something special.&lt;/p&gt;
&lt;p&gt;I&#39;m into my classic guitar music as much as I am modern genres. What I love about this riff is the pounding, rhythmic &amp; edgy of type sound that you rarely hear these days. I&#39;m not sure who the provides the vocals in this particular bit of the song, but I think it fits the backing tune like a glove.&lt;/p&gt;

&lt;p&gt;And as much as I love modern music, you really don&#39;t hear anything worthy of being called a riff these days. But this, &lt;strong&gt;in my humble opinion&lt;/strong&gt; IS A RIFF.&lt;/p&gt;

&lt;p&gt;Without further ado, here&#39;s an MP3 snippet of the song. See what you think.&lt;/p&gt;

&lt;audio controls=&quot;&quot; src=&quot;https://samdking.co.uk/media/planb_riff.mp3&quot;&gt;&lt;/audio&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: Obviously I don&#39;t own this music. If you like it, go out and buy the song.&lt;/em&gt;&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Getting songs back off your iPod</title>
    <link href="https://samdking.co.uk/blog/getting-songs-back-off-your-ipod/"/>
    <updated>2010-01-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/getting-songs-back-off-your-ipod/</id>
    <content type="html">&lt;p&gt;Apple make it easy-peasy to put your tunes onto your iPod or iPhone, via iTunes. But they go out of there way to stop you going in the opposite direction. If you&#39;ve ever enabled your iPod for disk use and opened it up on your desktop, you&#39;ll see the way Apple has confuzzled it up enough to stop you cherry-picking songs from an iPod. Fair enough, you can grab the whole lot, but if you want just a couple, there are easier ways to do it.&lt;/p&gt;
&lt;p&gt;I got my Macbook back yesterday, but despite the millions of employees inside each Apple shop, it seems none were organised enough to give me a calll and tell me it was ready. But that&#39;s the extent of my rant because overall I was pretty happy with the service. Applecare saved me the cost of labour &amp; hardware to the sum of £130 - not bad, considering the care only cost me £50 in the first place. The first thing I did was restore my system back to the last backup I made in Time Machine - a painless and relatively quick process. After that, my laptop was almost in exactly the state it was a few months ago. Thanks Apple.&lt;/p&gt;

&lt;p&gt;My iTunes was, however, a few months behind on songs. So, since I&#39;d synced my iPod a few days before the hard drive gave up, I thought it attempt to get any recent songs off my iPod and seemlessly slot it back into my iTunes library. That&#39;s the good thing about iPods, or any MP3 device. In addition to music players, they are also portable external hard drives, which you can use to salvage your music collection if the hard drive decides enough is enough.&lt;/p&gt;

&lt;p&gt;After a little bit of research, I downloaded &lt;a href=&quot;http://www.podtomac.com/&quot;&gt;Pod to Mac&lt;/a&gt; (&lt;a href=&quot;http://www.podtopc.com/&quot;&gt;Pod to PC&lt;/a&gt; is also available). It&#39;s free to use, but the features are limited until you register for the reasonable fee of $9.99. But for what I wanted, I kept with the free version. After I installed and fired it up I thought - perfect - that&#39;s exactly what I want.&lt;/p&gt;

&lt;p&gt;But this story is unfortunately one of those kick yourself repeatedly stories. Moments before opening up the program I absentmindly plugged my iPod in. Not thinking anything of it, I let it do its thing - which unfortunately - in this instance - is sync.&lt;/p&gt;

&lt;p&gt;Not realising my mistake at the time, I started searching for the songs I&#39;d put on my ipod recently using the Pod to Mac software. What? None of them are here. Is this thing broken? Then it dawned on me.&lt;/p&gt;

&lt;p&gt;Fortunately I managed to supress my rage enough that my Macbook and iPod are still in one piece. But suffice to say, after doing the necessary research and finding out there is an easy-to-use program that could do exactly what I wanted, I&#39;d been in better moods.&lt;/p&gt;

&lt;p&gt;So if you&#39;re ever in the same situation as me and need to retrieve some songs off your iPod, &lt;strong&gt;DO&lt;/strong&gt; download the software I recommended, however &lt;strong&gt;DO NOT&lt;/strong&gt; sync your iPod before you do it. Lesson learned I guess.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>charlieissocoollike</title>
    <link href="https://samdking.co.uk/blog/charlieissocoollike/"/>
    <updated>2010-01-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/charlieissocoollike/</id>
    <content type="html">&lt;p&gt;I have just found my new favourite person on YouTube. Presenting: &lt;a href=&quot;http://www.youtube.com/user/charlieissocoollike&quot; title=&quot;charlieyoutube&quot;&gt;charlieissocoollike&lt;/a&gt;. After brief research I discovered Charlie has been making videos for about 2 years, but he&#39;s new to me. And I can&#39;t let this moment pass without mentioning him. In a nut shell: he is fricking awesome.&lt;/p&gt;
&lt;p&gt;Charlie has managed to encapsulate 2 things I&#39;ve been mulling over writing about in my blog:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;David Tennant as The Doctor is an absolute legend.&lt;/li&gt;
&lt;li&gt;For god sake be yourself. Everyone is so ordinary these days&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It&#39;s so refreshing to see someone who, firstly, is completely natural in front of the camera, secondly, doesn&#39;t appear to care what people think and lastly, comes complete with a glowing sense of uniqueness and originality. Three qualities apparent in the Who Doctor himself.&lt;/p&gt;

&lt;p&gt;Charlie McDonnell, I applaud you. David Tennant would be proud.&lt;/p&gt;

&lt;p&gt;P.S. In case the Doctor Who comparison wasn&#39;t apparent enough: Charlieissocoollike is a big fan.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Macintosh HD gives up the ghost</title>
    <link href="https://samdking.co.uk/blog/the-macintosh-hd-gives-up-the-ghost/"/>
    <updated>2010-01-09T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-macintosh-hd-gives-up-the-ghost/</id>
    <content type="html">&lt;p&gt;At barely a year old, the hard drive in my Macbook has failed. Sad day, yes. The good news is I have been backing up via the seamless software Time Machine. Bad news is that despite my efforts to back up over the last fortnight, my last successful backup was back in October. So that&#39;s bye-bye photos for the last 3 months, bye bye music &amp;amp; bye bye web stuffs.&lt;/p&gt;
&lt;p&gt;This does, amongst other things, halt the development of design version 2 of the blog. Fortunately about 90% of the files I&#39;ve been working on for the new design are backed up online, safe (touch wood) on a server somewhere in the states.&lt;/p&gt;

&lt;p&gt;It could&#39;ve been a lot worse so I&#39;m not gonna dwell on it, I just wish I&#39;d backed up a few more of my photos, because unlike music, they&#39;re relatively irreplaceable.&lt;/p&gt;

&lt;p&gt;I should get my Macbook back sometime next week. It currently resides in the storeroom of the Cambridge Apple Shop. I&#39;ve heard they don&#39;t let you keep the old hard drive - can anyone vouch for that? But, allas, for now I&#39;m stuck with my old broken Dell Inspiron laptop of yesteryear, whose touchpad &amp; keyboard has some annoying quirks I&#39;m quickly rediscovering.&lt;/p&gt;

&lt;p&gt;The small something I can take from this is it has reinstated my confidence in Apple software. My Mac had been running very sluggishly the last few days and as you do, you end up blaming the software. But now that I know it was a hardware fault, I&#39;m not running with my tail between my legs back to the Windows world just yet. With that said, a hard drive failing after a year doesn&#39;t say a whole lot for Apple&#39;s quality control, build quality or testing. I can&#39;t say I&#39;ve had that with any of my previous computers.&lt;/p&gt;

&lt;p&gt;Today&#39;s advice - you can&#39;t backup too often.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Arrival of the Cactus V4s (+ my new photo wall)</title>
    <link href="https://samdking.co.uk/blog/the-arrival-of-the-cactus-v4s-my-new-photo-wall/"/>
    <updated>2010-01-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-arrival-of-the-cactus-v4s-my-new-photo-wall/</id>
    <content type="html">&lt;p&gt;That&#39;s right! After five weeks of waiting, my Cactus V4 wireless triggers have finally arrived. I ordered them back in November, in the hope that they would simplify the whole off-camera flash process and thus make it more fun. Up until now I&#39;ve been restricted to a coiled TTL cable, which meant I couldn’t be much further than a metre away from the flash, which was somewhat limiting. But now - fingers crossed - that’ll be a thing of the past.&lt;/p&gt;
&lt;p&gt;In the follow-up to my blog back in September about printing your photos, to show I&#39;m not a hypocrite, I decided to capture a snap of my new photo wall. And since the wireless triggers arrived today, I thought I&#39;d have a bit of fun with them. Exhibit A:&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;https://samdking.co.uk/images/1262718880_1.jpg&quot; class=&quot;w-full drop-shadow-xl rounded-sm&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;I love shooting with these little things. They make things so much easier. In the image above I set the camera to Tungsten (blue) white balance, which obviously turns the whole scene blue. Then, to turn the subject (me) back to a normal colour, I  gelled the flash with a full CTO (orange) gel. The SB-600 flash was set to 1/2 power and bouncing into an umbrella, fired with the Cactus V4. For the back light, I set my Jessops 360AFD flash on its stand and pointed it towards the wall, at 1/16th power. The Jessops flash has an optical slave mode, which means it’s triggered by the other flash and therefore didn’t need a wireless receiver (just as well as I only have one at the moment). I gelled the background flash with a 1/4 CTO gel, just to make the light hitting the wall slightly less blue.&lt;/p&gt;

&lt;p&gt;I’m pretty pleased with how the picture turned out, and it shows what can be easily achieved in a short space of time with a couple of flashes and a bit of creative thinking. I must say, Joe McNally’s book ‘The Hot Shoe Diaries’ is a great read and has heavily influenced my interest in off-camera lighting.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Catchup Post</title>
    <link href="https://samdking.co.uk/blog/the-catchup-post/"/>
    <updated>2010-01-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-catchup-post/</id>
    <content type="html">&lt;p&gt;I haven&#39;t written a blog in a while. No excuses really, but I hope to get back on track in the upcoming weeks. This is mainly a catch-up post, going over a few things that I probably should&#39;ve mentioned earlier, that have happened over the last few weeks. Namely:


New lighting gear
Website re-design in the pipeline
Happy New Year!
&lt;/p&gt;
&lt;p&gt;I&#39;ve been onto lighting and off-camera flashing (ahem) for almost as long as I&#39;ve been into photography. The whole concept intrigues me. I&#39;ve recently purchased some lighting gear - a light stand, an umbrella and a swivel umbrella bracket. Three things that, when combined with some form of off-camera trigger and a flash, will open up a world of possibilities. Unfortunately, due to the inconsistencies of posting something halfway around the world, I am still lacking a set of wireless triggers - despite ordering two, from two different companies. Sigh.&lt;/p&gt;

&lt;p&gt;But mark my words, once those babies arrive, expect to see a lot of experimental photos appearing on the blog.&lt;/p&gt;

&lt;p&gt;The new aforementioned website redesign for this here blog is based around a time-line design. Which, amongst other things, means it&#39;s going to be blatantly obvious if I don&#39;t blog for a while. I&#39;m hoping this will spur me into being a more regular blogger. Plus I think it looks funky.&lt;/p&gt;

&lt;p&gt;Another big change in the new design is going to be in how each individual blog is displayed. I&#39;m hoping to incorporate a new system whereby each blog can be individually styled. This is a similar approach to articles in a magazine.&lt;/p&gt;

&lt;p&gt;In other news, I rather like &lt;a href=&quot;http://www.youtube.com/watch?v=TUZwdbeS2mM&quot; title=&quot;http://www.youtube.com/watch?v=TUZwdbeS2mM&quot;&gt;Glee&#39;s cover&lt;/a&gt; of the Journey classic, Don&#39;t Stop Believin&#39;. Is that bad?&lt;/p&gt;

&lt;p&gt;Oh and to close, Dustin Diaz has finished his 365 project and in style, no less. Check out his &lt;a href=&quot;http://www.flickr.com/photos/polvero/4232984120/&quot; title=&quot;http://www.flickr.com/photos/polvero/4232984120/&quot;&gt;final photo&lt;/a&gt;, with accompanying video.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Baby it&#39;s Cold Outside</title>
    <link href="https://samdking.co.uk/blog/baby-its-cold-outside/"/>
    <updated>2009-12-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/baby-its-cold-outside/</id>
    <content type="html">&lt;p&gt;Oh the weather outside is frightful. But it can only mean one thing. Christmas is upon us once again. And the weather is trying so hard to be festive this year. It is for this reason I&#39;m in the mood to list my top 10 Christmas songs. In no &lt;em&gt;particular&lt;/em&gt; order.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Please Come Home For Christmas - Eagles*&lt;/li&gt;
&lt;li&gt;Christmas Eve Sarajevo - Trans-Siberian Orchestra&lt;/li&gt;
&lt;li&gt;Let It Snow - Frank Sinatra&lt;/li&gt;
&lt;li&gt;Jingle Bell Rock - Bobby Helms&lt;/li&gt;
&lt;li&gt;Run Run Rudolph - Chuck Berry&lt;/li&gt;
&lt;li&gt;Blue Christmas - Shakin&#39; Stevens&lt;/li&gt;
&lt;li&gt;All Alone On Christmas - Darlene Love&lt;/li&gt;
&lt;li&gt;Rockin&#39; Around The Christmas Tree - Brenda Lee&lt;/li&gt;
&lt;li&gt;Christmas Time (Don&#39;t Let The Bells End) - The Darkness&lt;/li&gt;
&lt;li&gt;Merry Christmas Baby - Elvis Presley&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There&#39;s a lot of bad stuff floating around at Christmas. But these are some of my favourites.&lt;/p&gt;

&lt;p&gt;* A lot of people have covered this song, Eagles included. I&#39;m listing this version because it&#39;s the version I own.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Glorious Misfits</title>
    <link href="https://samdking.co.uk/blog/the-glorious-misfits/"/>
    <updated>2009-12-11T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-glorious-misfits/</id>
    <content type="html">&lt;p&gt;This show has impressed me. If you haven&#39;t watched an episode yet, you&#39;ve probably seen one of the million trailers E4 put out every week. From the trailers, it&#39;s easy to dismiss this show as another chavfest teenage angst, sex-obsessed drama (albeit with a touch more action). With that in mind, I decided to watch anyway. I&#39;m glad I did.&lt;/p&gt;
&lt;p&gt;Five delinquents, forced to do community service, are inadvertently landed with superpowers following a freak lightning storm. The superpowers are unique to the individuals and seem to be an extension of their personality. And it&#39;s not just the main characters, it&#39;s obvious from the start that other people were affected too, and have developed strange powers.&lt;/p&gt;

&lt;p&gt;What makes Misfits so watchable is the characters and their interactions with one another. Let&#39;s face it, unless there&#39;s one in your face, chavs are quite amusing to watch at times. And that humor comes across in Misfits in abundance. The curly haired Irish guy, Nathan, is an absolute gem of a character: zero inhibitions and a blatant disregard to society - but damn is he funny about it.&lt;/p&gt;

&lt;p&gt;The photog geek inside me can&#39;t post this without mentioning the visual feast for the eyes either. Everything about this show looks so polished. The lighting is flawless, and the desaturated colouring matches perfectly with the dark storyline. It really inspires me to pursue some sort of production job.&lt;/p&gt;

&lt;p&gt;Skins is &lt;em&gt;sooo&lt;/em&gt; last year.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Phoenix - 1901</title>
    <link href="https://samdking.co.uk/blog/phoenix-1901/"/>
    <updated>2009-12-10T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/phoenix-1901/</id>
    <content type="html">&lt;p&gt;This song is featured on the latest advert for PS3. I initially thought - that is a nice sounding song, goes well with the content of the advert. Well today I figured out what the song is.&lt;/p&gt;
&lt;p&gt;It&#39;s by a French band called Phoenix and they&#39;ve actually been around for 10 years. The song is called 1901 and it is GOOD. Check it out. &lt;/p&gt;

&lt;p&gt;On another note, I&#39;ve finally adjusted the anti-SPAM feature in my code and may have stopped stupid messages forever. Time will tell...&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Phrazes for the Young</title>
    <link href="https://samdking.co.uk/blog/phrazes-for-the-young/"/>
    <updated>2009-12-04T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/phrazes-for-the-young/</id>
    <content type="html">&lt;p&gt;I mentioned the sounds of Julian Casablancas in &lt;a href=&quot;/blog/can-you-hear-the-strokes-pumping-on-your-stereo/&quot;&gt;this&lt;/a&gt; post. It wasn&#39;t much of a review post as I hadn&#39;t heard much of the song at that point. Since then, I&#39;ve bought his album - Phrazes for the Young - and I thought now would be a good time to review it.&lt;/p&gt;
&lt;p&gt;First Impressions, (I&#39;m so &lt;a href=&quot;http://en.wikipedia.org/wiki/first_impressions_of_earth&quot; title=&quot;&lt;firstimpressionswiki&gt;&quot;&gt;funny&lt;/a&gt;) this is a nice sounding album. That was a few weeks ago. Now, I love it! If you love *that* Strokes sound, you&#39;ll love this album. From the start it becomes apparent where a lot of the driving force comes from in The Strokes. As soon as Julian opens his mouth you know you&#39;re gonna here the bouncing, yet effortless tones that have become synonymous with The Strokes.&lt;/p&gt;

&lt;p&gt;Compiled of just 8 tracks*, this album really has to impress from the start, and it doesn&#39;t disappoint. The first track - Out of the Blue - sets the pace with snappy lyrics and a soaring chorus. There isn&#39;t honestly a track on this album that doesn&#39;t deserve to be on it. And the single - 11th Dimension - has cemented itself as an awesome track in the list; a song well chosen to represent the album.&lt;/p&gt;

&lt;p&gt;If I could describe Julian Casablancas sound, it&#39;s almost a slightly more fun version of The Strokes; big choruses and riffs that will hook you from the start. And how can I not mention the harmonising guitars that make an appearance in several songs.&lt;/p&gt;

&lt;p&gt;If you&#39;re into The Strokes, or you just want to listen to a concise, decent sounding album I would recommend this.&lt;/p&gt;

&lt;p&gt;Rating: 8/10&lt;/p&gt;

&lt;p&gt;*Although it seems iTunes were giving away 3 bonus tracks. Damn you iTunes.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Bokeh &amp;amp; The Rain</title>
    <link href="https://samdking.co.uk/blog/the-bokeh-amp-the-rain/"/>
    <updated>2009-11-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-bokeh-amp-the-rain/</id>
    <content type="html">&lt;p&gt;Well, it rained this weekend. A lot.

I took advantage of this by capturing the view out of my window. I&#39;ve got some really nice photos of the lights out of my window that, if they&#39;re far enough out of focus, appear as circular coloured blobs. This is better known to the photography minded individual as &quot;bokeh&quot; (pronounced &quot;bow - kuh&quot;).&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1259585410_1.jpg&quot; width=&quot;700&quot; height=&quot;465&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here&#39;s the shot that I particularly liked. By focusing on the rain droplets on the window, I was able to throw the lights in the background far enough out of focus to achieve the effect in the photo.&lt;/p&gt;

&lt;p&gt;The Bokeh &amp; The Rain. Coming to a cinema near you soon.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>When did we all stop doing nothing?</title>
    <link href="https://samdking.co.uk/blog/when-did-we-all-stop-doing-nothing/"/>
    <updated>2009-11-25T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/when-did-we-all-stop-doing-nothing/</id>
    <content type="html">&lt;p&gt;We&#39;re all aware of how fast the world is moving. Technology, fashions, work. And it&#39;s easy to trick yourself into some relaxation at some point during the day. But - these days - do we ever really just stop and do nothing? And I mean nothing. Just you and your thoughts.&lt;/p&gt;
&lt;p&gt;Living on my own for the first time was a strange experience at first. But I&#39;m learning to appreciate it. This evening I had a moment of clarity. I managed to completely switch off. I shut the TV off, loaded up some music, made myself a cup of tea and just sat. &lt;/p&gt;

&lt;p&gt;It was amazing. &lt;/p&gt;

&lt;p&gt;I honestly cannot remember a time where I was able to switch off like I did. Television has made this hard. The Internet has made this hard. Hell, the 21st century has made this kind of serenity difficult. We&#39;re always presented with something to do, even when we think we&#39;re relaxing. I blame the iPhone. And have you noticed how we rarely just listen to music these days? More often than not it&#39;s promoted as an &lt;em&gt;accompaniment&lt;/em&gt; to our lives. Again, Apple. (I have no beef, I&#39;m writing this on a Macbook) &lt;/p&gt;

&lt;p&gt;Of course what I&#39;m preaching is all clouded by the hypocritical truth that I was so overcome with the urge to write something down that I broke from my peaceful state. But it does help to prove my point.&lt;/p&gt;

&lt;p&gt;So, I urge you. Just take 5 minutes out of your busy lives and just do nothing. If all goes to plan, you&#39;ll feel rejuvenated afterwards. To enjoy an experience similar to mine, you will need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;an environment free of distraction&lt;/li&gt;
&lt;li&gt;a few pleasant little ditties* (thank you Tesco)&lt;/li&gt;
&lt;li&gt;a soothing drink of your choice&lt;/li&gt;
&lt;li&gt;a comfortable seat&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*I&#39;m rather partial to the The New Moon soundtrack at the moment.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>The Twilight Phenomenon</title>
    <link href="https://samdking.co.uk/blog/the-twilight-phenomenon/"/>
    <updated>2009-11-18T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-twilight-phenomenon/</id>
    <content type="html">&lt;p&gt;We cannot get enough of vampires. And this particular love story between a vampire and a mere mortal seems to have captivated the world. What struck me this weekend is the staggering popularity of the Twilight saga films. Huge billboards, television adverts, plastered across train &amp; tube station walls, striped across buses and bus stops. You name it. New Moon - the next installment in the Twilight series of books &amp; films - is set to be massive.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1258559707_1.jpg&quot; width=&quot;700&quot; height=&quot;300&quot; alt=&quot;They Love Edward and Bella in Forks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So where do I stand on this teenage vampire romantic drama? Well. Anything that is hugely popular I would say I approach with caution. Having said that, currently, I&#39;ve read 3 of the 4 books and have just begun reading the forth. The film is good. It has its cringeworthy moments but it&#39;s an impressive film, with stunning scenery and cinematography and an overall steady story-line. Of course, this was taken 100% from the book; which, again, on the whole is a pretty good read.&lt;/p&gt;

&lt;p&gt;Reading the books, I found myself comfortably immersed in the story. I quite enjoy the whole vampire concept and the way the author slowly unravels their background as you progress through the books. However there &lt;em&gt;is&lt;/em&gt; something rather repetitive and annoyingly angsty about the relationship between the two main characters. Yes, it is a love story. Yes, they are both teenagers (broadly speaking). But by the end of the third book I found the tension between Bella Swan and Edward Cullen to be a little tiresome.&lt;/p&gt;

&lt;p&gt;So why exactly is it so popular? It&#39;s a story you can quite comfortably became enveloped in. It&#39;s easy to relate to the characters in one way or another. And there&#39;s something very fascinating about vampires, and the ones we&#39;re introduced to in Twilight are just as intriguing. And for the cherry on top, the whole story is based in the pacific north west of America, an area as atmospheric and mysterious as it is picturesque.&lt;/p&gt;

&lt;p&gt;Even if you are unable to get on board with the - at times - tedious relationship issues throughout Twilight, you have to appreciate the success that the books, the first film and without a doubt the next film have had, and will continue to bring about.&lt;/p&gt;

&lt;p&gt;This is an interesting and well told story. And this is not just for teenage girls. This is for everyone.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>My thoughts on Halloween</title>
    <link href="https://samdking.co.uk/blog/my-thoughts-on-halloween/"/>
    <updated>2009-10-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-thoughts-on-halloween/</id>
    <content type="html">&lt;p&gt;It&#39;s that time of year again, the last day of October, Halloween. Although it seems Halloween has almost become a week-long celebration. And, in all honesty, this is a quick rant about my dislike of Halloween. Feel free to stop reading.&lt;/p&gt;
&lt;p&gt;I&#39;m currently looking down my Facebook Live Feed. There&#39;s no doubt this Halloween thing has caught on across all walks of life. I think what bothers me is the huge commercial gain that comes from Halloween sales. And what is it that people are buying? Pumpkins to massacre, sweets to give to kids and chavs and flimsy plastic masks that are only ever going to be used once. One huge waste, in other words.&lt;/p&gt;

&lt;p&gt;I hear &quot;it&#39;s just an excuse for a party&quot; in defence of Halloween, and who can really condone that, but why does a party on the 31st October mean you have to cover yourself in red and white paint and draw fake scars all over yourself?&lt;/p&gt;

&lt;p&gt;Call me old fashioned, but I think Halloween is the most ridiculous excuse for a holiday that just seems to grow with popularity each year.&lt;/p&gt;

&lt;p&gt;Yes, I&#39;m a Halloween scrooge. Deal with it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Flash Forward (+ New Search page)</title>
    <link href="https://samdking.co.uk/blog/flash-forward-new-search-page/"/>
    <updated>2009-10-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/flash-forward-new-search-page/</id>
    <content type="html">&lt;p&gt;Flash Forward just keeps getting better and better. Made by the guy who made Lost I hear? Well he must&#39;ve figured things out since then. Namely, how not to lose the audience&#39;s attention with a snails pace storyline. With that said, I love Lost. Ha!&lt;/p&gt;
&lt;p&gt;I can&#39;t wait to see how this programme pans out. I can forgive the few moments of wobbly acting because this show just keeps you on the edge of your seat the whole way through. I want to see more!&lt;/p&gt;

&lt;p&gt;I&#39;ve also been working on a search page today. It&#39;s in the preliminary stages at the moment as I believe there are still flaws. However, &lt;a href=&quot;https://samdking.co.uk/search/&quot; title=&quot;&lt;searchpage&gt;&quot;&gt;try it out&lt;/a&gt; and let me know what you think.&lt;/p&gt; 

    </content>
  </entry>
  
  <entry>
    <title>The Excellence of the Peep Show</title>
    <link href="https://samdking.co.uk/blog/the-excellence-of-the-peep-show/"/>
    <updated>2009-10-25T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-excellence-of-the-peep-show/</id>
    <content type="html">&lt;p&gt;We&#39;re well into the 6th series of the Peep Show now and I wanted to post in recognition of how good this show is. What makes the Peep Show so good, in my opinion, is how consistent it is, series after series. If you&#39;ve seen and liked an episode, you&#39;re guaranteed to like every other episode. And I think it&#39;s for this reason why the Peep Show has gathered so many loyal followers. Myself included.&lt;/p&gt;
&lt;img src=&quot;https://samdking.co.uk/images/1256469511_1.jpg&quot; width=&quot;200&quot; height=&quot;113&quot; alt=&quot;The Peep Show&quot; style=&quot;float: left; margin-right: 10px&quot; /&gt;&lt;p&gt; If you haven&#39;t seen the Peep Show I&#39;ll explain the format of it briefly. The perspective of the show is always through the eyes of one of the two main characters - Jez and Mark. Through a clever use of camera angles, you almost feel like you&#39;re a part of the awkward and embarrassing situations that Mark and Jez always seem to find themselves in. This is what make the Peep Show so real and uniquely funny at the same time.&lt;/p&gt;

&lt;p&gt;The difference in personality of the two main characters means you can certainly relate to at least one of them. The clash in personality almost seems to compliment each other at times. The other times, well, let&#39;s just say Mark&#39;s rants are a work of genius.&lt;/p&gt;

&lt;p&gt;The Peep Show has found that small window of unique greatness that all comedies strive for.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Credit to Channel 4 for the image, and for bringing us the bloody great Peep Show.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;P.S. I&#39;ve fixed the commenting system, so that should work now.&lt;/p&gt;

&lt;p&gt;P.P.S. If you&#39;re in the UK, the clocks went back an hour last night. I enjoyed my extra hour in bed this morning.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>A Farm Photoshoot</title>
    <link href="https://samdking.co.uk/blog/a-farm-photoshoot/"/>
    <updated>2009-10-20T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/a-farm-photoshoot/</id>
    <content type="html">&lt;p&gt;I&#39;ve neglected my photography a bit recently, so I decided to post a few pictures I took yesterday. I&#39;m into wide-angle shots in a big way and shoot mostly at the widest angle I currently possess, the 18mm end of my 18-15mm kit lens. As you may know I am also a bit advocate of off-camera flash. The following shots are an example of both.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1256077137_1.jpg&quot; width=&quot;332&quot; height=&quot;500&quot; alt=&quot;The Jump Shot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This photo was actually taken with the on-camera flash, which occasionally I do use. I&#39;m a big fan of the &quot;jump shot&quot; and Charlotte is more than willing to comply with my subject requests. I really like the composition of this. I especially like the contrast between the flash-lit subject and the moody, hint-of-a-sunset evening sky.&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1256077137_2.jpg&quot; width=&quot;332&quot; height=&quot;500&quot; alt=&quot;The Cold Shot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I equally like the composition in this shot. This &lt;i&gt;was&lt;/i&gt; taken with an external flash, held out to the left of the subject. To separate the subject from the background, and expose a better sky, I used a -1/3 exposure compensation. I could&#39;ve used -2/3, which would&#39;ve given a punchier looking sky, but it would&#39;ve given an underexposed look to the rest of the background elements, which are already looking a little dark.&lt;/p&gt;

&lt;p&gt;In other news. I have managed to fall further into the pit of Bejeweled obsession. Why would someone make such an addictive game?&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Bejeweled Madness</title>
    <link href="https://samdking.co.uk/blog/bejeweled-madness/"/>
    <updated>2009-10-17T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/bejeweled-madness/</id>
    <content type="html">&lt;p&gt;I&#39;m ashamed to say as of yesterday I am officially a Bejeweled addict. More specifically, Facebook&#39;s app &lt;a href=&quot;http://apps.facebook.com/bejeweledblitz&quot; title=&quot;bejeweledblitz&quot;&gt;Bejeweled Blitz&lt;/a&gt;. I warn you, do not get into this. It will take over your life!&lt;/p&gt;
&lt;p&gt;I&#39;ve managed to peel myself away to write this blog entry and have vowed not to touch it for at least 24 hours.&lt;/p&gt;

&lt;p&gt;We&#39;ll see how it goes.&lt;/p&gt;

&lt;p&gt;On another note, using some nifty .htaccess coding I have made the URLs on the website prettier. I guarantee 90% won&#39;t notice, but - hey - this one&#39;s for me. I&#39;ve changed most links but if you find any dead ones please let me know.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Invention of Lying</title>
    <link href="https://samdking.co.uk/blog/the-invention-of-lying/"/>
    <updated>2009-10-16T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-invention-of-lying/</id>
    <content type="html">&lt;p&gt;Lamefest. Seriously. What was Ricky Gervais thinking with this film? It is rather hard to pick something about this film that I actually liked. That&#39;s how bad it was.&lt;/p&gt;
&lt;p&gt;I like Ricky Gervais. He&#39;s a good comedian, I like some of the things he&#39;s done. But to be honest I laughed very little throughout this flick, and by the end of the film I was actually a little sick of the sight of the &quot;short little fat man with a stub nose&quot;.&lt;/p&gt;

&lt;p&gt;The premise for the film is pretty simple: everyone tells the truth, there&#39;s no such thing as a lie. And to be honest, that&#39;s what attracted me to the film. In theory, it seems like quite a unique and interesting idea; but in reality, it got very boring, very quickly. I like to think I&#39;m pretty impartial when watching a film, but I found it very hard to get immersed in this film and like it in any way. And I was of that opinion not 10 minutes into the film.&lt;/p&gt;

&lt;p&gt;The Invention of Lying was essentially an hour and a half of rigid acting, predictably repetitive jokes and no real story line. And I don&#39;t think I&#39;ve seen quite so many insults thrown around in one film. It doesn&#39;t say much about us as humans if we&#39;re all hiding behind the big lie that is life is very, very depressing. Which is what the film seemed to be trying to portray.&lt;/p&gt;

&lt;p&gt;And don&#39;t even get me started on the emotional scene behind Gervais and his onscreen mum. I had never felt so awkward and detached from what should&#39;ve been a very touching moment between two characters.&lt;/p&gt;

&lt;p&gt;If you haven&#39;t yet seen this film, my advice to you is avoid it. Like the &quot;Black Plague&quot;. If you have seen it, I&#39;d love to hear your opinion on it.&lt;/p&gt;

&lt;p&gt;Rating: 2/10&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Possibly the least interesting post yet</title>
    <link href="https://samdking.co.uk/blog/possibly-the-least-interesting-post-yet/"/>
    <updated>2009-10-15T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/possibly-the-least-interesting-post-yet/</id>
    <content type="html">&lt;p&gt;I&#39;ve been working on my Javascript coding more recently. It&#39;s baby steps at the moment because a lot of it baffles me. Mostly due to the fact that there isn&#39;t any error feedback. If there&#39;s errors in your code, the script just doesn&#39;t run. How convenient.&lt;/p&gt;
&lt;p&gt;In celebration of the wonderful scripting language that is Javascript, I&#39;ve been working on a blog display page, that  displays all the blog entries in chronological order. Javascript offers instant show/hide functionality to the page. It serves little purpose at the moment, but if you want to reference an old post in a year or so&#39;s time, it could be quite useful&lt;/p&gt;

&lt;p&gt;The page can be assessed by clicking the Blogs link in the top right, or by clicking &lt;a href=&quot;https://samdking.co.uk/blogs/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&#39;m off to the cinema tonight. If the film&#39;s any good, expect a review in the next few days.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Monopolising London</title>
    <link href="https://samdking.co.uk/blog/monopolising-london/"/>
    <updated>2009-10-13T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/monopolising-london/</id>
    <content type="html">&lt;p&gt;Last week, Charlotte and I decided to descend on London for the day. Not uncommon, however this time we were on a mission: visit every monopoly property on the board. After a full 12-hour slog, we finally reached our target... well, close enough. &lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1255457888_1.jpg&quot; width=&quot;700&quot; height=&quot;488&quot; alt=&quot;Monopolising London collage&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Naturally we took a photo everywhere we stopped, and the above collage is proof. There were a few exceptions, however. We found out afterwards we&#39;d completely forgotten to visit Fenchurch Street Station. It&#39;s not on the Underground, which would explain it. We were a little disappointed though.&lt;/p&gt;

&lt;p&gt;The second exception was Marlborough Street. We were looking for an area in London called Marlborough, which of course didn&#39;t exist; a fact we discovered around 11pm. We found out later we should&#39;ve been looking for Marlborough &lt;em&gt;street&lt;/em&gt;, a small road in South Kensington. Ah well - can&#39;t win &#39;em all.&lt;/p&gt;

&lt;p&gt;So after a stupid amount of map reading, various phone calls, countless help from Underground staff &amp;amp; members of the public, a little intuition and downright determination we hung up our boots for the day. Mark my words, this will be done again. And it will be done 100% this time!&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>10 reasons why 99% of photos on Facebook suck</title>
    <link href="https://samdking.co.uk/blog/10-reasons-why-99-of-photos-on-facebook-suck/"/>
    <updated>2009-10-06T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/10-reasons-why-99-of-photos-on-facebook-suck/</id>
    <content type="html">&lt;p&gt;Ok, this is a little bit of a rant. Along with my photography hobby I also developed an annoying smugness for all photos. I&#39;m a self confessed photo snob. It&#39;s unfortunate, because I once used to enjoy browsing photos on Facebook. Now, it&#39;s a case of, &quot;wow that photo sucks&quot;, &quot;oh my&quot;, &quot;damn - what were they thinking&quot;, &quot;oh it gets worse&quot;, etc. So to celebrate this rather ugly trait of mine, here is my compiled list of the top 10 reasons why Facebook photos suck.&lt;/p&gt;
&lt;p&gt;Actually in no specific order whatsoever:&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;With clubbing being the nations favourite past time, a large number of photos were taken in a nightclub. All very well, except due to dark conditions a lot of the time the camera can&#39;t focus. The result? Blurry pictures! Eurgh...&lt;/li&gt;

&lt;li&gt;Repetitive poses. You know the ones.&lt;/li&gt;

&lt;li&gt;Flash. I know you can&#39;t take a picture without it when the lights go down. But there&#39;s so many ways flash can ruin a photo. The worst offender is blown-out, white faces. Another mistake is the flash-in-the-mirror, or flash-in-the-window syndrome.&lt;/li&gt;

&lt;li&gt;Abuse of the new 200 photo limit. It&#39;s a maximum limit, not a target!&lt;/li&gt;

&lt;li&gt;Wipe your lens once in a while. Self explanatory.&lt;/li&gt;

&lt;li&gt;Multiple takes of the same photo. Pick the best one, discard the rest.&lt;/li&gt;

&lt;li&gt;Again, nightclubs. (They&#39;re just a world of hurt, really) Smoke! It&#39;s not your friend. Unless, of course, you like the white hazy look.&lt;/li&gt;

&lt;li&gt;Posing, posing and more posing. Point, smile, shoot x 50 = Boredom.&lt;/li&gt;

&lt;li&gt;You&#39;re on holiday. &quot;Oh look, a famous landmark&quot; *snap*. &quot;Oh look, another&quot; *snap*. Composition is important.&lt;/li&gt;

&lt;li&gt;Steady hands required. Apply within. &#39;Nuff said?&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;&lt;i&gt;Disclaimer: All purely opinion.&lt;/i&gt;&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Premiership Predictions</title>
    <link href="https://samdking.co.uk/blog/premiership-predictions/"/>
    <updated>2009-10-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/premiership-predictions/</id>
    <content type="html">&lt;p&gt;A quick prediction post to summarise the football rush I always get at the end of the weekend. I should say, I&#39;m a Chelsea supporter.&lt;/p&gt;
&lt;p&gt;Chelsea &lt;b&gt;FTW&lt;/b&gt;. It has to Chelsea&#39;s season to win the league. Very positive start and I think they&#39;ll only get better. They rip your nerves to shreds though. There may be some shaky games in the mid-to-late season.&lt;/p&gt;

&lt;p&gt;United are so used to winning the league now that almost can&#39;t not win it. Definitely going to be another close finish between the top 2 but I think now they&#39;ve lost Ronaldo, Chelsea will pip them to the post this year. Not the side they were last year. But they are still Manchester United.&lt;/p&gt;

&lt;p&gt;Arsenal have had a great start to the season too, I definitely see them contending for top 3, ahead of Liverpool. Who, despite scoring goals and being the most tenacious sons of bitches in the league (world?), still don&#39;t have what it takes to win the league.&lt;/p&gt;

&lt;p&gt;Man City? Tottenham? I think at least one of them will run out of steam soon enough, probably Tottenham. City have had a promising start and an expensive squad, but I can&#39;t see them being too much of a challenge for the top 4. It would be nice though.&lt;/p&gt;

&lt;p&gt;There you have it. I&#39;ll refer back to this entry in 3 months or so to see if I&#39;m not full of it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Can you hear The Strokes pumping on your stereo?</title>
    <link href="https://samdking.co.uk/blog/can-you-hear-the-strokes-pumping-on-your-stereo/"/>
    <updated>2009-10-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/can-you-hear-the-strokes-pumping-on-your-stereo/</id>
    <content type="html">&lt;p&gt;Actually, it&#39;s Julian Casablancas, the front man of The Strokes. He has a solo song out called 11th Dimension. And it&#39;s an audio dead-ringer for the Supergrass hit, Pumping on Your Stereo. Seriously. Is it possible New Yorker Julian hasn&#39;t heard of London band Supergrass? Quite likely.&lt;/p&gt;
&lt;p&gt;I&#39;m a big fan of The Strokes and think they should hurry up and bring out their 4th album. It&#39;s been a while since First Impressions of Earth back in 2006.&lt;/p&gt;

&lt;p&gt;The last I heard The Strokes were working on new material to bring out an album next year so I&#39;m not quite sure why Julian Casablancas is pursuing his solo career. If they split up I will be forced to hurt someone, for I have yet to see them live. With that said, all the best to him, the song &lt;em&gt;is&lt;/em&gt; pretty good.&lt;/p&gt;

&lt;p&gt;Anyway, here is the &lt;a href=&quot;http://www.youtube.com/watch?v=EtlpAGs04Dg&quot; title=&quot;&lt;juliancasablancasvideo&gt;&quot;&gt;video&lt;/a&gt; for the song. You decide.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Thanks Biffy, The Captain is it!</title>
    <link href="https://samdking.co.uk/blog/thanks-biffy-the-captain-is-it/"/>
    <updated>2009-09-28T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/thanks-biffy-the-captain-is-it/</id>
    <content type="html">&lt;p&gt;Biffy Clyro have a new single out, The Captain. It&#39;s the follow up to That Golden Rule and features on their upcoming album Only Revolutions. I never really got fully on board with That Golden Rule, but The Captain, in my opinion, better represents the sound that Biffy hinted at in That Golden Rule. It&#39;s like they&#39;ve made the perfect rock/pop fusion track. And I love it!&lt;/p&gt;
&lt;p&gt;It&#39;s got the epic intro and outro that the previous single had and the middle is just pure Scottish twanged melodious goodness.&lt;/p&gt;

&lt;p&gt;It&#39;s been criticised by die hard Biffy Clyro fans, who say they&#39;ve sold out and gone mainstream. I&#39;ll quite happy admit I haven&#39;t been a Biffy Clyro fan since the beginning so I can&#39;t comment on their musical transition from the past. However, what I do know is this single is top quality. Looking forward to the album.&lt;/p&gt;

&lt;p&gt;Rating: 8/10&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Is your iTunes top 10 embarrassing?</title>
    <link href="https://samdking.co.uk/blog/is-your-itunes-top-10-embarrassing/"/>
    <updated>2009-09-26T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/is-your-itunes-top-10-embarrassing/</id>
    <content type="html">&lt;p&gt;I&#39;ve noticed a trend amongst several people&#39;s iTunes libraries. Now this is just a fleeting thought, I haven&#39;t done any extensive research. But it seems the top 10 songs most played in peoples music libraries tends to be quite embarrassing. Your actual favourite songs probably tend to vary over time and, for me at least, the top 10 highest played rarely seems to reflect this.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1253981753_1.jpg&quot; width=&quot;591&quot; height=&quot;171&quot; alt=&quot;My iTunes Top-10&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here&#39;s mine. And here&#39;s a rundown:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Famous Last Words&lt;/b&gt;&lt;br /&gt; Embarrassing: Quite.&lt;br /&gt;Reason: Left it playing on repeat one night last year and it&#39;s still top. I didn&#39;t have the heart to reset the play count. After all, I do quite like it.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;About You Now&lt;/b&gt;&lt;br /&gt; Embarrassing: Yes.&lt;br /&gt;Reason: Such a bloody catchy song. I think it&#39;s got here for memory sake. Definitely a song with good memories attached.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Now We Are Free&lt;/b&gt;&lt;br /&gt;Embarrassing: Not really.&lt;br /&gt;Reason: Love the film, powerful song. No problems here.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;When Did Your Heart Go Missing&lt;/b&gt;&lt;br /&gt;Embarrassing: A little.&lt;br /&gt;Reason: I&#39;m not quite sure. It&#39;s a good song. The girlfriend may have a little to do with this high play count. Her play count for this is at least 5 times mine.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Fans&lt;/b&gt;&lt;br /&gt;Embarassing: Hell no.&lt;br /&gt;Reason: Favourite Kings of Leon song. Just such a tune.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Here (In Your Arms)&lt;/b&gt;&lt;br /&gt;Embarrassing: Oh yes.&lt;br /&gt;Reason: Got up there a few years ago when I got the song and hasn&#39;t left since. Again, memories&#39; sake.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Woke Up New&lt;/b&gt;&lt;br /&gt;Embarrassing: Not really.&lt;br /&gt;Reason: I like the song. Consistently played it since I got it really.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Generator&lt;/b&gt;&lt;br /&gt;Embarrassing: Not really.&lt;br /&gt;Reason: Loved the song when it came out. And it stuck around.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Helena (So Long &amp;amp; Goodnight)&lt;/b&gt;&lt;br /&gt;Embarrassing: Having 2 songs by My Chemical Romance in your top 10 isn&#39;t something to be proud of.&lt;br /&gt;Reason: Love the song. Not a huge fan of the band but I&#39;m a sucker for a few of their hits.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;How To Save a Life&lt;/b&gt;&lt;br /&gt;Embarrassing: Oh dear.&lt;br /&gt;Reason: Yes, alright... it&#39;s there. I liked the song when it came out and it&#39;s on the highly played Scrubs playlist.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There you have it. I like talking about music. Share yours... if you dare.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;P.S.&lt;/b&gt; There&#39;s a new, prettier &lt;a href=&quot;https://samdking.co.uk/keywords/&quot;&gt;keywords page&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Cousins: explained</title>
    <link href="https://samdking.co.uk/blog/cousins-explained/"/>
    <updated>2009-09-24T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/cousins-explained/</id>
    <content type="html">&lt;p&gt;It&#39;s always puzzled me what constitutes a second cousin (and in turn, a third, forth, etc.). I&#39;ve also heard the term &quot;once/twice/three times removed&quot; and never understood what it meant. If you&#39;re in the same boat, wonder no more! Following a discussion tonight I think I&#39;ve now got it, and I will do my best to explain it.&lt;/p&gt;
&lt;p&gt;We all know what a &lt;b&gt;1st cousin&lt;/b&gt; is. Your parents&#39; siblings&#39; children. Easy.&lt;/p&gt;

&lt;p&gt;While we are on 1st cousin, any children that your 1st cousins have would be your &lt;b&gt;1st cousins (once removed)&lt;/b&gt;. As they&#39;re your cousins (if you were to ignore, or &lt;em&gt;remove&lt;/em&gt; the gap of a generation).&lt;/p&gt;

&lt;p&gt;Now a &lt;b&gt;2nd cousin&lt;/b&gt; refers to the children of your parents&#39; 1st cousins. If those 2nd cousins were to have children, they would be your &lt;b&gt;2nd cousins (once removed)&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Now for probably the most confusing bit. Your parents&#39; 1st cousins (the children of whom are your 2nd cousins, see above) are your 1st cousins (once removed) - the term removed goes both up and down.&lt;/p&gt;

&lt;p&gt;To summarise, 1st cousins share a common grandparent, 2nd cousins share a common great-grandparent, and so on.&lt;/p&gt;

&lt;p&gt;The last bit is confusing so I apologise if I lost you. If you followed and you&#39;ve learnt something knew, glad I helped.&lt;/p&gt;

&lt;p&gt;NB: To check out a nifty diagram, &lt;a href=&quot;http://en.wikipedia.org/wiki/cousin&quot; title=&quot;&lt;cousinswiki&gt;&quot;&gt;Wikipedia&lt;/a&gt; is at hand.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Coding Error or Rise in Popularity?</title>
    <link href="https://samdking.co.uk/blog/coding-error-or-rise-in-popularity/"/>
    <updated>2009-09-22T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/coding-error-or-rise-in-popularity/</id>
    <content type="html">&lt;p&gt;I was surprised to see in my website stats that the last 2 days has seen large increases in hits. I have been updating a few things here and there, including the new &lt;a href=&quot;/comments/&quot;&gt;Comments&lt;/a&gt; page so I can&#39;t be sure if something isn&#39;t quite right in the back-end coding of the site, or whether the site has just seen an increase in visitors over the last few days.&lt;/p&gt;
&lt;p&gt;If you shed any light on this situation, or if you are a new visitor to the site then please feel free to comment on this post.&lt;/p&gt;

&lt;p&gt;On that note, I&#39;m building up a working knowledge of Javascript at the moment. Hopefully over the next few weeks I&#39;ll be implementing this into the design of the blog in an attempt to improve your viewing experience. Aren&#39;t I nice? :)&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Why you want a DSLR</title>
    <link href="https://samdking.co.uk/blog/why-you-want-a-dslr/"/>
    <updated>2009-09-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/why-you-want-a-dslr/</id>
    <content type="html">&lt;p&gt;The idea for this article has been in my head for a while and I&#39;m finally now putting pen to paper (in a virtual kind of way). So the age old question, why get a DSLR over a compact camera. I&#39;m gonna make this a pretty straight forward argument. 5 points for, 5 points against. Here goes.&lt;/p&gt;
&lt;ol&gt;

&lt;li&gt;&lt;b&gt;Colours&lt;/b&gt;: Everyone loves good colours. Although Digital Compacts are improving, they&#39;ll never be able to compete with the richness and saturation of colours you get with a DSLR. Compacts are always a little washed out and lifeless.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Depth of Field&lt;/b&gt;: For anyone who doesn&#39;t know what this is, it&#39;s the area in which a part of the photograph appears in focus. The larger the depth of field, the more of the picture is in focus, and vice versa. If you&#39;re thinking &quot;uhh… what?&quot; then you&#39;ve probably never touched a DSLR, as compact cameras are renowned for having almost infinite depth of field. This means there&#39;s no real room for creative expression. As more often than not, your background is always going to be just as sharp as your subject in the foreground. An SLR (ideally equipped with a large aperture lens) gives you complete control of the amount of depth of field. Portrait with a nice dreamy blurry background: very tight depth of field. Landscape where everything even in the far distance is pin-sharp: very broad depth of field. I could elaborate further but it&#39;s not appropriate for this article.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Flexibility of lenses&lt;/b&gt;: This may or may not be a consideration for you. But if you buy a compact camera, the lens that&#39;s built into the camera is the only lens that will ever work with it. If you realise in the future you enjoy photographing wildlife or sport, you &lt;em&gt;will&lt;/em&gt; need a telephoto - not gonna happen with a compact camera. With an SLR your choice of lenses off the bat is extensive to say the least. You&#39;re bound to your camera brand but except from that you&#39;ve pretty much got the option of any lens.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Reliability&lt;/b&gt;: Compact cameras break. It&#39;s a fact of life. Sure SLR&#39;s break too, but they&#39;re much more durable and have a longer life expectancy than compact cameras.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Creative flash use&lt;/b&gt;: Compact cameras have a tiny little flash on the front. Convenient, yes. Point it at your subject and press the shutter: you&#39;ve got a photo. But if you&#39;re not satisfied with your flash photos, an SLR breeds a whole world of experimentation. Take the flash even slightly off the same axis as the lens, and you&#39;ve instantly got a more natural looking photo.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;As promised, here&#39;s the opposing argument. Albeit a tad briefer:&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;&lt;b&gt;Price&lt;/b&gt;: You&#39;re looking at upwards of £250 for an entry level SLR. If you&#39;ve got better things to spend your money on then don&#39;t bother (it only gets worse, see point 3).&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Portability&lt;/b&gt;: Probably the biggest gripe for me with using an SLR. I have a d40 which is about the smallest DSLR you can buy. But it is still big. You can&#39;t put it in your pocket, it&#39;s either gotta be in a bag, around your neck or in your hand. It doesn&#39;t quite carry the same subtlety that a compact does.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Buying an SLR can be the start of an expensive obsession&lt;/b&gt;: I have unfortunately fallen into this trap. I&#39;ve spent about £600 since February when I bought my first DSLR, but if I had more money to my name that figure would probably be 3x greater. With a compact camera, you&#39;ve pretty much got all you&#39;re gonna want in that neat little package.&lt;/li&gt;

&lt;li&gt;I&#39;m out...&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;Well, unfortunately for the against argument I could only seem to find 3. And I could&#39;ve probably compiled a list of 10 for the for argument. If you&#39;re looking to buy a new camera and you&#39;re on the fence, &lt;em&gt;IF&lt;/em&gt; you have the money and you think of using a camera as more than just an extension to your arm on a night out, then by all means buy an SLR, you won&#39;t regret it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Alton Towers</title>
    <link href="https://samdking.co.uk/blog/alton-towers/"/>
    <updated>2009-09-19T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/alton-towers/</id>
    <content type="html">&lt;p&gt;Just a quick post as I haven&#39;t done so since the start of the week. I went to Alton Towers today. Took the old SLR along for the ride. I didn&#39;t get many snaps, but this is one of the ones I liked.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1253319766_1.jpg&quot; width=&quot;700&quot; height=&quot;350&quot; alt=&quot;Oblivion Surprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Taken with my D40 and 35mm 1.8G lens. Photo pretty much straight out of the camera, very slight exposure tweaking.&lt;/p&gt;

&lt;p&gt;Oh, and since I &lt;em&gt;did&lt;/em&gt; go to Alton Towers... the best rides (subjective of course):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Oblivion&lt;/li&gt;
&lt;li&gt;Rita: Queen of Speed&lt;/li&gt;
&lt;li&gt;Spinball Whizzer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And as a closing note it seems theme-parking (it &lt;em&gt;could&lt;/em&gt; be a verb) has become a popular pastime amongst the unemployed Brits of today. At least from what I could tell, that was the overwhelming clientele visiting Alton Towers on an average Friday. I suppose the 2.5 million of us have to go somewhere.&lt;/p&gt;

&lt;p&gt;On that note, job hunting is relentless.&lt;/p&gt;

&lt;p&gt;P.S. My apologies if this lacks in coherence. I&#39;m tired.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Undisclosed Desires - the Muse Magic</title>
    <link href="https://samdking.co.uk/blog/undisclosed-desires-the-muse-magic/"/>
    <updated>2009-09-14T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/undisclosed-desires-the-muse-magic/</id>
    <content type="html">&lt;p&gt;I have to admit, I wasn’t looking forward to the new Muse album much after hearing the first single off it. Uprising didn’t really do anything for me. It was the Muse we’d come to expect, but it just had no kick to it or anything to make it stand out. Then I heard another song off the album: Undisclosed Desires.&lt;/p&gt;
&lt;p&gt;Wow. Blown away! This &lt;em&gt;is&lt;/em&gt; Muse, but this is different. More grown up and more musical. Just &lt;em&gt;better&lt;/em&gt; Muse. I’m a big fan of Muse, I like a lot of their stuff, and they’re a great band to see live. This song is just so interesting, it’s so laid back compared to what we know of Muse. The composition is so simple, which is very refreshing to hear from Muse who usually stick to the tried and tested big, epic tunes.&lt;/p&gt;

&lt;p&gt;I’m interested now to hear the rest of the album and definitely think I’ll be buying myself a copy. For those cave dwellers, the album is called The Resistance (awesome name, it oozes Muse) and is out as of today.&lt;/p&gt;

&lt;p&gt;Rating: 8/10&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>Dustin Diaz Photography</title>
    <link href="https://samdking.co.uk/blog/dustin-diaz-photography/"/>
    <updated>2009-09-14T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/dustin-diaz-photography/</id>
    <content type="html">&lt;p&gt;I’ve been following Dustin Diaz for some months now. He is a part-time freelance photographer, living in San Francisco. He’s prevalent on &lt;a href=&quot;http://www.flickr.com&quot;&gt;Flickr&lt;/a&gt; and is currently in the midst of his 365-day photography project - one picture a day for a year. If you’re into photography… check this guy out and let him inspire.&lt;/p&gt;
&lt;p&gt;I haven’t mentioned &lt;a href=&quot;http://www.strobist.blogspot.com/&quot; title=&quot;&lt;strobist&gt;&quot;&gt;strobism&lt;/a&gt; yet on the blog but it’s something I’m very interested in and am pursuing as part of my photography hobby. In a nutshell, strobism is the art of getting your flashgun off the camera. As I mentioned in a previous post, getting your flash off your camera is the single best think you can do to improve the quality of your flash shots. Dustin Diaz is a master strobist.&lt;/p&gt;

&lt;p&gt;The average daily photograph of Dustin’s is either an urban shot, on the streets of San Francisco, or a professional quality controlled shot in his garage studio. I’ve been lucky enough to see his work from when he was first getting into the strobist idea of shooting and it’s been great to see his work improve and his shooting style develop. &lt;/p&gt; 

&lt;p&gt;Dustin Diaz is finally beginning to get the recognition for his work that he deserves. He recently had an interview featured on the Strobist website, and in the past few days has been filmed for a feature that will appear on &lt;i&gt;Yahoo!&lt;/i&gt; in acknowledgment of his work work on Flickr.&lt;/p&gt;

&lt;p&gt;Dustin has hordes of fans that check out his photo-stream each day and I just want to personally congratulate him for the achievements he’s made in the field of photography. It must be amazing to do something you enjoy, whilst having a positive and inspiring affect on so many people in the process.&lt;/p&gt;

&lt;p&gt;You can out check Dustin’s personal &lt;a href=&quot;http://photography.dustindiaz.com/&quot; title=&quot;&lt;dustindiazphotography&gt;&quot;&gt;website&lt;/a&gt; as well as his &lt;a href=&quot;http://www.flickr.com/photos/polvero&quot; title=&quot;&lt;dustindiazflickr&gt;&quot;&gt;Flickr photostream&lt;/a&gt; to see his work.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>♥ Brighton</title>
    <link href="https://samdking.co.uk/blog/brighton/"/>
    <updated>2009-09-12T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/brighton/</id>
    <content type="html">&lt;p&gt;I’ve lived in Brighton for the past 3 years whilst studying at the University of Sussex. I’d never been to Brighton before so it was a bit of an adventure when I first moved down to the south coast back in 2006. Three years on and I’ve been convinced of Brighton’s charms.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1252791846_1.jpg&quot; width=&quot;700&quot; height=&quot;279&quot; alt=&quot;Brighton sea-front&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So why do I love Brighton? I’m not even going to avoid the cliché expression here. Brighton is just such a chilled out city. It avoids the hustle and bustle that is commonplace in other cities across the UK. Gay capital of England? Apparently. I haven’t really noticed. But as far as the Brighton people go, all I know is unsavoury characters (see: chavs) are in small numbers. Which definitely improves a night out. Did I mention the night life?&lt;/p&gt;

&lt;p&gt;Awesome nightlife. Ha. It’s my favourite place to spend an evening and for good reason. Bars, pubs and clubs are everywhere in the centre of Brighton. And because Brighton is fairly small - well, a better word is compact - you can walk pretty much everywhere. It’s very refreshing to me to be able to go out in the evening and not have to worry about buses, cars or taxis.&lt;/p&gt;

&lt;p&gt;Oh, and how many cities do you know with a pier and a beach? Yep, Brighton rocks. And the weather? They don’t call it sunny Brighton for nothing. You certainly get a lot more sunshine in the south of the country.&lt;/p&gt;

&lt;p&gt;Unfortunately, due to financial constraints after I finished my degree I also finished the tenancy on my rented Brighton house and at the moment am back home in Cambridgeshire. But to summarise, I share the sentiments of a famous cyborg assassin.&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;I’ll be back.&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;P.S. if you enjoyed the previous post, you’ll be pleased to know &lt;a href=&quot;https://samdking.co.uk/blog/my-kz-ur-bf/&quot;&gt;Everything Everything&lt;/a&gt; are playing at Jam in Brighton on the 3rd November.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>MY KZ, UR BF</title>
    <link href="https://samdking.co.uk/blog/my-kz-ur-bf/"/>
    <updated>2009-09-08T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-kz-ur-bf/</id>
    <content type="html">&lt;p&gt;I want to post about a band that interested me from the moment I heard this particular song (pronounced my keys, your boyfriend - in case you were wondering). It&#39;s one of those songs that I just can&#39;t decide if I like or not. Regardless, the band Everything Everything has definitely caught my interest.&lt;/p&gt;
&lt;p&gt;Zane Lowe on Radio 1 has been playing them for over a month now and he’s pretty excited about them. They played at Reading and Leeds as part of BBC Introducing and they got their first play on daytime Radio 1 today so I think they may start to catch on.&lt;/p&gt;

&lt;p&gt;As for what they sound like, their description as defined on Myspace is &#39;A&#39;cappella / Melodramatic Popular Song / R&amp;B&#39;. A combination that bizarre is a good enough reason to check these guys out.&lt;/p&gt;

&lt;p&gt;So as I said at the beginning, I’m not totally convinced of this band but I definitely think they’re worth checking out and it may be that they’re a grower. They are touring in October, tour dates can be found on their &lt;a href=&quot;http://www.myspace.com/everythingeverythinguk&quot; title=&quot;&lt;everythingmyspace&gt;&quot;&gt;Myspace page&lt;/a&gt; as well as all their current songs.&lt;/p&gt;

    </content>
  </entry>
  
  <entry>
    <title>An ATV Photoshoot</title>
    <link href="https://samdking.co.uk/blog/an-atv-photoshoot/"/>
    <updated>2009-09-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/an-atv-photoshoot/</id>
    <content type="html">&lt;p&gt;For those who don&#39;t know what an ATV is, the following picture will probably tell you. It&#39;s also known as a quad bike. I had my first real go on one of these today and as it was a bright sunny day I got out my camera and put the lens between me and the vehicle.

&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1252171285_1.jpg&quot; width=&quot;700&quot; height=&quot;465&quot; alt=&quot;An ATV&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First and foremost, this thing is awesome. I didn&#39;t get up to top speeds but I think it can reach around 40MPH. Which, if you&#39;ve ever driven anything off-road, you&#39;ll know is fast! If you get a chance to use one and you&#39;re a bit of a thrillseeker, you won&#39;t be disappointed.&lt;/p&gt;

&lt;p&gt;As for the photography information. I used my Nikon D40, with the kit lens, zoomed out to the widest focal length - 18mm. I used my Jessops 360AFD flash, placed in front of the bike and triggered with my off-camera TTL cable. I think the flash was on a 1/4 power.&lt;/p&gt;

&lt;p&gt;I underexposed the ambient light by -1.3 stops, to help expose for the bright sky. There&#39;s plenty of depth of field as I&#39;m shooting at f/10 (and at maximum sync speed).&lt;/p&gt;

&lt;p&gt;This information will probably go over most people&#39;s heads, but if you did get anything from it and want to ask me any other questions feel free to do so. If you are a photographer, specifically a DSLR user the best piece of advice I can offer you in terms of flash photography is &lt;b&gt;&lt;em&gt;get your flash off-camera&lt;/em&gt;&lt;/b&gt;. It makes a world of difference.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>(500) Days of Summer</title>
    <link href="https://samdking.co.uk/blog/500-days-of-summer/"/>
    <updated>2009-09-05T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/500-days-of-summer/</id>
    <content type="html">&lt;p&gt;I’m not a film critic, so I’ll keep it brief. I went to see 500 Days of Summer last night at the cinema. I was intrigued by the description &quot;The romantic comedy for people who don&#39;t like romantic comedies&quot;. And I was actually pretty impressed by the film. Although it managed to avoid the clichéd predictable plot of your average romantic comedy it was still fairly easy to guess how it would play out. Still, I found it refreshing.
&lt;/p&gt;
&lt;p&gt;The structure of the film is dictated by the constant flicking back and forth through time over the 500 days. The film has a kind of depressing tone running throughout it, as you know very early on how things end. With that said, I felt an air of optimism building as the film progressed. If you’re into the more affectionate movies you may struggle to find positives in 500 Days of Summer. However this movie should be given a chance as I found there was a definite quirky charm to it. In addition, I thought both the leading roles, played by Joseph Gordon-Levitt and Zooey Deschanel, performed well throughout the movie and I found it easy to relate to both characters. &lt;/p&gt;

&lt;p&gt;I’ve also just ordered the official soundtrack, of which I was very impressed with. The songs fitted very well with the feel of the movie and it was clear they were selected with careful consideration. Songs by The Smiths, Temper Trap, Doves and Wolfmother are all included on it, including a song by Zooey Deschanel’s band She &amp;amp; Him. If you’re into any of the same &lt;a href=&quot;http://www.last.fm/user/skamst&quot; title=&quot;&quot;&gt;music I’m into&lt;/a&gt;, I recommend you check it out.&lt;/p&gt;

&lt;p&gt;Rating: 7/10&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Facebook Status Dilemma - 1st or 3rd person?</title>
    <link href="https://samdking.co.uk/blog/the-facebook-status-dilemma-1st-or-3rd-person/"/>
    <updated>2009-09-02T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-facebook-status-dilemma-1st-or-3rd-person/</id>
    <content type="html">&lt;p&gt;This is something that has puzzled me since Facebook had the big design overhaul and changed the way a few features of the site worked. Remember, there was an uproar? I don’t remember exactly when it happened, but it was around September last year. I’m talking about the way we now update our status on Facebook.&lt;/p&gt;
&lt;p&gt; In the old days updating our status was simple. You were given “Yourname is…” and you just had to fill in the rest of the sentence. It was also obvious the difference between your status updates and someone writing on your wall. Everyone was happy.&lt;/p&gt;

&lt;p&gt;It was still fairly obvious what to do when they got rid of the “is”. It was good, in fact, because you could now have statuses like “Sam thinks…” rather than “Sam is thinking” - which just plain sucked. Things only started to get a little ambiguous when they redesigned the site.&lt;/p&gt;

&lt;p&gt;Everyone was used to writing their statuses in the third person. Y’know - like you were someone else talking about yourself. “Sam is doing this”, rather than “I am doing this”. However, now it’s unclear (at least to me) as to whether status updates should be written in 1st or 3rd person.&lt;/p&gt;

&lt;p&gt;On top of that, Facebook decided that your status updates and other people’s posts on your wall would be essentially displayed as the same thing. And since there’s no reason you would post something on someone’s wall in the third-person, it seems odd to continue with the old conventions of third-person status updates.&lt;/p&gt;

&lt;p&gt;So, as utterly useless as this post is, I write it in the vain hope that someone else out there shares my sentiments or has at least noticed and is equally as bemused. &lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Everyone - print your photos</title>
    <link href="https://samdking.co.uk/blog/everyone-print-your-photos/"/>
    <updated>2009-09-01T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/everyone-print-your-photos/</id>
    <content type="html">&lt;p&gt;So you&#39;ve seen some breathtaking views or spent time with some beautiful people and you&#39;ve got some impressive photos to prove it. They&#39;re great at the time, but sooner or later they get forgotten. And why? Because most people leave them sitting on there hard drive gathering dust (well, sort of). I say make the most of them!&lt;/p&gt;
&lt;p&gt;Remember the days when you couldn&#39;t even see the end result of your mad camera skillz without holding it in your hands? Photography has come a long way since then, but it seems we&#39;ve lost touch with the original art form that is the printed photograph.&lt;/p&gt;

&lt;p&gt;There&#39;s something about seeing that favourite image of yours right in front of your eyes and being able to physically hold it that gives the photo that extra impact. Especially if you opt for a larger than standard size of print. Such as 8x6&quot; or 10x8&quot;.&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://samdking.co.uk/images/1251843937_1.jpg&quot; width=&quot;650&quot; height=&quot;410&quot; alt=&quot;America photo montage&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Anyone who knows me is probably aware that I went to America for a month earlier in the summer and as a keen photographer I took a lot of photos. Among those photos I obviously have my favourites - and I&#39;ve just confirmed an order for 200 of these to be printed.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;http://www.photobox.co.uk/&quot;&gt;Photobox&lt;/a&gt; but I&#39;ve also used &lt;a href=&quot;http://photo.jessops.com/&quot;&gt;Jessops&lt;/a&gt; in the past, and the quality of the prints has been excellent. The latter of which will give you 50 free prints when you sign up. I&#39;ve ordered 180 6x4s and 20 8x6s (of my absolute favorites) - some of which I&#39;ve included in the collage above.&lt;/p&gt;

&lt;p&gt;At 10p a print (or 8p if you order over 150), it doesn&#39;t work out much more expensive than it used to to get a reel of film developed. And you&#39;ve got the digital luxury now of shooting as many photos as your heart desires. So if you&#39;ve got an album or two that you&#39;re particularly proud of, why not give it a go.&lt;/p&gt;

&lt;p&gt;Your technologically-challenged relatives will love you all the more for it.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>The Kings of Leon&#39;s rise to fame</title>
    <link href="https://samdking.co.uk/blog/the-kings-of-leons-rise-to-fame/"/>
    <updated>2009-08-31T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/the-kings-of-leons-rise-to-fame/</id>
    <content type="html">&lt;p&gt;I love the Kings of Leon. They’re easily my most played artist and they have an immense sound live. Which is why I was disappointed to hear about their performance at Reading. From what I’ve heard, they had a bit of an uninspiring set and somewhat of a meltdown at the end (expensive guitars were smashed). Apparently the same thing happened at T in the Park earlier in the summer. In my opinion it’s probably a mix of a long tour and becoming a little too Rockstar. But I sympathise...&lt;/p&gt;
&lt;p&gt;They were reportedly unhappy with the crowd. Nathan tweeted after the gig: &lt;em&gt;&quot;Reading? What the fuck?&quot; he wrote. &quot;Zero love for the kings. I know it was cold but holy shit, y&#39;all were frozen. I can only hope Leeds is in better form.&quot;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I wasn’t at Reading so I can’t give any solid explanation but apparently athe sound levels weren’t up to scratch, something Caleb was pretty vocal about. But in my opinion it was the large proportion of new fans in the Reading audience (y’know, the Sex on Fire lot) that resulted in the lack of enthusiasm.&lt;/p&gt;

&lt;p&gt;It’s a shame that the Kings of Leon have broken into the mainstream in such a big way with their latest album. A lot of these new followers I dare say have probably not heard their first two albums. I personally got into the Kings of Leon in a big way with their 3rd album release in the summer of ’07. I quickly caught up with their earlier material and loved it. I went to see them that same summer (at Leeds festival in fact) and again in December later that year and was blown away both times.&lt;/p&gt;

&lt;p&gt;Their 3rd album Because of the Times was the album that allowed them to break into the mainstream but I feel like the nature of the songs on the album put it just out of reach of the masses, with the biggest charting single off it reaching #13 (Fans).&lt;/p&gt;

&lt;p&gt;The 4th album, Only By The Night showed a change of direction for them, musically. The album is a lot mellower than anything they’d previously released and I felt like they lost an edge to their sound that the original fans know and love. Don’t get me wrong, the album is still notoriously the Kings of Leon and I think they manage to pull this new sound off in songs like Closer, Use Somebody and Cold Desert. But that raw, crunchy southern sound is certainly less evident.&lt;/p&gt;

&lt;p&gt;The positives of this new style, of course, is evident in record sales. You only have to look at their most played songs on &lt;a href=&quot;http://www.last.fm/music/kings+of+leon&quot;&gt;Last.fm&lt;/a&gt; to see the popularity of the recent album. All well and good, perhaps, but this has clearly impacted on their live shows. They can’t expect a decent response when the majority of the crowd only know a quarter of their songs.&lt;/p&gt;

&lt;p&gt;To anyone reading this that has only just discovered the Kings of Leon, I urge you to purchase their earlier albums and give them a listen. Aha Shake Heartbreak has some absolute gems on it. And I can confidently say Because of the Times is in the running for my favorite album of all time.&lt;/p&gt;

&lt;p&gt;We probably won’t hear much from the Kings of Leon until they release their next album, probably at the end of next year. But I for one cannot wait to hear which musical route they choose to go down with their 5th album. Until then, do yourself a favour and immerse yourself in the musical treat that is the Kings of Leon’s first four offerings.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href=&quot;http://www.nme.com/news/kings-of-leon/47008&quot;&gt;http://www.nme.com/news/kings-of-leon/47008&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>My Top Summer &#39;09 Songs (+ some duds)</title>
    <link href="https://samdking.co.uk/blog/my-top-summer-09-songs-some-duds/"/>
    <updated>2009-08-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/my-top-summer-09-songs-some-duds/</id>
    <content type="html">&lt;p&gt;This list was originally going to be a top 5, but I couldn&#39;t narrow it down to 5, so I&#39;ve gone with the next round number. Here goes...&lt;/p&gt;
&lt;p&gt;My Top 10 in alphabetical order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Big Pink - Dominos&lt;/li&gt;
&lt;li&gt;Enter Shikari - No Sleep Tonight&lt;/li&gt;
&lt;li&gt;Example - Watch the Sun Come Up&lt;/li&gt;
&lt;li&gt;Fightstar - Never Change&lt;/li&gt;
&lt;li&gt;Florence + The Machine - Rabbit Heart (Raise it Up)&lt;/li&gt;
&lt;li&gt;Ian Brown - Stellify&lt;/li&gt;
&lt;li&gt;Jack Penate - Pull My Heart Away&lt;/li&gt;
&lt;li&gt;MSTRKRFT - Heartbreaker&lt;/li&gt;
&lt;li&gt;Passion Pit - To Kingdom Come&lt;/li&gt;
&lt;li&gt;The Temper Trap - Sweet Disposition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Special mention goes to the song that I just couldn&#39;t help but like the moment I heard it and had to be turned up every subsequent time. Taio Cruz  - Break Your Heart. Wins my award for best dance/pop song of the summer. I&#39;m a sucker for that Tinchy&#39;esque synth riff that plays throughout this song.&lt;/p&gt;

&lt;p&gt;This summer has been pretty good for music, although there has been some disappointing songs released by some of my favorite bands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bloc Party - One More Chance&lt;/li&gt;
&lt;li&gt;Kasabian - Where Did All The Love Go&lt;/li&gt;
&lt;li&gt;Biffy Clyro - That Golden Rule&lt;/li&gt;
&lt;li&gt;Muse - Uprising&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kasabian, I can let fly, because I&#39;ve always been a bit hit-and-miss with their stuff. But Biffy Clyro and Muse have, in my opinion, released subpar singles considering what they can produce. Bloc Party seems to be going down the electro/dance route more with their latest songs (although I haven&#39;t their latest album in full so don&#39;t quote me on that). I&#39;m definitely more of a fan of their older stuff.&lt;/p&gt;

&lt;p&gt;So there you have my rundown of the music this summer. Feel free to chip in your opinion.&lt;/p&gt;
    </content>
  </entry>
  
  <entry>
    <title>Gather round, don&#39;t be shy</title>
    <link href="https://samdking.co.uk/blog/gather-round-dont-be-shy/"/>
    <updated>2009-08-30T00:00:00Z</updated>
    <id>https://samdking.co.uk/blog/gather-round-dont-be-shy/</id>
    <content type="html">&lt;p&gt;This is my new blog/website, whichever you want to call it. This website is a small project for me with the original intent being a test of my web design and programming skills. However, I&#39;ve since become pretty interested with the prospect of regularly &quot;&lt;a href=&quot;http://www.google.com/search?q=define%3ablogging&quot;&gt;blogging&lt;/a&gt;&quot;.&lt;/p&gt;
&lt;p&gt;&quot;Photography, music, film, guitars, technology, inane ramblings and a lot of miscellaneous.&quot; - This describes the nature of the blog, which is going to be pretty broad. Some things may be of interest to you, others not so much. But all feedback is welcomed so leave a comment if you feel compelled. I&#39;m a pretty keen photographer so I&#39;m probably going to share a lot of my photos. Hopefully most of the time with some relevance to the blog subject. &lt;/p&gt;

&lt;p&gt;Yes - that is me in the top right. Cheesy - I know. I may change it in the future.&lt;/p&gt;

&lt;p&gt;And lastly, I haven&#39;t extensively tested the website so if you come across anything buggy or peculiar please &lt;a href=&quot;mailto:sdking02@googlemail.com&quot;&gt;let me know&lt;/a&gt;. If there&#39;s anything you want to know about the website or me, feel free to get in contact also.&lt;/p&gt;
    </content>
  </entry>
</feed>
