# Hot Summer

I’m (supposedly) on vacation yet utterly unable to relax given my huge personal backlog and a pervasive need to tackle at least some of it in a meaningful way before I go back to work, so things aren’t exactly peachy right now, especially considering that a lot of what I wanted to attend to seems to be stuck in limbo and all sorts of niggling issues keep cropping up.

Maybe it’s just the heat getting to me. It sure is getting to my hardware…

## Lappable, But Toasty

As much as I love the Surface Laptop, I have had to put it aside for a few weeks–besides having the latest Windows 10 Insiders release on it, the metal enclosure gets uncomfortably warm, so I fell back to using my iPad remote desktop setup and am planning to take my “unapologetically plastic” Chromebook with me next time.

Windows 10 now has an amazingly fast Linux subsystem, but that came the expense of breaking wsltty and the new Windows Terminal just isn’t good enough yet, so a throwaway Linux laptop is actually refreshing (if you’ll pardon the pun), even though it feels essentially the same as three years ago.

## When fans give up on you

A few days ago my ancient Synology DS411j NAS sent me an e-mail while we were on the countryside complaining that one of its fans failed, which is the first hardware problem I’ve had with it in eight years.

I shut it down remotely and ordered a replacement fan the very next day (which turned out to be extremely hard to find, and exorbitantly priced to boot), and am now grudgingly budgeting for a new NAS (likely the DS620slim, since I would like something more compact), but on one of the days we checked back home (we move around a lot–it’s complicated) I vacuumed both fans (good thing it has two, which most of the new models don’t), re-seated the connectors and it seems to be working again (knock on wood).

Considering I’ve had it since 2011 I am a bit surprised that a pokey ARMv5 device with 128MB of RAM has effectively outlasted nearly every other piece of electronics in the flat (and may well, with luck, make it to at least next year), but like the NSLU2 that came before it proved, there is a lot you can do with such meager processing power.

I was also a bit concerned to realize that the closet the NAS lives in reached temperatures above 40oC during our absence, so I moved one of our temperature sensors there temporarily to monitor the situation and relocated my Raspberry Pi k3s cluster, since Kubernetes tends to demand a bit too much CPU power just to keep itself together, even without more than a few pods running…).

## The Hottest Pi

Speaking of Raspberry Pis, I decided to order a Flirc case for the Pi 4 I got a little while ago instead of putting up with fan noise, and it arrived on one of the days I was running errands in Lisbon, so I was able to set it up and get some initial impressions:

Using this case atop my office desk (which is one of the coolest places in the house these days even without much ventilation), the Raspberry Pi 4 reports 53-55oC when idle, which is a bit too much for my liking and a bit warmer than, say Phoronix’s testing, especially if you look at idle temperatures.

Being of a systematic sort, and since I access my Pis almost solely via ssh, I wrote a little tmux status bar script that I now have deployed everywhere (I used to have this neat monitoring daemon running, but collecting all the data was not something I wanted to maintain, which is something I should rethink).

Using it, I can compare temperatures across multiple Pis easily:

• The 4B inside the Flirc case, idle: 54.0oC.
• The Pi 2B that is the master for my k3s cluster (running at 50% CPU constantly, but with a heatsink in an open “rack”): 49.2oC.
• A Pi 3B with an identical heatsink, inside a conventional plastic case and a small cabinet, also idle: 54.8oC
• My portable 3A+ (which I use via Bluetooth from my iPad), with a little heatsink protruding from its 3D-printed case, also idle: 47.3oC.

Comparatively, the ODROID that runs all my home automation and averages 15% CPU load reports a CPU temperature of 48oC, but the thing is essentially a massive heatsink with a CPU tacked on…

Incidentally, I’m really happy with the 3A+. Much more than with the 4, really, and coding on it from my iPad has been a breeze. Again, the only thing it’s short on is RAM, and I think this thing would be the sweet spot for me if it came with 2GB of RAM.

Either way, keeping my little menagerie of Pis appropriately cooled is something to keep an eye on and possibly monitor in a more systematic way. But for now, I need to have another go at reading and relaxing, hopefully with less electronics involved.

# Dealing With a Million Legacy Files Every Day

There is a very frequent and particularly messy ETL scenario that I like to call “death by a million files” in which large corporations find themselves in need of collecting and processing thousands of old-school CSV and XML files (or worse) and take them to the cloud, which is something that no traditional ETL tool can do efficiently (especially not graphical ones).

# Slow Summer

Posting has been slow for a number of reasons, so here is a short update on the whys and whats of it.

# Notes On The Raspberry Pi 4

Of course I ordered one. I did it partly because I need to plan ahead for replacing my ageing ODROID U2, which has been the main house server for nearly six years (since it was the only ARM device I had with 2GB of RAM), and partly because my lab setup (which runs on a 3B+) is a little short on RAM.

# Scheme-ing

Last Sunday I spent a few hours revisiting LISP-related languages, partly because I miss writing Clojure and partly because I wanted to do a relatively simple thing: issue a bunch of HTTPS requests, collate the resulting JSON data and then issue a final POST request. And I wanted to do it with an HTTP library that didn’t suck, in the smallest possible amount of space, and with a static binary. Two out of three wouldn’t be bad, right?

Over the past couple of bank holidays I’ve kept playing around with k3s, which is a fun way to take my mind off the end-of-fiscal-year madness that peaks around this time. In this installment, we’re going to start making it self-aware, or, at the very least, infrastructure-aware, which is the only real way to do truly flexible cloud solutions.