< | >

Hacker's Diary

A rough account of what I did with Emacs recently.

December 27
Captain Marvel: absolutely kicked ass. It took a little bit to get going and for us to place it in time (Blockbuster and Radio Shack not exactly being signifiers outside of the United States) but everything about this was just brilliant. Nice to see Sam Jackson in pretty much full unrestrained (albeit unswearing) form being upstaged by not one but two women. Also a cat. Seriously, when the "Cat Reveal" happened I completely lost it and laughed for a minute straight. This is how all Marvel movies should be: nods to the context and the bigger story arc / arcs, but enough tight focus to (a) make a good standalone movie and (b) keep you entertained by the here-and-now action rather than overwhelmed with trying to fit it into the giant universe of things. Also, the cat needs more screentime. Maybe a spinoff movie.

December 24
Went to bed with water and ibuprofen within easy reach: woke up without having needed either. Still felt a bit off but figured I'd beaten the worst of it, so I headed out for a walk to pick up some extra Christmas booze; after a 3.5k round trip I didn't think I had it in me to climb the stairs back at the house. Spent the rest of the day mainly sacked out on the sofa doing much as I did last time: poking randomly at the internet and reading.

SpiderMan: Far From Home was fun, if a little targeted-at-people-younger-than-me in spots. The Mysterio visuals were suitably trippy, and there wasn't a huge reliance on series in-jokes or back-references, other than confirming that yes, the hereos who didn't make it out of the previous movie are indeed gone. The MJ/Peter interaction was funny and, uh, recognisable in its awkwardness and what not, and Mrs. Waide will probably confirm that I did in fact guffaw at various things on screen. The stingers in the credits, eh, I dunno. Maybe we missed some important context for them in not (yet) seeing Captain Marvel, and that's sort of annoying. Mostly, though, this was fine. Not great, not epic, just fine.

December 23
Ugh, massively restless last night followed by attack of the over-achieving immune system round 2. This is pretty much the same reaction I had to my second pfizer shot: full-body hangover without the pleasure of getting drunk first. I did not get the debilitating ibuprofen-resistant headache this time, but I did get some joint pain, which may or may not be attributable to hyper-sensitive nervous system coupled with the dishwasher shenanigans earlier in the week.

This is not my best Christmas week.

December 22
Yay! Got my booster!

When I saw the HSE announcement that "some people" could book appointments, I immediately visited the site and followed the links only to get a NXDOMAIN response (i.e. there is no DNS entry for the website you just tried to access). So I grumbled a bit and tried it a few more times and eventually it showed up. I suspect someone sent out the press release a little early.

Got a booking for 10:40 this morning, arrived a few minutes early and was back out on my way home by 10:43. I cannot emphasise enough what a fantastic job everyone involved with the rollout of the vaccine is doing, even the on-site security who are a little ... over-zealous in their application of the "no mobile phones" rule (I get it, you don't want people taking pictures or whatever, but if someone's got their PPSN or other critical details on their phone, maybe cut them some slack?) - everyone is generally at minimum polite, and more frequently friendly, reassuring, engaging, encouraging. All the things you need under the circumstances, I think.

As of this evening I've got a sore arm and I'm thinking about Friend Iburprofen.

(also, my booster is Moderna SpikeVax. Really now. Who names these things?)

December 21
Guests! Functional dishwasher! Yay!

Fitted the door panel this evening, but not before I'd managed to whack myself on the head with the unrestrained door. Dammit. I'm not even clear on how I did that, exactly. Also I have a fine set of bruises developing from the stair-manhandling process last night, and I have a tiny cut on my left index finger which I only discovered when I used some alcohol-based hand sanitiser. Ow ow ow ow.

December 20
After a trip to town for other errands: load the dishwasher into the car. This is made très amusant by the fact that the dishwasher still has some water in it and despite my best efforts to drain it, I apparently missed "enough to leak out in the car while loading in the dishwasher". The presence of water plus some awkward angles meant it wouldn't allow me to close the hatchback, so a 30-minute drive with the "back door" open ensued, followed by a ten-minute wait in the store for my new dishwasher to be fetched. Bemused man-with-hiviz-and-trolley looked at the meagre hatchback opening and the new dishwasher; I told him to strip the packaging and any mishaps would be entirely my responsibility. So we did that, and the machine fit perfectly into the back - this time allowing the hatchback to close, too.

I should note here that the carrying capacity of the car is pretty impressive - I could almost fit two of these dishwashers into it - but the opening to access the carrying space is awkwardly shaped, including having a high lip, which makes it much less useful than it first appears.

Back to the house with the new machine, left it locked in the car. Dinner etc, then the two of us manhandled the damn thing up the stairs. Fun, not. Actually, getting the old one down the stairs wasn't exactly a thrill either, but at least we had gravity in our favour. Eventually we got to the top step, wiggled the machine onto a cardboard "sled", and slid it over to its new home. After about 15 minutes of assorted swearing, it was hooked up to intake, outlet, and power, and running its first "get the construction crap out of the system" load. It'll take me a bit more effort to reintegrate it with the kitchen - adjust the feet, hang the door panel, etc. - but for now we're back in business.

December 19
Hurrah, it's Christmas, the season of ... dishwasher failure, evidently. I'd only just replaced - as mentioned here previously - a fitting in the door, but evidently that was a harbinger. Shortly after starting a run, the dishwasher emitted an angry beep and displayed an error code. The machine's manual said "divisor error", and suggested I needed to talk to service. In the week before Christmas? Hard nope. So a bit of online digging turned up that this meant that the dishwasher had detected water building up, i.e. flood risk. This meant one of three things: either water wasn't draining out of the machine properly, water had gotten somewhere it shouldn't, or the sensor was carked (technical term). Various hints from the machine suggested to me that the likely reason was option three, but I figured I'd at least do due diligence: ran a couple of rinse-only cycles, all of which did the same angry beep routine shortly after starting up; attempted to drain water out of the machine by tilting it, which produced... no water; and removed the drain hose from the fitting and held it in the sink while the machine ran its drain step and noted that water was indeed draining. So, strong likelihood of carked-ness. I considered repair options: any parts would likely have to be shipped from the UK in the first instance; secondly, this is a NordMende, an Irish-only brand which features unidentified tech under the hood so finding spares is a difficult proposition at best; and getting an actual service person instead, with spares in hand, well, see previous. In addition to this we have guests due and having a dishwasher would be sort of useful. So I guess we're getting a new dishwasher.

Peruse website, narrow down choices, order dishwasher for collection tomorrow. On one hand I feel a bit weird not even trying to fix this, on the other hand what's the point in being an overpaid engineer if I don't occasionally do something financially impulsive?

December 18
Backup still chugging away; hard to tell if it's doing better than the old setup, but it's certainly still as bonkers in the progress-messages department: it's currently dealt with "171951 of 139521 items" and is still less than halfway through the promised volume of data it was planning on copying.

Had a long, frustrating exchange with Virgin Media tech support yesterday over the constant modem reboots. Having gone to the trouble of resetting the system to Router mode (I had been using modem mode and using an Airport Express as the Internet-facing gateway), the new problem of choice was ... anything that would allow the tech support person to close the case, it seems. I mentioned in passing that I needed to use physical cabling because the WiFi wasn't able to support working from home, and this was IMMEDIATELY something a visit from a tech could look at. Never mind that the reason the WiFi can't support working from home is that certain parts of the house are built from 80-year-old steel-reinforced concrete which turns out to be pretty good at attenuating or entirely blocking WiFi signals, and I've already got WiFi boosters in place. No, for actual work, I'd prefer to rely on a physical cable that won't have its signal suddenly drop because I turned on the microwave and/or someone in a 100m radius has picked up a DECT handset. Somehow also the fact that I connected my STB to the internal network (a) created a bridge? (b) is mysteriously the problem that causes the modem to reboot, maybe? But anyway. I'm now being shipped a new modem. This is a plausible fix, if we determined that the modem was at fault, and I guess at some scale it makes sense to just replace the thing and see if the problem goes away, but I'm frustrated that despite the better part of a day of back-and-forth messaging there was effectively no diagnostic work of any kind done so it's just "let's swap it and see what happens".

(incidentally, one of my coworkers dug up this when we were talking about the modem. That is some serious mad science. I get most of it, to be sure, but I couldn't even solder a couple of wires onto an IR ring light for a Raspberry Pi camera without killing something; the thought of soldering wires directly onto the PCB traces is completely alien to me.)

December 17
Slightly entertaining barrel of monkeys, but I eventually managed to coerce things into working.

First, I wound up corrupting my copied backup file. Or TimeMachine did. Neither of us is admitting fault and have agreed that the file "became corrupt". Fixing this did not take a week of copying data since I used rsync to just reset the sparsebundle bands that had been modified.

Next, I created a TimeMachine quota file: this is something that macOS Server does for you, and I've not checked if the Synology control panel has the feature somewhere, but it's trivial enough to do manually. You just create a file in the root of the drive share called .com.apple.TimeMachine.quota.plist and put a PropertyList in it with one key/value pair: the key is GlobalQuota and the value is an integer, being the number of bytes you're permitting TimeMachine to claim. So you can set this to something smaller than the current size of the TimeMachine backup, for example, and it won't try to resize your sparsebundle, which is where my attempts were getting stuck. I'm curious about what the specific controls on this are - given I've currenty set it lower than the size of the sparsebundle, will it actually prune out a bunch of backups to fit the requested size, or will it just scale it down over time? (never found this out in the past because the backups got to the point where they weren't completing the housekeeping portion of the job). Also, the fact that the key is GlobalQuota suggests perhaps the presence of other quotas. Maybe per-backup?

With the above two steps complete, I was able to mount the backup share from the laptop and tell it to start backing up. So far it's gotten past the sizing / estimation part and started the file-copying part so I'm perhaps prematurely assuming I'm all good at this point.

(just had a poke around in the TimeMachine binaries. Only GlobalQuota gets a mention, so I guess that's all there is.)

The Good Liar started out as a fairly straightforward con movie, hinted at a twist which was indeed present, then became... rather dark for the final act. Surprisingly dark, in fact, given the lighter tone of the rest of the movie. Be warned!

December 15
Successfully transferred giant backup disk image to Synology.

TimeMachine: Oh hey! You moved this from a 4TB disk to a 7TB disk! Let me resize!
Me: Wait... what?
TimeMachine: uh-oh, network timeout... trying again...
Me: [facepalm]

December 14
Somewhat startlingly, the biggest copy off the Drobo has completed almost a week ahead of my best estimate. Turns out that some of the files were a good deal smaller than others (I'd expected a uniform distribution for handwavy reasons) so it zipped through the last 150,000 files in a fraction of the time. Doing a verification on the destination now to be absolutely sure it's properly cloned - there was some grumbling from the copy process about some extended file attributes, but I don't think they're actually critical to what I'm doing (he said, incautiously) so with luck I'm down to one major data dump to move off the Drobo and then it's history.

Anyone want a well-past-its-prime RAID enclosure with a choice of USB3 or Firewire 800 connections and really opaque management software?

December 10
It's been so long since we watched a Marvel movie that we accidentally watched Avengers: Endgame out of sequence. It doesn't matter a whole lot: we'd forgotten a good deal of what exactly happened previously, plus who some of the characters were, so the brief intrusion of Captain Marvel into the movie didn't actually change much. So, big impression: they tried to make fun of it themselves, but ugh, another "let's solve everything with Time Travel". That aside, this was actually quite a fun movie - to some extent the Time Travel component is just a means to an end, so it's really just a Marvel ensemble movie with a bunch of "you may remember this sequence from this movie". Comfort-drinking Thor was pretty funny, too. All things considered, it wasn't high art, but I didn't feel like I'd wasted the three hours it took, either.

Gotta go catch up with Captain Marvel, though. And I see there are a few new movies in the Marvel Universe that we've not seen as well.

I was not, incidentally, much impressed with Apple's hurdles in the way of us watching things tonight. A few things I clicked on prompted me to "install the Disney+ app" to watch (no thanks), while the Avengers movie wanted me to either touch-ID or password-approve my "purchase", a process which took several attempts because I first couldn't tell where it was sending the approval request, and then when I picked up the relevant gadget and pressed the touch-ID, the approval request vanished and there was no obvious way to get it back. Hopefully this merely reflects the fact that we haven't watched stuff in Apple's ecosystem in quite a while (Prime: click and it plays, which is how it should be) rather than being a new and fascinating departure from Apple's formerly intense focus on "it just works".

December 7
And for good measure, Z-Wave update: I've got a replacement TRV for the misbehaving one, which the network has once again decided is back in its place as node 22. But also as node 26. I dunno.

December 6
Synology update: still slinging around far too much data. One copy is estimating completion just before the end of the year - I'll have to see if I can improve on that. I've been redoing some of my research into what makes a Time Machine backup work (a small amount of disk layout, and a bunch of filesystem attributes) in pursuit of a proper cleanup strategy for this lot.

December 5
The Elementary season 3 finale was a bit... meh, to be honest. I can see from the episode description of S4E1 what's supposed to have happened, but for some reason in a show that spends a large amount of time explaining to you what Sherlock did and how, they decided to go for oblique and inscrutable for the closing moments of the episode.

We're still enjoying the show, mind you.

December 4
I am in the process of learning React (for my own use, mainly, although it's also in use at work) and while I've probably indulged in a little wheel-reinvention I've successfully glued together a pile of hackery which takes a create-react-app static single-page application and merges it into a Django-hosted site; as of this morning, it does this automatically as part of the system checks, so if I'm doing a bit of development work using runserver, I get my changes automatically integrated when runserver does its auto-reload bit. Which is nice. The only thing it's missing right now is the ability to auto-reload on changing a file in the React project.

previous month | current month| next month

only 389 days left 'til Christmas ... 2022