-
Integrating the moon into your terminal
As I write this, a spaceship full of astronauts is flying around the moon for the first time in my life. They don’t even have a working toilet right now either so they’re all gasping for a piss while they do it. It’s all very exciting.
-
Golang LSP in Helix on macOS
Since getting my Forgejo dev environment running I’ve begun poking around the issue backlog and learning my way around the code, looking for the stepping stones to becoming a contributor. One important early milestone was to get the Golang LSP running in Helix.
-
hx --health go prints ✓✓✓ despite missing dependency
-
Running a Forgejo dev environment
Been wanting to get started making code contributions to Codeberg for the longest time. Finally got around to setting up a local development environment. Here’s my notes!
-
The software job market is going to split in two
Found myself in Backagården once again this weekend, building software for the international left. This has been a bit of a happy place for me for some time now. This weekend bought a surprise happiness bonus, when I realised how much fun I was having coding without access to my employer-provided Opus 4.5 subscription.
-
I got a commit merged into Helix!
After building lazyrename a couple of months ago I got curious about small ways of improving Helix’s built-in file moving functionality. The conclusion I came to was that a fs::create_dir_all() call would make a big difference all on its own, and so I set out to get that added. The pull request finally got merged this week, which I’m really excited about.
-
Auto-create parent directories in :move! command
-
C# LSP in Helix on macOS
Found myself writing C# in Helix on macOS a bit lately. Weird combination. It took a moment to tweak things so that it all plays nice together.
-
PICO-8 language server for Helix
Been working on this one PICO-8 game on and off for like five years now. Having switched to Helix since the last time I touched it, I needed to set up the PICO-8 language server for Helix first. It felt like nobody had glued together this combination of tools before.
-
"default_agent": "plan"
Pushed my first AI tool config to my dotfiles repo this week. It was config for OpenCode, and it looks like this.
-
What Happens If You Press X In Helix In A Zellij Pane Running In Alacritty
One of the little things that inspired me to learn some Rust was the realisation that suddenly all the tools I’m using every day are built with it. In particular, Alacritty, Zellij and Helix are the bedrock of my workflow and they’re all written in Rust.
-
lazyrename for Helix and Zellij
Earlier today I finally expelled a happy rant about Helix and Zellij that’s been building up inside of me for weeks. And the instant it was out of me I was itching to get the ball rolling on a tool I’ve been needing in this cosy little ecosystem. In a few stolen moments of coding here and there throughout the day I’ve managed to implement a rudimentary 0.0.0 version of a new tool I’m calling lazyrename.
-
Zellij and Helix together might actually be just plain better than Neovim
For starters Helix is a masterpiece. Imagine Neovim with telescope, lspconfig, lspsaga, gitsigns, and which-key all built-in. It’s a finished piece of software as far as I’m concerned. The maintainers could permanently feature freeze it today and I’d be happy. They’re shipping a plugin engine soon and I almost wish they wouldn’t.
-
Copy relative path to file in Helix
In recent weeks I’ve accidentally migrated from Neovim to Helix. I say “accidentally” because I wasn’t really intending to switch. There was a post on Lobste.rs called “Notes on switching to Helix from vim” that I read about a month ago, which inspired me to give Helix a bit of a try. My expectation had been that it’d be an interesting experiment but instead I found myself choosing to use Helix all the time.
-
Zellij Cheatsheet
Over the last couple of months Zellij has become one of my favourite everyday tools. I’m at a point now where I don’t want to be configuring stuff with millions of custom keybindings. Instead I want something that works already out of the box. Zellij is that.
-
Glory Days Or Bust
The road back to my coding happy place, i.e. a terminal emulator running Vim.
-
Democracy Kicks Ass
Contrasting the sense of helplessness about Microsoft's agenda for GitHub with the community-led democracy of Codeberg.
-
Is metadata streaming really SEO armageddon?
I don't like some of these silly Rube Goldberg additions to Next.js either but I do think this one at least works as described.
-
Survival Mode
Stopped using Copilot outside of work a few weeks ago. Coding’s begun to feel fun again since making that change. I hadn’t even noticed the disappearance of that joy until it started coming back either.
-
Codeberg Is The Future
GitHub’s been my most-used digital service for years. Even interviewed (unsuccessfully) there once. To some extent it had become an online “home” for me. You know that feeling when you’ve lived in the same place long enough that you can walk into the bathroom in the dead of night and hit the light switch on your first try with one effortless flick of your arm? That’s been my relationship with GitHub.
-
Atuin and chezmoi are the dog's bollocks
My dotfiles repo is the oldest one I still have. Its first commit is from 2012. The message I wrote for that commit tells a familiar story.
-
Screencasting Secrets
Screencasting is my secret weapon as a remote software engineer. I’m one of those people who just wants to go fast all the time, and you get to move a lot faster once you get good at showing people what you’ve made and putting them at ease about the idea of shipping it. At any job, one of the most common questions I hear is “How do you do all those GIFs and videos and screenshots and stuff?”. Here’s how.
-
Maining VSCode Terminal
Once upon a time, the main tools I used for work were Vim and tmux. And until recently, once every few months I’d get this compulsive urge to try to recapture those glory days. If you know, you know.. That urge has stopped lately though. Visual Studio Code has reached a tipping point where the Vim support and terminal emulator are a better package than anything I can hack together with lua plugins and tmux config.
-
My SQLite in production epiphany
My work environment email alerts service – 666a – is a Rails app using SQLite for its production database. I’m super happy with this stack, but it wasn’t an obvious choice from the start, and I know a lot of folks still haven’t heard the growing hype about using SQLite in production in the Rails community. Here’s how I ended up shipping a production app with a SQLite database, and how it helped me rediscover some joy in full-stack work.
-
itsy studio
-
Spotify Boilerplate App
-
Fix for {% embed %} error line number bug
-
Monkeypatches broke my build
The prevalence of monkey patching as a Ruby development practice is a complete pain in the arse. Sure, some of Ruby’s expressiveness as a tool for building DSLs is derived from the ability to monkey patch things like 10.days.ago into the core classes. Admittedly, I occasionally indulge my sweet tooth at the Rails all-you-can-eat syntactic sugar buffet. But it’s not my favourite approach to software development by a long shot.