Epiktistes

Epiktistes is my home in the Fediverse. It is an instance of Ktistec, a single-user ActivityPub server like Mastodon, but with fewer users and fewer commits. Here's my introduction (last updated early-2025).

I wrote a series of posts about optimizing the performance of the Ktistec server, its build time, and its executable size: part 1, part 2, part 3, part 4, and part 5.

Some things I regularly write about, organized by hashtag:

I also wrote some #pointfreeverse.

Todd Sundsted

I had success running #meshtastic during #dragoncon in Atlanta. Most of the con there were ~60 nodes directly reachable and 500+ visible in the metro area. Which is pretty cool.

I'm now in the four corners area outside of Orlando, and there is zero activity that I can see. I had to reinstall the regular (non-DragonCon) firmware, and maybe I screwed that up. Or maybe I'm just too far out in the boonies.

I'm still pretty new, so if anyone in the Orlando area has tips, reach out!

Todd Sundsted
screenshot of the Aussiecon 5 / Worldcon 86 fediverse profile, noting the dates (July 27-31, 2028) and mentioning an "accompanying" full solar eclipse on July 22.

This is pretty cool:

...timed to coincide with a full solar eclipse over Australia on 22 July...

We are already making plans.

#Aussiecon #Worldcon

Todd Sundsted
a t-rex inflatable dancing on stage with a metal band dressed in Star Wars black uniforms, from the midst of the audience

…during their thundering cover of John Williams’ Jurassic Park theme…

#DragonCon #GalacticEmpire

Todd Sundsted
Todd Sundsted

my hot take: LLM-based AIs are going to be classified as weapons

Todd Sundsted

a parody of Weird Als including more accordions than I’ve ever seen in one picture.

Weird Al cosplay photoshoot on stairs with about 30+ cosplayers dressed as Weird Al and characters he has portrayed—including Kurt Cobain, Indiana Jones, Devo, and a surgeon—many holding accordions

#DragonCon #WeirdAl

Todd Sundsted
Todd Sundsted
Release v3.12.0 of Ktistec

This release encompasses two broad sets of changes: widening the pool of candidates for feeds and more carefully checking the origin of inbound activities (broadly FEP-fe34, Origin-based security model).

Candidates for feeds were originally limited to posts in the actor's mailboxes. This decision made authorization easy but omitted clearly acceptable posts (for example, posts addressed to the public collection) that arrived via other means (for example, filling in a thread).

Prior to this release, inbox processing did not consistently define an object's origin nor did it apply consistent rules to what it admitted based on the origin.

FEP-fe34 is still not fully enforced, and truth be told, I'm still reviewing some of its mandates, so I'm not yet listing it in Ktistec's federation documentation.

Here's the full list of changes:

Added

  • Notify a deck pane when it has new posts.

Fixed

  • Retry an unresolved quote authorization.
  • Label a draft with the status of its quote request.
  • Compare origins when deciding whether to trust an IRI, key document, or owner.
  • Ignore a trailing slash when matching a dereferenced document's IRI.
  • Allow only Create and Update to update objects.
  • Ignore an inbound vote that fails the FEP-9967 checks.
  • Expand commonly omitted ActivityStreams context terms.
  • Break a long link rather than let it overflow.

Changed

  • Widen the feed scan to every object the server holds.
  • Address a published feed by slug rather than by id.

Removed

  • The proxyUrl property from the actor document.

I am still working hard on the feed deck. Both notifications and feed ordering now work. It's now my preferred reading interface, and should be ready by the next release!

#ktistec #crystallang #activitypub #fediverse

Todd Sundsted

I left my #meshtastic node on overnight and it found 24 others. my assumption, now confirmed, is that i live in a pretty low coverage area.

flying to atlanta later today. i believe they have a pretty good mesh.

Todd Sundsted

just powered up and connected to my first #meshtastic node. i have no idea what i’m doing…