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
Todd SundstedObsidian Urbex Photography
A vast, decaying industrial area with multiple levels of pipes, catwalks, and a bright window,

🏭 Iconic industrial vista. Created by shooting between two boiler stacks inside an abandoned 1950s powerplant, somewhere in Hungary

#Hungary #Photography #Urbex #UrbanExploration #Abandoned #Adventure #Explore

Todd Sundsted

i just released it and i'm already pretty happy with #ktistec hashtag/mention/keyword feeds. i created an "ActivityPub Talk" feed and i have most/all ActivityPub/Fediverse/FEP/etc. etc. etc. talk in one place.

Todd Sundsted
Release v3.9.0 of Ktistec

I shipped back-end support for algorithmic feeds in the last release. In this release I shipped front-end support. The feature needs testing and polish, so it's still not possible to navigate to the feeds editor, but if you know where to look, you can try it 😉.

"Algorithmic feeds" currently means support for custom hashtag, mention, and keyword feeds (e.g everything that mentions "#fediverse" and "#activitypub" but not "x" or "facebook").

Here's the full changelog:

Added

  • Front-end support for user-defined algorithmic feeds.
  • Allow editing optional properties on published posts.
  • Support undoing a dislike.

Fixed

  • Handle concurrent duplicate inbox delivery.
  • Don't apply custom themes on the drafts and posts pages.
  • Adapt duration units in thread analysis.
  • Restore the spinning loader.

Changed

  • Restrict theme overrides to color and reduce reliance on !important.
  • Render the homepage description in a basic segment.

Removed

  • The deliver_to state and the recipients fallback.

In the next release, algorithmic feeds get wired into the navigation!

#ktistec #crystallang #activitypub #fediverse

Todd Sundsted

i was overdue for my annual (or maybe decennial) .emacs checkup and service.

i removed support for haskell and ocaml programming—i love haskell but i'm not writing it anymore. rip. i deleted packages that support tools i've replaced with other tools (e.g. ackrg) or i just don't use (origami, counsel/ivy/swiper, etc.).

it looks like i need to migrate from a few packages to newer packages (smexamx, restclientverb, etc.). smex hasn't been maintained since ~2015 so maybe it is decennial...

#emacs

Todd Sundsted

listening to the repo man soundtrack... i didn't love the movie but i continue to love the tracks...!

#music

Todd SundstedCrystalLanguage

A new release is out: Crystal 1.21.0 🚀

We've reached a major milestone with making Execution Contexts the default concurrency model. crystal-lang.org/2026/07/12/re

Read more at crystal-lang.org/2026/07/16/1.

#crystallang #release

Todd Sundsted

i think Zombie (The Cranberries) aged well and listening to Dolores O'Riordan sing it still gives me shivers.

Todd Sundsted

"We put the exploit in a picture. The AI code reviewer never opened it."

This line from the article:

CodeRabbit ships with a default configuration that excludes image files from review outright (!**/*.png).

#ai #infosec

Todd SundstedWeek in Fediverse :fediverse_light: