Yesterday was World Humanist Day, celebrating a philosophical position that the value and agency of human beings is important, both individually and collectively. As we wind down a month that, in the United States, is traditionally labeled LGBT Pride Month and has been packed with reasons to remind people that Black Lives Matter, that might not be worst idea to consider.

Unless it’s a weird cult, I mean. I didn’t do a lot of research. Probably not, but hey, they could be an evil UFO cult and I just didn’t page down that far.

8 Ways to Change the World

Of course, if you’re Croatian, you may also be celebrating Anti-Fascist Struggle Day 🇭🇷, which…you’d think more countries would do that, given how much work the world has put into stopping fascists, and they still haven’t gotten the hint.

Anyway, it’s been a decent week for projects…


I finally got around to fixing Uxuyu’s stupid bug that was trashing user handles. If you’re using it, you might need to delete your database and allow it to repopulate. With that done, I also added some code to separate feeds the user follows and feeds the user doesn’t follow, to add a “firehose” button that shows everything accessible.

There is now a search feature, as well. It’s case-insensitive and respects the firehose mode, so that you can search for text in the feeds you follow (as in searching for something you remember seeing) or search for text in all feeds (as in seeing what people are saying about a topic). It does not, however, treat hashtags or handles differently from any other text, so those may account for false positives.

I also added a configuration setting to change the font. I’m partial to Comfortaa, at the moment, but it might be too wide. Since width has been a problem and word wrap doesn’t seem to be forthcoming for the underlying control, I decided to manually add a word-wrapping routine. It’s not perfect, of course, because it can only estimate the individual character widths, but it’s good enough until there’s a better fix available.


My experimental browser extension is…done, I guess. It has an acceptable configuration page and uses that configuration to do what it needs to do.

I’ll walk through the interesting parts of that code in the Wednesday post.


Another library needed to be bumped for security reasons.

Entropy Arbitrage

Despite my better judgement, I think I’ve settled on Mailchimp for the mailing list. As I mentioned last week, I’m pretty sure the only compromise is that they don’t run on Free Software, which is fine. More important is that they’re not going to send unsolicited e-mail to my subscribers or take control of the content.

It’s already trying to upsell me on what sound like rudimentary features, but as long as they don’t harass subscribers, I’m OK with that.

If you want to get a jump on subscribing before I figure out how to insert a form into the blog itself, you can visit the Mailchimp page.

I’m joking about figuring out how to insert the form, by the way. There’s a clear command to create an embeddable form that I can drop into a slide-out tray like the one on the index. And I can copy the form, and probably flip it to the right-hand side, from the tray on the index pages that recommend the more interesting posts.


My big goal for this week is probably going to be adding a third worker thread to Uxuyu for scraping the user registries. I expect that to take a while and be fragile, so it’ll get hidden behind a feature that’s off by default until it’s more mature. I may also work on decreasing the frequency of checking less-active and less-available feeds, since that’s probably mostly math.

Now that URL Rat works, I’ll probably also start work on a Visual Studio Code extension that does something similar, creating the repository tomorrow.

Also, as mentioned, I’ll be working on getting the mailing list up to speed, now that the first couple of test messages have gone out to my own e-mail. My goal is to have it mostly automated, where I can leave a few comments/stories in a Markdown file as they occur to me, then bundle them at the end of the month with a script that populates the month’s blog posts and any articles that I read and bookmarked in my RSS reader. If that can be packaged to a degree that Mailchimp will just accept and send it out, that would be a lot more pleasant than fussing with their desktop publishing engine.

Obviously, I’ll publish that script when it’s ready to go. So far, it looks potentially promising.

Credits: The header image is 8 Jeitos de Mudar o Mundo by (seemingly now defunct) Objetivos do milênio, placed into the public domain.