Skip to content

Developing Opinions

The Cloudflare outage was a good thing

Cloudflare, the CDN provider, suffered a massive outage today. Some of the world’s most popular apps and web services were left inaccessible for serveral hours whilst the Cloudflare team scrambled to fix a whole swathe of the internet. And that might be a good thing. The proximate cause of the outage was pretty mundane: a bad config file triggered a latent bug in one of Cloudflare’s services. The file was too large (details still hazy) and this led to a cascading failure across Cloudflare operations. Probably there is some useful post-morteming about canary releases and staged rollouts.

Read more →

November 18, 2025

Sephiroth, the Fake

Final Fantasy VII is about two men who discover they aren’t the heroes they wanted to be. The game is about other things - war, capitalism, ecocide to name a few - but I think how these men address their shame, and compete to overcome it, is its real engine. I recently replayed the 1997 original as a way of preparing for Remake and Rebirth. I wanted a frame of reference and a way back into its story. But I was also surprised at how well it held up, 25 years later, and began to notice the plot details and narrative subtleties I overlooked when I was younger.

Read more →

March 31, 2024

The Minimalism of Tomb Raider (1996)

Recently I played Tomb Raider 1 for the first time. After I got over the controls and very cheesy voice acting, I was struck by the clarity of its design. The word I want to use is “minimalistic”, but it’s more fundamental than that. “Restrained”, “pure”, “immersive” are other words I could use, but none of them are quite enough to capture what makes this game so great. TR1 is a little hard to get into as a modern game. The old TR games use tank controls, where you rotate and move Lara relative to her current heading, as opposed to modern 3D games where you move relative to the camera. It felt clunky at first but after a while I really started to grasp its elegance.

Read more →

October 18, 2023

Microfrontends should be your last resort

In large tech companies these days, it is becoming common for front-end developers to talk about “micro frontends”. MFEs are analogous to microservices in backend systems. But just like we’ve all seen bad microservice architectures that simply worsened a distributed monolith, a bad micro-frontend architecture just spreads tightly-coupled code across many moving parts. My argument is not that MFEs never pay off their complexity. I think that for a sufficiently large team, with well factored domains, having separate pipelines within a monorepo arrangements is a reasonable design for keeping teams moving independently.

Read more →

May 29, 2023

The pre-post-COVID chronicles

On the 27th January, 2022, the UK eased back its Coronavirus “plan B” restrictions - such as they were. I was hoping I’d feel something more momentous and freeing. What I’m actually feeling is much more murky and ambiguous. This winter has been tough, and I, I feel like it has changed me. Some words: I know, objectively, the last three months have been some of the softest restrictions we’ve been under, anyone’s been under.

Read more →

February 1, 2022

Things I've learned after two stones of weight loss

ON FEBRUARY 26, 2021 I had an urgent, painful and life-saving revelation: I was fat. Not overweight or curvy, I was obese, again, five years after my last diet effort, and being obese was stopping me changing my life in the ways I wanted. What began there was eight months of gradual, sometimes spotty, sometimes rapid weight loss from 96kg to 81kg (or 2.4 stones). That’s about 16% of my total body weight, and is still ongoing (I’d like to hit 77kg). It was gradual and spotty because I had a lot of things to learn and made several mistakes along the way.

Read more →

December 9, 2021

The PSOne Crash Bandicoot games are beautiful in 4K

Modern emulator cores like BeetleHW allow you to play old-school PSOne games in new-school high resolution. Games that rely heavily on polygonal graphics, rather than textured graphics, benefit the most. And as a fan of the original Crash Bandicoot games my eyes just popped to see them brought to vivid life on a 4k, widescreen display. Right click any image + open in new tab for a full sized view. Or view the gallery on imgur.

Read more →

October 8, 2021

The real villain of Final Fantasy VIII is History Itself

Final Fantasy VIII is a curious one. You play a group of teens at a high-school-cum-military academy who spend their days planning prom dates, riding hoverboards and munching hot dogs at the school cafeteria. They’re training to become elite special forces, but have no idea their school is really a front for a millennia-long war against a time-travelling sorceress who wants to destroy all existence. It gets… strange. You are mortally wounded and impaled in the chest at the end of Disc 1, then awake apparently unharmed. Everyone grew up together in an orphanage but forgot due to Plot Convenient Amnesia (discussed once and then forgotten). You fight a T-Rex in the school gym.

Read more →

July 25, 2021

Time in the Time of Coronavirus

COVID-19 has taken much from us, and one I feel keenly is my sense of time. It’s as though all our rituals are on hiatus. Maybe not rituals like those of ancient humans - worshipping the arc of the sun, or the retreat of the winter frost - but even modern lives have an ebb and flow, are patterned in cycles. The beginning of September school term; the pre-Christmas drinks. The dry Januaries and the big spring cleans in March.

Read more →

November 16, 2020

Playing TimeSplitters: Future Perfect on PC

Like the TimeSplitters series? What if I told you it’s possible to play TimeSplitters 2 and Future Perfect on PC with mouse and keyboard support to boot? All you need is the Dolphin Gamecube emulator and a helpful controller plugin. Get Dolphin First, you’re going to need an emulator. Dolphin is a reliable, fast, well-supported GameCube and Wii emulator with support for PC, Mac and Linux. You will need to use the Windows build to get mouse and keyboard support (as far as I know), but if you’re on another platform you can still play with a joypad.

Read more →

July 26, 2020

Setting up a static site and personal email - without paying for hosting

I’ve recently moved this site and my personal email domain handling off a paid webhost. Now, everything is handled by Github Pages, Google Domains and Gmail, and the only thing I pay for is the DNS registration. Here’s a brief guide on how you can set this up yourself. Step 1: move your site to Github pages Create a Github repository named [username].github.io. Github will serve whatever content is on master under that URL. Create a src branch - this will contain the source content of your static site Sign up for a TravisCI free account Add a .travis.yml file to the root of src and configure your build (details below) Go to Travis and give it access to your new repository Create a personal access token with the repo scope and note the value Go to the Travis build settings for [username].github.io and add an environment variable for GH_TOKEN equal to the access token Travis should now be able to build from src and output the result to master Configuration files: The .travis.yml file is needed to configure CI:

Read more →

May 22, 2020

Modern JavaScript features you may have missed

Despite writing JavaScript almost every working day for the past seven years, I have to admit I don’t actually pay that much attention to ES language announcements. Major features like async/await and Proxies are one thing, but every year there’s a steady stream of small, incremental improvements that go under the radar for me, as there’s always something bigger to learn. So in this post, I’ve collected some modern JS features that didn’t get much airtime when they first came out. Some of these are just quality of life improvements, but others are genuinely handy and can save whole swathes of code. Here are a few you might have missed:

Read more →

October 26, 2019

What challenges are facing the Ministry for Housing, Communities & Local Government?

“Housing” is now the first word in the department’s titular remit, and housing forms perhaps its most pressing priorities: responding effectively to the Grenfell tragedy, and improving access to the housing market. On the first: DHCLG must implement recommendations of the Hackitt Review, including a more effective ‘outcomes-based’ building safety regulations framework, with clearer terms and responsibilities. It must move swiftly to identify risks in existing high-rises, and cooperate fully with the Grenfell Tower Public Inquiry.

Read more →

August 29, 2018

Parcel.js aims to make web development simple again

In the beginning, there was HTML, and the tag was <script type='application/javascript'>. With this little incantation a website author - or ‘webmaster’ - had the power to launch his or her visitors on a fantastic journey to infoscapes hewn from pure imagination. Exhilarating games, virtual shopping malls, columns of animated flames and those little visitor counters you never see any more. All powered by the humble <script> tag. OK, so the web of the 1990s and early 2000s wasn’t terribly elegant. But it was very easy to develop websites. All you had to do was plop some files on an Apache server and point a bit of XML at the appropriate resource. There was no notion of modules, or bundling, or minification, or code splitting. No Gulp or Grunt or Webpack or Broccoli. Just plain old HTML. What if I told you there was a way to make webdev simple again?

Read more →

June 10, 2018

Why is Front-End Development So Unstable?

We all know the meme: by the time you’ve learned one front-end technology, another three have just been released. Also, that one you just learned? It’s deprecated. What we don’t often see is an examination why.

Read more →

May 29, 2018

Review: The Crash Detectives - Christine Negroni

On a routine night-flight over the Pacific Ocean, one of the world’s most high-tech passenger aircraft broadcast one unremarkable radio message before simply vanishing from the face of the earth. No landing was recorded and no wreckage has ever been found. Ships have scoured the seas and every possible component of the plane has been scrutinised for fresh leads. No-one has any. Was the flight just an unlucky victim of mechanical failure, poor weather and pilot error? Or was something more sinister at work?

Read more →

March 26, 2018

In praise of procrastination

Soft light glows behind the curtains, hugging the wall. The air is cool, thin and still. Nothing stirs. Head tilted downwards, one sock on and one sock off, I am about to be late for work. But I would rather think about an argument I heard on the radio. What exactly is procrastination? I like to think of it as a conflict between the superego and the id. I am supposed to do something and have turned my spirit towards it. But my body and emotions are quietly rebelling. What if they had good reason to?

Read more →

March 23, 2018

MGS2 Tanker as Solidus

I’ve discovered a simple mod for MGS2 PC that allows you to play the Tanker chapter as alternate characters. Here, I use it to play as Solidus Snake, perfect clone of Big Boss and the endgame antagonist. {% youtube 6CUaXCrHJM0 %}

Read more →

December 29, 2017

The Supposed Half Life 3 Ending? I Just Don't Buy It.

…because the Half Life series is all about Gordon’s ascent to power.

Read more →

September 7, 2017

Review: Utopia for Realists, Rutger Bregman

Rutger Bregman thinks the time has come for Universal Basic Income: to replace all benefits and state support with a single, basic, unconditional wage, paid to every adult in our society. Rather than plunging society into idleness and poverty, the argument goes, humans would continue to work, but rather than idling their days in useless occupations, non-jobs that only serve consumer capitalism, they would labour for the causes that truly motivate them. With shrinking manufacturing industry and the threat of automation as hot-button topics in the press, then, Utopia for Realists will be read eagerly by technosceptics, anti-capitalists and futurists alike. But how well will it satisfy them?

Read more →

July 25, 2017