this post was submitted on 30 Jan 2026
225 points (78.9% liked)

Memes

54439 readers
809 users here now

Rules:

  1. Be civil and nice.
  2. Try not to excessively repost, as a rule of thumb, wait at least 2 months to do it if you have to.

founded 6 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] AmazingWizard@lemmy.ml 112 points 2 weeks ago* (last edited 2 weeks ago) (19 children)

There are all kinds of fun stuff in the Piefed code. Allow me to dredge up a comment I made recently:

@edie@lemmy.encryptionin.space was looking at PieFed code the other week, and I ended up taking a look at it too. Its great fun to sneak a peak at.

For example, you cannot cast a vote on PieFed if you've made 0 replies, 0 posts, AND your username is 8 characters long:

    def cannot_vote(self):
        if self.is_local():
            return False
        return self.post_count == 0 and self.post_reply_count == 0 and len(
            self.user_name) == 8  # most vote manipulation bots have 8 character user names and never post any content

If a reply is created, from anywhere, that only contains the word "this", the comment is dropped (CW: ableism in the function name):

def reply_is_stupid(body) -> bool:
    lower_body = body.lower().strip()
    if lower_body == 'this' or lower_body == 'this.' or lower_body == 'this!':
        return True
    return False

Every user (remote or local) has an "attitude" which is calculated as follows: (upvotes cast - downvotes cast) / (upvotes + downvotes). If your "attitude" is < 0.0 you can't downvote.

Every account has a Social Credit Score, aka your Reputation. If your account has less than 100 reputation and is newly created, you are not considered "trustworthy" and there are limitations placed on what your account can do. Your reputation is calculated as upvotes earned - downvotes earned aka Reddit Karma. If your reputation is at -10 you also cannot downvote, and you can't create new DMs. It also flags your account automatically if your reputation is to low:

PieFed boasts that it has "4chan image detection". Let's see how that works in practice:

            if site.enable_chan_image_filter:
                # Do not allow fascist meme content
                try:
                    if '.avif' in uploaded_file.filename:
                        import pillow_avif  # NOQA
                    image_text = pytesseract.image_to_string(Image.open(BytesIO(uploaded_file.read())).convert('L'))
                except FileNotFoundError:
                    image_text = ''
                except UnidentifiedImageError:
                    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'
                    self.image_file.errors.append(
                        "This image is an invalid file type.")  # deliberately misleading error message
                    current_user.reputation -= 1
                    db.session.commit()
                    return False

Yup. If your image contains the word Anonymous, and contains the text No. or N0 it will reject the image with a fake error message. Not only does it give you a fake error, but it also will dock your Social Credit Score. Take note of the current_user.reputation -= 1

PieFed also boasts that it has AI generated text detection. Let's see how that also works in practice:

# LLM Detection
        if reply.body and '—' in reply.body and user.created_very_recently():
            # usage of em-dash is highly suspect.
            from app.utils import notify_admin
            # notify admin

This is the default detection, apparently you can use an API endpoint for that detection as well apparently, but it's not documented anywhere but within the code.

Do you want to leave a comment that is just a funny gif? No you don't. Not on PieFed, that will get your comment dropped and lower your Social Credit Score!

        if reply_is_just_link_to_gif_reaction(reply.body) and site.enable_gif_reply_rep_decrease:
            user.reputation -= 1
            raise PostReplyValidationError(_('Gif comment ignored'))

How does it know its just a gif though?

def reply_is_just_link_to_gif_reaction(body) -> bool:
    tmp_body = body.strip()
    if tmp_body.startswith('https://media.tenor.com/') or \
            tmp_body.startswith('https://media1.tenor.com/') or \
            tmp_body.startswith('https://media2.tenor.com/') or \
            tmp_body.startswith('https://media3.tenor.com/') or \
            tmp_body.startswith('https://i.giphy.com/') or \
            tmp_body.startswith('https://i.imgflip.com/') or \
            tmp_body.startswith('https://media1.giphy.com/') or \
            tmp_body.startswith('https://media2.giphy.com/') or \
            tmp_body.startswith('https://media3.giphy.com/') or \
            tmp_body.startswith('https://media4.giphy.com/'):
        return True
    else:
        return False

I'm not even sure someone would actually drop a link like this directly into a comment. It's not even taking into consideration whether those URLs are part of a markdown image tag.

As Edie mentioned, if someone has a user blocked, and that user replies to someone, their comment is dropped:

if parent_comment.author.has_blocked_user(user.id) or parent_comment.author.has_blocked_instance(user.instance_id):
    log_incoming_ap(id, APLOG_CREATE, APLOG_FAILURE, saved_json, 'Parent comment author blocked replier')
    return None

For Example:

(see Edies original comment here)

More from Edie:

Also add if the poster has blocked you! It is exactly as nonsense as you think.

Example:

I made a post in testing@piefed.social from my account testingpiefed@piefed.social, replied to it from my other testingpiefed@piefed.zip account. Since the .social account has blocked the .zip, it doesn't show up on .social, nor on e.g. piefed.europe.pub.

I then made a comment from my lemmy.ml account, and replied to it from my piefed.zip account, and neither .social, nor europe.pub can see my .zip reply, but can see my lemmy.ml comment!

[ Let me add more clarity here: what this feature does is two things. On a local instance, if you block someone who is on your instance, they cannot reply to you. However, this condition is not federated (yet, it would seem), and so, to get around this "issue", the system will drop comments from being stored in the PieFed database IF the blocked user is remote. This means you end up with "ghost comment chains" on remote instances. There is NEW code as of a few weeks ago, that will send an AUTOMATED mod action against blocked remote users to remove the comment. So long as the community is a local PieFed community, it will federate that mod action to the remote server, removing the comment automatically. For PieFed servers, eventually, they would rather federate the users block list (that's fair), but it would seem this code to send automated mod actions to remove comments due to user blocks is going to stay just for the Lemmy Piefed interaction. I don't really understand why the system simply doesn't prevent the rendering of the comment, instead of stopping it from being stored. It knows the user is blocked, it already checks it, it should then just stop rendering the chain of comments for the given user, prevent notifications from those users, etc. ]

But wait! There's More!

All this to say. Piefed is a silly place, and no one should bother using its software.

[–] LiveLM@lemmy.zip 46 points 2 weeks ago* (last edited 2 weeks ago)

Goddamn, I'm glad I didn't bother creating an account there when people were singing it's praises.

[–] kplaceholder@lemmy.ml 40 points 2 weeks ago (1 children)

What the fuck? I already knew that Piefed defederates Hexbear and Lemmygrad by default, but other than that bruh moment I assumed it was a respectable Lemmy alternative. That's some incredibly cringe behavior right there.

load more comments (1 replies)
[–] Marasenna@lemmygrad.ml 38 points 2 weeks ago

Really interesting stuff, thanks for posting.

[–] pressanykeynow@lemmy.world 32 points 2 weeks ago

"attitude" which is calculated as follows: (upvotes cast - downvotes cast) / (upvotes + downvotes). If your "attitude" is < 0.0 you can't downvote.

The math here is hilarious.

[–] goferking0@lemmy.sdf.org 31 points 2 weeks ago

The gif parts are just so impressively poorly done. Both from even making it part of a persons reputation to how the check is done

load more comments (14 replies)
[–] hamid@crazypeople.online 60 points 2 weeks ago (5 children)

To me the funniest thing about the people who need to thought police people and stand up and fight people on lemmy is that it is completely optional to see any of the content. There are robust features to block anything. If you don't like the memes I post please go to my profile and press the block button, problem solved. Commie memes make you mad? Block this community, there are plenty of other meme comms on lemmy you can look at with people like clown0002 posting. I don't want to see any furry stuff ever so I block that stuff and the entire pawb.social instance - poof - gone! I never seen it again. I also block all the buy euro shit, and sh.itjust.works. Problem solved for me. Why would you want to build image censoring into the platform itself lol. I actually have never even seen a 4chan post here because I don't see anything from the instance with that community on it.

[–] Edie@lemmy.ml 38 points 2 weeks ago* (last edited 2 weeks ago)

You don't even have to open up your profile, the three dots/hamburger menu also contains a block button.

Also true. I don't want to see 4chan, so I have some greentext community blocked.

load more comments (4 replies)
[–] Sanctus@anarchist.nexus 59 points 2 weeks ago (1 children)

Seeing people say piefed is better than lemmy:

UiFmnIj38hjub2l.png

(Ignore my non-lemmy instance)

[–] FunkyStuff@hexbear.net 36 points 2 weeks ago (2 children)

I think if you roll one of the instances (like yours) that overrides the basic censorship stuff it ain't so bad. It's a different UI and I can see why some people would prefer that. I wish it wasn't developed by a right winger though.

[–] ProletarianDictator@hexbear.net 71 points 2 weeks ago (5 children)

The UI is separate from the backend regardless. You can swap out Lemmy's frontend with like a dozen others.

Most of Piefed's features could have been implemented with an alternate frontend for Lemmy, but they don't do that because the real primary goal of the project is to coopt and destroy the only corner of the internet where communists have any sense of sovereignty.

Obviously not stated out loud, but I wager the intention is to mirror the Lemmy API closely at first while flooding Lemmy with rabid, astroturfed anti-communist propaganda, convince enough users to migrate to Piefed, then start to introduce API incompatibilities so that interop doesn't work as well for Lemmy users.

I wouldn't be surprised if the project originated as an op in response to a libre, communist led social network appearing.

[–] LemmeAtEm@lemmy.ml 40 points 2 weeks ago (2 children)

the real primary goal of the project is to coopt and destroy the only corner of the internet where communists have any sense of sovereignty.

If more lemmy users, mods, and of course the devs are made aware that this is the piefed goal using the strategy you just described (and I very much agree with you that it is), is there anything in particular that can be done to try to counter it? Other than spread awareness, of course.

[–] iByteABit@lemmy.ml 29 points 2 weeks ago

Maybe some instances can be de-federated if it's shown over time that they exist specifically for that purpose, but on a platform level I don't think anything can be done, not without messing up the core feature of it at least which is decentralization through ActivityPub.

It's inevitable that it will happen as popularity increases and certain organizations become aware of it, it will have to be a constant struggle unfortunately, similar to socialist states existing alongside aggressive capitalist ones.

[–] ProletarianDictator@hexbear.net 27 points 2 weeks ago

There is, quite literally, zero direct evidence of what I posited. Evidence exists, sure, but only by understanding the context around the behavior patterns of the devs and the swarm of very dedicated Piefed missionairies. There is no smoking gun of them directly saying that the primary purpose of their software is to degrade the commons in order to deny "tankies" a space where they can talk mostly amongst themselves, nor will there likely ever be.

Given radlibism and anti-tankie hysteria is universally socially rewarded for aiding the empire in isolating and crushing its enemies, don't let them dictate the terms of engagement by framing of discussion in terms of whether tankies are "evil red fash" or not. Any dissenting opinion you express thereafter will be dismissed as "authoritarian apologist" and trigger bystanders' cognitive dissonance by making this a repeat of every insufferable "tankie vs. anti-authoritarian" debate. You cannot convince the rabid cold warriors that their tragedy of the commons / EEE behavior is politically detrimental to the entire left during a period of rapidly encroaching fascism because they hate us more than fascists, and yearn for our destruction. Us being hunted down like dogs would be preferable to us having our own sovereign, but isolated platform broadly deferated from liberal instances.

Call into question their trustworthiness, their intentions, their development practices, their ability to play well with others, and specific objectionable lines of code.

Be level-headed, objective, and non-ideological in your critiques. That way, when they inevitably derail discussion with their political screeds, they (rightfully) seem like a weirdo, and you have shown yourself to be the reasonable party.

Ask them why they should be trusted to be good stewards of their power over the ecosystem, especially given how many lines of code are simply baking in moderation of whatever pattern the main dev finds annoying. The devs are actively attempting to use their position as a platform developer to impose their whims over discussion at large...exactly their rationale why tankies shouldn't be trusted with developing the fediverse! Channel their fearmongering into seemingly apolitical scrutiny into their existing behavior.

IMO the best way to counter the shilling is by criticizing the project on technical grounds.

Piefed is a sloppy, poorly thought out pile of staples and hot glue haphazardly developed in pursuit of a bulleted list of (poorly implemented) features that they can cite when trying to one-up Lemmy.

Most of their actual "features" are implementing some frontend enhancement, often as an API change incompatible with the broader fediverse. They are making their software less compatible, adding technical debt for one-off features, and putting in virtually no effort to implement things in a responsible, future-cognizant way.

Given they reimplemented a Rust backend in Python, just to facilitate

If architecture for their own project is an afterthought:

  • why would you want to give them more sway over the trajectory of the entire ecosystem?
  • why would you want to administer a server with little consideration for standards, compatibility, and API stability?
  • why would you want to worry about integrating your project with a backend that doesn't bother adhering to community developed FEPs?
  • why would you want to join a server that is less interoperable with other server types than others? is it worth not having the entire context not render properly on other platforms?

Without getting into ideological grounds, this is enough to turn off software devs, sysadmins, self hosters, and end users...as well as those of neighboring projects. Enough to make even their fellow ideologues more apprehensive to choose PF over Lemmy.

Anyone who has any interest in proper software engineering, code quality, or long term maintenance would find Piefed's development to be appauling. If these people knew the piss poor quality of the dev team's practices, they would be self-motivated to counter the 24/7 shilling by the Piefed devs and its stans. There will be no shortage of opportunities to point these things out.

[–] culprit@lemmy.ml 39 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

It's the classic Microsoft "triple E" strategy that has been used against libre historically:

  • Embrace (interoperable)

  • Extend (new features)

  • Extinguish (fork the protocols to break interoperability)

https://en.wikipedia.org/wiki/Embrace%2C_extend%2C_and_extinguish

[–] FunkyStuff@hexbear.net 28 points 2 weeks ago

You're right, I hadn't considered that this was part of a strategy like this. I rescind what I said; piefed delenda est.

[–] iByteABit@lemmy.ml 35 points 2 weeks ago (1 children)

Great take, I hadn't thought of it like that but it makes perfect sense and explains certain behaviors in a certain thread

load more comments (1 replies)
[–] ZeroHora@lemmy.ml 30 points 2 weeks ago (8 children)

They're already fucking with the ActivityPub protocol.

load more comments (8 replies)
[–] SpookyBogMonster@lemmy.ml 25 points 2 weeks ago (1 children)

Obviously not stated out loud

Idk they get awfully close sometimes with the "tankie triad" conspiracies.

load more comments (1 replies)
load more comments (1 replies)
[–] JeanValjean@piefed.social 52 points 2 weeks ago (3 children)

Yeah, I joined Piefed because I appreciated seeing the cross posts all on one page and the ability to tag users. As I notice more comments disappearing, I'm beginning to rethink my main instance.

load more comments (3 replies)
[–] Wren@lemmy.today 50 points 2 weeks ago (18 children)

Finally. I tried piefed for all of a few days. It was some kinda highschool level passive aggressive hand-holding circlejerk. The software equivalent of some hot jackass in the lunchroom pointing at a group of kids, saying "We don't talk to them, and you won't either if you wanna hang with us."

load more comments (18 replies)
[–] PotatoesFall@discuss.tchncs.de 41 points 2 weeks ago* (last edited 2 weeks ago) (3 children)

there's hardcoded censorship?

edit: No it's not it's optional

[–] geneva_convenience@lemmy.ml 54 points 2 weeks ago (4 children)

Apparently Piefed OCR's every image for the text " Anonymous" and "no" (horrible code by the way since it doesn't look for it sequentially but just those two strings on the whole image) for 4Chan posts and then censor those with an error message and -1 the uploaders social credit score.

load more comments (4 replies)
[–] FrostyTrichs@crazypeople.online 45 points 2 weeks ago

This reply to another thread highlights some interesting things in the code:

https://lemmy.ml/comment/23619001

load more comments (1 replies)
[–] hamid@crazypeople.online 40 points 2 weeks ago* (last edited 2 weeks ago) (4 children)

Ahahaha delicate Rimu didn't just ban me, he deleted my account on his server.

Good.

load more comments (4 replies)
load more comments
view more: next ›