site banner

[META] Something Shiny and Two Things Boring

I've got a new feature almost ready to go. I'm pretty stoked about this one because I've been wanting it for quite literally years, but it was never possible on Reddit.

Hey, guess what? We're not on Reddit!

But before I continue, I want to temper expectations. This is a prototype of a first revision of an experimental feature. It is not going to look impressive; it is not going to be impressive. There's a lot of work left to do.

The feature is currently live on our perpetually-running dev site. Log in, click any thread, and go look below the Comment Preview. You'll see a quokka in a suit asking you for help. (His name is Quincy.) Click the cute li'l guy and you'll be asked to rate three comments. Do so, and click Submit. Thank you! Your reward is another picture of Quincy and a sense of satisfaction.

So, uh . . . . what?

Okay, lemme explain.

This is the first part of a feature that I'm calling Volunteering. Once in a while, the site is going to prompt you to help out, and if you volunteer, it'll give you a few minutes of work to do. Right now this is going to be "read some comments and say if they're good or not". Later this might include stuff like "compare two comments and tell me if one of them is better", or "read a comment, then try to come up with a catchy headline for it".

These are intentionally small, and they're entirely optional. You can ignore it altogether if you like.

I'm hoping these can end up being the backbone of a new improved moderation system.

Isn't this just voting, but fancy?

You'd think so! But there are critical differences.

First, you do not choose the things to judge. The system chooses the things it wants you to judge. You are not presented with thousands of comments and asked to vote on the ones you think are important, no, you are given (at the moment) three specific comments and information is requested of you.

This means that I don't need to worry about disproportionate votecount on popular comments. Nor do I need to worry about any kind of vote-brigading, or people deciding to downvote everything that a user has posted. The system gets only the feedback it asks for. This is a pull system; the system pulls information from the userbase in exactly the quantities it wants instead of the userbase shoving possibly-unwanted information at the scoring systems.

Second, you can be only as influential as the system lets you. On the dev site you can volunteer as often as you want for testing purposes, but on the live site, you're going to - for now - be limited to once every 20 hours. I'll probably change this a lot, but nevertheless, if the system decides you've contributed enough, it'll thank you kindly and then cut you off. Do you want to spend all day volunteering in order to influence the community deeply? Too bad! Not allowed.

But this goes deeper than it sounds. Part of having the system prompt you is that not all prompts will be the system attempting to get actionable info from you. Some of the prompts will be the system trying to compare your choices against a reference, and the system will then use this comparison to figure out how much to trust your decisions.

That reference, of course, is the mods.

I've previously referred to this as the Megaphone system or the Amplifier system. One of our devs called it a "force multiplier". I think this gets across the core of what I'm aiming for. The goal here is not majority-rules, it's not fully decentralized moderation. It's finding people who generally agree with the mods and then quietly harnessing them to handle the easy moderation cases.

(We have a lot of easy moderation cases.)

There's another important point here. The mods are only human and we make mistakes. My hope is that we can get enough volunteer help to provide significantly more individual decisions than the mods can, and my hope is that the combined efforts of several people who don't quite agree with the mods in all cases is still going to be more reliable than any single mod. In fact, it wouldn't surprise me if there's people out there who are better at judging posts than our mods are! It's just hard to find you; some of you may not even comment, and you're pretty undiscoverable right now, but you will certainly get a chance to volunteer!

Also, this will hopefully improve turnaround time a lot. I'm tired of filtered comments taking hours to get approved! I'm tired of really bad comments sticking around for half a day! There are many people constantly commenting and voting, and if I can get a few minutes of help from people now and then, we can handle those rapidly instead of having to wait for a mod to be around.

Wow! You get all of this, with absolutely no downsides or concerns!

Well, hold on.

The big concern here is that virtually nobody has ever done this before. The closest model I have is Slashdot's metamoderation system. Besides that, I'm flying blind.

I also have to make sure this isn't exploitable. The worst-case scenario is people being able to use this to let specific bad comments through. I really want to avoid that, and I've got ideas on how to avoid it, but it's going to take work on my part to sort out the details.

And there's probably issues that I'm not even thinking of. Again: flying blind. If you think of issues, bring 'em up; if you see issues, definitely bring 'em up.

Oh man! So, all this stuff is going to be running real soon, right?

Nope.

First I need some data to work off. Full disclosure: all the current system does is collect data, then ignore it.

But it is collecting data, and as soon as I've got some data, I'll be working on the next segment.

This is the first step towards having a platform that's actually better-moderated than the current brand of highly-centralized sites. I don't know if it'll work, but I think it will.

Please go test it out on the dev site, report issues, and when it shows up here (probably in a few days) click the button roughly daily and spend a few minutes on it. Your time will not be wasted.


Blocking

Right now this site's block feature works much the same as Reddit's. But I want to change that, because it sucks.

My current proposal is:

  • If you block someone, you will no longer see their comments, receive PMs from them, or be notified if they reply to your comments.

  • This does not stop them from seeing your comments, nor does it stop them from replying to your comments.

  • If they attempt to reply to your comment, it will include the note "This user has blocked you. You are still welcome to reply, but your replies will be held to a stricter standard of civility."

  • This note is accurate and we will do so.

That's the entire proposed feature. Feedback welcome!


User Flair and Usernames

We're going to start cracking down a bit on hyperpartisan or antagonistic user flair. Basically, if we'd hit you with a warning for putting it in a comment, we'll hit you with a warning for putting it in your flair. If anyone has a really good reason for us to not do this, now's the time to mention it!

Same goes for usernames. On this site, you can actually change your display username, and we're just leaving that in place. So we'll tell you to change your name if we have to. Extra for usernames: don't use a misleading or easily-confused username, okay? If it looks like you're masquerading as an existing well-known user, just stop it.

I'm currently assuming that both of these fall under our existing ruleset and don't need new rules applied. If you disagree strongly, let me know.


The Usual Stuff

Give feedback! Tell me how you're doing? Do you have questions? Do you have comments? This is the place for them!

Are you a coder and want to help out? We have a lot of work to do - come join the dev discord.

48
Jump in the discussion.

No email address required.

Some suggestions for the Inbox:

  1. I think displaying the notified comments in context is a bad idea. When multiple people resond to one of your comments it gets unwieldy and you have to scroll around to find the comment thats actually new. Also indentation gore. If I need the context, Ill open a new tab to read it anyway.

  2. Opening Inbox automatically marks all as read, and theres no way to turn it off. Back on reddit it didnt do that, and there was even a button to mark them unread again. I used to leave things set to unread if I meant to respond to them later. I cant do that now and I dont have a good replacement.

Also if I have suggestions for evaluating the volunteer data, where should I make them? Some of you comments suggest you might not want it to be public knowledge how exactly you use them.

Yeah, I think we've concluded that we should change to a Reddit-like display for that, which is probably not happening now but will hopefully be soon.

You're welcome to post it here if you like - initial implementations will have to be publicly available anyway - or send it to me in PM if you'd prefer.

Well, obvious part is getting the regressions for (user, judgement) against various mod decisions. Getting interactions between different users is propably not feasible, but we could try clustering them. (Which reminds me, is there still any interest in this?) This could let us consider interactions between those, and help assign comments to volunteers to get a representative quorum faster. Do you think you can afford to double-check all decisions that went against the user? And there should propably be some report number over which to check approvals.

How would you document actions the system took? You wanted people to not know they had an impact, but the modlog would obviously show the action as not taken by a human, and however the modhat comments are handled would show it too.

I checked the modlog for this and have some suggestions there as well: First, bans arent robustly connected to their modhat comments. If you view all actions you can tell chronologically, but filtering for bans you dont get it. Also there apparently arent modhats for removed comments, or did I just not find them? No list of currently banned users either. I think it would also be nice if the list where you select a mod action to filter for had little numbers showing how many of each occured in the last month or so.

Also: I know how to programm in principle (coming from mathematics), but I dont have experience with git, interacting with databases, etc. How much of a time investment do you think it would be before I could contribute to dev?

Sorry this took a while to respond; life is currently kind of a tidal wave of stuff >_<

(Which reminds me, is there still any interest in this?)

I think this is technically very cool. I question how useful it is for this kind of site, for the same reasons that you go through in the second half; isn't it just going to end up with everyone in an echo chamber? I do think this is potentially very cool for things where that's not a downside, though - /r/funny might get good use out of this, and it might work fantastic for clustering in video games, for example (although there's some gnarly realtime limits with those that cause a lot of problems.)

This could let us consider interactions between those, and help assign comments to volunteers to get a representative quorum faster. Do you think you can afford to double-check all decisions that went against the user? And there should propably be some report number over which to check approvals.

So I'm currently making no attempt whatsoever to cluster users :V

I am trying to get a sense of Confidence Of User. And we are going to ensure that every negative outcome, warning or ban, goes through a mod to verify. In the short term, positive outcomes will also go through a mod to verify - it's just going to be an extra bit of data attached to the comment - but yeah, "too many reports and we forcibly punt it to a mod" is definitely a thing I'm planning.

How would you document actions the system took? You wanted people to not know they had an impact, but the modlog would obviously show the action as not taken by a human, and however the modhat comments are handled would show it too.

In some ways this is an argument against the modlog, or at least against all the data the modlog may currently show. I've never particularly felt like a fully transparent mod log was necessary. It's entirely plausible that we could just change it into "we report on comment approval, but don't report who approved the comment".

First, bans arent robustly connected to their modhat comments.

Yeah this is a giant pain right now honestly. I haven't changed it mostly because it requires a lot of thought about how it should be, and we haven't had time. But I would very much like to change the whole "ban" mechanic into something a little formal, so it gets tied to a mod reply if appropriate and can even be tied to other comments at around the same time.

Also: I know how to programm in principle (coming from mathematics), but I dont have experience with git, interacting with databases, etc. How much of a time investment do you think it would be before I could contribute to dev?

It depends!

Our database layer is very simple; we're using SQLAlchemy, and while I'm having trouble finding simple examples (most of the examples start from the "create your database" point, which you don't have to do here because we already have one), here's a line from my current analysis:

db.session.query(VolunteerJanitorRecord).order_by(VolunteerJanitorRecord.recorded_utc).all()

That's just "get all volunter janitor records, order them by the time they were recorded". There's a lot of example code that does things and it'd be pretty easy to get started from there . . .

. . . as long as you're reasonably experienced with Python. You do get to learn Python if you don't know it already :V

Git, however, is pretty easy to get the basics of. I think I'd say that if this is something you want to toy around with I encourage you to do so; the tricky part is the data, I'm reading this off the internal database because I can do so easily, but I wouldn't be willing to send a full copy of the database to other people. And anything of this sort ends up highly determined by the actual user behavior.

That said, if you wanted to contribute to other things that we need, those are much easier for people to ramp up on.

isn't it just going to end up with everyone in an echo chamber?

I think its less of an echo chamber than sorting by upvotes. And as I said:

Personally I would like to see a replacement for sorting by new. There are fewer deep-in-the-tree discussions and more first-order replies without further replies than there used to, and my impression from memory is that this came gradually after the change to sorting by new.

So clustering could hopefully solve that with less of an echo chamber effect. But if you weigh the risks of partisanship vs declining quality differently, maybe you do want to stick with things as they are.

as long as you're reasonably experienced with Python. You do get to learn Python if you don't know it already :V

If you think thats the time-consuming part, then the whole thing doesnt sound too bad. I hope Ill get to it after finals season.

So I'm currently making no attempt whatsoever to cluster users :V

Well, Im glad I gave a new idea. Feel free to ask me about math details.