-1
Slur filter updates by orthecreedence · Pull Request #816 · LemmyNet/lemmy
github.com
external-link

Rename SLUR_REGEX to POST_FILTER_REGEX POST_FILTER_REGEX gets its value from ENV var LEMMY_POST_FILTER_REGEX and has a default that matches nothing (.^) updating test cases to use a filtering regex…

basically:

  • the intention of this filter is to make moderation easier, because oppressive language can’t even be posted. So less to moderate. We don’t want to have oppressive language on here. If you want to have that, this instance is not for you.
  • however, if you want to discuss what exactly the slur filter contains, that’s fine. for instance, the slur filter also had contained bugs, where a legitimate word (for instance wenig) would be detected as slur.
@dirtfindr
mod
2
edit-2
1Y

If you want to have that, this instance network is not for you.

(correction mine)

The filter is hard-coded. It’s designed to control all instances.

There’s nothing wrong with having a slur filter if well designed, but Lemmy’s slur filter is not well-designed.

Is Lemmy not free software? If so, anyone who is running an instance has the ability to patch out the slur filter themselves. The Lemmy devs simply don’t want to officially support or enable that option themselves, which I think is reasonable.

@dirtfindr
mod
2
edit-2
1Y

Being free s/w does not automatically make s/w appear out of nowhere. Find a fork that:

  1. Has removed or soft-coded the slur filter
  2. Attests that the changes to their fork do not break compatibility with other federated nodes. (What happens when they hack the filter to allow the word “salt-w-a-ter”, and then one node tries to sync the msg with an instance that uses the stock slur filter? For all we know, it could crash in a nasty way, or it could simply circumvent the filter. Or if the filter gets applied and one copy of the msg differs from that of another node, will the next sync re-copy the msg? Could this start a loop between different instances trying to sync the same msg with different text? Will instances with a different slur filter have to sever connectivity with nodes of different slur filters? Because it was poorly designed with the absurd assumption that everyone wants the same English-based slur filter, we have to assume there would be a chain of problems. Obviously the current design wasn’t thought through.)

If you can find such a fork then you’re on to something – and whatever it is, it’s not “Lemmy”, because once you change it it’s something else. This thread is about Lemmy and you’re effectively using an “argument to the future” fallacy by bringing up software that doesn’t exist.

Had they soft-coded it, then these matters would be moot because the design would have to accommodate slur filter variation. But they didn’t. They decided to micro-dictate moderation. So the design can assume everyone is using the same slur filter. It’s their choice to do so but reflects poorly on credibility. And I happen to concur with most of the bad-word list (not the design or implementation, but simply the words).

Of course this raises the question: what else is inappropriately hard-coded as a result of this biased authoritarian tendency, and how will that break the network when ppl hack it to be politically neutral or reasonable for a wider audience than Antifa?

Maya
admin
21Y

The below is my personal opinion:

It seems like you’re arguing from a point of unfamiliarity with federated social media like Mastodon. When you’re talking about “syncing the message” being able to “crash” an instance of Lemmy, this is not based on how anything ActivityPub actually works.
Below you’ve construct a straw man about how if a slur filter has been implemented one way, then that means that it must programmatically break federation if it’s variant between instances, because… that’s how you would do it if you were going to hard-code a slur filter which you wouldn’t do.

Once you change it it’s something else

Pretty radical semantic versioning you’ve got going on there if every modification requires a different project name. :face with rolling eyes:

There are already Lemmy instances that have removed the slur filter. They are still instances of Lemmy even if I wouldn’t want anything to do with them. There will be instances that will want stricter slur filters. They will still be Lemmy instances. The way these instances will interact has probably not yet been specified, so it’s ridiculous to start getting up in arms about it.

I get that your Reddit account was suspended and you’re looking for somewhere that will accommodate you. Please do not start spreading pseudotechnical FUD about the properties of this software without reference to fact.

@dirtfindr
mod
1
edit-2
1Y

It seems like you’re arguing from a point of unfamiliarity with federated social media like Mastodon. When you’re talking about “syncing the message” being able to “crash” an instance of Lemmy, this is not based on how anything ActivityPub actually works.

I don’t know what Lemmy does, and I’m not sure how much clearer I could have been that the possible outcomes mentioned were speculative, having seen no other Lemmy code than the slur filter. I saw just one line of code and it was lousy.

Mastodon nodes certainly *do* store copies of msgs from other nodes, which is precisely why I would envision Lemmy having msg redundancy.

Below you’ve construct a straw man about how if a slur filter has been implemented one way, then that means that it must programmatically break federation if it’s variant between instances

You don’t know what a straw man is. A straw man is obviously *not* speculating on risks and outcomes. To construct a straw man is to misrepresent someone else’s argument. My reply was to @adrianmalacoda@lemmy.ml . I did not even present his arguments, so there was obviously no opportunity to misrepresent them.

Pretty radical semantic versioning you’ve got going on there if every modification requires a different project name. 🙄

This ^ is an example of a straw man. I neither said nor implied that a modification “requires a different project name”, yet you’re implying that this is my stance.

When you fork a project and modify it, and the mods are not to be integrated upstream, the new software is different and the project is yours regardless of what you name it. If the original project name isn’t trademarked and you don’t care about causing confusion, you can name it the same if you want, and even choose conflicting version numbers. The authorship is likely different as well (it’s the set of all upstream authors plus yourself).

The way these instances will interact has probably not yet been specified, so it’s ridiculous to start getting up in arms about it.

You’re apparently implying here that you think it’s wise to ignore the production of code that will likely cause a conflict in the future and wait until the problem manifests during operation time. As opposed to thinking in advance “hey, hard-coding an English slur filter for the world maybe isn’t the smartest way forward”?

This is *precisely* the time to get the design right on this-- if not sooner.

Please do not start spreading pseudotechnical FUD about the properties of this software without reference to fact.

I’m afraid state of the art software design principles are not “fact”. Sorry you have to hear this from me, but competent design prior to implementation is a subjective opinion. It’s an opinion that’s widely held in high regard across the most prestigious academic institutions in the world and has far more merit than the sloppy and reckless approach you’ve suggested. And how dare you present your “personal opinion” and then demand facts – without so much as stating what factual information you’re in need of.

Maya
admin
21Y

lol k

Being free s/w does not automatically make s/w appear out of nowhere.

No, but it creates the potential for someone else to create it if they wish.

So the design can assume everyone is using the same slur filter.

I don’t know much about the design of Lemmy, but I hope it doesn’t assume this, because that would be bad design, free software or otherwise. Federation over an open protocol means Lemmy can federate with other instances of Lemmy (including different versions of Lemmy, which may not even have the same filters), or alternative home-grown implementations (like, say, if I decided to build ActivityPub federation into Postmill for some reason). This is a strength (or downside, depending on your point of view) of a federation.

… inappropriately hard-coded as a result of this biased authoritarian tendency, and how will that break the network when ppl hack it to be politically neutral or reasonable for a wider audience than Antifa?

This makes a number of assumptions that I would not really agree with; namely, that it’s possible or even desirable to be “non-political” or “neutral”; or that catering to an anti-antifa audience is a worthy goal.

@dirtfindr
mod
1
edit-2
1Y

No, but it creates the potential for someone else to create it if they wish.

No it doesn’t. That software doesn’t execute in a vacuum. It needs to interact with other software. A recent proven disaster is with the Signal’s so-called “free software”. It’s GPL’d but if you modify it, it is something else, and that something else is legally prohibited from connecting to the Signal network. Someone created “Libresignal” and Open Whisper Systems threatened lawsuit. Libresignal shut down and abandoned their work.

It’s a similar situation here. You can modify Lemmy all you want, which makes it something else, but that doesn’t give you permission to connect to Lemmy instances. And even if you get permission, that doesn’t mean it will function. I already detailed why.

Not to mention the software doesn’t exist. The failure to design Lemmy well puts *users* in a position of having to be *developers*, in the best case. If a *user* needs to write code, it’s a bad design. It absurdly restricts users to those with expertise and skills that a software user shouldn’t need to have.

but I hope it doesn’t assume this

Of course it does. It’s hard-coded. It’s a valid assumption, and the assumption simplifies the design. Why would they do extra work to assume the code isn’t what it is? If the design assumption is that the slur filter is changeable, then it’s a bad idea to hard-code the slur filter in the first place. You don’t hard-code something that’s presumed mutable.

that it’s possible or even desirable to be “non-political” or “neutral”

It’s actually trivial to create a communication tool like Lemmy without political bias. You simply don’t hard-code things like slur filters and you give moderation freedom to the instance operators not the developers.

or that catering to an anti-antifa audience is a worthy goal.

Let’s not conflate “anti-antifa” with “non-antifa”.

Perhaps you have the misconception that Antifa is simply a synonym for being anti racist. They are also anti-capitalist and anti-government, and they do not renounce violent protest. This makes them a relatively small fringe group. For example, most Americans (conservative and liberal) endorse capitalism and condemn violent forms of protest. That’s probably roughly ~300 million ppl who aren’t onboard with Antifa ideology. Why shouldn’t they have a voice?

@adrianmalacoda
1
edit-2
1Y

No it doesn’t. That software doesn’t execute in a vacuum. It needs to interact with other software. A recent proven disaster is with the Signal’s so-called “free software”. It’s GPL’d but if you modify it, it is something else, and that something else is legally prohibited from connecting to the Signal network. Someone created “Libresignal” and Open Whisper Systems threatened lawsuit. Libresignal shut down and abandoned their work.

As I understand it, the LibreSignal issue was a matter of trademark enforcement (specifically, the trademark “Signal”). Signal did try to get LibreSignal to stop using Signal’s servers, but it’s unclear to me (IANAL) if Signal had the legal or technical ability to block LibreSignal from using Signal’s servers (and I don’t think you’d accomplish this with a trademark suit). LibreSignal was abandoned voluntarily, not because Signal forced them to.

It’s also unclear how much of this is relevant to Lemmy. I’m unaware of the Lemmy developers threatening any lawsuits over forks, or expressing a wish to block forks from federating with Lemmy.

(Edit: It’s also worth noting, Signal’s developer is openly hostile to the idea of federation and wishes to control every aspect of “his product.” I see no indication that the developers of Lemmy share that view. If they did, they would not have designed Lemmy to be federated to begin with.)

It’s a similar situation here. You can modify Lemmy all you want, which makes it something else, but that doesn’t give you permission to connect to Lemmy instances. And even if you get permission, that doesn’t mean it will function. I already detailed why.

It’s not clear to me that other ActivityPub servers need “permission” to federate with Lemmy at all. Of course, each instance sets its own federation policies, and can use blocklists and allowlists to control what that instance federates with. Mastodon instances often use these to block known fascist instances.

Of course it does. It’s hard-coded. It’s a valid assumption, and the assumption simplifies the design. Why would they do extra work to assume the code isn’t what it is? If the design assumption is that the slur filter is changeable, then it’s a bad idea to hard-code the slur filter in the first place. You don’t hard-code something that’s presumed mutable.

An instance of Lemmy using a hard-coded slur filter != That instance of Lemmy assuming other peers are using the exact same slur filter (I also can’t tell if you’ve read the code and know for a fact that Lemmy works like this, or are assuming it does based on the presence of the hard-coded word filter). This is an incorrect assumption even if Lemmy is non-free software, because as I said before, ActivityPub is a completely open standard and anyone can implement a Lemmy-compatible server from the ground up with it. It would be poor design for a federated server to make any assumptions whatsoever about the internals of its peers. And, even if Lemmy was non-free and using its own secret protocol, it still can’t make that assumption because other versions of Lemmy may have different filters.

Perhaps you have the misconception that Antifa is simply a synonym for being anti racist. They are also anti-capitalist and anti-government, and they do not renounce violent protest.

It’s more a synonym for anti-fascist, which is what antifa is short for. And, yes, many anti-fascists are not non-violent, for perfectly understandable reasons I’d think. I’m not going to argue politics here because the subject of the discussion is Lemmy’s slur filter, which explicitly targets hate speech, not differing political opinions.

For example, most Americans (conservative and liberal) endorse capitalism and condemn violent forms of protest. That’s probably roughly ~300 million ppl who aren’t onboard with Antifa ideology. Why shouldn’t they have a voice?

As mentioned before, while the developers of Lemmy are communists and this particular instance is an explicitly anti-fascist instance, the slur filter targets expressions of hate, not discussion of capitalism or liberalism. I’m not sure what valuable discussion is being suppressed by this filter. As I see it, with few exceptions, anyone using such language is not participating in good faith.

(Edit: I’m aware Lemmy’s word filter at present seems to suffer from the “Sc*nthorpe” problem and thus in its current implementation probably could suppress actual discussion. I believe this to be a bug and not intentional.)

@dirtfindr
mod
1
edit-2
1Y

As I understand it, the LibreSignal issue was a matter of trademark enforcement (specifically, the trademark “Signal”). Signal did try to get LibreSignal to stop using Signal’s servers, but it’s unclear to me (IANAL) if Signal had the legal or technical ability to block LibreSignal from using Signal’s servers (and I don’t think you’d accomplish this with a trademark suit).

The trademark case was the easy legal tool that OWS lawyers could intimidate LibreSignal with. The lawyers threatened F-Droid and F-Droid folded. F-Droid removed LibreSignal, and LibreSignal did not have the resources to fight OWS lawyers. Trademark infringement of course wasn’t the real reason for OWS threats. The real reason was that LibreSignal made it possible for users to violate OWS’s network protectionist ToS. OWS has no direct case against LibreSignal for that, because it’s users of LibreSignal that violate the ToS, not the LibreSignal project. The LibreSignal project isn’t bound by the ToS – only users who agree to the terms can be subject to them. OWS would have to sue each of their own users who make use of LibreSignal independently, which is highly impractical. This is why they pushed the trademark angle. It was a legal hack to impose their network protectionism.

LibreSignal was abandoned voluntarily, not because Signal forced them to.

It wasn’t ordered by a judge, but force comes in many forms. LibreSignal was abandoned because they couldn’t finance the legal battle. That’s force. To be unable to finance the cost of freedom is to not have the freedom.

It’s also unclear how much of this is relevant to Lemmy. I’m unaware of the Lemmy developers threatening any lawsuits over forks, or expressing a wish to block forks from federating with Lemmy.

It’s relevant to your claim that free software = freedom to use the network how you wish. Whether the Lemmy project would actually make good on enforcement of their Antifa agenda remains a question. But certainly they can if they want. They can trademark “Lemmy” if they want, and they can create a ToS that bans unauthorized Lemmy mods if they want. So it’s wrong to claim GPL’d s/w is the end of the story as you did.

(Edit: It’s also worth noting, Signal’s developer is openly hostile to the idea of federation and wishes to control every aspect of “his product.” I see no indication that the developers of Lemmy share that view. If they did, they would not have designed Lemmy to be federated to begin with.)

It’s also worth noting that the Lemmy project openly hostile to non-supporters of Antifa. It’s also worth noting that the Antifa has no restraint in pushing their ideology – they don’t even renounce violent protest.

It’s not clear to me that other ActivityPub servers need “permission” to federate with Lemmy at all.

Using a network without permission is trespassing. Permission need not be express; it can be implied, but ultimately the owner of a server has a right to control access to their resource.

An instance of Lemmy using a hard-coded slur filter != That instance of Lemmy assuming other peers are using the exact same slur filter

This is a bad assumption. You cannot assume that a hard-coded elements are not relied on in a design. Such an assumption is perversely stupid. If you must assume something, you should assume that a project may rely on hard-coded behaviors. This is why (as I pointed out) it’s a poor design to hard-code the slur filter.

It’s more a synonym for anti-fascist,

Antifa is far more than that.

As mentioned before, while the developers of Lemmy are communists and this particular instance is an explicitly anti-fascist instance, the slur filter targets expressions of hate, not discussion of capitalism or liberalism.

Where was this “mentioned before”? You’ll need to quote that. This instance is not simply anti-fascist – it’s actually Antifa.

I’m not sure what valuable discussion is being suppressed by this filter.

Suppression is not a significant problem with the slur filter. Other problems arise out of the poor design of the filter, like users having to become programmers to change the filter, and the interoperability risks I detailed (both legal and technical).

As I see it, with few exceptions, anyone using such language is not participating in good faith.

Not if they’re using the language to discuss the language. e.g. “I was minding my own business and someone called me a k-i-k-e”. Suppressing that would be to suppress the victim of hate. It’s profoundly short-sighted to think those words are only directly inflicted on others.

There’s nothing wrong with having a slur filter if well designed, but Lemmy’s slur filter is not well-designed.

yeah, that’s true. The devs are aware of it and improving it is on the TODO list. low prio, but it is on the list.

if you have suggestions, i think you are welcome to improve the design.

The filter is hard-coded. It’s designed to control all instances.

basically, the approach of the devs is to make the lifes of people who want to write things like c*nt as hard as possible.

@ster
11Y

No it’s not. It’s supposedly to stop right-wingers using Lemmy. Firstly, that won’t work at all, secondly, it only limits people who want to use Lemmy for legitimate things

Everything about Lemmy; bugs, gripes, praises, and advocacy.

  • 0 users online
  • 12 users / day
  • 40 users / week
  • 75 users / month
  • 249 users / 6 months
  • 783 subscribers
  • 237 Posts
  • 1505 Comments
  • Modlog