Putting an end to email scams is so simple that I’ll explain the entire process in one word in the second paragraph. The rest of the article is just padding. Ready to learn what you need to do? Ready?!….


Photo by Erik Mclean on Unsplash

Now for the padding…

The scamming industry is profitable because there are three types of people:

  1. People who don’t mind ruining someone else’s life to make a few bucks.
  2. People who can be fooled into handing over their money.
  3. People who stand by and let it happen.

Scammers, suckers, and selfish bystanders.

The scammers who steal from the suckers rely…

Releasing an npm package is like trekking through the wilderness. The ideal path will depend on how experienced you are, how much of a hurry you’re in, and whether you’re hiking alone or in a group. This post describes one way to plot a course (the best way).

Truth be told I’m writing this primarily for Future David, because I know he’ll forget the npm commands and make the same mistakes over and over again if I don’t write it all out for him. But maybe you’ll find it useful too.


I’m assuming you know what npm is and know…

Let’s say you want a component that will render a list of things. You want it to be flexible, to be able to render any sort of thing, like this:

Or this:

The implementation might look something like this:

The problem, of course, is that the type of the variable in the renderItem callback will be any.

Hitler wasn’t a violent man. Not in the personal, physical sense. His millions of atrocities were carried out by other people, because he asked them to.

This may seem an odd way to phrase things, but I do so because the idea is important: by stringing together the correct sequence of words, over a long enough period of time, one person can arrange the world into a state where they can say “you there, go forth and murder for me” and their deeds will be done.

Nothing more than words.

Imagine someone had foreseen the future and smothered baby Hitler…

This article is about a design for shelves that’s easy to make (hard to mess up) and doesn’t require a full-blown workshop to construct.

The design is just horizontal slabs of wood for the shelves and vertical threaded rod with nuts to hold them in place (because a shelf without altitude is just a bit of wood on the floor). No nails or screws or glue or any other forms of joinery.

I’ve made two sets of shelves in this vein in the last few weeks, here’s the little one:

… and here’s the big one.

In this post, I walk you through the composition, capture and development of a photo of the cranes at Newington Armory.

The photo

The location

Newington Armory, on the Paramatta River.

The original

Shot with a Canon RP + 35mm lens.

1/20s • ƒ/9.0 • ISO 100

This is part two in a series showing the work behind the scenes to create a particular photo. Part one is here.

The photo

I like this photo, partly because it’s all wrong. The composition is odd, it’s almost entirely out of focus, the colours are faded but not black and white, the lack of contrast is depressing, and the subject matter is a clump of sticks in a drain. Not even a pile of sticks, a clump.

In fact, as I was triaging my shots from this location, my first instinct was to send it to the bin.

The location

This magnificent clump…

This post describes the creation of a particular photograph; it will form part of a series, guided by feedback and my attention span.

The photos themselves are not particularly amazing, and I must confess I don’t think they belong under the spotlight. But as with everything I write, I aim to put out the sort of content I like consuming from other people (“how it’s made” type stuff).

On with the show…

The photo

The when and where

Newington Armory, Sydney (map). 9:30am, 21 July 2020.

The tracks in the photo were built to carry fun-sized trains that trundled to-and-fro between armament stores around this site…

This post looks at the privacy implications of contact tracing apps. Specifically those that implement so-called ‘privacy-preserving contact tracing’.

I will put forward the case that such contact-tracing apps can be implemented without any loss of privacy, but let me be clear: this is not a call for complacency. It is a call for an end to unfounded opposition to a potentially life-saving technology.

Photo by Andre Benz on Unsplash

What do these apps do?

There is, and probably always will be, a shortage of COVID-19 tests. So between now and when we are all vaccinated (late 2021?) we will face the constant quandary of who gets tested and who doesn’t…

There’s no official dark mode for GitHub (December 2020 update: yes there is!) but this doesn’t mean you must suffer the retina-burning white of the default design.

In this post I take a look at 8 options for going dark. The winner, in my opinion, is Dark Reader. So if you’re in a hurry, you may be excused.

First I’ll mention a few things about each of the contenders, then I’ll show them side-by-side in action across various GitHub pages. …

David Gilbertson

I like web stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store