Chris Worfolk's Blog


In-body analysis

November 13th, 2018 | Life

In April I did my first body analysis at the gym and came out with a body fat percentage of 16.5%. A few weeks ago I did another and discovered I had increased my body fat percentage to 18.3%. Bad times.

With them being so far apart, it’s impossible to say when it changed. But after an entire summer of triathlon and running, I wasn’t expecting it to go up. I’ve also lost muscle mass, entirely from the upper body, while gaining it in my legs.

It’s the off-season now so I will be gaining body fat as I eat a lot much ice cream. But come January it’s probably time to look at my strength work.

Abbey Dash 2018

November 12th, 2018 | Family & Parenting, Sport

Earlier this month, myself, my dad and my sister ran the 33rd annual Abbey Dash.

It’s a 10km road race from Leeds to Kirkstall Abbey and back to raise money for Age UK. I first ran the Abbey Dash in 2014. However, I first attended the Abbey Dash in around 1987 when I watched my dad run one of the first few dashes from the comfort of my buggy.

We decided to run as a group. After all, there are plenty of 10ks, but rarely a chance to run together. And as it was only a week after the Hubble Hubble ultramaraton and my foot was still pretty beat-up.

In the end, we made it home in:

59:24

Comfortably within the hour, so happy days. Well done one and all! After the race, I headed to Headrow House for some drinks with Hyde Park Harriers before moving on to The Midnight Bell for Sunday lunch. Despite some very dubious Yorkshire puddings, the food was good.

MSc results

November 9th, 2018 | Life

After two months of waiting, our psychology MSc dissertation results have finally been published. I’m pleased to announce that they’re great! My final submission achieved 82%. Although I don’t have my official overall MSc result yet, this grade is good enough to secure a distinction.

Well done to all of my friends and peers on the course, many of whom did exceptionally well. It was such a fun year studying with you all and I can’t wait to see the exciting directions you all take your knowledge in.

Fire in the building

November 8th, 2018 | Life

What a start to the week we had. Our apartment block caught fire. Nothing too serious. But what exactly is the line between small non-serious fire and large mega-dangerous fire?

The fire alarm went off at 3am. However, it wasn’t really clear what was going on because it would do a few rings and then turn off. Then occasionally turn on again. We assumed it was faulty and a grumpy Venla insisted we “turn it off!”.

But as this kept going on we decided it was safest to evacuate just in case. As we did, one of our neighbours came knocking on all the doors to let everyone know that there was a bit of smoke in the building and so it probably wasn’t a fault.

West Yorkshire Fire & Rescue responded in force. They had five fire engines there within five or ten minutes of us getting outside, including a big platform cherry-picker.

It turned out that someone had left a pan on the stove, which had been left on, and eventually headed up until it ignited the plastic parts. The fire was quickly dispatched and didn’t cause much damage to the apartment’s kitchen, let alone the rest of the flat or the building. But you never know how close it was to a bigger disaster.

No-Release methodology

November 7th, 2018 | Tech

You’ve no doubt heard of us at Glorry, the exciting Silicon Valley startup that is taking the world by storm. We’re best known for raising £17 billion in funding on Kickstart in less than 38 minutes, despite having no discernable business model. Still, that’s what they said about Instagram and look who is laughing now. Mark Zuckerberg, that’s who.

We’re pushing the limits of Agile delivery to see how we can deliver the most value to our customers. But our Service Delivery team are also looking to ensure a consistent and stable customer experience that doesn’t allow new features to compromise on quality.

The result is a methodology we’ve called “No-Release” and I’m excited to share some details of it with you today.

What is No-Release?

Simply put, we don’t release any code.

What are the results like?

They’ve been outstanding. Since we adopted this approach, we’ve had zero bugs introduced to the live system. That’s not a misprint: zero bugs. Not one single incident has been released related to the new code we’ve been writing.

Since adopting this approach, our velocity has increased. Developers feel more confident that their work will not cause issues in live. Product Owners are happy to prioritise tech debt because they know it won’t delay new features arriving in live. Service Delivery is less jittery about degradation due to changes to the product.

How does it work?

We based our workflow on a traditional Scrum methodology. We operate in two-week sprints with a backlog of features prioritised by the Product Owner. Each ticket begins with a Business Analyst sitting down with a Developer and a Tester to work out how we can deliver and test the acceptance criteria of the ticket.

When a ticket is complete and signed off, including going through our continuous integration pipeline where a series of automated tests are run, we then merge the ticket into our develop branch. At this point, the ticket reaches our Definition of Done and we can close it.

Our master branch contains a copy of the code deployed to live, while our develop branch contains all of the new features. Because we operate under No-Release, we almost never have to deal with merge conflicts because we never merge develop into master. Or anything else for that matter.

What are the drawbacks?

One of the biggest drawbacks to No-Release is that you do not release any code. This means that no new features and improvements ever make it to the end user.

Making this work requires buy-in across the organisation. Without everyone being on board you can easily get developers saying “this is pointless, what am I doing here” every stand-up, and upper management suggesting they can fire the entire team and get the same results for much less money. Therefore, it’s important to get everything to embrace the methodology before starting.

Each organisation needs to make its own decision as to whether this drawback is acceptable to gain the benefits discussed above.

Conclusion

No-Release methodology allows you to increase your development velocity while eliminating any risk of service disruption to the end user.

Battle of the buggies

November 6th, 2018 | Sport

Last weekend, Venla and I headed over to Cross Flatts park to do Parkrun. It’s pretty empty at 8:30am, when it’s six degrees, surprisingly, so Venla had the swing park all to herself. After that, we headed off to the start line in the buggy.

I wasn’t sure if I was going to be able to run given I was still recovering from Hubble Bubble, but I felt good once I started. Until I pulled a muscle in my neck, at least.

Buggies go fast downhill and slow uphill. But I can’t have been too far off form because in the end I managed a 26:26, finishing a couple of minutes ahead of the next buggy. I don’t think I could do that at Woodhouse Moor where the super-runners smash out Olympic buggy times, but it felt good to steam home to victory.

People who aren’t real doctors

November 1st, 2018 | Distractions

Dr Dre

He may be an awesome wrapper, but he doesn’t have a PhD in music. Or in anything.

Dr Evil

There is no such place as evil medical school. It’s just made up.

Dr Pepper

The drink was created by pharmacist Charles Alderton and named by Wade Morrison. Neither of them are doctors.

The Doctor

Sure, he’s a Time Lord with more knowledge of human physiology than probably any human alive. But he’s not registered with the General Medical Council and therefore it doesn’t exist.

Gillian McKeith

Gillian McKeith used to tell people she was a doctor, and use it in advertising until the Advertising Standards Authority told her not to. That’s because the qualification she had could be bought on the internet. Ben Goldacre bought one for his cat.

Dr Fox

More musicians (or in this case DJs) pretending to be doctors. He studied management at the University of Bath and has no higher qualifications.

Dr Seuss

Of all the pretenders, Dr Seuss may well have the best case. He did go to Oxford University to pursue a PhD in English literature. However, he never completed it.

Hubble Bubble ultramarathon

October 31st, 2018 | Sport

Last Sunday I completed the Hubble Hubble ultramarathon. I came 5th overall with a time of 5:18:11. It turns out that if you want to place in the top ten, the easiest way is to enter an event with only 11 participants.

52.6 km (32.7 miles) in 5:18:11

Two weeks ago I ran the Yorkshire Marathon. Why run an ultra two weeks later? Sheer laziness. Training for a marathon is a big undertaking: even coming off the triathlon season I had to spend a few months building up the distance. It seemed like a lot of effort to do that twice. On the other hand, if I stacked them two weeks apart, one big training block beforehand would allow me to call myself both a marathon and an ultramarathon runner without ever having to run again.

Besides which, it was my stomping ground. The run starts in Kirkstall and is exclusively based on the towpath. You run down into the city centre, out to Saltire, back to the city centre and finally back to Kirkstall. A total of 52.5 kilometres, which makes it a mere ten kilometres longer than a marathon. Easy, right?

The first 30 kilometres passed without incident. I felt good all the way to Saltaire. But, as I headed back, I began to feel the strain. By 35 kilometres in I could keep running no more and began to allow myself short walks between running segments which carried on for the rest of the race. Luckily, it didn’t affect my pace too much and I continued to do around 6:15 per kilometre. I was very relieved to pass back through Kirkstall at the 43-kilometre point where I was able to pick up my second bidon, complete with a set of caffeine gels.

The weather was reasonably kind. It was cold, a little under ten degrees, but that is a good temperature for running, and we only experienced a little bit of rain. Nothing compared to the Yorkshire Marathon.

The winner, Robert Eagles, was 40 minutes ahead of me at 4:37:32. I was eight minutes behind the guy in fourth place and 40 minutes ahead of the guy that finished behind me. All participants finished in under seven hours.

One of the highlights of It’s Grim Up North Running events is the amazing selection of homemade cakes. Unfortunately, by the time I finished the runners doing the shorter distances had almost cleaned them out. But I did come away with a Halloween-themed cupcake.

Recovery was a mixed bag. I didn’t have the muscle fatigue I had after the marathon where it hurt to get up and down. I was a little stiff after not moving for a while but otherwise fine. However, the bottom of my foot really hurt and gave me quite a limp. Not sure which one was worse but neither have been terrible.

And now I look forward to never having to run again. Well, after the Dash next week…

Facebook ad fails #6

October 30th, 2018 | Business & Marketing

Recently, I tried to set my targetting on a Facebook ad and the update failed. I didn’t notice and my ad went out to a much wider audience than intended. Luckily, this ended really well. But you’re not always that lucky.

Here are two examples of ads that (I presume) have missed their targeting.

Here is a company selling tights. You would imagine that you would want to target these ads at women. Sure, you might want to sell to men as a gift for their partners. But you would write totally different ad copy for that.

Here is another example. My guess is that it is a scam because of the username and 70% discount. But, even so, it’s advertising an Australian bike shop even though I’m in the UK.

Do take the time to set your targetting and to check that it is correct.

How I optimised Leeds Anxiety Clinic

October 29th, 2018 | Tech

We’re taking the lean startup approach with Leeds Anxiety Clinic and trying not to build anything unless we absolutely need it. As a result, when I originally built our website is was functional but not particularly fast.

Now that we’re up and running and have clients coming through the door, I’ve been back over the site to make it faster and better. Below, I’ve detailed what I’ve done. Here’s a before and after using the Lighthouse audit tool:

Turn cache headers on

There were no cache headers on our images, CSS or JavaScript. Part of this was that I was still making changes to the JavaScript and didn’t have any cache-busting functionality in the site yet. Now that I do, I could safely let the browser cache everything for a month.

Replacing jQuery

jQuery is a library whose time has been and gone. But it does make it super easy to throw in some functionality. Now that I have a proper JavaScript setup, however, and as jQuery was mostly just animating things, I replaced it with native CSS animations and vanilla JS.

Compressing the JavaScript

As there was no JavaScript preprocessing going on, it was not compressed. Ironically, this hasn’t made it any smaller because I’ve now got the Webpack bootstrapping in the file. However, it does mean I can easily load in additional modules, which I discuss below, to help with other areas of the site.

Gzip compression

This is a super-easy win because all you have to do is put it in your Apache config and the server does all of the rest.

Async loading of web fonts

We had a total of three blocking font calls in the header of the page. All of this has now gone. I’m using webfontloader to load in the two variations of Lato that we are using.

Fontawesome is used for icons and is loaded in using a classic link tag, however, I’ve moved this link tag to the bottom of the page so that the initial content can be loaded first. On slow connections, this means the icons are missing for a fraction of a second when you load the page but I think it is worth it.

If I was looking to optimise further like I do with Worfolk Anxiety, I would select the individual icons I want, base64 encode them and put them directly in the CSS. But that seems overkill here for the moment.

Finally, I’ve set the font-display CSS property to fallback so that if the fonts are slow in loading, the text will be rendered away using a system font.

Webp images

Oh my god, webp images are so good. They’re like half the size of the already optimised JPEGs and PNGs that they are replacing.

Unfortunately, few browsers support them yet. It’s basically just Chrome (on desktop and Android). So, I’m using the picture tag with a fallback, as everyone does. I can’t wait until webp gets wider adoption.

Unfortunately, there is no way to do a safe fallback in CSS so my background images remain old JPEGs for everyone.