Top 10 reasons to attend an all-male event

There's been lots of talk recently of the dearth of women attending technical conferences. This problem is blown out of all proportion! There are many excellent reasons to attend an all-male tech event: Reduced chance of having an affair while away on business ⚤ Hetrosexuals only! Won't accidentally mistake a CEO for a cocktail waitress […]

Continue reading →

Major sites running unauthenticated JavaScript on their payment pages

HTML code from Spotify.

A few months ago, British Airways' customers had their credit card details stolen. How was this possible? The best guess goes something like this: BA had 3rd party JS on its payment page <script src=""></script> The 3rd party's site was hacked, and the JS was changed. BA's customers ran the script, which then harvested their […]

Continue reading →

Building an Alexa-Powered Electric Blanket

One evening, my wife turned to me in bed and said, "Winter is coming..." Well, what she actually said was "Get your frozen feet away from me, you cold-blooded monster!" The only way to save our marriage? HOOK OUR BED UP TO THE INTERNET! I couldn't find an electric blanket with IoT connectivity - so […]

Continue reading →

Should you use SRI for self-hosted scripts?

HTML source of Sony's PlayStation website.

Here's a curiosity which I found while stumbling through the Sony PlayStation store. The website loads internally hosted scripts using SRI (SubResource Integrity). Why? Does your work require you to swipe an ID card to access the building? That seems pretty normal. Does your work also remind you to keep your badge visible, and to […]

Continue reading →

OpenBenches - some stats

UK map covered in thousands of markers.

For the last year-and-a-bit, Liz and I have been running An open data website dedicated to memorial benches. Here are some rough and ready numbers about how it has gone so far. 9,870 Benches At the time of writing, we're a little shy of 10,000 benches. As you can see, we have photos from […]

Continue reading →

I've broken myself - dealing with RSI

Terence and Liz at a laptop. Terence is wearing wrist braces.

I've recently been suffering from a nasty bout of RSI. Thanks to the NHS, I know it isn't full Carpal Tunnel Syndrome, which is good. But I do need to take better care of myself. My usual kit is the MS 4000 ergonomic keyboard and an Evoluent Vertical Mouse. But recently I've been travelling a […]

Continue reading →

Dynamic JavaScript and SRI

HTML source of The Guardian website. Polyfill is being loaded from their own CDN.

Some external JavaScript libraries are dynamic. That's a problem for the SRI model of security. How can this be fixed? Definitions Suppose I want my website to have the latest version of the jQuery library. I might use a Content Delivery Network (CDN) to serve the code for me. <script src=""></script> If an attacker were […]

Continue reading →

The Myth of the Pixel Perfect Grid

The letter E displayed on various screens. Each renders differently.

If you've spent any time with graphic designers, you'll know that they love spending your money on imperceptible tweaks to your image files. "It must be pixel-perfect!" they cry. When you query why they've generated the same icon in multiple sizes, each with subtle variations, they cryptically mention how everything must align with "the grid." […]

Continue reading →

Redirect GitHub ID to Username

A screen of JSON code showing my details.

Scratching my own itch here... GitHub users have a username (mine is @edent) and have a user ID number (mine is #837136). If you want to redirect a user ID to a username, you can use the little service I've cobbled together: That will take your browser to my GitHub page, using nothing but […]

Continue reading →

Diverse or Representative?

A Black woman, face sorrounded by circuits, looks to the future.

Some casual thoughts about language. I recently received an invitation to a tech talk where all the speakers were blokes. As is normal for these sorts of things, I dropped the organisers an email saying I wouldn't be attending because of the lack of diversity. I received a very polite email back protesting that the […]

Continue reading →