A Signal messenger API on your tailnet with Docker Compose

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.

Read more →

Real-time events with Bluesky and Jetstream for Helping Friendly Bot

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.

Read more →

10 years of pomological watercolors

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.

Read more →

Messaging Signal groups based on Puzzmo webhooks (using Tailscale Funnel)

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.

Read more →

Wednesday music

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?

Read more →

Tooting from the intersection of art and technology

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.

Read more →