WebDev

My front pages

It’s been two years since I relaunched my website as a personal portfolio and developer relations blog. Having been a journalist, a marlinspike sailor and a technical writer, I’m finally comfortable describing myself as software engineer (on the basis that my last two roles both included writing code). This seems like a good point for some reflection.

Read More

An introduction to the semantic web

One of my predictions for 2023 was that there would be a lot more talk about Web 3.0. I couldn’t have been more wrong. Global events and the rise of AI have completely overshadowed web developments. But it’s still a topic worth some consideration.

Read More

Using Lighthouse to validate web accessibility

I’ve long been an advocate of localization, which is why it was important for me to make this site multi-lingual. But I’ve been an advocate of accessibility for even longer. So I really should have done an analysis on the site long before now, and for that I apologize. People tend to think that web accessibility is about disability, if they think about it at all. And then they do a quick mental calculation that goes something like: “How many users with disabilities am I going to have and how much time and money is it going to cost to make my site accessible?” And then, unless they are mandated to by law, they tend to do nothing.

Read More

Using the Document Object Model with JavaScript

This week, I had a look at the Document Object Model (DOM) for the first time since graduating from my computer science degree over a decade ago. I can’t remember the last time I created a web page by hand in HTML. I’d much rather use a static site generator with a pre-defined theme and only change things if absolutely necessary. I’m also open to other solutions for automatically generating pages. But sometimes you want to change something on the page, and often it’s something that you can’t access directly from the settings. However, sometimes the settings allow you to include snippets of JavaScript, for example to support analytics. And this can provide a workaround.

Read More

How to offend most of your international users all at once

We love icons. They’re a great way to convey information simply, even if many of them are skeuomorphs from a bygone age. You know, like using a floppy disk ( 💾 ) to mean save; a telephone receiver ( 📞 ) for voice calls; an envelope ( ✉️ ) for email; a single lens reflex camera ( 📷 ) for taking a picture; a movie camera ( 🎥 ) for video; a folder ( 📁 ) for file containers; a calendar ( 📅 ) for dates; a newspaper ( 📰 ) for news feeds; a spiral notepad ( 🗒️ ) for text editors; an alarm clock ( ⏰ ) for alerts; a stopwatch ( ⏱️ ) for timers; a bed ( 🛏️ ) for sleep; a book ( 📖 ) for electronic publications; and so on. And I took most of those examples from the current version of iOS nearly a decade after Apple supposedly abandoned skeuomorphism. But we keep on using them because they are unambiguous, with a one-to-one meaning. Unlike say, flags.

Read More

Getting started with REST APIs

REST (representational state transfer) APIs (application programming interfaces) have been around since the turn of the century, when they were defined by Dr. Roy Fielding in his doctoral dissertation. Since then, they have become the main method for connecting the components in microservices architectures.

Read More