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).

Routing is done using a few custom machines -- two i5 ThinkCentre Tiny machines, one running OpenBSD with PF, HTTPD, BGPD, and the like, and another that does the bulk of the work routing and NATting. The underlying connexion is to the excellent AAISP. It does run BGP over a GRE tunnel to keep my address ranges in the routing tables, but I hope to get BGP running over the proper connexion to save a few ms of latency and a few bytes of MTU.

The original IPv6 RFC is older than I am, and the entire network is usable IPv6-only by default. AAISP provide a decently good NAT64/DNS64 service, and I used to advertise these as the default DNS servers -- now PF does the job in 64:ff9b::/96, with NSD/BIND9 for DNS64. However, IPv4 does work, and I have a /29 of IPvLegacy space provided by the ISP (I may ask for a larger allocation and bin NAT entirely!)

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. I am a big fan of OpenBSD, but although it's by a long way my favourite UNIX, Firefox performance just wasn't good enough when I spend 90% of the day inside it.

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.

If you have any comments about this post, write to my mailing list