grunfink,
@grunfink@comam.es avatar

I'm glad to announce the release of version 2.53 of , the simple, minimalistic instance server written in C. It includes the following changes:

New user feature to search by post content (using regular expressions) or tag.

Added some (partial) support for Event object types.

Minor fixes: Allow unboosting your own posts (contributed by khm), CSS fixes for the Dillo browser (contributed by kvibber).

https://comam.es/what-is-snac

If you find useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink

teajaygrey,
@teajaygrey@rap.social avatar

@grunfink I submitted a PR to update MacPorts' snac to 2.53 here:

https://github.com/macports/macports-ports/pull/23996

GitHub Actions CI passed OK!

As in the past, I don't have commit access, so it will be up to someone else to merge it.

Thank you for your continued improvements and to khm and kvibber for their contributions as well!

#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded #NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces

teajaygrey,
@teajaygrey@rap.social avatar

@grunfink Totally unexpected yet welcome:

Someone else submitted a PR to improve the MacPorts' snac Portfile to work with older versions of gcc and tested on a version of OS X I haven't used as a "daily driver" in years:

https://github.com/macports/macports-ports/pull/23999

My approach with newer code on older OSes has typically been to install newer C compilers such as recent clang/llvm but there are many ways to get similar results!

grunfink,
@grunfink@comam.es avatar

Great! Glad to see working in all kinds of systems, specially the older ones.

Shamar,

@grunfink

Snac run as a daemon.

I wonder how hard it would be to turn it into a cgi: it should start, read the config, execute the task requested via HTTP (read from stdin) and close.

Maybe lock when appropriate.

Also (despite not being an issue for such service) I wonder how much the performance would suffer.

grunfink,
@grunfink@comam.es avatar

Hello. I don't think it would be impossible, but I think the experience will be severely lacking. The start and stop times of are fast, but from the top of my head, these things could prove problematic:

  • The maximum number of simultaneous processes would be harder to control (it should be done on the frontend http server, and that would require specific configuration for every server implementation).
  • Every activity (likes, boosts, posts) generates a very big bunch of connections. After a new one, the process should manage the full queue and not exit until it's done. If there are a bunch of these operations still running, the http server would not open on new queries, or at least it will require some configuration tuning. As it's now, it's trivial to reserve resources and give top priority to incoming requests.
  • And most important, the problem of retries. The fediverse is a jungle of overloaded, fallen, slow servers. Activity messages should be stored somewhere to be retried later, probably after a timer. This is much harder to manage from a CGI, that only runs on demand.

As I say, it's not impossible, but a project with this approach should be carefully developed taking this thinks into account.

Shamar,

@grunfink

Thanks for the insights!

aslakr,
@aslakr@mastodon.social avatar

@grunfink @Shamar Maybe related, Richard Hipp gave some numbers for Fossil running as CGI on sqlite.org https://fossil-scm.org/forum/forumpost/fdd3d9c271ceb378?t=h

For ActivityPub I guess one need to be able to push activity outside the cgi to make it efficient? Either running using cron or a different submit-like (sendmail-ish) service.

stefano,
@stefano@bsd.cafe avatar

@grunfink Great! Thank you!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • fediverse
  • DreamBathrooms
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • mdbf
  • GTA5RPClips
  • provamag3
  • ethstaker
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • tacticalgear
  • anitta
  • megavids
  • Leos
  • cisconetworking
  • JUstTest
  • lostlight
  • All magazines