#NoAI, #Emacs, #Perl, #Rustlang, #PostScript, #Linux sysadmin, polyglot programming, #boardgames, #RPGs, too many #podcast s, 3d modelling and #3dprinting, and an occasional #ukulele. He/him or they/them. Here's a nickel, kid. Get yourself a better computer. If I unfollow you it's probably for my mental health/distraction rather than anything you've done. If you want to follow me, have a profile that looks as if it was written by a human. On Mastodon since 2022-11-21.
Roger BW 😷
@RogerBW@discordian.social
discordian.social
A ukulele songbook with Crystal and Typst #CrystalLang #Typst #BlogFiredrakeOrg https://blog.firedrake.org/archive/2026/07/A_ukulele_songbook_with_Crystal_and_Typst.html
CrystalLanguage
@CrystalLanguage@fosstodon.org
Crystal is a programming language, born and raised at Manas.Tech, that cares for both programmers and computers: it is easy to learn and code, yet very performant, easy to scale and typesafe.
fosstodon.org
A new release is out: Crystal 1.21.0 🚀
We've reached a major milestone with making Execution Contexts the default concurrency model. https://crystal-lang.org/2026/07/12/releasing-execution-contexts/
Read more at https://crystal-lang.org/2026/07/16/1.21.0-released/
#crystallang #release
Release v3.8.0 of Ktistec
There are two significant new additions in release v3.8.0 of ktistec.
First, the actor cards on the followed/following pages show relevant actor status. On the followed page, it tells you how long it has been since that actor published an activity (create, announce, like, etc.) that was sent to your server. It's a proxy for how active they are (or are not). On the following page, it tells you how long it has been since you have been able to send to that server. It's a proxy for whether that server is reachable or that actor is still alive.
Second, the backend for user-defined algorithmic feeds is in place, along with a keyword/hashtag/mention feeds implementation. You can't set up a feed via the user-interface, but the feeds work if you set one up directly in the database—which is how I've been previewing them. I plan to release the frontend next week.
Here's the full changelog:
Added
Display activity status on actor cards.Back-end support for user-defined algorithmic feeds.Apply community-relayed moderator deletes received as a Group's wrapped Announce.Follow a web page's rel="alternate" link when searching.
Fixed
Avoid loading entire has_many collections when constructing child records.Evaluate the same-origin fetch gate against an embedded node's own identifier.Accept a delete of an uncached object or actor without verification.Catch MIME::Multipart::Error in local file-upload handling.Map malformed request-body parse failures to Bad Request.
#ktistec #crystallang #activitypub #fediverse
Release v3.4.1 of Ktistec
This release fixes a small number of bugs found in recent releases.
The full changelog:
Fixed
Prevent runaway recursion when handling filtered posts.Ensure profile header and header_static images are always present.Render the inline replies collection for local objects.Exclude blocked actors from object statistics and notifications.
Changed
Return 410 Gone instead of 404 Not Found for missing actors.
Removed
Tag counts on public pages.
This release fixes a hard-to-exploit but potentially server-crashing bug. If you're running v3.3.9 or v3.4.0, you should upgrade.
#ktistec #crystallang #activitypub #fediverse
Release v3.3.9 of Ktistec
Release v3.3.9 of Ktistec continues the security hardening work from recent releases, with further progress on the Mastodon-compatible API.
Of note: all network connections now go through a new Ktistec::Network module. This allows Ktistec to limit the size of HTTP bodies it reads, on both inbound and outbound requests, and ensures it only opens connections to valid remote IP addresses.
Here's the full changelog:
Added
New Mastodon-compatible APIs.
Fixed
Close DNS rebinding window for outbound HTTP requests.Limit the size of HTTP bodies the server reads.Sanitize RSS feed output to prevent CDATA breakout.Destroy all sessions and access tokens on account termination.
Changed
Ensure all GET and POST requests utilize Ktistec::Network.Process local recipients in-process in inbox/outbox activity processors.
As always, it's worth upgrading for the security fixes!
#ktistec #crystallang #activitypub #fediverse
You've seen all posts