How easy would it be to have downvotes be on some kind of timer, where you could only downvote once every N minutes? (A time is arbitrary and flexible based on experimentation)
This seems as if it would prevent someone from trivially systematically going through and downvoting every post by a poster, but still allows for someone to read something and downvote it on a general basis.
If someone’s goal is to mass-downvote all comments made by someone else, this wouldn’t stop them at all. Just keep the page open in another tab, and every N minutes downvote the next comment.
For people who read quickly and vote in real time, it would be inconvenient. (For example, Stack Exchange has a similar thing: I can read a short comment in 1 second, but I am allowed to vote only once per 5 seconds. So I read 20 comments in a row and then close the page without voting, because I don’t see a point in waiting.)
Given that the aim is to prevent mass downvoting of a single person, it could perhaps be more usefully implemented as a timer that prevents one person from downvoting the same user more than X times every N minutes (for some low X, perhaps only one or two).
This would have less effect on the casual browser (since, normally, you’d be reading comments from several people) while still making it harder for the mass downvoter.
There may need to be some changes to the database to implement this, of course.
A person can make five stupid comments in the same thread, in which case they would deserve five consecutive downvotes. (Making ten or more stupid comments in the same thread seems unlikely. Unless it’s a troll, in which case their karma will become negative either way.)
By the way, I don’t remember seeing five stupid comments by the same person recently, but it seems to me that a year or two ago it was relatively common, e.g. in political threads, where people kept replying to each other and refused to give up.
I don’t know anything about LW’s internals, but in most sane architectures you’d want to have a last-downvote timestamp linked to each user’s account, and to compare the timing of incoming downvotes against it. If the difference is too small, you reject the input and display a message similar to the one you get when you’re about to post in a heavily downvoted thread. That message has a few issues—it doesn’t come up if the vote total upthread dropped below the threshold between when the page was loaded and when the post was submitted—but since we only care about session-local behavior here, that shouldn’t be a problem. Synchronization between the session and server time might be harder but that depends on details I don’t know.
I can see a behavioral pitfall, though. I typically decide on votes after reading through a screen’s worth or so of a thread, and this sometimes implies two or more downvotes (for example in the cases of short low-quality posts or discussions inappropriate for the site). I’d find it gratingly aversive to be forced to wait N seconds or minutes between posts in these cases; I don’t know if this happens often enough to outweigh the mass-downvoting problem, though.
I agree with Nornagest that this would be really annoying for many non-abusive posters.
I’m also not sure how effective it would be against abusive mass down-voters. Whoever’s currently stalking me is systematically downvoting a bunch of my old comments every day. I assume s/he is just gradually going through LW’s list of my comments. It doesn’t seem like it would be difficult to do it gradually throughout the day, or even to write a computer program to do it automatically.
How easy would it be to have downvotes be on some kind of timer, where you could only downvote once every N minutes? (A time is arbitrary and flexible based on experimentation)
This seems as if it would prevent someone from trivially systematically going through and downvoting every post by a poster, but still allows for someone to read something and downvote it on a general basis.
If someone’s goal is to mass-downvote all comments made by someone else, this wouldn’t stop them at all. Just keep the page open in another tab, and every N minutes downvote the next comment.
For people who read quickly and vote in real time, it would be inconvenient. (For example, Stack Exchange has a similar thing: I can read a short comment in 1 second, but I am allowed to vote only once per 5 seconds. So I read 20 comments in a row and then close the page without voting, because I don’t see a point in waiting.)
Given that the aim is to prevent mass downvoting of a single person, it could perhaps be more usefully implemented as a timer that prevents one person from downvoting the same user more than X times every N minutes (for some low X, perhaps only one or two).
This would have less effect on the casual browser (since, normally, you’d be reading comments from several people) while still making it harder for the mass downvoter.
There may need to be some changes to the database to implement this, of course.
A person can make five stupid comments in the same thread, in which case they would deserve five consecutive downvotes. (Making ten or more stupid comments in the same thread seems unlikely. Unless it’s a troll, in which case their karma will become negative either way.)
By the way, I don’t remember seeing five stupid comments by the same person recently, but it seems to me that a year or two ago it was relatively common, e.g. in political threads, where people kept replying to each other and refused to give up.
X=5 N=120, perhaps?
That allows up to five stupid comments from the same poster to be downvoted in rapid succession, but makes it a lot harder for the mass downvoter.
I don’t know anything about LW’s internals, but in most sane architectures you’d want to have a last-downvote timestamp linked to each user’s account, and to compare the timing of incoming downvotes against it. If the difference is too small, you reject the input and display a message similar to the one you get when you’re about to post in a heavily downvoted thread. That message has a few issues—it doesn’t come up if the vote total upthread dropped below the threshold between when the page was loaded and when the post was submitted—but since we only care about session-local behavior here, that shouldn’t be a problem. Synchronization between the session and server time might be harder but that depends on details I don’t know.
I can see a behavioral pitfall, though. I typically decide on votes after reading through a screen’s worth or so of a thread, and this sometimes implies two or more downvotes (for example in the cases of short low-quality posts or discussions inappropriate for the site). I’d find it gratingly aversive to be forced to wait N seconds or minutes between posts in these cases; I don’t know if this happens often enough to outweigh the mass-downvoting problem, though.
I agree with Nornagest that this would be really annoying for many non-abusive posters.
I’m also not sure how effective it would be against abusive mass down-voters. Whoever’s currently stalking me is systematically downvoting a bunch of my old comments every day. I assume s/he is just gradually going through LW’s list of my comments. It doesn’t seem like it would be difficult to do it gradually throughout the day, or even to write a computer program to do it automatically.