A Season of Rest and Preparation: Lab Plans for Winter 2023

Last Updated: 2023-01-11 06:30:00 -0600

As a bit of a new experiment, for this year when doing my quarterly goalsetting and planning I’ve decided to also bear in mind two additional ideas: CGPGrey’s Themes-over-Resolutions Framework and Seasonality. In our part of the world, it’s currently meteorlogical winter; a time when the animals that can’t just escape to the global south are resting, and the seeds of plants like Lavender, Lupines, Sage, and a whole lot of bulbs are currently stuck in the ground halfway froze solid, biding their time for an inevitable explosion of vitality come spring. I like this imagery a lot. It helps me hold on to an understanding of the importance of a desperately miserable season while I’m stuck in a body with a brain that goes completely haywire once we start to enter astronomical winter and lose all our daylight.

In that spirit, I’ve chosen to plan my January, February, and March accordingly, and use them as a time of both personal rest and preparation and rest and preparation for the lab, which a lot of the time seems to function almost like a part-time second job instead of a collection of documentation for a subset of my hobbies. It just so happens that even before I had this idea, it was becoming clear that there was a lot of lab infra work getting pushed to the back burner specifically because I am trying to cram too much into a week of evenings and the odd saturday.

This kind of work isn’t really “fun”. It’s not sexy. Documenting it is useful only to me, because nobody in their right mind would try to emulate my home lab setup practices and they’re mostly useless to the average user anyway. There’s no product at the end of the tunnel and no big dopamine hit like playing with my various toys, gadgets, and games. But it’s necessary, as much as an infant taking their nap is necessary or taking a few moments at the end of every day to sweep up is.

Accordingly, for the months of the rough local winter, I sort of want to work on the following few projects:

  • Increased robustness and monitoring for the lab server set
  • Re-evaluating needs with regard to the VM lab
  • Migration of my main workstation to a new SSD
  • Possibly, the development of a successor to Tapestry.

More on that below

Upgrading Dogstar, The Lab Server

You may have noticed that for most of the last week the Arcana Labs site was unavailable. This was due to a hardware failure in Corvus, our old server, that went undetected. As is tradition, I replaced one flaky old laptop with another, Dogstar, and that puts us back in a position of potentially having a flaky working environment for Arcana Labs, the junk-drawer wikis, and a few other sites I maintain.

Previously, I had attempted to compensate for this flakiness with token efforts at monitoring, using Piminder, which had its own problems in terms of how I had chosen to deploy it. While this is fine as an uptime monitor, it doesn’t really do anything to help work out reliability questions in general.

Accordingly, I’m planning on setting up log aggregation and resource monitoring for Dogstar. Since it’s the only always-up machine I have, it’s going to have to be its own log aggregator, so I’m probably also going to have to set up Piminder again, running the server on some other host. I’m sort of hoping neither of these projects takes very long, but the associated writeups for putting together the monitoring stack could be a nice feather in my cap.

Looking at the VM Lab

I’ve talked before about my VM lab, which is based on Tony Robinson’s Excellent Guide On the Subject. However, when I built the lab, I quite heavily over-engineered it, expecting to spend a lot more time working on live penetration testing than I actually do. I made modifications to let me use it to monitor my own attacks as part of the HackTheBox platform… which I almost never actually participate in anymore. Then I bolted yet more cruft onto the side of it to support the development of the Illuminated Arcana challenge VMs… which is a project I’ve ultimately suspended.

Its very likely I simply retire the VM lab outright and spend more time administering Dogstar and its associated services.

Upgrading the Workstation SSD

When I got the “new” workstation machine early in 2021, we were right at the peak of the chip shortage and COVID-19-related belt tightening at most places of employment. I had a lot less to work with than I hoped, so I made a few sacrifices in the workstation’s spec in order to make sure I at least had a functioning personal machine at the end of the day. Among the worst of these choices was how I chose to handle OS installations and drive configuration on the machine. The default Windows install, which I use exclusively for playing the games it can handle without a GPU and which can’t run on the Linux daily-driver side of the system, lives on its small native SSD, while my main working install is on a LUKS-encrypted partition on a salvage drive I shoved into the chasis a few minutes after opening the case.

At first this worked great, but the more often I find myself context-switching on the machine and the more often I find myself having to wait for it to boot back up from a cold start (a regular occurrance as I now keep it powered down most of the time), the more I regret not having shelled out for an SSD to use for the main OS partition for linux as well.

As it happens I actually have that SSD. I just have to take the time to go ahead and install it, then move everything over.

A Tapestry Replacement?

One of our earliest projects, Tapestry, was a backup script I developed under a very specific set of constraints. While some of those (like the clear unfamiliarity with Python’s constraints demonstrated in earlier revisions) could be corrected for in successive rewrites, quite a few are baked into the fundamentals of the design. At the time, I wasn’t especially concerned with the resulting backup size or the time it would take to run the backups. Now, operating at larger scales, with more to lose and less willingness to tolerate increasingly rediculous runtimes, I find myself wondering if the real play is to try and shave runtime off by percentage, or to back up and start over from a new set of priorities.

One possible answer to this question is a delta-based backup utility based on the same cross-platform attitudes and considerations Tapestry itself had, but focused on incremental backups and minimizing the overall amount of data stored rather than worrying about individual backup packages fitting within a certain size. There’s advantages and disadvantages to both approaches. I’m taking the winter to look at whether or not I think Gardener, as I’ve taken to calling it, is a better approach to my specific needs than Tapestry is. I’ll also be looking at whether or not I can simply achieve all my ends with more readily available means, but so far much like was the case when I created Tapestry, no extant solution is quite jumping out at me as exactly correct.

Those Projects Not Mentioned

The last we talked, I was looking at ordering Revision C back boards for PETI, to allow me to proof their concept. If those boards worked as designed, that would fully validate the PETI Development Kit hardware design, meaning that we’re just some documentation and some planning away from being able to sell those boards as a hopeful stopgap against the financial bleeding represented in developing the kit in the first place.

That project is still ongoing. In fact, I expect to recieve those boards today. However all projects not otherwise mentioned are more or less deliberately on hold. They’re still being looked at, picked up, and planned, but I’m making a conscious decision to take the winter out from building anything too complicated or treating anything as a question of productivity. Everything I’m working on, for the next couple months, is either preparation, active rest, or prevention. Frankly, I think I deserve it; and I think the projects in general will be better off for coming back at them refreshed and energized.

What this means in practical terms is that I’m slowly picking my way through all our active project repos and task lists and organizing them more clearly.

If you wanted to show your support financially, for free tools and toys like Pyminder, Tapestry, and PETI, your best avenue is via my Github Sponsors account or by making a one-time donation to Arcana Labs via Ko-Fi.com or through other avenues detailed here. Supporters also get access to a special patrons-only section of the Arcana Labs Discord Server as well, and new bonuses are soon to be introduced on the github side!