Home Blog CV Projects Patterns Notes Book Colophon Search

James Gardner

Welcome to my personal blog, over 300 webpages of tech information from over 20 years online!

I'm the James Gardner that works as a virtual CTO, lives in London, was lucky enough to study Physics at Oxford (Wadham College), and designed a Photobioreactor whilst at school in Bedford!

I'm best known for programming in the Python language and for leading the CKAN open data team in its formative years at data.gov.uk (now used worldwide e.g. data.gov, humdata, more...). You can still read my open source book on the Pylons web framework.

Nowadays I also code Node.js, React (web and native) and Go. I like taking projects from idea to MVP to production using a test-driven approach or helping successful teams scale their software.

Recent Finds

25th June 2024

OpenTofu - I'm keen to try this open alternative to TerraForm for Kubernetes..

20th February 2024

Enshittification is coming for absolutely everything.

15th September 2023

The Tyranny of the Marginal User.

9th February 2023

Building something like GPT in Python.

14th June 2022

Fox vs Rabbit Products.

4th Feb 2022

1 Pixel Wealth. (via Gather).

27th April 2021

My current HTML Template. (via Hacker News).

3rd April 2021

I can only think that modern front end development has failed. Links to DOM.

Take away React, Vue, Angular, or similar away from most current front end developers and there is panic. When I say panic I mean full insanity panic like abandoning the profession or completely going postal.

A simple checklist to provide superior front end applications:

  • Don’t use this. You (general hypothetical you) probably don’t realize how easily you can live without it only because you have never tried. Doing so will dramatically shrink and untangle your spaghetti code.
  • Don’t use addEventListener for assigning events. That method was added around the time of ES5 to minimize disruption so that marketers could add a bunch of advertising, spyware, and metric nonsense everywhere more easily without asking permission from developers. That method complicated code management, is potentially point of memory leaks, and performs more slowly.
  • Don’t use querySelectors. They are a crutch popularized by the sizzle utility of jQuery. These are super epic slow and limit the creative expression of your developers because there is so much they can’t do compared to other means of accessing the DOM.

I now add ESLint rules to my code to automate enforcement of that tiny checklist.

Copyright James Gardner 1996-2020 All Rights Reserved. Admin.