< | >

Hacker's Diary

A rough account of what I did with Emacs recently.

January 30
"I have a plan B," I said, 10 days ago. Well, Plan B spent the last ten days counting, got to somewhere north of 100,000,000, then said it was out of memory. I guess I need a plan C.

Plan C: working. It's copied 430,000 files since I kicked it off around noon, so it's doing 11-12 files per second, so it should be done in about 40 years. Uh, my calculations are probably wrong. We'll see how it looks tomorrow.

January 29
Rewatched No Time To Die. It felt shorter on a rewatch, probably because I was no longer waiting to find out What Happens Next. Also I was paying a bit more attention to the cinematography; the closing section of the movie (third act, final 45 minutes, whatever you'd call it) has some beautifully-composed pieces, and I hadn't noticed that much of the stairwell ascent is a single shot - I'm not quite sure how much of it because it'd been going for a bit before I noticed, "hang on, there wasn't a cut there" and started paying more attention. I just went back and looked at it now and it starts off with him entering the stairwell, cut, grenade drops, cut, grenade falls by him, cut... a few more cuts, shower of grenades, explosion, and then there's almost two minutes of unbroken take. Or so it appears, anyway: there are maybe three places where you could possibly have a cut, but the continuity is just too good I think. Anyway. Enjoyed, probably more so than the first time around, and still wondering what they're going to do to fulfill "James Bond will return".

January 28
Mostly I have been ignoring Wordle due to being mildly susceptible to avoiding things that are being hyped (even if the creator was not actually doing the hyping). I tried it out today, out of curiousity. I can see the attraction. This evening I hacked up a silly python clone for Mac Terminal, which uses ANSI colours and gets its vocabulary from /usr/share/dict/words. I've tossed it into the Python part of the workshop but to be honest part of the genius of this game is that it's so simple, you could use it as a programming exercise.

January 23
Note to self: if the scanner doesn't show up on the network, check that it's turned on first...

January 22
So that was kinda weird: the Raspberry Pi that serves as an airprint server stopped working, and I could not for the life of me figure out what was wrong; eventually I assumed it had simply died. This evening I tried booting up another Pi and it exhibited similar symptoms; I swapped out the power supply and lo and behold it booted. Now going back to the other Pi to see if it's actually the PSU that's failed, rather than the board.

Yup: failed PSU. Bizarre.

January 21
React migration slightly stymied by the fact that the old version of the code I'm migrating used jQuery-UI, and I've found 15,000 tutorials on "using React with jQuery" and none of them actually help, so I'm probably gonna have to just port the jQuery-UI stuff over to React. I mean, I'd have done that anyway, just later.

Ok, after a bit more searching and a small clue I managed to get something working. Porting has been deferred, as planned.

January 20
Well, that was deeply annoying: for the last several weeks, Finder has been quietly counting up All The Files to copy them from the Drobo to a new backup image on the Synology. Except when it finished counting, it presented me with a dialog box reading, approximately, "you might need to enter admin credentials" which included a "stop" button and a "skip" button but no (as is usually the case) "continue" button. So basically that several weeks (weeks! actual, literal weeks!) of counting has been for naught. I have a plan B, but I'm annoyed.

Updates have been sporadic here as my React hacking put my local copy of a particular piece of code hosted on this site in a questionable state, and I didn't want to push anything until I'd sorted it out. So if you're reading this, that's fixed.

January 14
And so The Expanse came to an end. They wrapped up the Inaros storyline the same way as in the book, which as previously noted was a bit of a surprise to me (it's clever, yes, but it's a Deus Ex Machina - almost literally - and I was also nonplussed at the completeness of it) and the Laconia storyline... wait. What happened the Laconia storyline? The writers were aware at the start of S6 that this was the final season, I presume they were told they only had six episodes to work with, and so... they put in a giant hook for books 7-9 of the series and then concluded that arc with "You'll never hear from us again" (literally; a key character who you don't really even get told is a key character says approximately those words to Inaros!) and that's it, except for some maybe woo-woo red fuzzing during the closing credits? Various rumblings about maybe a movie, or maybe a spinoff, but really this felt like a needless waste of time in a shortened season that could've used it elsewhere. Disappointed with that. The rest of the episode, eh, it was good, and I liked Holden's bait-and-switch at the end.

January 13
Almost done converting another chunk of my Django front-end code to a Django/React hybrid. I'm getting a better sense for how to put this together as I go along: right now it's essentially a new create-react-app iteration for each unit I'm replacing, and using Django's templating to glue things together, but I'm starting to see how you'd roll the whole frontend into a single page, all generated by React and using Django to populate the data. I definitely need to figure out how to improve on my current crufty build pipeline which is, to be honest, largely constrained by the fact that I've learned barely enough about that side of things to make it work - don't want to get distracted from The Project by tinkering with The Tools.

January 11
Well, that was surprising and annoying: Mac spun up its fans while screenlocked and refused to unlock. Had to hard-reboot it, and I have no idea what actually happened.

January 10
Continuing to beat one of my web toys into a React-based web toy, which has turned up some surprising bugs - nothing dramatic, but some logic errors that have been present for a very long time. It's a coin-toss every time to decide whether it's worth fixing now or just porting the behaviour over to React and fixing later.

January 9
Couple of days late, but we took the tree down. Step one: fetch the boxes from the attic. Step two: watch the cats fight over/with the boxes. Step 3: remove all decorations while Bonzo sits in Sphinx pose under the tree. Step 4: dismantle the tree while Bonzo sits in the box. Step 5: put the tree pieces into the box in some sort of order that will make rebuilding the tree next year easier, stopping only to remove both cats from the box filling up with tree parts. Step 6: put the boxes in the attic, ensuring no cats have climbed the ladder while I'm up there. Step 7: vacuum all the dropped glitter/tinsel I can see, acknowledging that in six months' time I'll still be finding bits of glitter and tinsel. Step 8: note that Bonzo has glitter on one cheek.

January 7
Other stuff that was in flight: dishwasher now fully integrated. It's maybe a few millimetres out of "perfect" alignment; the adjustable-height feet are at pretty much maximum extension and fitting the door panel (to its third dishwasher) is long past a job of driving screws into pristine MDF, so I'm a bit constrained in terms of how much adjustment I can do. The machine itself is really quiet now that it's tucked in under the counter and all the enclosed soundproofing has been added. One minor flaw in the installation is that there's a sort of rubber bib that fits onto the end of the door and goes inside the kickboard; this obscures the little red telltale that the machine shines on the floor to tell you it's running. I guess I can fix that with a penknife if I care enough.

RAID juggling is almost complete. The Synology now has 3x 4TB drives and 1x 2TB, and the only thing left on the Drobo is a stack of old backups. I'm in the process of moving those old backups to the Synology, but on my third or fourth attempt: I've variously run into problems with permissions and sparsebundle size, all of which I've now hopefully sorted out because it takes Finder about a week to count up all the files before telling you it's unhappy and won't be copying any of them. If it fails this time I'll probably use the same convoluted rsync command I wound up with for one of the other backups.

For the backups that have already been transferred, the main one (for the Mac I'm writing this on) is back in order, albeit still a little underperforming - I think it's managing to do every second hourly backup, and occasionally skips a few more. At this point I think this is a client problem rather than a server problem, and it's vastly improved over the previous performance which was "might back up this month, if you're lucky", so I'm not terrifically bothered. I still need to address the problem of having a few different TimeMachine backups for the same hardware, but that's going to be a good deal easier once all of said backups are parked on the Synology.

Finished Season 4 of Elementary; definitely still enjoying this, but the season finale across a few episodes wasn't great - I think they didn't quite know how to finish it, and what they decided on was somewhat telegraphed. Anyway. We still have a few seasons of this left.

January 5
Back to work yesterday so trying to get back into the swing of things. Of course, by "back to work" I mean "working from home".

My React hacking was interrupted by what seemed like a spurious problem introduced by brew update, but ultimately turned out to be "create-react-app or one of its constituents no longer like symlinked files"; it may have once liked them and developed a dislike, or it may never have liked them and this piece of code somehow worked anyway, but trying to figure out which left me sharply aware of how little I know about the ecosystem underlying create-react-app - essentially the whole Node.js stack and accompanying boondoggles.

previous month | current month| next month

March 2020, S3E1