kaberett: A sleeping koalasheep (Avatar: the Last Airbender), with the dreamwidth logo above. (dreamkoalasheep)
kaberett ([personal profile] kaberett) wrote in [site community profile] dw_dev2018-09-01 10:04 pm
Entry tags:

Code tour: 2018-07-15 to 2018-09-01

Tiiiiiiiiiiny code tour!

Issue 2227: [#2227] remove remaining references to AIM (pull request)
Category:
Patch by: [github.com profile] kareila
Description: If it looks familiar, this is because it was previously mostly fixed! Display of AIM usernames was removed... but it was still possible to specify what your AIM username had been on the Edit Profile page. Whereupon it would be swallowed into the depths of the database and digested, silently, never to be seen again, which doesn't do anyone much good. The Edit Profile field was, therefore, pruned.

Issue 2228: Link to image hosting pages from Site Map (pull request)
Category:
Patch by: [github.com profile] rshatch
Description: Dreamwidth has image hosting! It... is optimal to actually provide links to it from the site menus, so it's easier to find and manage. Ta-da.

Issue 2329: 1661 banned behaviour (pull request)
Category:
Patch by: [github.com profile] swaldman3
Description: Hilariously, what exactly happens when user A bans user B is that user B gets banned from user A's journal, not from... replying to A in other people's journals, or in communities. This is not as intended -- bans are supposed to apply to the person who made the ban, not the journal. Because of the number of different ways Dreamwidth provides to reply to comments, the logic for this is a bit convoluted, but banning functionality has now been extended. There is a some tidying up left to do, but this is progress and progress is good.


3 total issues resolved
Contributors: [github.com profile] kareila, [github.com profile] rshatch, [github.com profile] swaldman3
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)

Re: Issue 2329

[staff profile] denise 2019-05-13 03:19 pm (UTC)(link)
The reason we did this is because ever since the ban function was introduced in LJ in the first place, people have been confused about where it applies and when. I've been handling problems between users for nearly 20 years now, and it's very rare that someone intuitively understands that a ban is only applicable in their own journal. It's also 2019, and websites *need* a way for people to say "don't let this person contact me on this website, ever". The changing social media landscape and the way that harassment techniques have developed across the internet mean that harassment and abuse doesn't just happen in people's journals anymore -- DW has a lot of anti-abuse benefits that, say, Twitter doesn't have, but on Twitter it's still possible to block someone so that they'll never be able to contact you again, and there have been multiple abuse cases in the last few years where the lack of the site wide ban on DW has made it difficult or impossible for someone to stop the abuse they're getting. (Someone picks an entry or comment their target made in a community and continues replying to them because it's a way to further contact after they've been banned, etc.)

This change doesn't stop someone from participating in the same community as someone who's banned them -- it just stops someone from using a community entry or comment to evade a ban in a personal journal. If someone uses banning to stop debate or criticism in a community entry that they made, the person they banned can just post a new top level entry and post whatever they were going to post. This also doesn't stop the banned person from responding to other people in a discussion of the person who banned them wasn't the original poster of the entry -- if Alice posts an entry, and Bob comments to that entry, Carol would only be blocked *from replying directly to Bob* if Bob has banned her. Carol can still post a top level comment replying to Alice , and she could reply to Dave if Dave replied to Bob. So, if someone who has blocked you makes a post in a community, and you want to reply to their points, you can make a new post; if someone who has blocked you leaves a comment in someone else's post and you want to reply, make a new thread or reply to someone who's replied to them.

The idea is basically that we're working on closing loopholes of ways that someone who was banned can force an email notification to go to the person who banned them, and the example we're using as a mental model of how to decide where banning should apply is " If Alice has a restraining order against Bob that specifies he may not contact her in any way, including online, what else do we need to change so the only action Alice has to take to make sure Bob can't violate the restraining order on Dreamwidth is to ban him once". (This is, sadly, a real situation that we've been asked about multiple times, and there's been more than one "Alice" who has had to go back to the court that issued the restraining order to have "including through contact on social media" added when it wasn't on the default order and "Bob" is replying daily or even hourly to an old community post or comment of hers that he found.)

Anti-abuse features can never have an opt out, I'm afraid, but I really don't think this will be as disruptive as you think it will be! And if it is, we can reconsider or make further changes to how things work to fix the disruptive bits. But this is probably the #1 change we've been asked for in terms of abuse prevention features, by users and community admins alike.
20_00: (Default)

Re: Issue 2329

[personal profile] 20_00 2019-05-18 06:03 am (UTC)(link)
Thanks for the detailed answer.

1. If your goal is to completely eliminate the technical possibility for harassment, this goal can be achieved in the only way: Anonymity should be prohibited. It is necessary not only to prohibit anonymous comments, but also to prohibit anonymous account registration. At the moment, registration of the account does not require the provision of personal data. Until anonymous registration of accounts and anonymous comments are allowed, harassmet will not be defeated.

However, the prohibition of anonymity creates other threats to users from countries with a totalitarian regime, who simply criticize the government. These are very serious threats to health and even life.

Thus, there is a conflict between the right not to be harassed (or not to hear unpleasant statements) and the right to anonymity, which in my country is a necessary condition for physical security.

I think the right to anonymity should be higher than the right to protection from harassment.

All that I have just written is not directly related to the ban rules on Dreamwidth. But if you take your arguments and think about the possible consequences of fighting harassment, the consequences are bad. They are worse than harassment because they put more people at risk.

I think the fight against harassment should have its limits.

2. The great advantage of Dreamwidth over Facebook, for example, is the tree structure of comments. Such a structure facilitates reading and understanding of the meaning.

The new rules of the ban will lead to the fact that the structure of the discussions will be partially destroyed. Yes, Bob can create a new post, or a first-level comment, but this "smears" the discussion on the web page, leads to the removal of comments from the context, that is, the context is destroyed, reading and participating in the discussion for other users is difficult. For such a fragmented discussion, if it is large, it is simply impossible to follow. People will not create special posts if they are deprived of the opportunity to respond to the original post. It all hurts the communities.

That is what I mean by speaking of demotivating the discussion due to the new rules of the ban.

In addition, a situation is possible in which a user preventively bans all opponents, and publishes a post in which it is obviously impossible to criticize. Thus, eliminating the harassment, you unwittingly created the possibility of abuse, manipulation of information outside of your personal account. In fact, the new ban rules created a way to prevent discussion, for example, with the goal of trolling.

So, I understand your reasons, but I find them not quite convincing.

To be honest, I do not know what a compromise is possible here. Maybe the option to disable the ban in the communities? Then, the Moderator can ban the pursuer separately, but the troll should not have the tools to influence the discussion. My concerns you can see. You decide! :)
pan_2: (Default)

Re: Issue 2329

[personal profile] pan_2 2019-05-19 01:04 pm (UTC)(link)
I've had discussed with [personal profile] 20_00 about this topic, up to ECHR articles 9, 10 and 14.

I understand the POV of both of you (and the implications of the platform itself), but I'm still interested in the [personal profile] 20_00's view on the subject.

While the proposed solution ([x] ignore users ban-list in the community) requires careful examination for a viability, there is one more obstacle in deploying it: the code.

Can someone familiar with the posting/commenting code evaluate the amount of work to enable such functionality?

Mockup pseudo-code:
comment_posting_action: {
	# other checks
	if (community_ignore_users_ban_list) {
		allow_post == true
		}
	# other checks
	}

20_00: (Default)

Re: Issue 2329

[personal profile] 20_00 2019-05-24 02:44 am (UTC)(link)
Hello.

Compromise number two.
Give the user two options to choose from a ban: a) ban it everywhere, b) ban it only in my blog.

In this case, I can introduce a new rule in the community: the participants undertake to refrain from using the total ban, but in case of protracted conflicts and unmotivated aggression, they can contact the moderator or the Abuse Team. At the disposal of the Abuse Team is the option "ban on communication", which was still in Livejournal 10 years ago.

I think this is an acceptable compromise. I will try to write an post in dw-suggestion :)
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)

Re: Issue 2329

[staff profile] denise 2019-05-27 02:58 pm (UTC)(link)
We have no plans to ever remove anonymity from the site! Individual users can already choose whether or not to accept anonymous comments in their account, and, in the case of a community, account admins can choose whether or not to accept anonymous comments in their community. So someone who's the target of serious harassment can disable anonymous commenting and only participate in communitites that don't allow anonymous commenting -- they can take steps to protect themselves and to be reasonably free of further anonymous harassment. (Someone creating and using a different journal to work around a ban is a Terms of Service violation, and we've had processes for that for a decade.)

Under the existing system, someone who's the target of serious harassment and has banned the harasser from their journal can no longer participate in communities (or even, sometimes, comment in other people's journals), because their harasser can contact them in reply to any comment they make there and continue the harassment. That's happening now, a lot, and it means that the victim of harassment is having their use of the site seriously restricted. This change switches the direction of the consequences so that the harasser is the one who's having their use of the site restricted, in that they can no longer reply to their victim's posts and comments in a community they're both a part of.

I understand your concerns! I really do. I know the social patterns and style of communication is different in the Russian communities of the site. But we aren't going to make changes to this system until we see how it changes behaviors and what goes well and what goes wrong with it. We're absolutely not going to get into a situation where the answer to ongoing harassment is "contact the Terms of Service team every time they contact you" instead of "ban them and you'll never have to hear from them again", because I was there on LJ for that and it was terrible. We started DW to learn from our mistakes, and this is a (long-overdue) example of the kind of changes we meant by that.

The solution for your scenario of someone posting to a community and banning everyone who disagrees with them is for the admin of the community to say "don't do that". Admins of individual communities can say "if you have banned any member of this community from contacting you, you can't post in this community", and you're welcome to remove anyone who violates that rule from the community -- people who don't agree with those rules just won't participate in that particular community. But we aren't going to ever create a way for the admin of a community to override someone's security settings.
pan_2: (Default)

Re: Issue 2329

[personal profile] pan_2 2019-05-28 06:25 pm (UTC)(link)
Hello again.

The second [personal profile] 20_00's proposal looks interesting:

ban the person from communicating with me everywhere option will retain the new/current ability to completely cut off harassers;


ban the person from communicating with me only in my journal option will give the ability for the ban recipient to still contact the user in other journals and communities; also it can be changed later to the total ban if the need will arise.



For the regular communities this will not change anything, and for those who choose to refrain from using the total ban for it's members - this is a matter for that community members only.

Both options don't need the involvement of the ToS/Abuse team in any way.

From my POV this is interesting proposal, and it is in the spirit of the "freedom of expression".
lxe: (hardware acceleration)

Re: Issue 2329

[personal profile] lxe 2019-06-29 05:38 am (UTC)(link)
I wholeheartedly side with the second proposal. It doesn't introduce hidden state/context variables (such as community settings) and presents the user a clearly "aforeexplained" set of options. The extra cost would be, I presume, one extra boolean filed in the [banner, banned] association table (provided the backend is an RDB) and an extra condition term in the WHERE clause.