Learning out Loud in Milwaukee, WI

The end of the Summer of Desktop Linux

My sabbatical draws to a close and with it my dependence on computers owned by me and me alone. Since Automattic is, with little exception, a Mac shop going back to work means this is probably the last post I’ll write from my Raspberry Pi for a while. It’s a bittersweet ending because, despite the frustrations of an under-resourced computer, it’s been a joy to use Linux as my main workstation for a while.

Highlights

I’ve been pleasantly surprised with how interoperable this computer is with the Apple ecosystem that governs the rest of my life. I managed to make this computer into an AirPlay receiver via ShairPort Sync so I could stream music and radio to the speakers hooked into the headphone jack. I didn’t look much into whether Apple Music’s web player would work on this browser because I’m certain I don’t have the RAM for it even if it does.

I didn’t try going the other way: sharing from the Pi to an AirPlay device, mostly because I didn’t need to, but also because the more complex motions of AirPlay remain dependent on private APIs. It kinda stinks but I also don’t need things like wireless screen sharing from a desktop that can barely handle the display it’s plugged into.

The same is true for 1Password.com, which is nearly at feature parity as a web app with it’s desktop counterpart. Some of the more advanced things like the SSH agent and browser extensions require the desktop app (maybe obviously?), but the web client came in quite handy on many occasions. I’m starting to think this world wide web thing might stick around.

Fortunately, Apple’s iCloud services are pretty extensive and reliable on the web these days, so the occasional file I did need to transfer between devices could be uploaded to iCloud Drive from a web browser and immediately available on other devices.

Finally, swapping SD cards around to run different computers on the RPI4 base was really nifty. I had to troubleshoot some of the other Pis in our house and each time but didn’t have SSH access. All I did was pull the card, pop the other computer’s card in this one and I had full access with the same monitor, keyboard, mouse and (relatively higher) system resources. Even on a very repairable computer, it’s rarely this easy to swap boot systems.

Lowlights

Lack of RAM is a major limiting factor on this device and has been since the start of this experiment. It is really hard to use and especially multitask even with just a web browser with only 1GB of memory. Chromium’s ability to unload the pages not in use helps a lot but is by no means a complete solution. Switching between tabs, loading new pages, all of it is very slow. Task manager reliably shows Chrome as the main offender.

The raspberry pi OS task manager showing about 81% of system memory in use.
Chrome also seems to spawn a lot of processes. I’m not enough of a computer scientist to understand why.

Even with no pages loaded, Chromium and the system use about half the available memory, once I load an interactive page like the post editor for this blog, that jumps to 68% when I’m typing, and more if I’m typing a lot. With 1password.com loaded but in the background, or any additional tabs open, I’ll easily use more than 90% of available memory in an idle state. Facebook would basically crash the computer if a single video loaded (would be fine if you could choose when that happens). It reminds me a lot of what it was like to use web apps in 2007. None of these run well, but some companies have prioritized low resource consumption.

Too many desktop applications assume you have 2GB of RAM, if not a lot more, in order to function at all. On a machine with only 1GB of RAM, you could maybe run one of these as a standalone single-purpose computer, but the combination of tools you’d need to be productive. Even open source CLI projects like WordPress’s new wp-env tool for local development have a constellation of requirements that add up to a lot more RAM than I have. It’s a bummer, but if I were doing that kind of work, it’d be worth investing in a higher powered machine anyway.

Overall: Success

If it weren’t for the performance issues, I could see myself using this machine as a daily driver. I like how it’s compact, transparent, and extensible. I enjoyed getting to know it and learning how it works. The good news is that Raspberry Pi have models up to 8GB so I could upgrade, if I ever find one in stock, and doing so involves nothing more than putting the SD card in a different computer. I might wait and see what the future has in store for the Pi 5, though.

This might be the end of the summer of desktop Linux, but I’m not done with it yet.