Jimmy Breck-McKye

Developing opinions

Safer client-server interop with isomorphic TypeScript

One of the most common points of failures in web applications is client-server interop. A simple change in an upsteam API - renaming a field, changing its type, altering the way non-values are represented - can have catastrophic effects when the user renders the right UI component at exactly the wrong time.

Traditionally, web teams have tried to mitigate these risks with extensive inter-process integration tests. Termed ‘functional’ or ‘end to end’ tests, these automated checks usually spin up entire web browsers, databases and servers just to perform simple validations, provide feedback that is both slow and imprecise, are prone to false positives and have maintenance burdens of their own.

In my recent projects, however, I’ve found that isomorphic TypeScript types and interfaces, used with modern TypeScript features like type guards and predicates, can go a long way to providing much more lightweight validation that’s nearly as robust.

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?

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.

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?

You might be forgiven for thinking of the Malaysian Airlines’ MH370, which disappeared in 2014 under these exact circumstances. But this was the Hawaii Clipper - some eighty years earlier. It turns out these kinds of aviation mysteries aren’t nearly as rare as you’d think. Christine Negroni’s The Crash Detectives is a lively and readable account of “the world’s most mysterious air disasters”.

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?

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.

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?