The Things I Use

This page contains a list of the technology I use, both software and hardware. I’ve seen a number of other people doing a uses page and I’ve always found them interesting, so here’s mine.

Laptop

I have a several-year-old Dell XPS13 that I use for most everything. When I got it, I did some research to try and find a laptop model that was all three of small, powerful, and Linux-compatible from a hardware perspective. This is what I ended up with, and it's basically been just fine ever since. The biggest annoyance is probably just that the webcam is positioned below the screen, near the hinge, and it makes for a very unflattering camera angle in my opinion.

                  -`
                 .o+`                 natpen@goldfish
                `ooo/                 OS: Arch Linux
               `+oooo:                Kernel: x86_64 Linux 5.14.6-arch1-1
              `+oooooo:               Uptime: 6d 15h 4m
              -+oooooo+:              Packages: 1252
            `/:-:++oooo+:             Shell: fish 3.3.1
           `/++++/+++++++:            Resolution: 1920x1080
          `/++++++++++++++:           WM: sway
         `/+++ooooooooooooo/`         GTK Theme: Adwaita [GTK3]
        ./ooosssso++osssssso+`        Disk: 164G / 239G (73%)
       .oossssso-````/ossssss+`       CPU: Intel Core i7-8550U @ 8x 4GHz
      -osssssso.      :ssssssso.      RAM: 3685MiB / 15719MiB
     :osssssss/        osssso+++.
    /ossssssss/        +ssssooo/-
  `/ossssso+/:-        -:/+osssso+-
 `+sso+:-`                 `.-/+oso:
`++:.                           `-/+/
.`                                 `/
  • Operating System: Arch Linux. I installed this on it when I first got it, which has also basically been just fine ever since. When Andy and I went on our 6-month-long PCT hike, I was a little worried that Arch might have trouble with the combined truckload of 6 months' worth of deferred updates, but upon return sudo pacman -Syu did just fine on the first try.
  • Browser: Mostly Firefox. Sometimes I play around with Nyxt for fun, because I think it's a really cool project and I want to support them, but like all things Emacs or Emacs-inspired, the learning curve is too steep for its own good.
  • Editor: Emacs - for better or worse, I reeeeally like Emacs. I recognize its warts, and it has many, but it's proven very malleable over the years, and I feel like it has enough good to outweigh the bad. Org mode is amazing, and so is Magit. I basically always have Emacs open. If I somehow lost my years of accumulated Elisp config, I don't know that I'd have the energy to rebuild it all, but until that day I'll probably continue using it.
  • Mail: Mutt most of the time. It's great for anything with a decent text multipart. I probably still use webmail about 10% of the time to sift through anything important that requires html viewing. I use Fastmail for email hosting, and they're pretty good! I wish their phone app had some semblance of functionality in an offline-mode, but that's a very small gripe for an otherwise very good service.
  • Window Manager: Sway. This was my first tiling window manager, and now that I've used it for a couple years exclusively, I can say I really like tiling window managers.

I really wish I could get power management working better with Arch on this laptop. It doesn't do well unplugged from wall power, which causes very rare, but very intense, annoyance. This is probably very solvable with kernel something or other, but I'm fairly daunted anytime anything mentions "kernel" so I avoid this kind of problem, lest I accidentally make it worse!

Raspberry Pi

I've used a single Raspberry Pi as a low-powered home server for a couple years. I think it strikes a nice balance of prudent and thrifty resource consumption, with flexibility and enablement to self-host most anything you want.

  • Personal file-sharing network: I use Syncthing for this, and it was easy to set up but there was a bit of a learning curve to using it properly. Once I sat down and read the documentation for a few mins I got it going pretty well. Now I have it on my phone, my laptop, and my RPi, sharing various folders in various directions, and I'm very happy with it.
  • RAID storage: as somewhat of an extension of the above file-sharing, I wanted a reasonably safe way to backup files on the Raspberry Pi. Instead of spending many hundreds of dollars on a full-blown NAS setup, I decided to see if I could get away with a couple RAIDed USB drives attached to the RPi. This is probably worth a blog post of its own at some point, because it was very cheap, and I think worked out very well. It's not a perfect solution, of course, so I also have a backup strategy in the cloud as well.

VMs in the cloud

I run a few more things using cheap $5/month VMs from DigitalOcean. I've used DigitalOcean for a number of years, at this point, and I think they're just fine. They have a much simpler interface to grapple with than AWS', and for personal projects I generally don't need all the bells and whistles anyway.

  • A personal VPN: I like having a simple personal VPN set up on my laptop and computer, not because it's useful for any sort of illicit purpose, but more just because I travel a lot and end up using a lot of new WiFi networks. When you're on a public network it's good to encrypt your traffic! I used Algo for this, and it's worked well so far.
  • A git server (code): run with the wonderful cgit, and served with nginx.
  • This blog: it's a static site built with Zola, deployed with rsync, and served with nginx.
  • A commenting system for the blog: I thought the premise of privacy-respecting commenting was nice (I've heard Disqus does not do so great on that front, even though it's quite ubiquitous), so I set up remark42. Also served with nginx.