So it’s…been a couple of months. That’s pretty much what everyone can say about the last year…it’s been…a while. Good news is we’re maybe, slowly, getting back to normal? I’ve totally neglected writing any kind of update in the last few months; and while not much has actually happened….enough has happened that rather than try to write some nice summary introduction; we’re just going to jump right in to things.
In Our Last Post….
The last post was going on about Foobar2000 syntax programming; and that pretty much sat idle until a few weeks ago when I started screwing with it again. You see, in addition to Discord I’ve also run an announcement spammer for my IRC client for years and years and years. It had always been a bit of a pain to get going, but I usually got it done while making some concessions on how annoying I could make my announcement. OF course, being a Winamp based Hexchat plugin means I have to use the Winamp API emulator in Foobar2000. So it was the other week when I realized I’ve been using this damn thing wrong all these years…mostly because I didn’t understand foobar’s title syntax.
In Hexchat you trigger an announcement by use of a custom command; you type
/wp and it then looks up what the
dispcurrsong command is set to. Largely out of habit from my Winamp days, all the formatting and information was set inside the command. I barely understood how Foorbar2000 and it’s Winamp API emulation worked…because I largely didn’t care. But going back in to it with an understanding of title syntax…hoooo-boy.
To make this story short; rather than pull the information and format it in the client…I can just make Foobar format the window title the API emulates to be what I want…and just make the announcer display that. So now it’s gone from just something like
Track Info [Format | Sample Rate | Bitrate] to……this:
[%artist% - ]$if(%title%,%title%,%_filename%) $if(%album%,'('From: %album%')',) '['%length% | $ifgreater(%samplerate%,1000000,$insert($div(%samplerate%,100000),'.',$sub($len($div(%samplerate%,100000)),1))MHz,$ifgreater($mod(%samplerate%,1000),0,$insert($div(%samplerate%,100),'.',$sub($len($div(%samplerate%,100)),1))kHz,$div(%samplerate%,1000)kHz))$if($info(bitspersample),/$info(bitspersample)-$ifgreater($info(bitspersample),1,bits,bit)) | %bitrate%kbps | $if($stricmp($right(%filename_ext%,3),iso),%codec%/Super Audio CD,%codec%)']'
Uhhhh…yes. Okay. So most of this is the Discord command except formatted for just a single line. I also improved this general chunk of code by adding some statements to handle missing tag information as well as cases where bitspersample isn’t reported (MP3, OGG, and some lossy formats don’t actually have a bitdepth in the strict sense). It’s just a bunch of complicated ifstatements and other annoying bullshit.
Getting The Jab
So back at the end of January I signed up for my state’s waiting list for the vaccine. End of March I finally got to schedule an appointment. I had my second dose of Pfizer in mid-April…so by the end of the month I was fully vaxxed. Then about that time the state pushed up all it’s timelines for the mask mandates and social distancing; capacity limits and social distancing were pushed up by like two months. The mask mandate lift for fully vaxxed people was announced just days after the CDC information.
While I had thought about trying to make my yearly trip at the usual time…vaccine can’t fix the cost of rental cars.
Games, Games, Games
So for much of February, March, April, and most of May; I was doing a lot of gaming. EA Play went live on XBox GamePass; which between that and the Bethesda acquisition kept me on XBox GamePass. I logged almost 200 hours on Madden 21 alone. Played through as much of Postal 4: No Regerts that exists about seven times. But pretty much my entire April was Madden.
I’ve backed off since it’s turning to summer. My listening/gaming space isn’t air-conditioned; so I’m not going to cook my laptop just to sit out here and play games. I’ll save that for the cooler nights and whenever I feel like taking the thing inside.
Server & IT Stuff
So my homelab..if you can call one server a homelab, saw an upgrade. Battery backup. For a while I was having some issues with power voltage sags. They were enough that the R610 would just spontaneously reboot. Since I run the thing as RAID 0 and have no clue how old those drives are; I figured this was just asking for trouble.
I wound up doing two things; the first was not only setting XenOrchestra back up, but setting it up to do snapshots. The second was buying a 1500VA/1000W battery backup. I also picked up two cheap 400VA basic units for the rest of my internet infrastructure; one runs the fiber node while another runs the router. I don’t have long power outages very often; like it’s been years since I had an extensive one.
It will be the day after a long outage that I’m not home to shut the servers down that I’ll finally sit down and figure out how the hell I’m supposed to make that work on xcp-ng/xen. Like…I should be able to do this within Xen’s dom0; and I do in fact have nut setup and talking to the UPS…even serving the data to nut clients (snicker) on the other VMs. But every fucking thing I look up on how to setup graceful auto shutdown starts off with doing it on a pfsense router or anything BUT THE FUCKING CONTROL DOMAIN.
I also did some cleanup on the VM running nginx on the homelab. It’s about out of space and updates were failing. After cleaning apt out I copied the wwwroot to the NAS and now have that symlinked over. It hasn’t broken yet; but believe me, the way I hacked it together it should.
Summer is going to be brutal. Spring was rather nice with it’s mild temperatures, but things decided to slam right in to a hot and humid summer.