Flexispot E7 pro standing desk review

A short review of the FlexiSpot E7 Pro standing desk, covering its sturdy C-frame design, built-in USB-C port, effective cable management, and clear, well-designed assembly instructions.

Home assistant bin collection schedule

I built a Home Assistant card that pulls in my local bin collection schedule so I always know which bin needs to go out each week.

HTML5 form attribute

A short explanation of the HTML5 form attribute and how it lets you submit a form from elsewhere on the page without using JavaScript.

Creating a layout like Pinterest with React and the partition problem

Thoughts on building a Pinterest-style layout in React and using a greedy partition algorithm for image placement.

From Jekyll to Hugo

My change from Jekyll to Hugo for blogging, and how Hugo improved site performance and workflow.

React noop anti-pattern

Why I avoid a particular React pattern, what the "noop anti-pattern" is, and how to simplify component logic.

Git recent

A practical note on using Git to find recently changed files and streamline your workflow.

Designing form validation the right way

Key principles and practices for creating form validation that’s both user-friendly and robust.

2017 in review

A personal look back at the highlights, learning, and accomplishments of 2017.

Making sure your forms don't suck

Notes and tips from my talk on improving form usability and developer experience.

Reduce all the things

Practical examples and tips for using reduce effectively in JavaScript.

Git stash workflow

A simple Git stash workflow that keeps your changes safe and easy to restore.

Chrome DevTools

A roundup of useful Chrome DevTools features and shortcuts for frontend developers.

On programmers and empathy

Why clear communication and empathy matter in software teams — beyond just writing code.

Working from home misconceptions

My take on common myths about working from home and what really matters for productivity.

Batch file renaming in Bash

A quick Bash example for batch renaming files across nested directories.

Tips on writing a frontend developer CV

Practical advice on crafting a well-rounded CV for frontend developer job applications.

Exposing Rails routes in JavaScript

How to export Rails routes into JavaScript to simplify URL handling client-side.

The books I read in 2016

A list of books I read in 2016 with brief thoughts and recommendations.

The best books I read in 2015

My personal picks for the best books I read in 2015 and why they stood out.

Stubbing AngularJS $window

Tips for stubbing AngularJS $window in tests to make them more reliable.

Why am I going to that conference again?

CoffeeScript round two

My renewed thoughts on CoffeeScript, its pros and cons, and whether it’s worth learning.

Scotland.js

Notes and takeaways from attending the Scotland.js conference.

Moving to Android

My first thoughts and early impressions after switching from iOS to Android.

JavaScript North East

A recap of attending JavaScript North East and what I learned there.

jQuery UK conference

Highlights and insights from the jQuery UK conference I attended.

Speed up writing CSS backgrounds in Bash

jQuery inconsistencies

HTML5 Validator Gem

How I built a Ruby gem around an HTML5 validation service to automate HTML checking.

iPhone style checkbox using only CSS3

My take on CoffeeScript

My experience with CoffeeScript and when (or if) it makes sense to use it.

Creating a Ruby Gem called Cineworld

Why I Use Haml

Why I prefer Haml templating in Rails and how it improves clarity and productivity.

Nearest Cineworld is now on GitHub

Nearest Cineworld project

My top 10 most useful Ruby Gems

Current git branch in bash prompt

Ruby Date format gotcha

Gowalla - where's my ROI?

Google map api with ym4r

Nginx rewrite rule

A simple Nginx config snippet to redirect www to non-www domain.

jQuery Ajax Queue

New fangled technologies

Crafting Appropriate URLs with the Token API

Drupal Clear Cache Bookmarklet

Creating a bookmarklet to quickly clear cache in a Drupal site.

Why listen to audiobooks?

Why aren't you Huffduffing yet?

An introduction to Huffduffer and why it’s worth using for podcast discovery.

Goals for 2010

My personal goals for the year and reflections on ambition and planning.

Internet Explorer Stylesheet Limit

A quick note on stylesheet limits in Internet Explorer and how to handle them.

TextMate CSS Colour Picker

A handy CSS colour picker tip in TextMate to speed up your workflow.

Abusing JavaScript Frameworks

My take on misuse of JS frameworks and the balance between tools and over-engineering.

Moving to Linode

My experience switching to Linode for hosting and why it’s been a good choice.