Jimmy Breck-McKye

Developing opinions

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:

A case for self-teaching software engineering

If you are a non-CS grad seeking a career in software engineering, I recommend you try and self-teach as much as possible. Bootcamps have their place and books provide a great head start, but only by learning independently can you really get to grips with what the job entails.

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.