Things I read in October 📚

Non-fiction:

  • Play Anything, Ian Bogost. I like his shtick on twitter, @ibogost. (I skimmed the heavier philosophical bits.)
  • Lingo: Around Europe in Sixty Languages, Gaston Dorren. One of those fun books that comes around every now and then, full of language factoids. (It was near the Bogost book; I have a habit of grabbing one random-nearby-book for every book I intentionally seek out.) I just noticed while grabbing a URL for this entry, that other versions have different subtitles. Weird.

Fiction:

  • The Municipalists, Seth Fried. Loved the premise (sort-of Laundry Files humor-tech but focused on civil infrastructure instead of Cthulhu) but it dragged a bit; felt like a clever idea for a short story, stretched into a full-length novel.

Gatsby & images in RSS

Gatsby uses plugins to transform markdown and images into HTML. (I think they have parents or cousins that work more broadly, but I’m familiar with them inside a Gatsby context.) One of them, gatsby-remark-images, does a lot to improve performance (transforming images into different sizes, handling placeholders and using ”blur-up” tricks, etc).

This is great for a blog with images. BUT… when all of the HTML that wraps those images gets stuffed into an RSS feed, the result doesn’t always look great. In particular, when my feed is displayed on micro.blog, my images’ aspect-ratios are distorted based on the app’s window width.

The hacky solution I came up with was to do a string-replacement inside the RSS query. All the HTML in that function gets run through

html: html.replace('width: 100%; height: 100%; ', '')

and my images become fixed in size. Fixed!

(But wait … now I’m looking at the same image in my regular web-based feed reader, and the aspect ratio is fine, it’s just that the image remains 700px wide at all times regardless of window width. I wonder if setting CSS width and height to auto instead of just wiping them clean, would work?)

Next day, even more update: In Inoreader, on the web, the image is always, always fixed-width. In micro.blog, it scales correctly. In the new NetNewsWire it also scales correctly. So there’s something about the app-ness (as compared to web-ness) that makes it work.

It’s okay, it’s just not perfect.

Python & mac OS

I’ve touched Python in extremely limited ways, over the last couple of years, and always been frustrated at the version-weirdness and my lack of understanding (”I have 2 and 3 on my machine already? Should I change from one to the other? Is this gonna get into bash shell stuff I’ve never really grokked?”)

Anyway this article, The right and wrong way to set Python 3 as default on a Mac, looked authoritative so I followed it, installed pyenv (equivalent to nvm in node-world, I gather), and got it working. Shout out to commenter Arturo Mascarinas for noting the extra space in the final command, which was indeed stopping me from crossing the finish line.

on Micro.blog & Tumblr

Manton said, “…the more I’ve used Tumblr in the last couple of weeks, the more I think about Tumblr as a community first and a blog host second.”

(a) I had a very-lightly-used Tumblr blog for about a year before I realized that the fun part was the dashboard, not your own blog. Once I figured that out and started making Tumblr pals, I forgot about the actual _blog_ entirely. I haven’t looked at or linked to it in years, though my Tumblr _dash_ is my #1 social media “place,” ranking well ahead of Twitter or Instagram. (I think my wife skims it sometimes; I’m not sure how much context is lost when my posts appear alone, without the rest of my dash above-and-below those posts.)

(ß) Thinking about (1) and micro.blog together, I’ve been pondering a post explaining micro.blog to my Tumblr pals. “It’s two things in one, just like Our Tumblr is; there’s the part where you have a blog, except none of us are really using that part, and there’s the part where your stuff shows up in a feed alongside the stuff from your ‘followings’. And also it’s $5/mo.”

(ç) Actually, (ß) might be that post. Boom, done.

(4) Marginally related: when I was first futzing around with micro.blog, I tried sending my Tumblr RSS feed into it, and the result was mostly a mess. m.b’s (understandably(!) narrow) focus on text and images meant that other kinds of content were getting lost in the XML… particularly audio and YT stuff, which makes up a fair amount of my Tumblring. To re-visit, maybe…

Plex on Pop_OS with external USB files

It’s about file permissions, yeah, but the thing that eluded me for a few hours until I hit on this post, was that it’s also about mount points and security rules.

You gotta get the UUID of your ”plex files” partition(s) and edit /etc/fstab to have your system mount it/them somewhere other than the default.

I think the example the Plex employee uses in his walkthrough is unfortunate because on my Pop_OS drive /media is already used by the system. I created a new folder at the root level called /plexmedia, chmodded it to 755, and listed it as the mount point for a partition on my external USB drive. When the system rebooted, suddenly the Plex server could see all my subfolders. Hooray.

NOTE: Before figuring this out, I had already tried the following; now I don’t know if they were unnecessary fiddling or if they were also a needed part of the solution:

(1) The drive and media files were originally part of a Mac setup. The drive was formatted HFS+, journalled. I took the drive back to a Mac and turned off journalling using diskutil.

(2) Once I’d done (1) I could mount the drive in Linux in a write-able fashion and chowned the entire thing to user plex and group root. (As a read-only volume they had been showing up as ”503: root” where 503 is the ID of my everyday Mac user. I read some tricky posts about creating a Linux user with a matching ID and ”stealing” those ”orphan” files, but I’m glad I didn’t go down that route because the security/default-mount thing would still have been in the way… [I do think this mattered because once I discovered the Plex post linked above, I didn’t need to do the 755/644 stuff; it just worked.]

hooter.boop()

Did Alan Turing invent the console.log()?

“The two discussed Turing’s efforts at programming. Even decades later, Shannon would recall one of Turing’s inventions:

So I asked him what he was doing. And he said he was trying to find a way to get better feedback from a computer so he would know what was going on inside the computer. And he’d invented this wonderful command. See, in those days they were working with individual commands. And the idea was to discover good commands. And I said, what is the command? And he said, the command is put a pulse to the hooter, put a pulse to the hooter. Now let me translate that. A hooter … in England is a loudspeaker. And by putting a pulse to it, it would just be put a pulse to a hooter.

Now what good is this crazy command? Well, the good of this command is that if you’re in a loop you can have this command in that loop and every time it goes around the loop it will put a pulse in and you will hear a frequency equal to how long it takes to go around that loop. And then you can put another one in some bigger loop and so on. And so you’ll hear all of this coming on and you’ll hear this “boo boo boo boo boo boo,” and his concept was that you would soon learn to listen to that and know whether when it got hung up in a loop or something else or what it was doing all this time, which he’d never been able to tell before.”

Excerpt From: Jimmy Soni. “A Mind at Play.”

Beckett, can you hear me now

long excerpt from "A Mind At Play" with the eventual point that most early undersea cable telegraph messages were of the "Can you hear me now?" variety. Like "an especially bleak Samuel Beckett play."
from “A Mind At Play”

Reading a biography of Claude Shannon and adding a history of the first undersea cables to my to-read list.

From now on, when my wife spends 15 minutes going ‘round and ‘round with her mom and/or son, trying and failing to talk to each other with 21C devices, I’m going to picture Didi and Gogo swapping boots under a dead tree.

“You called but I didn’t get to it until… hello? Are you… I’m calling you back hang on”

“I left you a voicemail; I forgot you don’t know how to check it. Call me back when you…”

“Hello? B tried to call you; call him if he’s got a signal and tell him to call me.”

What’s around here? Part two.

As I mentioned in part one, the other “big” software service running on this server is Nextcloud.

Nextcloud is effectively “self-hosted Dropbox.” All of the pros and cons I mentioned with Gitea? They exist here as well… Would I rather control the service myself and not be subject to the whims of the Large Company? Yes. Do I worry about data integrity when I’m the only one to lean on? Yes. (Am I confident that my installation is secure? Yes, but I can’t make security a full-time position. I’m also building apps and writing and cookin’-&-cleanin’ and walking the puppy 5 miles every morning. There’s other stuff going on!)

One notable but understandable headache with Nextcloud — it’s not baked into any other services/hardware that I use. The primary example of this being my Epson scanner/printer. That device has native support for email, Dropbox, and other services. I can drop a document into the feeder and a .pdf simply appears in my Dropbox folder a few minutes later. Very handy. Very not available with Nextcloud. (Unless, and this is only occurring to me as I type, I come with some sort of folder-watching-and-file-duplicating Applescript on the iMac? But even then you’re not eliminating Dropbox from your life, you’re just duplicating it for no purpose.)

I like Nextcloud; it has additional capabilities of which I’ve only just scratched the surface, but I haven’t closed my Dropbox account. It’s too useful.

What’s around here? Part one.

Once you have a Linux server running and a SQL database installed, there’s seemingly no end to the number of open-source products you can install. This domain currently runs two “big” projects, in addition to WordPress. The first is Gitea, the second is Nextcloud.

Gitea is a service that lets users run their own version of Github/Gitlab. While I don’t have any particular concern about relying on Github (along with robust backups of my desktop and laptop), it’s interesting to consider the tradeoffs. If I host my code on my own server, it doesn’t matter whether or not Github “goes down.” If Microsoft decides on a new business model for Github, that’s fine. My code repositories are on my server, not theirs. (Well, on Linode’s servers, but that’s another post).

On the other hand, Github operates safely, at scale. As a solo developer, I’m potentially my own worst enemy. The dev who inspired me to install Gitea ultimately took his own version down because, in the course of doing something entirely unrelated, he knocked over his SQL database, which in turn knocked out his Gitea site, which rendered his current work unavailable. He was able to recover from a backup, but he was nervous enough to write up a long post declaring self-hosted code repos as “too dangerous,” without proper backup-and-security resources.