How I compute 2017

In 2013 I wrote How I Compute. I reread it recently and was surprised by how much had changed in the last four years, so I’ve decided to update it with a few of my new favorite things.

Desktops with Linux and IETF kitten
Shortcuts in i3 and words in Vi written
Unicode standards normalizing my strings
These are a few of my favorite things

For the most part, if a section didn’t change from the last time I did this, I didn’t include it. As before, this is mostly just a list of my favorite tools; I (generally) present it without any comment or argument as to why they’re better or worse than anything else.

General computing

Operating systems

On my laptop I still run Arch Linux exclusively. I no longer use Windows even as a photo editing box, although I still can’t pretend that I actually like any of the photo editing software on Linux. It’s just better than having to use Windows.

XFCE was still my desktop environment of choice, until recently, but I’ve been experimenting with MATE and think I’ll stick with it. It doesn’t feel as polished as XFCE (it doesn’t show me display options when I plug in a DP cable, doesn’t remember my screen brightness settings when I plug in or unplug the power, is convinced that the keyboard backlight should always be on every time power settings change, etc.), but having GTK3 is fantastic. I also now disable xfcewm (or whatever MATE uses) and use i3 as the window manager. Though I don’t use Openbox much these days, I’m still a big fan of it too.

I still have some legacy machines left over running Debian, but for servers I really prefer FreeBSD.

Photo Editing

These days I mostly don’t use any graphical software to edit photos; instead I use a custom REPL based on rawkit that I imaginatively titled, photoREPL. I’d still love to find something that runs on Linux or FreeBSD that’s even remotely comparable to Adobe Lightroom.

File storage and backups

Most of my storage and backups use a NAS based on FreeNAS I store backups by either zfs sending snapshots to a remote array, or by using a tarball encrypted with GnuPG (and uploaded to Amazon Glacier).

Email and chat

I’ve swapped over to using mutt for email exclusively. For chat I still run my own personal server that federates with other services using XMPP (since last time I’ve become an editor and council member at the XSF), but I’ve swapped my server over to Prosody and my client over to Mcabber on the desktop and Conversations on my phone. I still use Irssi quite heavily for IRC, but now pair it with ZNC.

Music and videos

For music and videos I mostly rely on mplayer on my laptop, but also have a media center setup running Kodi.

Servers and web

Hosting and servers

Though I still have some legacy servers that are the same as last time (including the one hosting this blog), I prefer DigitalOcean or GCP for hosting. I don’t run any services that require Ruby anymore (thank goodness), so the Thin cluster I used to have to deal with has been torn down.

DNS and domain names

I have domains registered with NameCheap (Disclaimer: Referral link), Gandi, and Google Domains.

For DNS I use HE’s free DNS.


I use Let’s Encrypt for TLS certs, and have been ever since the many StartSSL debacles. Certs are renewed every few months by a cronjob.

Blogging and content management

Jekyll was beginning to wear on me, so I finally upgraded this blog to use Hugo. I’m not convinced that all these static site generators give you anything (for simple sites, at least) over a script or makefile that executes some templates and spits out some HTML files though, so there’s a chance I’ll simplify it yet again soon.

Although I do miss RadiantCMS on occasion (I just wish it weren’t written in Ruby), I no longer use a CMS.


Source editing

IDEs have never really appealed to me unless you count Vim, which is all I use for editing. I don’t even really use any of the plugins that are so popular; I think I have a few installed, but generally I forget about them and just shell out if I need external tools. It may be a tiny bit of extra work, but it’s only a few extra keystrokes, works everywhere, and doesn’t break randomly due to updates or require any maintenance. Most developer tooling has just gotten too complicated or doesn’t serve enough of a purpose to be worth it.


As far as languages go (pun intended), I more or less exclusively use Clojure, Go, and Rust these days. If a magical space fairy told me I could only use one language for the rest of time, it would probably be Rust, although its centralized package management is every bit as bad as all the things that came before it (Python, Ruby, Node, etc.) so maybe it would be whatever figures out that that’s an easy-but-bad idea first.


Though I can’t imagine my personal preferences for tools and computing are all that interesting to most people, I do find it nifty to see how others do common tasks differently from me. Hopefully, when read in that regard, this is at least a tiny bit useful to someone. What about you? How do you compute?