@grunfink@comam.es avatar

grunfink

@grunfink@comam.es

Author of the #snac #ActivityPub instance server and other pieces of singular software. Not a real Grünfink. #fedi22

This profile is from a federated server and may be incomplete. Browse more on the original instance.

grunfink, to fediverse
@grunfink@comam.es avatar

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

A new instance page, that shows all posts by users in the same instance (like the public instance timeline, but interactive). This will help building communities.

Follower-only replies to unknown users are not shown in timelines.

Added verification of metadata links: if the linked page contains a link back to the snac user with a rel="me" attribute, it's marked as verified.

Added a new server-level configuration parameter: min_account_age. If this value (in seconds) is set in server.json, any activity coming from accounts that were created newer than that will be discarded. This can be used to mitigate spam.

Added a profile-page relation to links in webfinger responses (contributed by khm).

Fixed some regressions and a crash.

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

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

This release has been inspired by the album The Sudbury Inn by .

grunfink,
@grunfink@comam.es avatar

Oh. I see you found a bug in how validated links are constructed in the Mastodon API.

I'll fix it.

CC: @gyptazy

grunfink,
@grunfink@comam.es avatar

I've just pushed a quick fix for this... would be so kind to test it?

Thanks for your help.

iacore, to random
@iacore@mastodon.de avatar

@grunfink

In xs_http_request, is headers freed? Or is it not necessary. headers is not freed outside either at one place (in verify_links).

grunfink,
@grunfink@comam.es avatar

All variables of xs * type are automatically freed after they get out of scope, as they use the __attribute__ ((__cleanup__)) mechanism. So it's not necessary.

yonle, to random

@grunfink what do you think about implementing a feature to reject post / activity from newly created external account?

For reference, You could check https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/lib/pleroma/web/activity_pub/mrf/reject_newly_created_account_note_policy.ex

grunfink,
@grunfink@comam.es avatar

I'm not sure if I like the idea. If this feature were implemented everywhere, testing new fediverse instances and software would become unbearable.

Anyway, I don't totally discard implementing it. I'll write it on the TODO file.

grunfink,
@grunfink@comam.es avatar

Even though I don't personally like it, i've started to implement this account minimum acceptable age (it helps that it's really simple to do).

grunfink,
@grunfink@comam.es avatar

Yes, it's what I'm working on right now.

grunfink,
@grunfink@comam.es avatar

I've just pushed this feature to the repository (looks good, made some tests, but I'm in a hurry right now). The new value min_account_age (in seconds) can be added to server.json to drop any activity from newly created remote accounts.

grunfink,
@grunfink@comam.es avatar

Are you sure you are testing the correct snac version, and that the account creation date is really out of bounds? Because in my tests I'm correctly seeing the rejections in the log, both for too new or too old dates in each actors' published fields.

tetra, to random

@grunfink Please add option to disable this 🙏

grunfink,
@grunfink@comam.es avatar

You mean the "eyeroll" shortcut (I see it underlined for some reason), or all shortcuts and emojis completely?

grunfink,
@grunfink@comam.es avatar

Why? Do they cause any problem I don't see?

mookie, to random

thanks @grunfink for #snac!

grunfink,
@grunfink@comam.es avatar

You're welcome!

surfbum, to random

@grunfink can we follow relay hashtags with #snac ??

e.g. https://relay.fedi.buzz/tag/surfing I tried but it didn't seem to add to my follow list?

grunfink,
@grunfink@comam.es avatar

No, hashtag following is not supported by now.

grunfink,
@grunfink@comam.es avatar

Not to be done soon.

According to the ActivityPub protocol that moves the Fediverse, hashtags are not objects by themselves and cannot be followed. I'm not too aware about how Mastodon implements following tags, but most probably it uses some shortcuts like using its own API to keep track of hashtags from other instances or internally following local tags or whatever.

I think it would be an interesting feature to have, though. So maybe someday.

tetra, to random

@grunfink Wondering if there have been any suggestions for quote support
If not, I'd like to request it

grunfink,
@grunfink@comam.es avatar

I'm not sure what do you mean by quote support. Can you elaborate, please?

grunfink,
@grunfink@comam.es avatar

I've just seen a quoted reply by an Akkoma user.

Curiously, these messages mark the replied post differently (i.e. not using an inReplyTo field, but a quoteUrl one). I don't know if this is an ActivityPub standard or a private extension.

Anyway, I'll write it in the TODO file to take a look at it in the near future.

Thanks for the suggestion.

CC: @gyptazy

grunfink,
@grunfink@comam.es avatar

Thanks for this very valuable information!

CC: @gyptazy @tetra

grunfink, to fediverse
@grunfink@comam.es avatar

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

Added pagination to the notification page.

The New Post... option now includes an optional field to set the URL of an ActivityPub post to be a reply to.

Fixed spurious notifications from the same user.

Fixed repeated mentions in the reply text field.

One-post only pages include the post content instead of the user bio in their metadata (improving post previews from other software).

Mastodon API: Added support for timelines by tag (for sites like e.g. https://fediwall.social to work).

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

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

This release has been inspired by the album Fire Hell and Holy Water by #GioliAndAssia.

#snacAnnounces

grunfink,
@grunfink@comam.es avatar

You're welcome!

grunfink,
@grunfink@comam.es avatar

Thanks!

When you say snac does not requires a database, you mean all data is stored as flat files ?

Yes, exactly. I know this is technically a database 😆, but you don't need to install nor admin any SQL database nor any NoSQL oddity like Redis. As a friend of mine likes to say, you "don't need to become a dbadmin to run snac".

This also makes snac's storage easily portable from system to system, as a tarfile or rsync of the base directory is enough.

grunfink,
@grunfink@comam.es avatar

I have no idea about Akkoma. There is no tool to migrate from other systems right now; the only thing one can do is to import the list of people you follow from a Mastodon csv export file (the process for doing this is documented in the administrator man page).

grunfink,
@grunfink@comam.es avatar

Mmmm... I haven't tested any of this; on first thought, I think it would be possible.

CC: @clovis

tetra, to random

@grunfink Is there a way to make posts followers-only or defederated?
If not, I'd like to see the feature in a future release

grunfink,
@grunfink@comam.es avatar

Not now; post are either public or for mentioned people only. Maybe in the future.

tetra, to random

@grunfink Is there an undocumented way to limit notification entries (like max_timeline_entries)?
My notification list is long enough that it takes a good amount of time to load on just about any client

grunfink,
@grunfink@comam.es avatar

Oh, I see. I didn't expect that workflow; I always thought the notification area to be a very ephemeral place (see, reply, clear).

Now I think @tetra works the same way.

Given this new information, I think that at least two features are needed; the "clear this notification" option you mention, and a way to page the area with "More..." links, in a similar way the public and private timelines do.

What do you think?

PS: I love to know that your snac experience in a beaglebone (I used to have one, sadly it died) is satisfactory 🙂

grunfink, to fediverse
@grunfink@comam.es avatar

One year of #snac

If the source code version control history is to be trusted, I started developing snac (a simple, minimalistic #ActivityPub instance server written in C) exactly one year ago (Sept 19th).

It was not my first experience with ActivityPub: I had built a prototype version in Python some months before (hence the "2" in the snac2 repository name), and back in 2019 I made some partial implementation for an unrelated (and now forgotten) blog project, so the protocol was not totally new to me.

These are my thoughts about one year of development.

Why did I start it? Because I read somewhere about the (still baffling to me) humoungous requirements of a basic #Mastodon installation. I read a lot of people affirming that was the bare minimum: "it CAN'T be done with less resources". But I've always seen it as a glorified short message application and challenged myself to write a feature-complete #Fediverse instance with the following goals: keeping it small, simple, easily deployed, and lacking the bloat software tendencies of modern times.

Did it come out as expected? not totally sure, but probably yes. I even implemented more things that I originally planned (I initially said a big NO to myself regarding adding Mastodon API support, but finally did it and it works mostly well). The program is still somewhat small (a stripped binary of less that 300k probably counts). The no-database, no-cookies, no-javascript absolute rules still apply. I'm fine with the (opinionated) web UI that shows conversations as threaded trees instead of the plain, dull stream of posts that Mastodon or Twitter show. It cooperates pretty well with the always growing ecosystem of ActivityPub applications.

Was the time and effort worth it? On this, I'm not sure. I'm old and depressed and unemployed, so developing snac has kept my brain busy and entertained for a little while. But it has been more work that I expected: the ActivityPub specification is a bit diffuse in some areas, so every implementation does some things a bit different and many corner cases had to be implemented; some parts (specifically, the Mastodon API) have been very tedious to implement and test; and also, helping users debugging remote systems is difficult and very stressing for me. Fortunately, some fellow developers have helped me and I'm immensely thankful to them.

Has it been a success? I'm pretty sure about this: no. I thought that the small footprint, the lack of moving parts and the feature set would be attractive to a large base of users, but this has not been the case. Perhaps I've been unable to reach the neccessary potential users for it to reach some critical mass (a failure of the PR department 😆). Perhaps what I consider interesting features (minimalism, footprint, the web UI concept, Mastodon API compatibility, etc.) are not that valuable for most. Perhaps people disregard it just because it's not Mastodon. Perhaps there are errors and crashes that I'm not aware of. Perhaps snac is rubbish and I'm unable to see it. The reality is that snac is a niche and unknown part of the Fediverse ecosystem and there is no sign that the user base will grow from the current small fistful of deployments out there.

What about the future? I'm also not sure. Apart from some pending bugfixes and wishlist items mentioned in the TODO file, I've implemented all the features I initially expected and then many more, so I consider snac a finished program. New bugs will happen, that's for sure. New ActivityPub applications will show out there and, if experience tells me anything, they will all have slightly different protocol interpretations that will need some code tuning on my part. Development will continue; snac is a maintained program. But big changes will probably not happen anymore.

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

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

grunfink,
@grunfink@comam.es avatar

Coffees are optional 😀

Thanks for enjoying and using snac, and for your improvement suggestions (some of them have been implemented and will be announced soon).

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