I think I'm slowly coming around on the whole generative stuff. Much like most of the folks in my feed, my first reaction was "hype is bad for your brain" and "this is a solution looking for a problem". Both of which remain true. However...

I caught myself mentally defending the "AI is a dumb trend" position just because that was my instinctive reaction, which is as much of a fallacy as the opposite. So, I think before I restore my "criticize AI bros" privileges, I should learn first hand what AI can and can't do.

More than that, I think it is becoming self-evident, that AI tools can be valuable productivity boosters, just not in the ways that marketers would have you believe. In the same way that an LSP plugin lets me spend more cognitive power on the semantics of the code than hunting down missing semicolons, AI-based completion can help me with "boring" parts and let me focus on the high-level design and problem space. It's a smarter paint brush, but the result is still determined by whoever wields it.

Mind you, I am still responsible for making sure that the semicolons are in all the right places, and that the code is good enough for me to put my name next to it.

I realized that I was so burned out by all the FOMO marketing that I almost forgot how to be curious about things. So yeah, picking up this new paint brush and learning first hand what it can and can't do is by far not the worst way to spend my time.

One significant thing ecosystems lacks is the ability to migrate your account along with the posted content. Also, every single software I've looked at states that changing server implementation without changing the domain is not supported, don't even try (which kinda makes me want to try just 'cuz). Which means if I ever decide to change the software I host my blog on, I have to wave goodbye to the posts I wrote previously. Sure, most of them aren't that notable, but some of them might be?

Link rot - Wikipedia en.wikipedia.org

A few notes about self-hosting a fediverse account. I was interested in hosting a single-user instance and it seems like there are more or less three options:

  • Honk - written in Go, kinda funky, no dependencies other than SQLite, actively developed, but looks like a mostly solo project. Can support multiple users, but seems to be mostly for a single-user use case.
  • microblog.pub - written in Python, also using SQLite, has a bug tracker and a few contributors besides the original author. Single-user instance.
  • GoToSocial - written in Go, compatible with Mastodon client API, supports multiple users, but is supposed to be much lighter weight. Doesn't offer its own management interface other than rendering profile web pages.

I went with microblog.pub, since it seemed to fit my needs pretty well and the maintainer was very responsive in the bug tracker (thanks @dev@microblog.pub!). After setting it up, it uses ~200MB of RAM, almost no CPU, and ~30MiB on disk, including the Git repo. Granted, this instance doesn't have much content to store yet. The whole setup process took me a couple of hours, including troubleshooting some chmod mishaps, not counting tweaking CSS to my taste.

The biggest tweak I've done so far is adding EasyMDE for writing. To do that, I had to add the following lines to admin_new.html template:

<link rel="stylesheet" href="https://unpkg.com/easymde@2.18.0/dist/easymde.min.css">
<script src="https://unpkg.com/easymde@2.18.0/dist/easymde.min.js"></script>
<script>const easyMDE = new EasyMDE();</script>

...and fix CSP in profile.toml: custom_content_security_policy = "default-src 'self'; style-src 'self' 'sha256-{HIGHLIGHT_CSS_HASH}' https://unpkg.com/easymde@2.18.0/ https://maxcdn.bootstrapcdn.com/font-awesome/; script-src 'self' https://unpkg.com/easymde@2.18.0/ 'sha256-x3hT41jvAyXptNPHtcnje3M0xIBPpT+PuS/HVkYn8ac='; img-src m.nevkontakte.com nevkontakte.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; connect-src 'self' https://cdn.jsdelivr.net/codemirror.spell-checker/; font-src 'self' https://maxcdn.bootstrapcdn.com/font-awesome/;"

The only feature I am really missing so far is the ability to edit posts, surely ActivityPub supports that?

-hosting

GoToSocial Documentation docs.gotosocial.org