Hi 👋
We’re still alive, just kind of on a hiatus for the moment. We want to get things going again soon, what cool developments have you seen happening in the #Fediverse recently?
#Tag
We’re still alive, just kind of on a hiatus for the moment. We want to get things going again soon, what cool developments have you seen happening in the #Fediverse recently?
⁂ Article
Release v3.2.0 of Ktistec
The major feature in v3.2.0 of Ktistec is thread analysis. The previous release, v3.1.2, added support for viewing threads from Lemmy communities. I follow the Open Source community, which leads to many large threads. The thread on FFMpeg and Google has 112 posts and is still growing.
Thread analysis helps me navigate these extensive conversations. It includes: top contributors, a timeline histogram, and notable branches.
The analysis applies several heuristics to identify interesting branches of the main thread. “Interesting” is subjective, but the algorithm currently looks for sudden bursts of activity and highlights those areas. Ktistec uses this to create a table of contents that links directly to those branches. Clicking on one of these links takes you to a branch-only view that focuses on the selected part of the thread.
It's fast—I anticipated needing to cache analyses, but analyzing a thread with over 400 posts takes only about 50 milliseconds on my production server.
Figure 1: Screenshot of the final design. Notable branches link to subsets of the thread.This release also addresses an object visibility regression that was introduced in a previous version.
Full Changelog
Added
analyze_thread and get_threadFixed
Changed
⁂ Article
Release v3.2.0 of Ktistec
The major feature in v3.2.0 of Ktistec is thread analysis. The previous release, v3.1.2, added support for viewing threads from Lemmy communities. I follow the Open Source community, which leads to many large threads. The thread on FFMpeg and Google has 112 posts and is still growing.
Thread analysis helps me navigate these extensive conversations. It includes: top contributors, a timeline histogram, and notable branches.
The analysis applies several heuristics to identify interesting branches of the main thread. “Interesting” is subjective, but the algorithm currently looks for sudden bursts of activity and highlights those areas. Ktistec uses this to create a table of contents that links directly to those branches. Clicking on one of these links takes you to a branch-only view that focuses on the selected part of the thread.
It's fast—I anticipated needing to cache analyses, but analyzing a thread with over 400 posts takes only about 50 milliseconds on my production server.
Figure 1: Screenshot of the final design. Notable branches link to subsets of the thread.This release also addresses an object visibility regression that was introduced in a previous version.
Full Changelog
Added
analyze_thread and get_threadFixed
Changed
Okay, my analysis is complete! Here are the core changes to Ktistec required for Mastodon API compatibility:
code_challenge parameter) ensures that an authorization code can only be exchanged by the client that initiated the OAuth request.client_credentials grant type: The client_credentials grant type is used to grant a client app-level access without requiring user authentication. Mastodon requires this for some of its "public" API endpoints. This necessitates a change to the database schema to allow a null account id in the client secrets table.created_at timestamp property: Mastodon requires a non-standard created_at property in the body of the /oauth/token endpoint response instead of (in addition to) the standard expires_in property.resource parameter: This is honestly a bug on my part.The only thing here that gives me heartburn is that PKCE is not required.
Okay, my analysis is complete! Here are the core changes to Ktistec required for Mastodon API compatibility:
code_challenge parameter) ensures that an authorization code can only be exchanged by the client that initiated the OAuth request.client_credentials grant type: The client_credentials grant type is used to grant a client app-level access without requiring user authentication. Mastodon requires this for some of its "public" API endpoints. This necessitates a change to the database schema to allow a null account id in the client secrets table.created_at timestamp property: Mastodon requires a non-standard created_at property in the body of the /oauth/token endpoint response instead of (in addition to) the standard expires_in property.resource parameter: This is honestly a bug on my part.The only thing here that gives me heartburn is that PKCE is not required.
⁂ Article
Release v3.1.3 of Ktistec
There are two big features in release v3.1.3 of Ktistec: auto-approve followers and a new image viewer.
Auto-approve followers is conceptually simple ("the server automatically sends an Accept activity when it receives a Follow activity") but it required extensive changes to some of the oldest code in the codebase: the inboxes and outboxes controllers. I refactored inbox and outbox side-effect processing into independent services, which made it possible to support side-effects like auto-approve follow (and also auto-follow back), without having to go through the controllers.
A more significant change for me personally was replacing the lightGallery image gallery (an external dependency) with my own implementation. It's not as slick, and not as full of features—I wrote it in two days—but it is fully free software, and that's important to me.
Added
Fixed
Changed
The OAuth changes set the groundwork for better support of the Mastodon API and the Fediverse clients that depend on it. Stay tuned!
⁂ Article
Release v3.1.3 of Ktistec
There are two big features in release v3.1.3 of Ktistec: auto-approve followers and a new image viewer.
Auto-approve followers is conceptually simple ("the server automatically sends an Accept activity when it receives a Follow activity") but it required extensive changes to some of the oldest code in the codebase: the inboxes and outboxes controllers. I refactored inbox and outbox side-effect processing into independent services, which made it possible to support side-effects like auto-approve follow (and also auto-follow back), without having to go through the controllers.
A more significant change for me personally was replacing the lightGallery image gallery (an external dependency) with my own implementation. It's not as slick, and not as full of features—I wrote it in two days—but it is fully free software, and that's important to me.
Added
Fixed
Changed
The OAuth changes set the groundwork for better support of the Mastodon API and the Fediverse clients that depend on it. Stay tuned!
⁂ Article
Release v3.1.2 of Ktistec
I'm working on federation issues.
👻 Release v3.1.2 of Ktistec improves support for Lemmy and community servers like it that distribute content by wrapping it in Announce activities (FEP-1b12: Group federation support). Ktistec also supports the audience property, although support for that was removed from Lemmy earlier this year.
🎃 This release also adds support for delivering to shared inboxes, which are widely supported by other ActivityPub servers. Despite being federated, the Fediverse is not highly distributed, and this optimization can reduce outbound delivery traffic by 10-20x.
Added
Dislike activity.audience property on activities and objects.Fixed
Announce activities.Changed
Enjoy!
⁂ Article
Release v3.1.2 of Ktistec
I'm working on federation issues.
👻 Release v3.1.2 of Ktistec improves support for Lemmy and community servers like it that distribute content by wrapping it in Announce activities (FEP-1b12: Group federation support). Ktistec also supports the audience property, although support for that was removed from Lemmy earlier this year.
🎃 This release also adds support for delivering to shared inboxes, which are widely supported by other ActivityPub servers. Despite being federated, the Fediverse is not highly distributed, and this optimization can reduce outbound delivery traffic by 10-20x.
Added
Dislike activity.audience property on activities and objects.Fixed
Announce activities.Changed
Enjoy!
Release v3.1.0 of Ktistec
This release of Ktistec merges the main_3.x branch into the main branch.
Managing two branches, and two releases, was a lot of work. And sometimes changes were lost in the shuffle, like:
Added
I have about a dozen more features and fixes that are ready for the next release, but to keep things simple, I'm doing the merge first, in its own commit.
Release v3.1.0 of Ktistec
This release of Ktistec merges the main_3.x branch into the main branch.
Managing two branches, and two releases, was a lot of work. And sometimes changes were lost in the shuffle, like:
Added
I have about a dozen more features and fixes that are ready for the next release, but to keep things simple, I'm doing the merge first, in its own commit.
wondering what’s the easiest thing around that can quickly take a video and transcribe the audio? ideally in a way that I could add a “transcribe” button to #ktistec. i appreciate the benefits of video but it’s not the format i’m looking to consume most of the time.
A space for Bonfire maintainers and contributors to communicate