Technical notebook
My thoughts on programming and software engineering, along with code snippets and solutions to problems I’ve encountered.
- Ignore all whitespace with git diff -w
- Hugo detecting CSS changes but not rendering new styles
- Two open source projects with great documentation
- WordPress AJAX example with fetch and nonce verification
- Fixing Google Search only indexing my homepage
- Design your website without CSS
- Hide trending topics on X with uBlock Origin
- Hide the LinkedIn news feed with uBlock Origin
- It seems the App source '/Applications/Docker.app' is not there
- ChatGPT pair programming
- The biggest problem with programming languages
- I tried npm install after a few years, and this is what happened
- Learn Linux the hard way
- No-code platforms cannot replace code
- My upload script is 176 times faster than Travis CI
- To get it ready, use it in production
- Clojure vs Go: Making a spell checker
- XML signal-to-noise ratio
- My Git and other shell aliases
- Things I didn’t know about TypeScript
- Programming blogs that go deep
- Scraping a website with Node.js and json2csv
- TypeScript has oddly specific types like Pick
- Learn programming by doing
- Need more memory on your cheap VPS?
- Programming’s built-in feedback loop
- Making a command line countdown timer
- The maintenance cost of JavaScript frameworks
- Living in the terminal
- Cache busting with Bash
- Hash tables for unsorted array lookups
- A repository for your dotfiles
- A guide to dwm on Debian
- Cache busting static assets in Hugo
- Make bootable USB drives with dd
- Clojure: Checking for uppercase letters in a string
- Why I moved back to GitHub
- The typographer’s serif system font stack
- Typefaces included with Ubuntu 18.04