Skip to content

Posts

Friday Random Ten for 9th June 2023

Ten random songs from my collection

Read more

My top ten video games

What are my favourite video games?

Read more

Friday Random Ten for 2nd June 2023

Ten random songs from my collection

Read more

Persil Lids to Passwords

My laundry detergent frustrates me. It's an analogy. For internet security. Obviously.

Read more

Open Benches

My favourite dedicated bench

Read more

Friday Random Ten for 26th May 2023

Ten random songs from my collection

Read more

A typo is not a spelling mistake

What is the difference then? Let's find out!

Read more

Book Review - Spare

One of my sporadic book reviews

Read more

The Inevitable Heat-death of my Twitter Shitpost

I wrote a while ago about automatically shitposting to Twitter and I wondered how long it would last. Now I know!

Read more

Cutting down on American Music

I have been trying to cut down on the amount of American music I listen to.

Read more

Friday Random Ten for 19th May 2023

Ten random songs from my collection

Read more

How do I unroll threads in MilkTea?

Viewing an entire conversation in the MilkTea app is kind of unintuitive. Let's figure out how to do it!

Read more

A very Victorian way of thinking

I'm not sure Old Fashioned is accurate terminology…

Read more

Friday Random Ten for 12th May 2023

Ten random songs from my collection

Read more

Solving crimes - without cops

I like crime solving but I don't like cops…

Read more

Friday Random Ten for 5th May 2023

Ten random songs from my collection

Read more

How I am using AI these days

What is AI useful for right now?

Read more

Use Less Javascript - Accordion

Semantic HTML provides many elements we can use instead of rolling our own. Introducing <details>

Read more

A Great Place To Work

Havas Lynx Group (the company I work for) has been ranked as one of the UK's best places to work. Cool!

Read more

Friday Random Ten for 28th April 2023

Ten random songs from my collection

Read more

Book Review - Crow Investigations Series

One of my sporadic book reviews

Read more

Centering things is hard

Everyone knows the hardest thing in frontend development is centering something within an element…

Read more

Friday Random Ten for 21st April 2023

Ten random songs from my collection

Read more

The Illiterate of the Twenty-First Century…

Read more

Friday Random Ten for 14th April 2023

Ten random songs from my collection

Read more

A village not a city

Some thoughts on using Mastodon

Read more

WinAmp MP3 Player - shut up and take my money!

Read more

Poor proofing or deliberate tactic?

Could this misspelling be on purpose? Let's find out!

Read more

Deciding against a Content-Management System

I have decided to not use a CMS for this site. If you're wondering why, read on...

Read more

Heading tags - From H1 to H6

I've seen a lot of headings related horrors in my time building websites. Let's learn how to do it properly.

Read more

Using html-parser for when an API returns HTML

It's nice when your API returns JSON because JSON. But what do you do when you get HTML back instead…?

Read more

Scrolling tables

Using table is very good and right for displaying data. But what if you have too much data?

Read more

Shitposting to Twitter

Before Twitter literally burns down…

Read more

Naming your boolean variables better

Read more

Using Zustand to manage application state in React

One of the downsides to Controller/Reducer-based state management is that a single piece of state needs to be passed from Component to Component up and down the cascade - regardless of whether that component needs the state or not. Zustand promises to alleviate that.

Read more

Manually copying VS Code extensions

Sometimes you can't use the inbuild sync to transfer your extensions from one VS Code to another. Learn how to do it programatically.

Read more

Quick and dirty server 2

Sometimes you just want to serve a static site without installing all kinds of stuff (2022 Edition)

Read more

Trim trailing slash

Sometimes a URL has a trailing slash, sometimes it doesn't. If we can't be certain, we need to handle either eventuality.

Read more

The three rules of engineering

Read more

Dotenv for bash

Sometimes you need to access process.env in a bash script…

Read more

Global .gitignore

How to create a global .gitignore file to define a list of rules for ignoring files in every single Git repository on your computer

Read more

Catch your errors

If there's one thing I've learned, it's that your code will go wrong. You need to accept that and catch your damn errors!

Read more

Semantic HTML

Semantic HTML is the process of using HTML5 tags to reinforce the meaning of the information contained within a webpage or application.

Read more

WordPress forgotten password localhost hack

Forgotten the password to your local CMS? Can't email a password reset? Here's my tried-and-tested solution.

Read more

Your codez is overkill

We all love writing code - that's why we're doing this - but sometimes we can seriously over-engineer things.

Read more

I am a lazy developer or How to write 438 lines of nginx redirects

I don't mean to imply that I cut corners and churn out shoddy code. I just hate doing repetitive tasks that bore the bejesus out of me.

Read more

Women in Healthcare

My other half is featured in the May edition of Pharma Times

Read more

You have a better laptop than your users

I have a decent laptop and I'm lucky enough to have a strong, reliable internet connection. Not everyone does.

Read more

Formatting JSON.stringify()

I occasionally find myself dumping stringified JSON into a <pre/> tag in my markup. It inevitably looks horrible. Here's how to prettify your JSON.stringify() output.

Read more

Generate a random alphanumeric string using JavaScript

Today I had to send an "ID" in the body of my POST request. It turns out that the API doesn't care what the value is - it just needs to be alphanumeric, exactly 18 characters long, and not already in the system.

Read more

Wait!

Why the rush? Whether you're faking an API response, introducing deliberate cognitive drain, or simply want to slow things down this function has got you, baby!

Read more

Quick and dirty carousel

AKA Move the first item in an array to the end repeatedly

Read more

Increase WordPress maximum upload limit in Docker

"filename exceeds the maximum upload size for this site" 🙄

Read more

Quick and dirty server

Sometimes you just want to serve a static site without installing all kinds of stuff

Read more

Numberize a value

If you get a CSS value but you want to do maths with it, what do you do? Let's find out!

Read more

Inclusive Design is more important than Accessibility

We tend to think of accessibility as being something we add to websites to help the disabled. This is a mindset we need to get out of.

Read more

Using slots in React

Having multiple almost identical components is just very bad and wrong - let's fix it properly!

Read more

Human-readable Numbers

Convert a JavaScript number to a human-readable number the easy way.

Read more

Pre- and Post- NPM Scripts

I'm not a fan of chaining together lots of commands and, it turns out, neither are NPM!

Read more

Alternatives to master

In an effort to remove unnecessary references to slavery and replace them with more inclusive terms, many companies are opting to replace the term `master` as their main git branch name.

Read more

The semantics of interaction vs navigation

It is commonplace for designers to style both links and buttons to look like “buttons”. But just because something looks like a button, doesn’t mean it is a <button>.

Read more

Crafting the ideal line-length

How to achieve the ideal line length using css.

Read more

Each child in a list should have a unique "key" prop

Fix this common React error without dependencies

Read more

For modern development, Desktop and Mobile are not enough

Different devices have different capabilities, using mobile to describe both narrow screens and touch screens is confusing and leads to assumptions that come back to bite us.

Read more

Gutenberg Components - "I only need one"

Gutenberg comes with an awful lot of default components most of which will never be used in our websites. Here's how to disable the ones you won't use.

Read more

This is Betty.

Read more

The Applesphere is the actual worst for experience designers

The "Cinematic Experience" is a myth.

Read more

McDonald’s Sauce Dispenser is the greatest product ever

OK, that’s a bold statement! I guess I should elaborate. Like a lot of teenagers, I worked in a Maccies one summer and I was struck by how awesome the sauce dispenser was. Basically, it’s a funnel attached to a handle with a trigger. Pulling the trigger releases 5 dots of ketchup in a quincunx

Read more

“Stop Being a Douchebag”: Ego and the development crew

At the end of my third year of high school, the lockers were cleared out and any unclaimed stuff was up for grabs. I inherited a copy of Use Your Illusion II on vinyl – only one of the two LPs (I still have it today) and I bloody loved it. I was 13 years

Read more

5 Reasons People Read Articles with Numbers in the Title

Using numbers in the title of a blog post is an excellent way of giving the (potential) reader an estimate of article length. 6 reasons… will take less time to read than 22 reasons… The nerds behind blogging platform Medium determined that the ideal blog post length is 7 minutes.

Read more

Why is a soap bubble round? Or: When and where to use square bubbles

The laws of physics, those undeniable laws of the universe that we can’t help but abide by, make round soap bubbles. They make green grass and wet water and rainbows that can only be seen between 40 and 42 degrees. These are templates crafted over millennia that just simply work. Flippantly, websites are the same.

Read more

Micro-interactions to delight and annoy

Can your UI harm your UX? Let’s find out…

Read more

The Build Triangle: Understanding Limitations

In an ideal world, everything we build would be perfect – gorgeous code, on time, and under budget but most of us don’t live in a Disney utopia. Unfortunately, the real world chips away at our resolve and something has to give. Part of good stakeholder management is managing expectations and part of managing expectations

Read more

Can’t see the wood for the trees

Long, long ago in a galaxy far, far away, websites ran the gamut from the bland to the Flash™-y and everyone wanted to make them better. Way back in them olden days, there were so many ways to improve the hideousness that some websites were, and so the web design industry flourished. Everyone clamoured for

Read more

MNMLSM: Simplify, simplify some more, then start simplifying

Minimalism is an interesting thing – far from meaning as stark as possible, minimalism is the idea of removing anything unnecessary for base level functionality. Imagine a human face. Now remove all of the details you can until it still resembles a human face. If, for example, you took the eyes out and it looks

Read more

Backdoor Action: The Death of the Homepage?

Google (other search engines are available) loves content. There’s a whole industry (or at least a facet of digital marketing) that has sprung up around Content Marketing that puts emphasis on copy-rich pages to draw consumers in. Content marketing is a strategic marketing approach focused on creating and distributing valuable, relevant, and consistent content to

Read more

The more you are of the moment, the quicker you are of the past

Everyone who ever got that haircut in high school just wanted to be cool. Look back at photos of some of the decisions you made in the name of “fashion” and you’ll understand the title of this article. We’re talking about the downside of cutting-edge technology. Bleeding-edge tech is cool! As a self-confessed tech nerd,

Read more

Design Fatigue: When bored doesn’t mean boring

Jakob’s Law states that visitors to your website spend most of their online time on other peoples websites. Who spends the most time on your website? – you do. Whether you’re the developer, designer, or MD, no-one spends as much time on your site as you think they do (or wish they would). This leads

Read more

Mobile-first is the future of web design

One of the main issues I have come across in the last three years of building marketing emails is that mobile responsive versions of emails are treated as an after-thought. Often a highly talented designer draws up a beautiful desktop version and then it is left to the interactive developer to whittle away at the