I haven't actually been on vacation lately, not really. I decided that I needed to go off and do some different stuff for a while. I've been in a rut lately and decided that I needed to shuffle some stuff around. I swapped out the "writing rambling computer nerd blog posts" module for teaching myself a couple of new things and spending some of my downtime offline, curled up with cinnamon tea and a stack of books. Getting away from a screen for a while seems to have done me some good, and I'm almost back up to my old reading pace of five or six books a week. I'd all but forgotten how much dead tree books weigh after the fixed mass of a tablet for so long. The wireless router at home that I set up to replace the astoundingly shitty DSL modem-cum-wireless access point that Annoying, Trying, and Twisted insists we use is starting to act flaky, which suggests that it's reached the end of its functional life, not unexpectedly since this model tends to have overheating problems. A few weeks back I picked up a new router, a Linksys WRT 1200 AC and promptly made a few hardware modifications to it, which is to say I cracked open the case, unbolted the heat sinks, scraped the crappy thermal tape off of the chips and applied decent heatsink grease, and put the router back together. I'm considering wiring a small cooling fan onto the motherboard, maybe on one of the development ports. Lately I've flashed OpenWRT onto the unit and set up quality of service and monitoring so I can keep an eye on things. I'm still working out how to patch it into my exocortex for realtime status monitoring. From a practical standpoint I can install Python on the new router, but doing so leaves next to no room for anything else. I have to think about it some more. I do NOT want to use SNMP if I can help it.
If you thought you were going to escape computer nerd-related rambling, you were sorely mistaken.
In all the time I've been working on Systembot, I somehow forgot to add support for questions like "Systembot, what time is it where you are?"
At my dayjob these days, I seem to do a lot of work with Docker, which is one of a slew of new-school applications for deploying applications on servers and managing them. To explain it simply, I should probably explain some computing history first. Trust me, it'll make the explanation much easier.
Once upon a time, we had mainframes, big honking machines that filled entire data centers and carried out vast (for the time) tasks. To make mainframes easier to use time-sharing operating systems were developed, which allowed multiple users (often a couple of hundred at a time) to do stuff at the same time. Then, for various reasons mainframes OSes implemented virtual machines which, as far as users and applications were concerned gave them an whole mainframe all to themselves. Several decades later virtual machine technology reached street level (so to speak) with the release of VMware Workstation, Virtualbox, and then everybody's (least) favorite service provider, Amazon Web Services. Computer geeks and devops engineers are nodding along sagely; I'm writing this for everyone who isn't, so be nice. Times being what they are, it got too tricky to wring every last erg of power out of even fleets of virtual machines running on stupidly powerful hardware. Managing applications got more difficult, and on top of that just getting them to run the way they were supposed to got harder because everything even vaguely enterprisey has its own slew of dependencies, usually of different conflicting versions. Enter containerization.
In a nutshell, containerization is when the OS is able to carve off little parts of itself - memory, disk space, space in the process table, and so forth - stick them together, and give them a name called a namespace. As far as the OS (and any users) are concerned, every namespace is a single process running on the system, like any other. They can't interact with each other without explicitly setting them up to do so. Give the namespaced container a file system and a really, really stripped down environment and you have, for all intents and purposes a really tiny server. As far as anything you install into a container is concerned, it thinks it's running in an isolated server all by its lonesome. All the junk that an application needs can be installed into a container can be without having to worry about stepping on each other's dependencies. Containerization has really come far since Solaris.
In addition to getting some practice time in for my next maintenance run at work (it's hard to mess around when there are paying customers), of course I was tinkering with Huginn again. A stumbling block for many years for me has been the limited selection of agents, in theory easy enough to fix by writing more of them. Just one thing: Ruby, as a language, drives me up a fucking wall. I've been trying to learn it for a couple of years now and I'm no closer to getting anywhere with it than I was five years ago. For my money, Ruby code reads like somebody decided to drop three hits of acid, read the language spec for Pascal, and decided to write an interpreter for it. Someone in a Huginn chat I monitor mentioned using OpenFaaS with Huginn and, smelling an opportunity I decided to play around with it. Long story short, I've been enjoying writing my own pseudo-agents (yes, I need to write documentation!) using OpenFaas and converting a few command line tools into functions along the way. I've been loading them to my Docker Hub account in case anyone might find them useful. Basically, if you can make it listen on port 8080/tcp and print stuff out, you can use it as an OpenFaaS function.
Yes, I've been shamelessly geeking out for the last month or so. And I've needed to, because I needed to recharge. I had to do something different from what I've been doing lately. Still working out what to do next, truth be told. I'm writing this during a long weekend (as inferable from the timestamp) so I'm deliberately just... not doing much of anything. This is probably showing in my writing, as I've covered pretty much everything I wanted to cover, and now I'm trying to figure out a good way to end this post. I might write some stuff up later, might throw up my backlog of event photos over the new few weeks.
Fuck it, I may as well get this in the open just like everyone else. I live in a country that is running concentration camps. (local mirror, 20190708) Actual, no shit, "Didn't you assholes learn anything from history?!" concentration camps and the few people who have any kind of political clout are witnessing it firsthand and basically being told point blank "Go fuck yourselves." I'm frightened out of my mind and I'm sick in my hearts that this is going on.