I've started making the following fairly minor changes to the Voting/XP system.
These changes serve to mildly discourage some forms of "problematic" voting
and, more importantly, to make such "problem voting" matter much less.

No XP loss if your node is only down-voted once. Experience shows that a
single down-vote being cast against a node usually has more to do with the
person casting the vote than with the node. Losing 1 XP because of a single
down-vote on one of your nodes is just noise that should be avoided.

Less XP loss if an old node of yours is down-voted (we forgive you
for your old sins). If a node is more than 4 weeks old, then you can no
longer lose any XP for it. The odds start dropping gradually after the node
is 2 weeks old. This makes it much less effective for somebody to "attack"
someone by down-voting all of their nodes.

High-reputation nodes that are old earn XP for up-votes more like
regular-reputation nodes. This reduces the pile-on effect of Best Nodes
on XP. Once a node is 4 weeks old, it having a high reputation no longer
increases the likelihood of its author getting 1 XP for the up-vote. The
effect of reputation begins dropping after the node is 2 weeks old.

If you cast too many down-votes, then each down-vote poses a chance that
you'll lose 1 XP. If you only cast down-votes occasionally, then each will
still give you a chance of gaining 1 XP.

I'm also considering a change such that casting most of your votes for/against
a single author would cause you to not get most of your votes restored to you
the next day. So if you always spend all of your votes on just one author,
then you'd only get votes every other day. But I need to work on this idea
more before I'll consider implementing it.

The "problems" addressed here are several.

Once in a while we get a monk in a fit of pique or dudgeon decide to punish
another monk or just vent their feelings by systematically down-voting every
node by that monk. This is not something that we feel we can outright ban,
for several reasons3. But it also is easy to characterize as an
abuse of the PerlMonks voting system. So I'd like to still allow the rare
monk to occassionally anonymously "vent" (in hopes of helping them to "get
over it"), while greatly reducing the potential impact on the "victim" and
also encouraging the "attacker" to give up sooner rather than later (in the
past, some of these "attacks" have gone on for many months -- go figure).

3 We have a long-standing policy of "they are your votes, cast them
how you see fit". There have been rare cases where such actions could be seen
by some as a reasonable protest against systematic anti-social
behavior. Allowing people a fairly inoccuous way of venting their outrage
can be a good idea. There have been cases that have gone to extremes and
resulted in administrative intervention. But administrative intervention
sucks so we'd rather just make it so the administrators and victims mostly
just don't care much when this type of thing happens in the future.

Although the vast majority of monks mostly only up-votes nodes (thankfully),
we have a small but significant minority of monks who mostly only down-vote
nodes. These less-discriminate down-votes also seem to be among the most
disruptive (most likely to lead to "dwelling" or worse). I think if you feel
justified in dishing it out, you ought to be required to "take it", so casting
only down-votes is going to incur one an XP penalty roughly equal to the one
being given. I hope that these changes will encourage some monks to seek more
balance with respect to voting.

We also occassionally (though more rarely than many predict, I think) get
monks who miss the point and decide to cast as many votes as they can
primarily for the XP gained rather than to aid in encouraging the creation
of good quality nodes and to aid in the identification of which nodes are of
the best quality. It appears that the most common route taken is to pick an
author and just systematically vote for (or against) every one of their nodes.
So I think it appropriate and useful to reduce the number of votes one can
cast if one is only casting them toward a single author. The tough part for
me is how to (mildly) discourage casting most of your votes for a
single author while not unduely causing frustration when one reasonably runs
into several nodes by one author that all deserve an up-vote.

You have a 25% chance of gaining 2 XP once each day if you were
logged in when visiting the site in the past 24 hours from when
the vote fairy does the rounds.

You have a 25% chance of gaining 1 XP every time you up-vote somebody
else's node and a chance of gaining or losing 1 XP every time you
down-vote a node (more on that later).

If you cast all of your available votes, then you gain XP equal to
+1/6 the number of votes you get each day. But this bonus only
applies until you reach level 6.

You gain 1 XP for each node you post that at least one person
up-votes.

You have a chance of gaining 1 XP each time somebody else up-votes
one of your nodes. You have a chance of losing 1 XP each time
somebody else down-votes one of your nodes. The exact odds are
rather complicated and are explained below.

Exactly how do others' votes on my nodes affect my XP?

How you gain or lose XP when others vote on your nodes is a bit complicated.
First let us define a couple of variables as follows:

$NORM

This variable is calculated daily when votes are handed out. It
is the average reputation of all of the nodes created within the past
week. The current value of $NORM is ....

$REP

The current reputation of the node being voted on.

The chance that a vote on a node changes the author's XP is based on the
$REP's relative value to the current $NORM and on
the node's age (how much time has passed since the node was created). If
the node's $REP is higher than the $NORM, then
an up-vote is more likely to result in the author gaining 1 XP, and a
down-vote is less likely to result in the author losing 1 XP. If the
$REP is below $NORM then any given vote will always
have a fixed chance of altering the author's XP. The exact odds are as
follows, for nodes that are 2 weeks old or newer:

Odds of author's XP change based on $NORM and $REP

Range

Odds of a Gain1

Odds of a Loss2

$REP < $NORM

1/3

1/3

$NORM <= $REP < 2*$NORM

1/2

1/3

2*$NORM <= $REP < 3*$NORM

2/3

1/3

3*$NORM <= $REP < 4*$NORM

3/4

1/4

4*$NORM <= $REP

1

0

4 weeks <= Age

1/3

0

1 If a node is more than 4 weeks old, then the odds of its author
gaining 1 XP when it is up-voted are 1/3 no matter the reputation. When a
node turns 2 weeks old, the odds are based on the node's reputation as listed
in the above table. As the node's age goes from 2 weeks to 4 weeks, the odds
are linearly slid from the odds shown above to the 1/3 odds. For example,
exactly 3 weeks after it is posted, if 4*$NORM <= $REP then the odds are
(1+1/3)/2 or a 2/3 chance of earning its author 1 XP each time it is up-voted.
Also, as noted previously, the first up-vote on a node always earns its author
1 XP (and has a 1/3 chance of earning its author a 2nd XP).

2 If a node is more than 4 weeks old, then the author of the node
will no longer lose any XP when it is down-voted. When a
node turns 2 weeks old, the odds are based on the node's reputation as listed
in the above table. As the node's age goes from 2 weeks to 4 weeks, the odds
are linearly slid from the odds shown above to 0. For example, exactly 3
weeks after it is posted, a node with 3*$NORM == $REP has (1/4+0)/2
or 1/8 chance of losing its author 1 XP each time it is down-voted. Also,
the first down-vote cast on a node never costs its author any XP.

Exactly how does down-voting another's node affect my XP?

If you cast down-votes infrequently, then each down-vote that you cast has
a 1/4 chance of earning you 1 XP, just like casting an up-vote does. If all
you ever do is down-vote, then each down-vote that you cast has a 1/3 chance
of losing you 1 XP, just like the author you down-vote likely has 1/3 chance
of losing 1 XP.

For each user, PerlMonks tracks a weighted average of the recent votes that
they have cast. Each time you cast an up-vote, your weighted average, $vtavg,
is set to 0.1 + 0.9*$vtavg. Each time you cast a down-vote, your
weighted average is set to -0.1 + 0.9*$vtavg. So somebody who only
ever up-votes will quickly have a $vtavg very close to +1 while somebody who
only ever down-votes will quickly have a $vtavg very close to -1.

If your $vtavg is positive, then each down-vote has $vtavg/4 chance of gaining
you 1 XP. If your $vtavg is negative, then each down-vote has $vtavg/3 chance
of losing you 1 XP. No, you are not allowed to look up another monk's or
even your own current $vtavg.

For now, casting a down-vote will not earn nor cost you any XP. About one
week from now, I'll deploy the "chance to gain or lose 1 XP when casting a
down-vote" feature. But your $vtavg is already being updated based on your
current voting.

The rest of the features are already in place, except, of course, for the
"you don't get as many votes if you mostly just vote for/against one author"
feature.

1) I have, on several occasions, been here on a week-end when there has been a lot of spam. I have downvoted each of these to flag them up to those who have the power to deal with them. Should I now stop?

2) It was recently suggested (it's time for bed & I'm not looking up the node right now) that an appropriate behaviour for helpful chatterboxers was to upvote nodes. Bart helped me at a time when I didn't know about karma, and I subsequently upvoted two or three of his nodes regarding polls as a "thank you". Will this become inappropriate? If so, may I suggest a follow-up to the thread and/or a note in the XP description saying so?

1) Why would you stop? If you rarely downvote otherwise, then you can downvote several spam in a row and have no risk of losing any XP. Then you can downvote another set of spam in a row and likely lose less than 1 XP for each 3 you downvote. So do you have a pathological devotion to never losing a single XP that you'd rather see spam stay longer just to avoid losing 1 or 2 XP?

The rules get adjusted because there are actions that the rules reward that are not beneficial. These are pretty simple rules so they will never be perfect. So, of course, there are beneficial actions that are not rewarded by the new rules. You are (still) expected to use your judgement. This is part of why the motivations and discouragements are fairly minor.

2) Up-voting a few nodes by the same author is not punished. At some future point, up-voting more than a few nodes by the same author might reduce the number of votes you get just the next day, not much to worry about. Use your judgement.

.... Then you can downvote another set of spam in a row and likely lose less than 1 XP for each 3 you downvote.

I quite agree with your changes (++ by the way)) and view downvoting spam, rather than considering it, to be misguided. It may even be sufficiently misguided that it should cost the voter XP.

Nonetheless, the risk of losing XP for what the writer says he views as a community service (even if that notion is, in fact, misguided) may be a disincentive not only to that specific community service, but to any other which might be better-founded, unless we plainly state that "downvoting spam is deprecated. Consider it, instead."

Update (ca 21:35 GMT): Gentle reader: my observations were colored by a misconception, corrected in tye's Re^6: History now influences voting (reaps), below. It may be below the level of replies you usually read, but if anything I remarked above resonates, please see tye's clarification.

1) Why would you stop? If you rarely downvote otherwise, then you can downvote several spam in a row and have no risk of losing any XP.

That's fine. It wasn't clear to me late at night that the average was taken over a long enough period that a few days of downvoting spam wouldn't mean I was doing - or seen to be doing - the wrong thing.

So do you have a pathological devotion to never losing a single XP that you'd rather see spam stay longer just to avoid losing 1 or 2 XP?

No, but I DO have a pathological devotion to doing the right thing! :-) If I AM doing the right thing by downvoting spam, I'll keep doing it. But given that you want to discourage problematic voting, I wanted to clarify whether my voting was problematic, given that I'm not at a level where I can 'consider' nodes.

2) Up-voting a few nodes by the same author is not punished.

Got it. Again, I'm concerned about avoiding being a problem rather than anything else.

It appears that the most common route taken is to pick an author and just systematically vote for (or against) every one of their nodes. So I think it appropriate and useful to reduce the number of votes one can cast if one is only casting them toward a single author. The tough part for me is how to (mildly) discourage casting most of your votes for a single author while not unduely causing frustration when one reasonably runs into several nodes by one author that all deserve an up-vote.

I see a certain 'danger' (probably a word with too many negative connotations for the exitable, but...) in such an implementation, and perhaps you have already considered them...

One of my "voting behaviours" is to sometimes seek out (via Super Search some area of interest, say, charting and graphing, and work my way back through those threads with promising authors/titles. As I do so, I very often find old nodes/entire threads still worthy of an upvote. And so I find myself sometimes casting many votes on a given topic.

Now, the 'danger' I perceive here is that, possibly, because of my choice of topic, it may appear (to an algorithm, anyway) that I am casting a disproportionate number of votes for a given author... Say, our very wise zentara may receive a "showering" of upvotes simply because he seems to hold the corner on the market for Tk and Gtk2 knowledge.

So, my question is, might node age and also node topic (perhaps using keywording) influence the determination of whether or not a disproportionate number of votes is going to one author?

This is a somewhat pointless reply, since you've already abandoned it, but I'll mention it anyway to have it taken into consideration for future changes.

I don't really like the idea of disincentivizing casting multiple upvotes (or even all of your upvotes) for a single author, because I think there is a fairly common positive scenario where this happens. When I read posts where I can tell that the author really knows what they are talking about, or s/he has a vein of expertise in something I find useful, I will start reading through that author's old posts. It's a handy way of discovering a vein of brilliance in the mountain of nodes out there, and it can often uncover some gems that aren't identified well by the node reputation mechanism.

You could construct an advanced Perl course for yourself simply by reading and understanding all of ikegami's posts, for example. Or I remember when tilly had to bow out of the Monastery, I went through quite a few of his nodes.

When undertaking such an author-centric mining expedition, it's natural to upvote the nodes you really like along the way. In fact, it will probably bring those nodes' reputations more in line with their "true value".

That said, I think that use case is still less common than the more typical "I want to reward this author so I'll randomly pick from his/her nodes and upvote them", which doesn't make the nodes' reputations any more accurate.

Note that planetscape was defending (well, preserving) the practice of topic-centric browsing, partly by saying that it correlates with the presumably undesirable author-centric voting; I am saying that there are not uncommon cases where author-centric browsing is desirable as well.

Why would someone only ever downvote, anyways? I'd think half the point of having votes was to reward good post(er)s by upvoting them - it seems just downright misanthropic to deliberately not upvote a good node and save votes for downvoting.

(The other half, of course, is downvoting bad nodes - but it seems odd to deliberately seek out the worst nodes to downvote while deliberately not upvoting the helpful Monk and such.)

I agree that someone should be able to downvote a meditation without being "punished". But I think someone should be able to downvote an objectionable node no matter where it is posted without being punished. That is why everybody can still do that.

I don't see how Meditations is special to the point that someone choosing a pattern of only downvoting should get a "pass" on taking what they dish out when it comes to a meditation.

I mostly agree with the spirit here. I disagree or have some questions with the details.

Timing The two-weeks / four-weeks thing seems about right for SOPW, but other forums seem to me to age differently. CUFP and OBFUs are lower down on the RAT page and sometimes people let them sit around longer before coming back to them to give the upvote (or maybe it takes longer to de-obfuscate before you say "aha"). I don't want to throw the baby out with the bath water, but perhaps future implementations might set these timings in the system on a per forum basis?

Upvoting all one monk I think I understand the problems being solved, but I don't like the idea of being punished because, say, ikegami, is very helpful and writes lots of good nodes. I personally understand the nodevote vs. monkvote distinction; I don't seek out one monk to upvote. Yet often I end up spending a lot of votes on one monk when a) she or he is active and b) she or he is knowledgeable and therefor ends up writing good nodes.

Affect on younger monks the above occurs less often now that I have 12 whole votes to cast, but earlier when I had only 4, it would be much easier to spend all my votes in one place. I wouldn't want to endorse something that ends up punishing our youngest monks just as they're getting enthusiastic about the site. Later when they've mellowed and learned not to be so excited about XP, then you could punish them ;).

Even RAT and Newest Nodes don't special-case how long they show things based on the section that they are in. It seems unlikely to me that someone would find nodes in one section after 2 weeks via RAT / NN.

So I agree that people may not "get to" some sections as frequently as others, but I don't think that tendency has much impact on a time limit that is as long as two weeks.

Ah, I am sorry; I didn't mean that RAT special cased it's presentation of nodes. I meant that as a user interaction side-effect of RAT putting OBFUs and CUFP at the bottom that users (well, at least this one) would be slower getting to those nodes than PMD or SOPW, which RAT puts at the top.

You're probably right about two weeks being long enough regardless, but my impression is that popular nodes I've written in SOPW get their reputation quickly and then are forgotten, whereas my japhs get reputation trickling in over time. I expect that your change will be fine (as I said, I agree with the spirit of the change), but request that this aspect be considered as you get empirical data post-impementation.

If you cast too many down-votes, then each down-vote poses a chance that you'll lose 1 XP. If you only cast down-votes occasionally, then each will still give you a chance of gaining 1 XP.

I was afraid that this wouldn't have been fair and that it would have far worse side effects than the problem it aims at solving. Reading the more accurate description of the mechanism, though, I think I'm safe, for one.

My concerns were that I do frequently downvote. Indeed, as I have already written (but I'm currently unable to find any reference through Super Search) I often start my visits to the Monastery from Worst Nodes, to avoid the bias of Best Nodes, amongst other reasons. Basically, I upvote any node that was unjustly (IM{V|NS}HO) downvoted (which is relatively rarer), and confirm the downvote otherwise. Then I upvote the answers to the negative reputation nodes... well, if they deserve to, but generally they do. I would say that on average I spend at most 25% of my daily votes on -- ones, but generally even less. I don't think that this is unethical the most important point probably not being to raise the Monastery's overall brightness as much as doing so reasonably while at the same time sharpening the contrast between good ones and bad ones. Of course I'm not talking about spam, which I ignore altogether...

I personally believe, anyway, that a far better mechanism should take care of people downvoting perhaps only once or twice a day but on an hominem basis. One way to detect such behaviour would be to check for downvotes applied where many upvotes went. Of course this should be not take strictly for otherwise one could not simply disagree with most others which in all earnestness can and probably must happen... but if this kind of downvoting takes place too often and perhaps always with the same target author(s) then it may ring a bell...

I get the impression that the effects on low ranking Monks has either not been given due attention or just has not been documented very well. In Re: History now influences votinggoibhniu mentions the problem of having a small pool of votes and punishing someone for voting for the same user too many times. And in Re^4: History now influences voting (judgement)dwu points out that users can Vote much sooner than they can Consider, which e.g. raises the question of how they should respond to spam?

It might be nice to have a warning sent to a user's Inbox if he is coming close to exceeding one of the thresholds. This would help negate punishing someone for doing something that is perceived as a community service.

Regarding losing 1 or 2 XP every now and then, there is one situation where it is relevant -- just after leveling up. Maybe a grace period should be put into place before someone is leveled down due to a minor XP loss?

Anyway, just some things to think about.

Oh, and I almost forgot – I think an exception should be made the infamous Paco thread!! :-)

I see a little bit of a problem here: it seems like we are getting away from "voting" and moving toward "politically correct accolades".
I have, on 2 occasions, sought out and down-voted most, if not all, of a particular person's contributions. I did so with the intention of hoping to make that person re-consider their style of posting and their choice of content.
These 2 people were blatantly against the norms and practices of this community; and I would do it again, if another opportunity presented itself.
However, now that I am being judged "bad" by having a bad opinion of someone; I am inclined to conclude that this community is really just self-destructive, and leave it to die the death it seems to desire.

Now, to clarify, I never down-vote any node that I feel is constructive; regardless of who posts it; but I hoped that no-one would punish me for disliking a person's post so much, that I would go back and find out if they had ever posted anything worthwhile, and finding nothing good: calling it so.

Sad to say; the rules are changed already; in an "holier than thou" manner (which is not the first time either); and I am dissuaded from voicing my opinion anymore.

You are still free to go downvote every node by a particular author. You just have to have the motivation to do that despite the fact that it will cost you about as much XP as the "damage" you inflict.

I did so with the intention of hoping to make that person re-consider their style of posting and their choice of content.

My experience is that your desired reaction from an author is much less likely than a reaction similar to "some bozo got his thin hide bruised by something important and True™ that I expressed not gently enough". After all, voting down every single node of an author makes a lot more sense as "attack the author" than "wow, every single node that he wrote actually sucked a lot and I never noticed before now". Even as you express what you did it doesn't sound to me like you actually evaluated every single node and found that it sucked before you down-voted it. So I don't find your story convincing even when listening to you tell it. So I'd be very surprised if the author got out of your actions anything close to what you were trying to convey. So you no longer being able to convey this particular sentiment so ineffectively doesn't seem like a big problem, to me.

As I said before, these are simple rules; they can't handle all situations perfectly. I think the picture you paint, even interpretting it in the best light, is quite an exceptional case so I'm not too bothered by the new rules not handling it so well.

And I think it makes sense to forgive past sins. If you didn't notice that my nodes sucked horribly when I posted them, then you lost the chance. That seems completely appropriate to me.

but I hoped that no-one would punish me for disliking a person's post so much, that I would go back and find out if they had ever posted anything worthwhile, and finding nothing good: calling it so.

I'm sure the person whose style you johny-come-lately decide to hate had hoped that nobody would punish them for continuing a style over years that was not discouraged (by you) during that entire time.

You'll just have to look harder now so you can identify the "bad people" who post these bad nodes so that you can anonymously throw rather uninformative "something about that node sucked" snipes at them sooner rather than later. Surely discouraging (however vaguely communicated) their bad behavior earlier can only be an over-all improvement.

If you are going to throw XP stones, then don't live in an XP glass house. Suck it up and take what you dish out (in the rare case when you feel the need to spew a whole ton of down-votes in a row).

Sad to say; the rules are changed already; in an "holier than thou" manner (which is not the first time either); and I am dissuaded from voicing my opinion anymore.

Rules can change back, of course. Somebody will have to explain to me the "holier than thou" angle. Most of these changes were announced years ago. All of them have been discussed at various times with various groups.

These 2 people were blatantly against the norms and practices of this community

There have been a lot more than 2 people who were abusing downvoting blatantly against the norms and practices of this community. I think that concern wins out. Perhaps you have been lucky in not having been on the wrong side of that issue and so not caring about it.

"politically correct accolades"

The rules are content-free so I don't see how anything about them can be "politically correct". If it becomes politcally unpopular to use the term "nerd", then these rules will make absolutely no notice. Nice pejorative term, however.

Something in this discussion made me think again about the nodevote vs. monkvote distinction. The purpose of nodevotes is to highlight to the community those nodes that are worthy and also those nodes that are less so. In that regard, it's not about XP (we've all gotten over the XP thing, right?). So it seems to me that upvoting or downvoting old nodes that we missed for whatever reason (I only just joined this year myself) still serves this purpose.

The thing is we don't even have MONKvotes. There are some feedback mechanisms so that those who write good NODES get rewarded and those that write bad NODES get some disadvantage. But the way it's structured, those are consequences of how you write your nodes. And this is as it should be, I think.

Perhaps, though, since we have now changed it so that voting on old nodes does not punish in the present the monk who wrote them (and may well have learned and improved from it and repented of her or his evil ways in the meantime), we should also consider making it so that the voter on old nodes is not punished either. As stated, the purpose of the NODEvotes is to identify good or bad nodes (and old good nodes are still good and old bad nodes are still bad). I would think current voting to support that system shouldn't be punished; I guess it seems enough to separate the punishment to the node author from the downvote without punishing the voter.

As I stated before I think the spirit of the change is good - to prevent downvoting from being used as a personal attack. I'm not asking that rules change back, but I'm expecting that as the larger community comes to understand the new system, that they might still be allowed to change forward.

The rules are "politically correct" because they purport to "protect" the tender feelings of posters who consistently post bad nodes at the expense of the "mean" voters who vote their nodes down.

I say "holier than thou" meaning that you, tye, have decided and decreed it be so. "Suck it up." There may have been discussion, but I have not seen it. It seems as arbitrary and capricious as the whole "redefine the levels" bit, not too long ago.

If I vote down a series of nodes by the same bad author; why should I have to agree to take a hit on XP myself? I don't understand the logic. If they are "votes" they should be able to be exercised without repercussion or identification. If there is reward or punishment attached to how they are used, they cease to be votes and become something else.

If down-voting nodes is such an ineffective way of communicating that nodes were bad, then why have it at all? Maybe you should only allow up-votes? Or take it even further, you should decide on each node that you like, and give it the grade you feel it deserves; and then inform all of us trolls and unwashed masses what we should think of it.

If a node is more than 4 weeks old, then the odds of its author gaining 1 XP when it is up-voted are 1/3 no matter the reputation.

I'm not completely sure, but I think I like this change.

No XP loss if your node is only down-voted once.

I guess I like this one as well

You gain 1 XP for each node you post that at least one person up-votes.

I'm not sure I like this one or not, but it will definitely increase my XP a lot, because I write lots of short comments which very few monks even read and vote on.

For each user, PerlMonks tracks a weighted average of the recent votes that they have cast. Each time you cast an up-vote, your weighted average, $vtavg, is set to 0.1 + 0.9*$vtavg. Each time you cast a down-vote, your weighted average is set to -0.1 + 0.9*$vtavg. So somebody who only ever up-votes will quickly have a $vtavg very close to +1 while somebody who only ever down-votes will quickly have a $vtavg very close to -1.
If your $vtavg is positive, then each down-vote has $vtavg/4 chance of gaining you 1 XP. If your $vtavg is negative, then each down-vote has $vtavg/3 chance of losing you 1 XP. No, you are not allowed to look up another monk's or even your own current $vtavg.

I really don't like this change. Not only this punishes downvotes, but it also has a discontinuity at half-half upvotes and downvotes which someone like me might want to work around by casting meaningless upvotes to bring the vtavg over zero.

You gain 1 XP for each node you post that at least one person up-votes.

I'm not sure I like this one or not, but it will definitely increase my XP a
lot, because I write lots of short comments which very few monks even read and
vote on.

No, it won't increase your XP even a whit. The only change on that part was making
the documentation clearer about what was already the case.

I really don't like this change. Not only this punishes downvotes, but it also
has a discontinuity at half-half upvotes and downvotes

No, the function is actually continuous around zero. If $voteavg is close to
zero, then your odds of gaining/losing XP are also close to zero when you cast
a down-vote. If the chance of losing 1 XP on very rare occassions is so
abhorrent to you, then you are a bit of a hypocrite for dishing out half of your
votes as down-votes. The net XP impact for you of casting 1/2 up-votes and
1/2 down-votes would be positive in the long run. So there is no net
punishment for 50/50 voting.

Since xdg noted that s/he missed the $voteavg factor in the equation for the odds, then perhaps you did as well. So the standard documentation needs to be expanded to not just show the math but also to explain more clearly what the impact of that math is.

I'm not terribly surprised that one "doesn't like" the chance of getting back
a small fraction of what they dish out on occassions when the negativity
temporarily has the upper hand. And I appreciate you being honest about it.
I'm in the same situation. I have been more likely to cast down-votes than many monks
in part because I would sometimes cast what I consider "compensating" down-votes (this will likely change somewhat).

which someone like me might want to work around by casting meaningless upvotes
to bring the vtavg over zero.

Yes, the system can't stop people from taking the moral "low road" and trying
to game the system. I'm sad that you would choose the moral low road to avoid
getting back a fraction of what you dish out. But the game that you are
proposing is complex enough that I hope that most people would abandon that
game eventually. "PerlMonks: The story of how I learned to stop worrying and
stop loving my XP and embraced voting the node honestly". Wouldn't that be
nice? I suspect that even you will be tempted to not completely
waste the up-votes that you cast just to prevent your $voteavg from
temporarily dipping too low and so (I hope) you will tend to up-vote the more
deserving of the nodes conveniently at hand. In fact, I would think that the
personality that casts a lot of down-votes may find it particularly
distasteful to up-vote nodes truly randomly. So I'm not convinced this
particular motivation to game the system is that strong in the end.

People very often dislike change. And certainly many will dislike change
that takes away a reward that they have come to take for granted (not much
complaining on that point this time around, though). So, of course, many will
dislike a change that may give them a "punishment" (no matter how small, it
appears). I am "lucky" in that the vast majority of my "audience" hardly ever
down-votes so this chance of "punishment" only impacts quite a minority.

I presented some of the cases of abuse that motivated these changes. I didn't
otherwise try to convince those about to risk punishment (being holier
than thou, of course) that this is a Good Thing™. In replies I've noted
that this risk is quite low and, in the cases of the counter arguments
presented, the "punishment" would also be quite small. But I really don't
think anything that I could say would convince those about to be "punished"
that the punishment is a Good Thing™. But I think discouraging
some fairly common and serious "abuse"1 is worth the minor
discouragement of some less abusive activities that are still a disruptive
influence (if you are casting half of your votes as down-votes, then you are
surely downvoting for relatively minor infractions, the type of thing that
leads people to mutter "what was worth down-voting about that?!").

1 I only use the scare quotes in that case because most of it isn't
officially defined as "abuse" by site policy, although I think most would
agree that the vast majority of it (doing nothing but down-voting tons of ancient nodes by a single author) qualifies as at least a mild form of abuse
that is pretty clearly against the spirit of our little system.

For each user, PerlMonks tracks a weighted average of the recent votes that they have cast. Each time you cast an up-vote, your weighted average, $vtavg, is set to 0.1 + 0.9*$vtavg. Each time you cast a down-vote, your weighted average is set to -0.1 + 0.9*$vtavg. So somebody who only ever up-votes will quickly have a $vtavg very close to +1 while somebody who only ever down-votes will quickly have a $vtavg very close to -1. If your $vtavg is positive, then each down-vote has $vtavg/4 chance of gaining you 1 XP... If your $vtavg is negative, then each down-vote has $vtavg/3 chance of losing you 1 XP.

Picking up on another post, I think this could be enhanced in two ways:

Lower the weight of new votes from 10% to something more like 5%. At 10%, a $vtavg of 1 will go negative after only 7 downvotes. At 5%, it goes negative after 14 downvotes.

Lower the threshold for risking losing XP for downvoting from $vtavg < 0 to something more like $vtavg < -0.25.

I don't know that you need to do both of these, either is probably fine. But someone who is very balanced, who frequently downvotes as well as upvotes could easily wind up negative after only a short series of downvotes, which could easily happen in a highly controversial thread, for example.

I think the original proposal stigmatizes downvoting too much. While we want to avoid abuse, we also don't want to stifle inclinations for genuine criticism.

-xdg

Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

The intent is not to stigmatize down-voting. The intent is to encourage empathy, but not total empathy just because that would cause way too much complaining. The vast majority of monks can still cast a down-vote without any fear of losing even 1 XP for it.

don't want to stifle inclinations for genuine criticism

I guess you mean "genuine criticism" in the sense of the intro line from the old series The Critic: "It Stinks!". I think that intro line was meant to be ironic. Calling a down-vote "genuine criticism" sounds quite ironic to me as well. I think a much more accurate term is "anonymous sniping". Now, contrary to some who would resort to reductio ad absurdum, that doesn't mean that I think we should just get rid of down-voting. As anonymous sniping goes, down-voting is of a superior variety. On the internet, anonymous sniping is inevitable but most of it contains far too many words. It is hoped that down-voting as anonymous sniping provides a valuable outlet for negative feelings, one that most of us don't have to witness1. As an aside, note that down-voting works best when at least one of the critics at least occassionally finds the eloquence to cast the cricism in the form of words (and not as flames).

1 But the sniping can still be satisfying because there is at least a chance that an impact will be noticed on the node's reputation and maybe even on the author's XP. And the sniping may even ultimately be constructive in causing a small doubt or concern to appear in the author's mind that eventually comes out as an improvement in some behavior (the connection is quite tenuous but the hope can still exist that the aggregate impact may be positive).

Down-voting also has a small role to play in node reputation. But node reputation is all about the number of monks motivated to vote not how motivated nor how often motivated, so since there is no dis-incentive against individual down-votes, it will still serve that purpose quite well.

Some are predicting the loss of the down-vote as "monk discouragement". Yes, I've certainly made it less useful for that particular purpose. But I don't think it worked very well for that purpose when used as one monk systematically downvoting all or most of the nodes of some other monk. So I don't mourn that particular loss. And I think it is still a powerful option if used as "a whole lot of monks take a dislike to many of the recent nodes of one monk and a lot of down-voting, in aggregate, results". So it can still be a powerful tool for "monk discouragement" but only when there is some small bit of concensus in the matter and the discouragement is based on recent postings not past sins. And I think both of those restrictions on its usefulness are good things, actually.

The change is that casting a lot of down-votes will soon require a bit of "forced empathy".

In most cases, "casting a lot of down-votes" has a whole lot more to do with the person casting the votes than with the nodes being voted on. So that type of "criticism" doesn't qualify as "genuine", IMHO. In rare cases, one may find a genuine urge to provide a lot of "criticism" without the motivation to actually form words. I completely understand that urge. And giving in to that urge is certainly better than resorting to flaming. And I bet that people will continue to give in to that urge more than rarely in the aggregate. I hope the main impact of this particular rule change will be that those people will more quickly get over the urge. That's part of the point of allowing down-voting: getting over the urge to continue sniping.

The idea of your option (1) doesn't bother me. I'll certainly comtemplate/discuss that some more before throwing the big switch to finish enabling the feature. But I think having a less than a 1.5% chance of losing 1 XP after casting the 8th down-vote in-a-row is quite a small amount of empathy and it doesn't seem even close to "too much". It climbs to a mere 10% chance of losing 1 XP after the 10th consecutive down-vote. If that looms large to you, then I suspect that is more fear of the unknown magnifying the prospect and you'd find it not nearly as disturbing as you expected once you started living in that new world.

I don't like your option (2). A little uncertainty near the zero point builds character.

I am still curious what your thoughts are on the "How should Perlmonks deal with Plagiarism?" thread and the massive downvoting that occurred as a result of it. To me it is the perfect example of how "monk discouragement" can resolve a serious problem faced by the community. Do you disagree? Or do you consider this a classic example of the exception that proves the rule? Or are you saying you do not approve of the approach taken?

If I understand the new voting/XP changes correctly you have seriously defanged this approach. Given comments like the ones you made in Re^4: How should Perlmonks deal with Plagiarism? (legalese) and other posts in that thread what do you think the community should do if a similar situation arises?

I'm curious because in the OP you claim these are minor changes yet it seems like at least in the scenario above your changes are anything but minor.

Regarding "forced empathy", I wonder if some other system could be worked out instead such as not counting the vote if it would cause an XP loss [to the person doing the voting]? Perhaps this could even be configurable (so those who are fine with losing some XP can do so while those who do not like the idea can avoid it). Or as I suggested in a previous post what about sending a message to the user's inbox letting them know they are close to exceeding the threshold (since it sounds like it takes some effort to hit the threshold)?

Anyway, I'm just throwing some ideas out because I think sending negative feedback for positive actions will discourage the positive actions. Overall I like the changes -- I just wish this could be more of a win-win type situation.

I guess you mean "genuine criticism" in the sense of the intro line from the old series The Critic: "It Stinks!". I think that intro line was meant to be ironic.

I meant it more in the sense of "downvoting a crappy node" versus "exercising a vendetta against a poster". In my opinion, there are plenty of reasons for downvoting out of genuine criticism:

incorrect answer to a question

boring or otherwise uninsightful meditation

bad suggestions for changes to Perl Monks

inappropriate language (profanity, personal attacks)

trolls

In many of those cases, it's not even worth the time for a written reply -- so I guess in that sense, a downvote does just mean "It Stinks!"

N.B. I missed the $vtavg in the chance of losing XP in my first readthrough -- that does lessen the impact substantially and probably does away with the need for my suggestion #2.

-xdg

Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

And in the case of trolls, replying to them could be considered "feeding the trolls". I suppose a "Stop feeding the trolls" message would be fine but I'm not sure how effective they are. That code to hide responses from our troll back in October seemed to be much more effective though.

Good work. I gathered from one comment that you'd be delaying actually putting voteavg into the equation. If so, I suggest that voteavg be set to 1 for all monks now (and for new monks at creation). Otherwise, you'd end up either waiting a very long time for all monks to cast enough votes to get a reasonable initial value or shortchanging monks who rarely vote of some XP for a number of votes. YMMV.

$voteavg doesn't enter into the equation for XP earned for up-votes. But I think I'll change it to default to 1 as you suggest anyway (and then adjust existing $voteavg values).

Update: Default for new users is now 1. 1 added to the voteavg of the 20 users who had managed to get their voteavg below 0, all others had theirs set to 1 (like adding 1 to all but w/o overflowing above 1). Over 400 users had voted and raised their voteavg above 0 before I made this change.

I can always count on 2 or 3 downvotes for every node. I've been around long enough to have gathered a few enemies - it was never a problem when I was new.

Having enemies has tought me a valuable lesson - having enemies is expensive. Not a bad lesson, I think.

The current problem that I have is that I don't like to comment on stale nodes as much as I used to, because the 2 or 3 downvotes that I will get will not be balanced by upvotes, and I don't like to have too many nodes with negative XP. Will this change help with that?

Of course it could all be an illusion. People tend to see patterns where none exist. Adding complex logic will reinforce the will to see patterns. And who knows - the change might accidentally remove the bug in the random number generator that I have been taking advantage of :-).

Over the last 8 months you've had a grand total of 6 down-votes, each one cast by a different monk. In that same time you wrote about 16 nodes so your perception doesn't match recent reality. FYI.

The current problem that I have is that I don't like to comment on stale nodes as much as I used to, because the 2 or 3 downvotes that I will get will not be balanced by upvotes, and I don't like to have too many nodes with negative XP. Will this change help with that?

Hard to say. I suspect it will help some. There might be a tiny increase in odds of up-votes going to old threads due to heavily-down-voting monks just trying to get their voteavg up. :) Likely we'll see a reduction in the number of monks who list "comments on long-dead threads" among their pet peeves that are worth down-voting for. Maybe we'll get more monks hitting worst nodes looking for candidates to up-vote.

I think it will still be fairly common (though less common than it was before the change) for a "reasonable" node to get 1 or 2 downvotes. But I also think the change will greatly slow this trend.

This is an interesting reply, and more than I wanted to know! Maybe I should revert to being a smacktard :-). But I haven't done much PM in the last 8 months, and I was thinking back to the 2002 to 2004 timeframe. I didn't know that the people who I have annoyed in the past have either forgotten about me or moved on. Of course PM makes it difficult to tell if such enemies really exist, and it may have been all in my mind.

I had no idea that some people are annoyed by replies to old nodes. Since I use PM as a reference, I appreciate them as long as they are informative, and I have found such replies helpful on several critical quests, on this site and others.

it seems tyrannical to both encourage voting in general and also discourage a particular class of votes.
why not just remove the ability to cast negative votes at all? we can choose between + and ++ and everyone will be a winner!

I'm afraid this system strikes me as being a bit overly complex -- it would seem to me that there should be something simpler and less fussy that gets you most of what you want.

It's possibly a strained analogy, but consider that the winning strategy in prisoner dilemma tournaments is just "tit-for-tat". Everyone tends to assume that more complicated strategies with more use of history will work better, but that's just not the case.

On the other hand, I don't particularly care myself -- I think in practice no one in their right mind is going to keep track on the current XP rules; and after posting this I'm just going to go back to regarding it as a mystery I'd rather not know about.

(If I were designing the system, I might go for one where only up votes were allowed, and there was no reward for voting -- what kind of democracy bribes people to vote?)

PerlMonks is clearly not democratic, regarding either the way it is run or its purpose.

It is run by a meritocracy. The votes have nothing to do with that. They have nothing to do with decision finding
and power to steer the global course, but more with decision finding for our own actions as programmers.

Obviously I'm just as in the minority now as when I complained about the added XP levels...

IMHO this is a mistake, just as that was.

The XP 'game' we play here is taken entirely too seriously by half and needs to be played DOWN, not played UP.

I am forced to ask the question : was the problem that we are attempting to solve so big as to warrant messing with the status quo? And WHAT pray-tell is that problem exactly?

It sounds to me like the problem is "personality-voting".

So is it worth it to call out the Thought Police in order to make that go away?

I signed in this morning & got a new notice saying I had x# of down-votes left - with a link explaining this new sarcasm. Apparently this is an elbow to the ribs letting me know that I've been identified as a negative-nancy and that if I dont start a-changin' my ways to the New Way then I'm going to be punished.

So much for my votes being my own to do with as I please.

So no more --'s from me for now on.

No more --'s nor responses to Trolls - All Will Be Considered.

No more --'s from me for rudely phrased knee-jerk reaction nodes to n00bs trying to learn the language that say "RTFM", or "Learn how to phrase a question" or "Use Super Search" - or anything else that maybe should have been said in the CB instead of writing a repetitive elitist node. No - these are always popular - usually more popular that someone trying to (God-forbid) Learn Perl. Therefore my cutting against the popular grain in this way is now deemed as "disruptive to our community".

The active pronoun there being "our".

This was a meritocracy. Now Power is being consolidated in who & what was considered popular - with no voice for derision without overt punishment.

The message you have sent with this is that negative votes are meaningless and risky behavior, so don't use them anymore.

I liked it better when there was an end in sight for the XP game. Everyone used to top off as a Saint right about the time when you shouldn't need the pecking order anymore. Now it is arguably the primary motivation here - rather than Perl itself.

If it ain't broke don't fix it. You need to divorce your motivations from your results. Perlmonks wasn't broken. Now it is. If you keep making these changes in order to deal with increasingly unimportant 'social-issues' that have nothing to do with anything but a popularity contest - you will find yourself on a slippery slope leading down to a totally inwardly facing cabal of sycophants.

It's a shame. This site has been a useful Seat of Learning for so long. I would hate to see it ruined by artificially induced politics.

The XP 'game' we play here is taken entirely too seriously by half and needs to be played DOWN, not played UP.

...

So no more --'s from me for now on.

Er, what? Aren't you taking this game way too serious here?

Not downvoting a troll's post is good. The Right Thing To Do is ignoring them.

It's a shame. This site has been a useful Seat of Learning for so long. I would hate to see it ruined by artificially induced politics.

A game is a game is a game. This site won't be ruined just because a playful nature is tweaking the rules to make the game more interesting. There are way too much witty people here, way too much interesting content, and PerlMonks is well established as a resource of thoughtful code considering and help with all things perl.

I've had some time to experience the new downvoting rules and thought a bit about the whole down/upvoting thing. These are my thoughts:

Downvoting penalties should get harsher (exponentially?) the more a person conecutively downvotes (similar to the new rules).

It may be nice to find a way to reduce the prominence of negative nodes. Something like lightening their color or requiring a particular level to view after various stages of --

Perhaps making both down and upvotes cost a percentage of your own XP some percentage of the time. (You are giving your ++ to others but it grows over time. This last one would be a dramatic change from before so i'm not sure how popular it would be. It may very well hurt the site's popularity.

I'm not saying these changes should be made, just offering ideas that popped into my head to be tossed around.

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other