Welcome to Hearthside!

Please feel free to warm yourself by the fire.

This is my first newsletter in 7 years, nearly to the day. I'm interested in starting it back up because having left Twitter (the fowl place), I've seen a large drop in my site's readership. This is disheartening, so I'm hoping that by adding another avenue to finding my work it may inch back up.

This email will be structured with a section of New Posts by me, Links I've enjoyed reading recently, and when applicable a My Open Source section with any releases for my maintained tools.

New Posts

I've recently been experimenting with ChatGPT for doing initial passes at blog posts. I even had it write its own intro for the series, which sits at the top of the posts. The results varied from decent (as in The Five Minute Standup) to unusable, but I've taken the best six and plan to release them. Chesterton's Fence, below, was of okay quality but I ended up rewriting quite a bit of it. Both of these posts were thoroughly edited, so if there's anything wrong with them it's my fault now, and now ChatGPT's.

These were blog posts that had been sitting in my backlog for quite a while, and I hadn't gotten around to writing them. One takeaway for me is that ChatGPT needs a well-formed thought, or it can't really expound on the idea, but once it has one it's able to do a decent job of bullshitting its way through. I've seen it described in multiple places in the Fediverse as "mansplaining by AI", the implication being that it's extremely confident in its results while being relatively inaccurate (often in non-obvious ways).

Chesterton's Fence

As developers, we should heed Chesterton’s Fence and be careful to consider why our teammates or predecessors wrote the code that they did before we look at it and think there is a better way”.

The Five Minute Standup

I've been experimenting with a 5 minute standup meeting rather than allowing standups to run long. Scheduling them at 5 minutes before the hour and allowing them to go a little long if necessary has been really effective at keeping the team on track.


And now, a few links I've enjoyed reading in the past few days:

How to Weave the Artisan Web by John Scalzi makes a case for those leaving (or even staying in) the fowl place to run their own blog/site, to create content there regularly, and to use it to promote others' blogs directly.

A year of new avenues by Robin Sloan covers a similar topic. He says that none of the current answers to the Twitter Migration are "right" (including Fediverse), and that we should be open-minded about what might be a better solution, and build it.

SwiftUI is convenient, but slow by Alan Panaitiu is an interesting dive into creating a "simple" iOS calendar app as a way to support the author's brother. That part was certainly interesting for multiple reasons, but one of the things that caught my eye was the use of color as emphasis. It makes me want to broaden calebhearth.com's palette.

Postgres Natural Sorting by Kenneth Bogner on the Test Double blog shows how to do natural/human sorting (i.e. “5-banana” before “10-apple”) of strings in Postgres. I thought I knew how to do this already but I definitely didn't.

My Open Source

Scenic, the gem I co-maintain with Derek Prior, received a 1.7.0 release. It's the first release in 10 months and includes only a couple of line items. Sometimes, a gem doesn't really need to receive a lot of constant attention to remain useful. Derek and I have been very conservative in accepting new features to Scenic.

We both think that Scenic does what it needs to do, well. Merging new features means taking on more maintenance burden. Still, 10 months since the last release may have been a little slow and the changes, while incremental, are useful.

One thing I'd like to do for Scenic, as well as my other popular gems, Title, Formulaic, and Time for a Boolean, is to find a nice way to generate documentation that I can host on my own site. Again, I'd like to be in control of the URLs my work lives at within reason. "Reason" probably includes documentation and probably doesn't include git hosting. I'm open to suggestions that could be used as part of an assets:precompile step.

As some of you may recall, my blog moved to Rails a while back and I mentioned wanting to extract a few things. I did end up extracting a few things that I think might be useful to others doing this. If you decide to use them, please let me know. I'd even be happy to help get you started, as they aren't well documented yet (PRs welcome!)

In a Tavern does some rudimentary Webfinger and ActivityPub stuff so far. It’s theoretically enough to expose an “actor” (ActivityPub parlance for user, basically), and I plan to add publishing and inbox functionality to handle at least inbound follow requests, likes, shares, and responses. As these are the same standards that Mastodon runs on, the purpose of In a Tavern is to let you integrate with Mastodon and other Fediverse servers.

Mentionable is set up to handle inbound webmentions and I plan to have some code in it that you’d call to pass a model and tell it what text fields to look at and it will send webmentions for any URLs that are in those fields. So you could use it on an after_create or at build time for your site. That’s similar to how In A Tavern will handle publishing. Note that this isn’t published to RubyGems so the mentionable gem there is something else.

Frontmatter is the most mature and handles taking a YAML + markdown file and building you a Ruby object that exposes all of the Frontmatter as a hash as well as using method_missing to respond as if you had getter methods for each entry. It also has a basic controller to render posts.

At some point, I see these and probably some additional tooling and boilerplate being used as a Rails blog generator or engine. I'll probably call that "Hearthside" after my own site.

Thanks for reading to the bottom! I know this was a bit wordy, but rest assured I think most of these will be shorter. I'd love any feedback on this that you have!

Like I said, it would really help my ego if the subscriber count went up and led to more folks reading my blog posts. If you think anyone you know might be interested in subscribing, please send them to https://calebhearth.com/newsletter.