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.