flamingos-cant (hopepunk arc)

Webp’s strongest soldier.

  • 5 Posts
  • 18 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle


  • One problem with the whole C2S thing is you can easily end up in the Matrix/XMPP situation where some clients and servers implement some smattering of standards and it just becomes confusing to navigate and use.

    This is approximately the situation in the fediverse today, with Mastodon in the role of Gmail. The difference is that email has IMAP and SMTP, client protocols that are not only standardized but universally adopted. Every email server implements them and every email client expects them.

    Tuta has entered the chat.








  • I was curious to see how they handle this on the fedi side, because they obviously can’t stop you from uploading images to other instances, so decided to do some digging myself.

    The fedi code for this is here and looks like this:

    # Alert regarding fascist meme content
    if site.enable_chan_image_filter and toxic_community and img_width < 2000:  # images > 2000px tend to be real photos instead of 4chan screenshots.
        if os.environ.get('ALLOW_4CHAN', None) is None:
            try:
                image_text = pytesseract.image_to_string(
                    Image.open(BytesIO(source_image)).convert('L'), timeout=30)
            except Exception:
                image_text = ''
            if 'Anonymous' in image_text and (
                    'No.' in image_text or ' N0' in image_text):  # chan posts usually contain the text 'Anonymous' and ' No.12345'
                post = session.query(Post).filter_by(image_id=file.id).first()
                targets_data = {'gen': '0',
                                'post_id': post.id,
                                'orig_post_title': post.title,
                                'orig_post_body': post.body
                                }
                notification = Notification(title='Review this',
                                            user_id=1,
                                            author_id=post.user_id,
                                            url=post.slug,
                                            notif_type=NOTIF_REPORT,
                                            subtype='post_with_suspicious_image',
                                            targets=targets_data)
                session.add(notification)
                session.commit()
    
    

    The curious thing here, apart from there being both an environmental variable and site setting for this, is the toxic_community variable. This seems to be a renaming of the low_quality field Piefed applies to communities, which are just communities with either memes or shitpost in their name.

    You also don’t get social credits docked for this.








  • Doing it this way is why small instances gets hammered when a user’s post goes viral.

    Setting up caching in the reverse proxy layer would alleviate this a lot of this. Like, GoToSocial only recommends to set up caching for the key and webfinger endpoints, where having it set up to cache posts and profiles for like 60 seconds (or however long the Cache-Control header says, Mastodon defaults to 180s) would alleviate the strain on the server so much.

    There are other thing you can do, like this post explains some other things for Misskey, but the defaults should be sensible so you don’t have to be a sysadmin expert to host an instance and they’re currently not. I host 2 Lemmy instances (ukfli.uk and sappho.social) from a £5/month VPS and they’re able to handle bursts of hundreds of requests without issue.

    Bluesky is built to assume a handful of big relay (remember that a relay can merge in contents of another) and a bunch of appview and a ton of PDS servers, feed generators, moderation labelers, etc.

    People are already building small, non-archival relays so this assumption seems mute. It’s also important to remember that relays are an optimisation, not a core part of the protocol.


  • I mean, this would become less trivial the more replays go into use, where to get a full view you’d have to pull from all the relays that exist.

    ActivityPub’s solution to this is just IMO better, the original post has a replies collection attached to it that acts as the authority the replies the post has. This also allows creators to eject replies from the collection. There are issues with the way fedi software currently handles fetching from these reply collections, but the missing replies thing is very solvable in ActivityPub.