Is it ever likely to be feasible to undo all Eugine’s votes? It seems clear that whack-a-mole banning is not terribly effective; since the main thing (I think) we want to disincentivize is unproductive mindkilled mass-downvoting, making that less effective (because likely to be undone after a while) might be worth the effort.
(My feeling is that this is an obvious enough point that probably it hasn’t been done because doing it would be difficult, or because there’s some strong objection I haven’t thought of.)
[EDITED to add:] In the interests of full disclosure, I should perhaps mention that undoing all Eugine’s votes would benefit me personally; I have fairly often (though not, I think, as severely as some) been one of his targets.
I agree that this is a plausible explanation (“not a straightforward SQL database” is an understatement) but have no specific information about whether it’s actually correct; do you?
It’s the same database structure as Reddit—a database in a database anti-pattern. Quoting Wikipedia:
In the database world, developers are sometimes tempted to bypass the RDBMS, for example by storing everything in one big table with three columns labelled entity ID, key, and value. While this entity-attribute-value model allows the developer to break out from the structure imposed by an SQL database, it loses out on all the benefits, since all of the work that could be done efficiently by the RDBMS is forced onto the application instead. Queries become much more convoluted, the indexes and query optimizer can no longer work effectively, and data validity constraints are not enforced. Performance and maintainability can be extremely poor.
LW database is exactly like this. Look at the existing scripts and despair.
Yup, it’s pretty horrible. But on the face of it—I know that appearances can deceive—it seems like you could iterate (inefficiently, but it’s not like this is going to be done often) over all the votes with a given voter-ID as in the “slow” case of user_downvote_karma and call Vote.vote with dir=Noneas defined in vote.py for each. Something along these lines, though it probably consists entirely of bugs:
from r2.models import Account, Link, Vote
user = Account._by_name('Eugine\_Nier')
# list() to make sure enumeration is done before we start changing the votes
# (dunno if we actually need to do that)
votee_ids = list([v.c._thing2_id for v in Vote._query(Vote.c._thing1_id == user._id)])
# dir = None to remove a vote
# ip = None because ip isn't needed when not creating a new vote
for votee_id in votee_ids: Vote.vote(user, Link._byID(votee_id), None, None)
It seems clear that whack-a-mole banning is not terribly effective; since the main thing (I think) we want to disincentivize is unproductive mindkilled mass-downvoting, making that less effective (because likely to be undone after a while) might be worth the effort.
I doubt undoing the votes will disincentivize anyone. I suspect that mass-downvoting is either an expressive act or it’s the stick in a conditioning exericise (disagree with me and watch your karma go down right now). In both cases undoing the votes many moons later is quite useless.
I’m not convinced. I think Eugine wants to win, where winning means making those nasty commie SJWs go away, or at least look bad, so that the glorious Rightness of comments like his own can shine forth. So: not a purely expressive act.
I don’t think it’s a conditioning exercise intended to make disagreeing with Eugine immediately painful, because his actual practice has frequently been to delay the large-scale downvoting and spread it out.
Rather, I think he wants (1) to make participation here painful for his victims and/or (2) to make it look as if his victims are generally disliked and disagreed with. He wants to remove them or reduce their credibility.
Imputing motives to people doing things on the ’net is a very traditional and popular activity, of course :-)
In any case, is there a testable assertion here? Do you think that if you wipe all his votes, Eugene, in the immortal words of Gollum, will “go away and never come back”?
(Let it be noted that I was doing so neither more nor less than you were.)
is there a testable assertion here?
Depends what you mean by testable. I don’t know what Eugine will do in any given circumstances; he’s a free agent and my mindreading powers are sadly limited. I think he is more likely to go away, and (conditional on not going away) likely to do less mass-downvoting, if he has reason to think that such activity will be noticed and reversed on a timescale of at most (let’s say) weeks.
But of course I could be wrong. Perhaps his actual reaction would be to go completely apeshit and try to do something very destructive. It’s not clear to me that he could actually do serious damage, but he could probably cause inconvenience for the moderators if he didn’t care about ever again being thought a constructive member of the community by anyone.
Is it ever likely to be feasible to undo all Eugine’s votes? It seems clear that whack-a-mole banning is not terribly effective; since the main thing (I think) we want to disincentivize is unproductive mindkilled mass-downvoting, making that less effective (because likely to be undone after a while) might be worth the effort.
(My feeling is that this is an obvious enough point that probably it hasn’t been done because doing it would be difficult, or because there’s some strong objection I haven’t thought of.)
[EDITED to add:] In the interests of full disclosure, I should perhaps mention that undoing all Eugine’s votes would benefit me personally; I have fairly often (though not, I think, as severely as some) been one of his targets.
The database isn’t a straightforward SQL database and nobody volunteered to put in the effort to write the code.
I agree that this is a plausible explanation (“not a straightforward SQL database” is an understatement) but have no specific information about whether it’s actually correct; do you?
It’s the same database structure as Reddit—a database in a database anti-pattern. Quoting Wikipedia:
LW database is exactly like this. Look at the existing scripts and despair.
Yup, it’s pretty horrible. But on the face of it—I know that appearances can deceive—it seems like you could iterate (inefficiently, but it’s not like this is going to be done often) over all the votes with a given voter-ID as in the “slow” case of user_downvote_karma and call
Vote.vote
withdir=None
as defined in vote.py for each. Something along these lines, though it probably consists entirely of bugs:I doubt undoing the votes will disincentivize anyone. I suspect that mass-downvoting is either an expressive act or it’s the stick in a conditioning exericise (disagree with me and watch your karma go down right now). In both cases undoing the votes many moons later is quite useless.
I’m not convinced. I think Eugine wants to win, where winning means making those nasty commie SJWs go away, or at least look bad, so that the glorious Rightness of comments like his own can shine forth. So: not a purely expressive act.
I don’t think it’s a conditioning exercise intended to make disagreeing with Eugine immediately painful, because his actual practice has frequently been to delay the large-scale downvoting and spread it out.
Rather, I think he wants (1) to make participation here painful for his victims and/or (2) to make it look as if his victims are generally disliked and disagreed with. He wants to remove them or reduce their credibility.
Imputing motives to people doing things on the ’net is a very traditional and popular activity, of course :-)
In any case, is there a testable assertion here? Do you think that if you wipe all his votes, Eugene, in the immortal words of Gollum, will “go away and never come back”?
(Let it be noted that I was doing so neither more nor less than you were.)
Depends what you mean by testable. I don’t know what Eugine will do in any given circumstances; he’s a free agent and my mindreading powers are sadly limited. I think he is more likely to go away, and (conditional on not going away) likely to do less mass-downvoting, if he has reason to think that such activity will be noticed and reversed on a timescale of at most (let’s say) weeks.
But of course I could be wrong. Perhaps his actual reaction would be to go completely apeshit and try to do something very destructive. It’s not clear to me that he could actually do serious damage, but he could probably cause inconvenience for the moderators if he didn’t care about ever again being thought a constructive member of the community by anyone.
It wouldn’t be so much a matter of disincentivizing Eugen3 etc., (though that might happen) as reincentivizing the people who were downvoted.
I agree, this is more important.