RSSAmplifier

Blog

Luke Hansford

Experiments and notes from Luke Hansford.

lukehansford.meRSS feed ↗70 posts

Latest posts

Storing 1Password 2FA tokens on CachyOS/Niri

Troubleshooting an issue with 1Password and 2FA on CachyOS.

My favourite music in 2025

15 of my favourite albums in 2025.

My self-hosting setup in 2026

An overview of what I'm self-hosting currently, and what I'd like to add in 2026.

A plan for 2026

An overview of the OKRs I've set for myself in 2026.

My favourite media in 2025

A short list of some of the podcasts, games, TV, books, and blogs that I enjoyed in 2025.

Canonical request logs in Flask

A short guide to how we use canonical request logs in Flask at Fishbrain.

2025 in review

2025, like 2024 , wasn't the most groundbreaking year for me, but I think I made some positive steps. A theme of the year was settling into living in Hong Kong after moving there in 2024. We made good use of the location, travelling to Japan three times, as well as Shenzhen and Zhuhai in mainland China. I managed to explore Hong Kong a bit, though given our location in the outlying islands, not as…

Thoughts on using Zed & Claude Sonnet 4

Some quick impressions from using Zed and Claude Sonnet 4 to build a personal project.

My Tech Stack in 2025

A rundown of what I use for software development in 2025.

Creating a custom terminal prompt for ZSH

An overview of how I've customised my ZSH prompt.

Using Raindrop.io with the Kobo Libra Colour

Save articles from the web and read them offline on your Kobo Libra Colour.

Default apps in 2025

My default apps as of 2025.

A plan for 2025

An overview of the OKRs I've set for myself in 2025.

2024 in review

As far as years go for me, 2024 was a little more subdued. I didn't enter the year with any specific goals or resolutions on paper, though there were a few in the back of my mind. The most notable change was a move to Hong Kong in July after two and a bit years living in Thailand. At this point an international move is a little old hat for us, but it was probably more momentous for our…

Defaults apps in 2024

"Default apps" posts were a bit of a meme towards the end of 2023 and I had planned on doing one, but I guess I'm only just getting around to it now. 📨 Mail Client: Thunderbird and Spark. I use Spark on Android/iOS and Thunderbird on desktop. 📮 Mail Server: Fastmail and Gmail. Gmail is only for work and forwarding from a legacy address. 📝 Notes: Obsidian . ✅ To-Do: Todoist . 📷 Photo Shooting:…

MacOS Customisation

An intro to the apps I use to customise the look and feel of MacOS.

Using mise to manage development environments

At Fishbrain we work with many programming languages across multiple projects. Switching between projects can be a hassle if those projects have different languages, or different versions of the same language, and so recently I've been using a tool called mise to handle this. When mise is set up correctly it will allow you to automatically use the correct version of a language for each project…

Roll20 macros for Dungeons & Dragons 5E

An intro to using Roll20 macros when playing Dungeons & Dragons 5E.

Simple Github Actions CI for Javascript projects

My basic template for getting CI into a Javascript project.

How I use Todoist as an Engineering Manager

A look at the process I've come up with for using Todoist as an Engineering Manager.

2023: The year of health

A dive into my yearly theme for 2023 - health.

2022 in review

A look back at how things went for me in 2022.

2022: The year of habits

A dive into my yearly theme for 2022 - habits.

Splitting up a .zshrc file

A quick guide to splitting up a .zshrc file.

Improving images on fishbrain.com

A look at some techniques we used at Fishbrain to improve image performance and provide a better user experience.

Digital detox - week 2

Check out my previous post about a Digital Detox The detox continues, and I definitely notice myself being less drawn to pulling out my phone or switching over to Firefox for some mindless browsing. Unfortunately I'm noticing that I've replaced that time mostly with work and reading (the latter may seem harmless, but I've burned through 6 books in two week - when I read I tend to get a little…

Digital detox - week 1

Check out my previous post about a Digital Detox . I've now been doing the digital detox for eight days and it's been an enlightening experience. I'd say I've managed to keep mostly on track. I didn't completely drop podcasts, and I spent a little time today watching Youtube, but other than those two I've stuck closely to my goals. It's probably been a more difficult experience than it should have…

Digital detox

Recently I've been reading the book Digital Minimalism by Cal Newport, and in it he proposes the concept of a "digital detox", wherein a person would refrain from any optional digital activities for a month. The goal is not necessarily to quit those things, but to help identify which activities add value to your life and which ones are unnecessary bad habits that have accrued over the years. As…

2020 in Review

Well, obviously that didn't go as expected! This post is going to focus on the goals I set for myself at the beginning of the year and how I went with them. There's plenty that happened in 2020 that I'm not going to cover but the two main themes were "baby" and "pandemic" 🤷‍♂️. A new approach to goals I really don't recall what inspired the approach to goals I took in 2020 - in hindsight I should…

The Idle-Until-Urgent Pattern in React

One thing I've been struggling with recently working on fishbrain.com is the high cost of hydrating server rendered React. While server-side rendering brings us a lot of benefits, it does take a fair amount of time to hydrate, which can be particularly frustrating if you're hydrating elements of the page that the user is not immediately going to interact with, or even possibly see. One potential…

Ephemera - 17th October, 2020

Reading An Honest Review of Gatsby I kind of wish I'd read this article from Sentry before trying to migrate the Fishbrain tech blog from Medium to Gatsby. While there are some cool aspects of Gatsby, the whole "everything is Graphql" approach feels way overkill for a blog. City of Amsterdam Algorithm Register I love this concept of an algorithm registry that the City of Amsterdam has. Algorithms…

Ephemera - 28th June, 2020

Reading Former employees accuse Cards Against Humanity of a racist and sexist office culture This article goes into the accusations of racism and sexism at Cards Against Humanity, specifically regarding co-founder Max Temkin. While CAH definitely hasn't aged well and I probably wouldn't feel super comfortable playing it these days, this hit me a little hard because for the last few years one of my…

DRY unit tests in Javascript

A couple of years ago I started working with a Ruby on Rails codebase and was stunned by how more well thought out the test were in comparison to Javascript codebases I'd worked with. In particular I loved that the axiom of DRY (Don't Repeat Yourself) applied to testing - something that seems obvious to do in hindsight. Over time I've been picking up the parts of Ruby testing that I found…

Ephemera - 15th December, 2019

Reading How William Gibson Keeps His Science Fiction Real Thinking in React Hooks

Ephemera - 8th December, 2019

I've been a little sporadic with these posts this year. Maybe next year I can be more consistent...or maybe not. Reading Blood and Soil in Narendra Modi's India I was aware of Modi's political history, but not quite to the extent that this article lays out. It's quite terrifying to me that this has become a somewhat normal political situation around the globe in recent years (I'm thinking of the…

Ephemera - 30th May, 2019

Reading TypeScript 3.0: The unknown Type I'm immediately going to start using the unknown type in my TypeScript projects after learning about it in this post from @mariusschulz. No more using any when I'm a little unsure of how to type data coming from the server! const assertions are the killer new TypeScript feature "killer new feature" generally feels too hyperbolic for me, but in this case I…

Ephemera - 1st February, 2019

Reading Gradually, Then Suddenly Tim O'Reilly reviews 10 areas of technology that he expects to see breakthroughs in overcoming years. It's a quick read, but one that'll probably inspire you in one way or another. I'm particularly intrigued by the agricultural technologies he discusses, and that's rabbit hole I'm now currently going down. Listening Demdike Stare - Stitch By Stitch Tape 4 Turns out…

Ephemera - 19th January, 2019

Reading [We have the techno-logy: building a Eurorack system for live techno]](https://www.noiseengineering.us/blog/2019/1/4/we-have-the-techno-logy-building-a-eurorack-system-for-live-techno) Noise Engineering has put together an overview of what you need in a Eurorack system to make banging techno (with two Basimilus Iteritas Alters of course!). I'm going to be cribbing some ideas for my setup…

Ephemera - 1st October, 2018

Watching Building Impossible Programs Julia Evans does a great talk about building a Ruby profiler. It's a nice reminder that just because an app/tool/program doesn't exist, doesn't mean that it can't be built!

Ephemera - 23rd September, 2018

Reading How To Deal with Dirty Side Effects in Your Pure Functional Javascript This is a great intro to a more intermediate level of functional programming in JS (and maybe just FP in general). Functors, monads, and general removal of side effects. The tie in with Tensorflow at the end is nice too! I've started a new job in the last month were the main language I write in is Ruby. While there are…

Ephemera - 2nd September, 2018

Reading Annoyed by Restaurant Playlists, a Master Musician Made His Own This article feels like peak-Ryuichi Sakamoto. Good background music will make me return to an average restaurant or bar every time. And that playlist is ace - it warms my heart to know he's a fan of both Aphex Twin and Oneohtrix Point Never. The mysterious heart of the Roland TR-808 drum machine I often thought of electronics…

Ephemera - 1st July, 2018

Reading Memorizing these three statistics will help you understand the world The title is a little clickbait-y (though that's pretty run-of-the-mill these days), but the article itself is still worthy. Essentially it's a bunch of statistics, and pretty well known ones at that, but it is nice to have a condensed reminder of the positive changes humanity has made in the last century and offset the…

Ephemera - 24th June, 2018

Reading What He Does With What He Has: Blawan Interviewed Like most people I became familiar with Blawan after hearing 'Why They Hide Their Bodies Under My Garage', and his subsequent disappearance from the musical landscape always left me wanting more. This interview with The Quietus explains where he went to, and how he evolved from the frantic horror-dubstep of his earlier releases to the…

Ephemera - 17th June, 2018

Reading UTC is enough for everyone...right? A great article and great web design is always a killer combo. Also a timely (yeah, pun intended) reminder of why time is one of the more complex areas of computer science. Friday Facts #246 - The GUI update (Part 3) I've not played Factorio before, but even so I loved this deep dive into the surprisingly complicated issue of button placement in…

Ephemera - 6th May, 2018

Today I've got a bunch of short recommendations as I've been procrastinating compiling them for the last few weeks. Reading How referendums break democracies by Tim Harford Tim Harford is an economics author who I keep returning to as a small dose of sanity in the chaotic political atmosphere of the last few years. How to Write a Git Commit Message by Chris Beams Sage advice for the coders among…

Ephemera - 5th April, 2018

Well I broke the chain again, though to be honest it was more just to a lack of anything to talk about rather than procrastinating/forgetting to write something like usual. Reading Provenance by Ann Leckie I spotted this on this year's Hugo Awards shortlist; I had no idea that Leckie has a new book out already, so it was a pleasant surprise. I'm only about halfway through it, but Provenance is so…

Ephemera - 5th March, 2018

I missed a few weeks there - Chinese New Year has a tendency to disrupt my routines - but I'm back at it now! Reading The 100-year capitalist experiment that keeps Appalachia poor, sick, and stuck on coal I find the economics and politics of the United States endlessly fascinating. It's such a kaleidoscope of views, opinions, and histories. This article targets the political history of the…

Ephemera - 12th February, 2018

Reading The Rise of China and the Fall of the ‘Free Trade’ Myth Pankaj Mishra is an author I always love to read so it was nice to stumble upon this NY Times Magazine article from him. It's a divisive but intriguing take on the economic rise of the great nations. From my on the ground experience in China I feel like he might be paving over some of the more free-wheeling capitalistic tendencies…

Ephemera - 5th February, 2018

Reading How I review code A Tumblr engineer walks through his process for code reviews. I found this pretty instructive as I'm currently in the middle of trying to come to grips with formalising code reviews in my own company. Listening Lab Rat XL - Mice Or Cyborg This 2003 album just got a re-release and I've been listening to it all week while coding. Lab Rat XL was a side project of Detroit…

Big Muff Eurorack Conversion, Pt. 3

Part One Part Two Switching the switch / Converting the power to Eurorack format Foot switches are, understandably, a little hard to press down. They're built to withstand the unsubtle kicks of a guitarist in motion, but applying that much pressure to the Big Muff as it sits in my Eurorack case make me worry it'll do damage to the case (doubly so as my case is made out of cardboard!). So the next…