As a software developer who enjoys working on hobby projects, especially with less technical collaborators, I have found myself using Google Sheets as a good-enough database in a lot of circumstances. I have lots of qualms about having the biggest of Big Tech in a load-bearing spot on these projects, but the practical benefits and the existence of a reasonable exit route have helped to quiet them.
I’ve got a new configuration for sending Signal messages on the command line, and it’s powerful and flexible and finally gives me a nice ergonomic interface to use from other programs. Even cooler, it is accessible over Tailscale from any of my devices, which means I can securely reach it from multiple machines without going through the rigmarole of configuring and maintaining multiple copies of signal-cli.
This weekend I decided I needed real-time events from a particular Bluesky feed for a bot project. I was nervous that I’d have to consume events from the firehose, which seemed like it would require a lot of complexity and bandwidth, so I was relieved to learn about Jetstream, which solved my problem nicely. Here, I’ve got some notes about what I’m doing and how I’m doing it.
A decade ago today I published a blog post calling for the US government to release its paintings of fruits. The Pomological Watercolor Collection, as I had recently come to know, is a beautiful and remarkable corpus of over 7,000 pictures of fruits and other biological specimens, made between the 1880s and 1940s. Through a handful of FOIA requests I’d learned that the images had been meticulously digitized and put online for purchase, but that less than 100 pictures had been sold that way — not nearly enough to justify the paywall.
I recently found myself in a situation where I wanted to send the payload of a webhook to a Signal group, and I decided to build a solution. It’s now deployed and it works great, so I’m sharing it here in case anybody else wants to do exactly the same thing, or wants to use my code as a jumping off point for a similar project. I think this approach is pretty neat, and in particular it uses the tsnet library and Tailscale Funnel in a fun way that people may want to try.
I’ve been posting for a few weeks now on bluesky, a new social network built on new technology called the AT Protocol. Everything about that stack—the app, the network, the protocol, etc—is under active development and subject to change (and my understanding might not be fully correct), but I am excited about one component in particular that I think is still underappreciated.
Through some remarkably sharp eyes and impressive grid IDing, I learned that a crossword puzzle shown briefly on-screen on “Glass Onion: A Knives Out Mystery” is the June 16, 2022 New York Times puzzle constructed by me and Ross Trudeau. Some very very minor spoilers follow.
I constructed today’s Los Angeles Times crossword puzzle — my first for a paper that my family has subscribed to for my entire life. The puzzle will be available for a week or two on the LA Times crossword page, maybe a bit longer in the archives for Puzzle Society members, and should be downloadable with a quick xword-dl lat -d 12/14/22 for a good long time. Some spoiler-y notes below!
I watched a few episodes of the new Netflix show Wednesday. Show’s fine, and the Danny Elfman score is interesting, and I laughed when his theme first started playing and was dutifully described in the subtitles as “jauntily macabre.” If you want jauntily macabre you have to go to Danny Elfman, right?
I’ve finally taken the plunge at set up my own Mastodon instance at a dedicated domain, as has been foretold by the prophesy of my recent posts. Instead of using one of the very fun subdomains I surfaced in classic literature, though, I found one that plays on the goofy meme-y phrase about “the intersection of art and technology.” And so, my new Mastodon instance lives at tech.intersects.art. The plan is to offer accounts to a handful of friends—never a big general purpose server, but hopefully developing something adjacent to a group chat.