I just released v2.0.0-10 of ktistec. I expect this to be the last pre-release before releasing v2.0.0.
As ironic as it sounds, the Fediverse doesn't feel very federated. ActivityPub, in particular, doesn't account for the real topology of the Fediverse—large groups of users clustered together on large server instances. (Or maybe it does, and this is a feature, not a bug!) Exchanges are largely actor to actor, and large servers create the illusion of "a Fediverse" by pooling their local actors' aggregate inbound and outbound activity.
The consequence of this is that running a single-user instance can feel lonely.
This release finally tries to address that. Hashtags and threads are the backbone of expressed interests and conversations in the Fediverse. Ktistec now lets you follow hashtags and threads, and will proactively (but gently) pull relevant content in to your server. Most of the changes in the last year revolve around making this work well.
The rest of the changes are less visible:
Substantial reduction in build times and memory required to build.
Substantial reduction in database size (if you care to shrink it) and query performance.
Substantial reduction in the time it takes to run tests.
(So that it's clear, I have a massive amount of respect for anyone who builds software and gives it away for free. None of the decisions I've made with Ktistec should be taken as personal criticism of anyone else in this space!)
pushing a boatload of small improvements and fixes to main that i've been running myself for the last couple weeks... there are many ways a request to another activity pub server can fail—ktistec does a much better job of logging those failures, among other things...
i added code to log slow queries in ktistec and it's already paying dividends. most are obviously missing indexes and it's great to fix them, but the latest example—which is missing an index—is querying a table that only has one row (in my single user instance). should that table need an index on that column? i mean, just return that row...
fwiw, a slow query is currently anything that takes longer than 50msec. i wonder if that is tight enough...?
one thing ktistec related that i haven't had the time for is working on build and deployment tools. there are a bunch of outstanding requests—and a few PRs—for docker builds, packaged deployments for various hosting environments, etc.
if you're interested in contributing, let me know. you only have to agree to maintain them—i won't be able to.
Came across some #threadiverse compatibility issues in @toddsundsted's Ktistec project posted by @rahul (← this account is a #Ktistec instance) and it made me think: I would love to have a fediverse compatibility "issueathon" where we make a super list of everything that we expect to work across the fediverse and where all the issue are at.
@toddsundsted I think focusing an interoperate-a-thon on some of these smaller server projects like #Ktistec, #SNAC, #Bovine, #Kbin, #Takahe etc would be great. I wonder what the best format would be? Set aside a weekend sometime and set up a little global event for it maybe?
i've been following hashtags for a while now. i turn off shares (boosts) and replies so they don't appear in my timeline (there's too much sharing going on out there), but then follow a handful of hashtags (like #woodworking and #crystallang and #boardgame) to see more of what i like!
I just released v2.0.0-8 of ktistec. The most impactful changes are:
No more dependencies on externally hosted assets (and fewer dependencies, overall)
Basic support for timeline filters (no shares and no replies).
Support for content filtering by keyword.
Volume has dropped off in my timeline, for the most part, now that the surge of people who signed up for Mastodon accounts a couple months ago have gone back to posting on Twitter, or have stopped posted about the transition, or whatever. But fine grained control is nice, and filtering allows me to tune my experience—better late than never!
i released 2.0.0-7 just in time for the new year. it includes contributions from @relistan and @rahul, the introduction of CI (the build is successful), and bug fixes.
i am slowly working my way toward more flexibility for reading and managing federated content.
#activitypub#ktistec#microblog I'm thinking about setting up two single-user activitypub servers. One would be personal, and replace my presence on infosec.exchange. The other would be for an organization to publicize news items. My preference is for implementations in python, javascript, or php. Two that seem plausible are #ktistec and microblog.pub. Any advice on which to choose or how to think about the evaluation of these?
Today's release of code fixes things that have been annoying me for a while:
Commits c01e797 to b21a97a ensure that bulk assignment raises an error when the type of an argument value does not match that of the corresponding property being assigned to. In the past, attempts were silently ignored. As you'd expect, adding the check and raising the error was easy—cleaning up all the places I'd carelessly passed in nil and other garbage was not. Lesson learned? We'll see...
While I'm in there, commits 1ac498e to 3d45ece ensure that bulk assignment raises an error when attempting to assign a property defined only by a getter (which is, effectively, a read-only property). Previously, this code wouldn't even compile, thereby unintentionally coupling database persistence and bulk assignability.
Finally, commits 5c2ec70 to 99dca65 clean up a few small defects in presentation: wide blocks of code no longer blow out the width of the parent container, image attachments present at ratios closer to what Mastodon uses (the presumption being that's what people optimize for if they optimize for anything) (this should also fix issue #53), and figure captions get a little breathing room. I'm no good at CSS, so this kind of thing takes me forever.
Reading up on ActivityPub and investigating what'd be involved in building a simple single-user Fediverse compatible blog thing (probably in Go). It's not looking like a terribly complicated project.
What software do people recommend I host if I want to make my own fediverse activity pub server? I was thinking to host pleroma but I would like to get other peoples recommendations.