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