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 don't love the changes to Lucky in D&D 2024. It probably makes sense from a balance point of view or something, but it also feels like characters with the Lucky feat aren't really "lucky" anymore because there are so many ways to have advantage and Lucky is now just one of them. 

#dnd #dnd2024

Todd Sundsted

🏆 Yak-shave accomplished!

I tore apart the monolithic editor in #ktistec and replaced it with a configurable framework of editor components—including a component for editing polls.

The Ktistec editor showing buttons for enabling and disabling editor components, including the rich text editor, the Markdown editor, optional fields (such as title, summary, etc.), and polls.

I'm planning to work on an editor component for managing attachments next.

Todd Sundsted

sometimes i feel like building software is akin to throwing myself off a cliff and then hoping i can build the thing i envisioned a moment ago before i hit the ground. does anyone else get that?

i decided to tear apart the monolithic editor in #ktistec and to replace it with a configurable system of editing components. how hard could that be, i thought... well, the ground approaches and i only just got a just-about-works proof-of-concept complete!

Todd Sundsted

I just upgraded litestream on my epiktistes.com server from v0.5.3 to v0.5.6 and I am cautiously optimistic. v0.5.3 had a bug that filled up my storage, pegged the CPU, and generally broke my server by locking my ktistec database for 10-20 seconds at a time. I am posting this to deliberately test fate! C'mon... if you're gonna fail again, then fail and get it over with!

#litestream

Todd SundstedCrystalLanguage

What about a shiny Crystal 1.19.0 release for the new year?

The compiler now uses execution contexts and parallel LLVM codegen on all targets (including Windows) a new Time::Instant type, compile time flags with values, and many runtime improvements and fixes.

See all the details in the release notes: crystal-lang.org/2026/01/15/1.

Todd Sundsted

The Best of Bootie Mashup 2025 tracks dropped a couple weeks ago.

I've gotten to the point where the mashups are more recognizable than the original tunes...

#dj #mashups

Todd Sundsted

I’m wondering if there are any common or standard approaches to modeling RSS feeds as ActivityPub objects?

I’m thinking of an RSSFeed actor and RSSPost or something for the items but I’d love to follow established patterns.

Friendica supports RSS feeds. Maybe that’s a good place to start?

#ActivityPub

Todd Sundsted
Release v3.2.7 of Ktistec

The two big features in release v3.2.7 of Ktistec are back end support for creating polls (the front end is coming in the next release) and advanced theming support—specifically, a rich vocabulary of CSS class values and data attributes on which to build a theme. The full set is documented in the README. I'll post more on how I'm using these later this week.

Here is the full set of notable changes:

Added

  • Back-end support for creating polls.
  • Advanced theming support with new classes, data attributes, and view helpers.
  • Task status display on admin page showing running and imminently scheduled task counts.

Fixed

  • Poll vote form now correctly submits Question ID.

Changed

  • Move location of Ktistec version notice. (fixes #133)
  • Updated admin page for better accessibility and less clutter.

#ktistec #crystallang #activitypub #fediverse

Todd Sundsted
I'm exploring possible next features for Ktistec and would love Fediverse input. Which distinctive Fediverse capability would you most like to see added next?
7
2
7
0
2
1
Todd Sundsted

working with ameba has been a treat. #ktistec is now all properly linted.

out of a few dozen rules, i disabled only five and tweaked the configuration of five more. that's a pretty good set of defaults. i also added a few custom rules covering spec hygiene. i highly recommend it!

#crystallang #ameba