An overview of all the computing devices I have and use for work and play, including technical details about the individual setups.
The hardware I use has to be powerful but portable enough to not be a millstone round my neck. While a lot of the heavy lifting that I’m doing happens in the cloud these days, there are still plenty of tasks that can’t easily be outsourced and where raw computing power makes a big difference in overall velocity. Hence I’m always looking for ways to improve my setup to allow me to be portable yet have enough processing power in order to be independent from stable internet connectivity or somebody else’s computer.
My main workstation is a custom SFFPC on a Xtia Xproto-N frame running Gentoo Linux.
|CPU||AMD Ryzen 9 5950X 3.4 GHz|
|RAM||2 x 32 GB TEAMGROUP T-Force Xtreem ARGB 3600 MHz CL 18 PC4-28800 (TF13D464G3600HC18JDC01)|
|Motherboard||ASUS ROG Strix X570-I mITX|
|Storage||2 x 1TB Samsung 980 Pro NVMe Gen4, RAID 1|
|PSU||Corsair SF 600 W 80+ Platinum|
|Display||LG 32UN500-W 32-inch IPS UHD HDR10, 3840x2160|
|Mouse||Logitech MX Master 3|
The initial build had the Lian Li Galahad 240 AIO for cooling the CPU. However, after the Galahad died roughly ~11 months later, I replaced it with a Noctua NH-C14S air cooler.
The PC runs kernel 5.18.16 with encrypted ZFS in
mirror-mode across two 1TB
NVMe M.2 SSDs. I use Sway – a Wayland window manager – to mainly have multiple
instances of Alacritty and Firefox on two 4K displays.
I use portage for managing most software
that I have installed. If I need something that is not available through the
official sources, I either check the
git clone the
repo and link its binary manually to
/usr/local/bin. Often times I install
Rust tools using
cargo, since it’s a pretty solid package manager. Go tools
are a bit complicated to
go install and keep up-to-date, but I have my
.zshrc functions that
help me with that. When I need Python or Ruby tools, I usually installed them
through Portage because everything else is a PITA. For Node.js I use NPM,
although I rarely use Node.js tools.
CLI / TUI
I have a separate list with most of the command line tools that I used.
I don’t use many GUI applications. The main reason for me to use GUI tools is for creative work (like editing photos) and for that I use my MacBook.
Other than that I use the following programs under Linux:
- Monero GUI
- OBS Studio
- Resilio Sync
- Transmission (GTK)
- Ungoogled Chromium
- VIA (releases)
For the following applications I use dedicated VMs:
Engineering & Development
The command line is my go-to environment for everything related to engineering and development. I don’t use an IDE and instead do all my writing and development in NeoVim. Whenever I work with a service or a platform I check whether there is a TUI or at least CLI for it and, if there isn’t, I sometimes build one myself.
Photos with different cooling setups.
My laptop is a 2018 15" MacBook Pro with 32GB DDR4 RAM, an Intel UHD 630 and an additional AMD Radeon Pro 560X 4GB on-board graphics card. It’s one of those MacBooks without a physical escape key.
|CPU||Intel Core i9 8950HK 2.9 GHz|
|GPU||Intel UHD 630, AMD Radeon Pro 560X 4GB|
|RAM||32 GB DDR4-2400|
|Storage||1TB SSD, FileVault encrypted|
|PSU||87W USB-C Power Adapter|
|Cooling||Forget about it|
|Display||15.4-inch IPS LED-backlit, 2880x1800|
|Keyboard||Let’s not talk about this|
|Mouse||Apple multi-touch trackpad|
For my eyes’ health I use a matte anti-glare screen shield which unfortunately makes the already dim display a notch dimmer. Additionally I have black tape glued over my laptop’s camera for privacy reasons.
The MacBook runs the latest macOS release. Security, privacy and the overall dissatisfaction with Apple hardware in general is what had pushed me to invest effort into switching from macOS back to Linux.
brew for managing most of the software
that’s running on my MacBook.
CLI / TUI
On macOS I have a
tmux session that’s constantly running inside a single
Alacritty. That’s due to Alacritty
not really supporting multiple windows/tabs/panes on macOS.
I use to keep my
.zshrc functional on both, Linux and macOS, so that I can
easily sync my dotfiles between machines.
For the most parts I’m using the Mac when I need to do something that requires a graphical application like an image or video editing software. I’m looking forward to move these tasks to my Linux workstation as well, but so far it has been more easier to continue using them on macOS. I will continue doing so up until the point when the hardware might fail.
However, besides of the crude command line interface I use LaunchBar, because it lets me keep my hands on the keyboard while performing UI-related actions and tasks. LaunchBar brings a large set of functions and allows for easy extensibility. Other UI programs and little helpers that I use include:
- 1Password, for storing passwords et al.
- iStat Menus, for monitoring the MacBook’s crappy thermals
- Little Snitch, because I don’t like apps to send weird stuff into the interwebs interface is a PITA
- Monodraw, for drawing fancy ASCII documentation
- Numi, for notes in which I need to do some math
- OpenEmu, for the little time I don’t spend outside and/or working on things
- Resilio Sync, for use with my very own encrypted storage, will move to Syncthing as soon as there is selective sync and an iOS client available
- SmartScope, for hours of SPI-debugging fun
- Steam, for Cities: Skylines and Parkitect
- TimeMachineEditor, for taming
- WireGuard, for my own VPNs to all sorts of servers and devices
I stay miles away from Adobe software and successfully got rid of the very last Adobe program I was using, which was Lightroom Classic. For the little creative work that I’m doing, I’m using the following programs:
- Capture One, Affinity Photo and Pixelmator Pro for photo editing
- Affinity Designer and Sketch for vector editing
- Affinity Publisher for DTP
- Apple Photos for storing and managing all mobile photography
- DaVinci Resolve for video editing
I really don’t do much creative work, though. It’s more of a hobby. The reason I keep things like Pixelmator around is for the times when people send me PSDs or when I really do need to draw a few things on my own.
h4nk4 is an ultra-portable data center that offers a fully-encrypted network
attached storage as well as KVM hosting. It runs on NixOS and has 5 GBit NICs.
|CPU||AMD Ryzen 7 2700 3.2 GHz|
|RAM||2 x 16 GB Corsair Vengeance LPX 2666 MHz CL 16 PC4-21300 (CMK32GX4M2A2666C16)|
|Motherboard||ASUS ROG Strix X470-I mITX|
|Storage||2 x 512GB Samsung 970 Pro NVMe Gen3, RAID 1; 4 x 4TB 2.5" Seagate Barracuda, RAID 5|
|PSU||Corsair SF 450 W 80+ Platinum|
|Cooling||NZXT Kraken X42 AIO|
The case is a custom designed, 3D printed enclosure that was built with
portability in mind.
h4nk4 has no HIDs nor a GPU – the Ryzen is not an APU –
and is therefor configured to use a LUKS encryption key on a USB stick, that can
simply be unplugged in order to make the device useless.
More info about what this device does, why and how I designed and built it can be found here.
r0n1n is a Docker host and IoT gateway. It’s part of my portable, open source
home area network.
|CPU||Rockchip RK3399 64 Bit 6-Core (dual Cortex-72 1.8 GHz, quad Cortex-A53 1.4 GHz)|
|RAM||4 GB LPDDR4 3200 MHz|
|Storage||512 GB WD Black NVMe Gen3|
|PSU||USB-C PD 2.0 9V/2A, 12V/2A, 15V/2A, 20V/2A|
|Cooling||Radxa Rock Pi 4 heatsink, Lian Li 120mm fan|
|OS||Manjaro Linux Rock Pi 4 Minimal Edition|
Previous to being a tiny server,
r0n1n was an experimental
r0n1n is a computer running OpenWRT (Linux) and bridging my internal network
of devices with the outside world.
|CPU||Marvell Armada 395 88F6925 1.8 GHz|
|RAM||512 MB DDR3|
|Storage||256 MB Flash|
|PSU||Power adapter, 12V/3A|
Unlike the majority of reviews online by people who struggled to properly set up and run the Linksys, I have experienced no issues with it whatsoever. That said, I’m only running the 5 GHz band for WiFi and all devices that have a NIC are using a wired connection. For more information, check out my post on running an open source home area network.
This Raspberry Pi Zero W has a Pimoroni Keybow attached to it and runs the Kiwi firmware that allows it to connect to any 2.4 GHz WiFi and act as a wireless controller for all sorts of things.
|Storage||64 GB Samsung Evo Plus micro SD|
|PSU||Micro USB, 5V/2A|
|OS||Kiwi / Nerves|
I’m using this device to control everything that has an API (like IoT lights) as well as OBS Studio, which it can interface with since Kiwi 1.0.2.
published [ ] · updated [ ]