Tyler Griffiths

How I do my computing

2020-10-17

There’s an abundance of posts on this matter, so I thought I’d join the party.

Hardware

Workstations

I have a small stack of laptops which are used for 99% of my computing. These are:

  • ThinkPad T460p
  • ThinkPad X1C7
  • ThinkPad X220
  • ThinkPad X200

One or two of the X220 and X200 are usually out on loan to people at any given time. The T460p is what I use almost all the time; the X1C7 belongs to my employer and is used for work purposes. The two others are mostly spare and toy machines, and the X200 still needs to be librebooted when I get over my fear of bricking it!

I dislike trackpads, and love good keyboards, so the ThinkPad keyboard is essential. The X220 has a better keyboard than any laptop I have typed on, and I find it even more comfortable than most mechanical keyboards.

I have a docking station suitable for the T460p, to which I have attached a cheap Blue-switch mechanical keyboard, wireless mouse, and occasionally a screen. Most of the time I prefer to use machines without it; I’ve never owned a desktop so the usual desktop workflows are alien to me.

Servers and Networking

I have a DL380 gen 8 sitting in the spare room, mostly hosting a few small VMs, some storage, and with its CPU cycles often on loan to other people.

I also have a bunch of Raspberry Pis doing various things – most importantly a PBX for my phone system (feeding into a few softphones, and a Snom D712 Deskphone, which I chose for its proper IPv6 support – I’m quite happy with my telephony setup, and I’ll write an in-depth post on it someday).

The most important router is a Ubiquiti EdgeRouter X, which connects to the excellent AAISP. It does run BGP over a GRE tunnel to keep my address ranges in the routing tables, but I don’t generally run much traffic over it at the moment since other projects have taken over. WiFi is provided by a single Unifi access point, which does well enough for a small apartment.

The original IPv6 RFC is older than I am, and the entire network is IPv6-only by default. AAISP provide a decently good NAT64/DNS64 service, and I advertise these as the default DNS servers. However, IPv4 does work, and I have a /29 of IPvLegacy space provided by the ISP for use – I do this as a PPP connexion so I can use the first and last addresses, rather than losing them (along with some network flexibility) by running it as a normal subnet.

Software

I’ve spent most of my life as a Debian user, but over the last year or so I’ve been standardizing around Red Hat – CentOS on servers and Fedora on workstations. I like to think of any given OS install as ephemeral, so I don’t get too attached. I reinstall regularly and to make life easier, user accounts are managed by FreeIPA, which works far better on Red Hat systems than on Debian.

Fedora was actually the first distro I used, but I burned the CD incorrectly and the install didn’t quite work so I ended up using Debian installed from a stack of DVDs I ordered online in a panic. These days I find it to be a very polished experience.

I have a strong preference for free software, but I make some slight exceptions – I don’t have too much objection to WiFi drivers (I used to use a separate dongle when I was cursed with the evils of Broadcom in my last laptop). I may or may not have Steam installed on one machine.

Desktop environments

I like Emacs, and used to use Exwm. However, being single-threaded was causing too many problems for me, so I switched to StumpWM. I never enjoyed dynamic tiling, and prefer a manual tiling (and often stacking) workflow. StumpWM seems to occasionally die on Fedora, every few days, and I really need to debug that sometime!

I have on occasion used full DEs, almost always Gnome. I tried it for a few weeks recently and found I was regularly running out of memory on a system with 16 GB of RAM and 8 GB of swap – the machine was unusable with it.