< | >

Hacker's Diary

A rough account of what I did with Emacs recently.

November 29
It's easy to unsubscribe from this list! Just open the raw source of the email, find the List-Unsubscribe header, feed it to Python's email.header.decode_header, click on the URL this exposes, copy the page text into a translation app so you can figure out which thing on it is the "YES UNSUBSCRIBE" link, click on it, realise it's brought you back to the same page, hope it worked. Simples!

Not a huge amount of work, but I've sufficiently reverse-engineered the YNAB file format to allow me to add ad-hoc updates from a CLI tool. Been meaning to do this for a very long time, mostly since the company stopped developing their app and focused on a hosted solution.

First attempt to bring a backup up: ran out of disk. Dammit.

November 28
Trying to migrate my OpenHAB installation to another machine, which is apparently possible using backup/restore... which presumes the backup process works, of course. Some user assembly required, it appears.

November 26
Funny. Some website sending me a marketing email - which, you know, it didn't give me the option to opt out of - and the unsubscribe link goes through a click-tracker which is blocked by both my browser's adblocking software and the network-level adblocking built into the eero gateway. I did try to unwrap the URL to find out what it was targeting, but it's a binary blob which has been base64-encoded, then url-encoded, then any percent signs replaced with dashes, then urlencoded a second time; I was able to unwrap as far as the binary blob but after that I didn't feel like trying to pick it apart further so I guess I'll unsubscribe via an unfiltered device.

Digging through hardware... it seems my old 2007 MacBook has had some piece of hardware flake out, as it no longer runs on a healthy, fully-charged battery. Instead, it shuts down immediately. I understand from a little research that this is likely due to some fried circuitry and at this point it's not really worth recovering, so I'll likely just nuke the hard drive and drop it off somewhere for recycling. At least, I'll eventually drop it off for recycling. Going by my usual rate of progress on this sort of thing it's likely going to be gathering dust in a drawer somewhere for a few years yet.

More hardware: three Raspberry Pis, one of which I intend to take over home automation duties for various reasons. One of the three isn't booting headless right now, so that'll need investigation. Of the other two, a bunch of somehow-can't-be-hands-off upgrades need applying.

And more hardware: the aforementioned home automation has had two of the TRVs decide to fall off the network again. Last time this happened I tagged a TRV as failed, then re-added it as new to the network. I wonder if I kept notes? (checks ... apparently not.)

Aha. The unbootable Pi was on account of the fact that the PSU wasn't up to the job of the connected camera plus IR spots. Removing all of that allowed it to start up. It and its sibling are getting the next version of Debian installed ("bookworm") which, at the rate it's going, should be done some time this year.

November 25
Watched An Inspector Calls again. Really excellent piece and while I'm still not terribly keen on how they handle the ending it's definitely better on a rewatch.

I note once again that my ZWave network is being glitchy. Grr.

Git, however, seems to have straighened itself out, so at least there's that.

November 23
git has been behaving oddly for me lately. I have a repo on one machine, and I've been pushing things into it for literal years from another, and in the last week or two every change I make seems to randomly change the status of some other file locally. So I commit tvlistings/common.py and tvlistings/__init__.py shows up in git status as "added". My minimal set of git health checks both locally and on the remote all look ok. This is annoying and, obviously, slightly worrying. It smells awfully like some sort of integer overflow.

November 17
For a movie I'd seen no press or promos about, The Courier is an astoundingly good piece of work. Really well made, and not a sprawling epic - indeed it feels longer than it is, particuarly the third act, as I wasn't sure how it'd work out.

November 12
AWS has been nagging me for a bit to upgrade my RDS CA cert. I've been putting it off because it's not a push-button operation: it requires some thinking. This morning I figured I'd just go ahead and upgrade it and see what breaks; it's not like it's mission-critical.

Round two with the shredder was much more productive: I took some time to figure out how to tweak the cutting part of it so it would actually cut, and then it did a much better job. Gave me some actual mulch/compost material.

November 11
Spent a good chunk of today in the garden with a rented (and poorly-maintained) shredder - this boi - and reduced a pile of pruned branches to a half-dozen bags of green waste. Because it was poorly maintained I couldn't use most of its output for compost, since it had a tendency to turn long branches into ropes rather than twigs. Having thus cleared the output of last weekend's gardening I promptly refilled it with more prunings.

More vintage Bond: Never Say Never Again. It's... not great. Leans heavily into the innuendo, but that's clearly too subtle, so they also ensured that the entire female wardrobe selection was as revealing as they could get away with. And the less said about the silly "herd the bike into the truck" scene, the better.

November 10
Wrapped up Bosch: Legacy season 2. I really don't think they needed the giant hook in the ending: this was a good season, and people who watched it would likely watch another season with no prompting, and the hook is frankly stupid.

Honey Chandler and Mo both playing with the Feds was funny, though. Honey's in particular. "OH look the thing that might be actual evidence is unusable because your search warrant is invalid, and now you can never use it. How sad!"

November 8
After some false starts I got the "boot from USB key" option working and then had to learn how to actually trigger the ATA secure-erase or sanitize options. Always something new to learn, even if it's years old. It's new to me.

November 7
I am somewhat disappointed that the canonical and repeated answer to "how do I send ATA secure-erase to a drive on a Mac" is "First, make a bootable USB key with a Linux image on it".

(similarly, "how do I make spell-check work in macOS Emacs" seems to be canonically answered by "install the third-party toolchain of your choice, then install ispell or aspell" which is a pretty annoying answer given that surely there's a way to put a sufficient CLI interface onto the spellcheck service built into the OS.)

November 6
Trying to "secure-erase" a stack of accumulated hard drives of various sizes. This will take a while...

November 4
Trying to add an additional SAN and supporting configuration to my webserver; spent ages trying to persuade certbot to install the cert, puzzling over why it wasn't working, before realising that I'd wrapped all this up in a script years ago and I don't actually use certbot's native code. D'oh.

Wrote a couple of scrapers this week for other people's websites. Ironically, I'm the original author of the page at work that enumerates reasons not to do this. (It's contextual: if I scrape a site on an ad-hoc basis for personal use, there's likely little impact to the site provider, and there's certainly no significant consequences if, say, the site format changes or whatever. If someone deploys software in a large company environment to do so, there's a good chance it's going to break something.)

November 3
A new season of Bosch: Legacy arrived while we weren't looking. It's quite good. Also I'd forgotten how excellent the theme music is.

previous month | current month| next month

'tis almost the season