https://xkcd.com/1312/

Evil by default

A while ago I wrote about becoming the maintainer of God mode, the package that gives you modal editing in Emacs without abandoning Emacs key bindings. I still maintain it, but I no longer use it.

To be clear: I didn't leave God mode because there's anything wrong with it. I left because of where the rest of my configuration wanted to go. I'd also used Vim for years before I switched to Emacs, so this was less a conversion than a relapse.

Continue reading →

Nix has changed everything

I've carried the same dotfiles around for years, copying them from machine to machine, patching over the differences by hand, and never quite trusting that a fresh setup would end up like the last one. I used my dotfiles to configure my Linux machines at home as well as my MacBook, which I generally use for work. Every time I set up a new machine, I ended up tweaking the scripts to fix a broken package or a moved config path.

I also preferred using a Linux distribution with a rolling release, so that I could try out the latest versions of the tools I use. I moved from Ubuntu to Manjaro ages ago for this reason, but my dotfiles often broke in the most unexpected ways.

So I decided to run an experiment: rebuild my entire environment declaratively with Nix and try out NixOS, and see how far the reproducibility actually goes. The result is nix-dotfiles.

Continue reading →

A story about map

In Haskell, map is defined as:

map :: (a -> b) -> [a] -> [b]

Continue reading →

A lesson from open source software

I've always tried to contribute to open source software whenever I've seen the opportunity, but becoming a maintainer of an open source library gave me some completely new perspectives.

I've used Emacs for almost a decade, and I used Vim before that. Maybe the fact that vi key bindings are just another package in Emacs, called Evil, was one of the reasons I switched to Emacs. I like modal editing, but I don't use Evil. Instead, I use God mode with Emacs key bindings.

At some point, I discovered Doom Emacs, which packed a lot of functionality that interested me compared to other Emacs distributions.

Continue reading →