|
I meant to thank you for that.
|
|
|
|
|
Sorry Hans, I have a different view on voting.
I like the 1-to-5 scale a lot. It allows readers to express their opinion, and even convey a little nuance. One could/should interpret the numbers as very bad, bad, neutral, good, and very good. Aggregating a lot of votes results in the community score for the article/message.
I'm definitely not in favor of any asymmetric scheme, like the one you propose. An article/message on a specialized topic would not get many readers and votes, and would probably score less than a mediocre article/message on a popular topic.
The univoter phenomenon isn't really worrying. It does not occur often, and it gets compensated by the community pretty soon. The worst effect it has IMO is a young article, when hit by an undeserved 1, immediately disappears from the "Latest Best Picks" on the home page.
The one thing that might be needed is stimulating all readers to vote on everything they read. The motto should be: if you care enough to read it, you should also care enough to vote (and when you do, please try to vote accurately). You, the reader, are part of the community, so let your opinion count, let it be included in the average. You should not vote on things you haven't read, or don't care about; when you care, you vote.
And finally, with a sufficient number of readers also casting votes, the univoters would be completely outnumbered and most of them might just abandon their silly game.
|
|
|
|
|
I respect your opinion a lot, Luc, but I have to tell you that lately every one of my articles has been down-voted for reasons that have absolutely nothing to do with the article itself.
I have gotten used to this and expect it. New authors don't understand it. All the other problems that CP has are trivial compared to the negativity generated by the voting system. Chris has tried bandaids and the result has been negligible.
The morons have won. I give up.
|
|
|
|
|
Hans, I was not aware of any particular situation. I can only imagine it is very unpleasant to get a hailstorm of ones. Obviously the last thing anyone (but the morons themselves) wants is good work to be downvoted.
I would assume CodeProject could detect which account(s), which IP address(es), get used to commit such silly acts when one or a few people are targeted.
In the past I once proposed a scheme where every account would have a voting budget, not with the intent to limit the number of votes, but to steer their distribution; so one would have to have the upvote/downvote ratio within certain limits. Example: 1-1-1 would be impossible without any intervening 4 or 5 votes, something like that. So the budget is one earns the right to vote 1 by voting 5 too, and vice versa. I know, that would not completely stop the morons, they could upvote each other and downvote everyone else.
We now have the reputation system, how about doing something budget-like for the low-rep accounts? and relax/lift the limitations based on rep, i.e. once serious commitment has been detected.
[ADDED]
One more idea:
why not limit the possible voting targets to articles/messages by authors that do not exceed the voter's reputation by some factor? So someone with rep 100 could vote everything up to say rep 1000, but nothing higher. So a moron and a well-intending newbie, could only down/upvote messages of people in their own league. This would need some fine-tuning, e.g. whoever asks a question might vote on all answers no matter what their reps say.
[/ADDED]
I would not mind (actually I already proposed it for articles) when all votes required a justification, not only the 1's and 2's. Maybe all it takes is requiring justification for every vote that causes the voter's distribution to completely tilt one way or the other. So person X, casting his third 1-vote on any particular day, would be forced to justify it; even when he enters nonsensical text, at least it leaves a trail for everyone to be seen.
I do hope we can get this solved without punishing or hindering the people who mean well, which includes the article authors first of all.
|
|
|
|
|
I know you want to help CP, which is why I'm responding. I think that 4 or 5 years ago, what you suggest might have worked. The problem is that CP has become successful, and that has attracted the morons. The only rational conclusion is that the situation is going to become worse. Imagine a hundred CSS's going through the site and randomly voting.
We can't expect Chris to prevent this from happening, and still have CP be the open site that it is. I know I would be giving up something, but I just can't stand the negativity that the voting system generates.
|
|
|
|
|
I still believe we could keep the morons in check; of course we can't expect the CP staff to guard everything, however the reputation system could be used as a defense and even be quite effective IMO. You did see what I added to my earlier message?
|
|
|
|
|
Luc Pattyn wrote: We now have the reputation system, how about doing something budget-like for the low-rep accounts? and relax/lift the limitations based on rep, i.e. once serious commitment has been detected.
An issue is that downvoters often create sock-puppet accounts, so getting around this is easy. I could then tighten up membership requirements but that then makes things difficult for the other 99% who are sensible.
As well as this we hit the issue of the legitimately helpful voter. We do have a system that looks at voting patterns and tries to find those voting malicously. However, many, many times I find malicious voters have actually cast a lot of upvotes, or alternatively I've found serial downvoters have downvoted articles and messages that legitimately should be downvoted. These guys actually need to be encouraged because they help everyone.
Complicating the system doesn't work. all it does is shift the burden to other members.
However, there is a complication that may work:
We store the Id of the voter for each vote. We could let members vote on articles but keep their vote as "pending" until that voter reaches maturity (say, Bronze or silver). As soon as that happens their votes suddenly count.
Issues are:
- There's no gratification for voting. Nothing valuable would happen for new members
- It's complicated and requires explaining
- it's a buren on the servers
- The majority of members are actually only casual members. Not enough reach Silver, say, for voting to be effective.
Any solution must encourage upvoting of good content. I am starting to think Hans has it right in that the simpler something is, the more likely it is to be understood and used, so the more votes would be garnered and the more effective the system would be.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
OK,
budget-voting is out, too brittle.
yes, voting should have immediate effect/gratification for the voter, best also for the votee
yes, whatever the scheme, it should be explained and made transparent.
I would go for delta-rep-limited voting: a voter can vote on everything, however he cannot cause the average to go down when his rep is less than one N-th (e.g. N=10) of the authors rep.
Examples:
- everyone can vote 5 everywhere
- everyone can vote 4 everywhere if the current average is 3.7 or 4
- rep 100 can vote 1 on rep 500
- rep 100 can not vote 3 on rep 1500 if average was 4.2
All the above get accounted for voter and votee exactly as it is today.
BTW: if you don't like 1/N, how about one color down (so it takes gold to hit on a platinum, etc).
That probably protects most of those that care most, however it allows any blank to hit a bronze.
In the short term, I suggest to force a message on every article vote (or every article vote less than 5, but that could stimulate fives, not my intention); what counts here is the visibility, not the message itself. If you don't like messages for fours, please consider adding threes to the current ones and two's; it sure isn't the case that you will loose many legitimate 3-votes, I'd say.
|
|
|
|
|
I'm going to need a UML diagram for that, Luc.
I understand your intent. However, it does not allow the majority of uses to undo a vote of 5 voted by a sock-puppet of an author. This will make it easier for bad articles to float to the top, degrading the perceived average quality of CodeProject articles.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Sorry, I'm no good at UML diagrams. I'm still struggling with Venn diagrams.
OK, your remark is valid, but fixable. Maybe like this:
a color cannot vote below the weighted average of all higher colors (i.e. your current
average, but excluding all votes from some colors); and author's vote gets demoted one color.
scenario 1: author is gold.
first vote is white 3, OK
next vote is white whatever, OK (average is now anywhere between 2 and 4)
next vote is bronze 4, OK (is higher color)
next vote is white 3, NO (below average)
scenario 2: author is gold.
first vote is author (gold) 5, OK (counts as silver 5)
next vote is bronze 4, NO <------
next vote is silver 3, OK (same color, average now 4)
next vote is white 3, NO
next vote is bronze 4, OK <------ (same vote as before, now made possible by silver 3 bringing down average)
yes, I'm aware you need to keep more data now. Keeping top achievers happy will cost you
(instead of one average, you would need one for each voter color, hence five)
|
|
|
|
|
What you need for articles (and yes I've never written one - blah, blah, blah, lounge lizard, trouble maker etc. ) is a "critique" system.
In such a system - and this might play quite well with the recently stolen introduced vanity reputation system - articles are put up for peer review. Those luminaries who have a decent technical reputation (or article rep > some value), rather than berks like me, get to approve content, suggest improvements or throw the same in the bin.
So far, so the same...
However, once an article is made public, users would not be able to vote that on that article - it's been peer approved, after all - but they would be able to offer a critique of it and offer a proposed "vote" on the content. These critiques themselves are the actual subject of votes and it would be the cumulative votes on the legitimate critique, positive or negative, that rates the article.
An example is due:
I write an article on the best "Hello, World!" application in Ass#.
Luminaries decide that it is awesome, and make it open to the public.
Berk #1 comes along and 'critiques' my hard work and 'critiques' with "adsfasd". His vote counts for nought until his critique is up-voted.
Marc Clifton comes along and gives me a 'critique'. He says he's done it all in MyXaml much better and gives me a down vote. Marc's 'critique' gets +5 affimtives.
Pete comes along and says my work isn't valueless and says my work is worth something. His 'critique' gets +1 vote.
Meanwhile Berk #1 has been down voted a number of times because "adsfasd" is worthless.
To calculate we only look at those critiques that got a positive register; -5 for Marc's appreciation and +1 for Pete's making my article worth (clearly 50 billion).
It gets rid of drive-by-voting and also puts an onus on those who do vote to do so properly, such as if someone does the "adsfgsyag" routine they lose, whereas people who offer legitimate critique are rewarded.
|
|
|
|
|
Very interesting. Have to think some more about it.
The big plus is the indirection adds lots of significance to the votes. Individual univoters would be gone; teams of them might still have a chance. Anyhow, that is a huge step forward.
Another plus is it strengthens the community sense, it is based more on interaction between people and ideas now, rather than just the sum of individual votes.
One minus is the delay between entry and publication (on the positive side the delay would now be known in advance). Gold/platinum members can now publish instantaneously, they seem to loose that. However this could probably be rescued, by giving them the option to skip the preliminary peer review behind the curtains, openly taking comments right away from everyone (or only from the happy few for a short while), and not processing the votes on comments for some time.
A minor minus is it sounds like it will be slower to yield a judgement. Actually, it is not clear to me when the votes on comments would be turned into an article score.
Interesting indeed.
hmm, I will read your first CP article, whatever the subject!
PS: I hope someone will upvote my reaction, so you earn some points...
|
|
|
|
|
Luc Pattyn wrote: PS: I hope someone will upvote my reaction
done...
Nice discussion all the way...
|
|
|
|
|
Luc Pattyn wrote: Actually, it is not clear to me when the votes on comments would be turned into an article score.
I have a semi-answer to this (bear in mind I do my best thinking whilst drunk, and at the moment I'm stone cold sober) - a review period where a new article is open to critique. Let's pick on a real example - your article on Timer surprises, and how to avoid them[^] of 2007.
Currently I could go in there and vote on it, 1 - 5. We've discussed (and know) what the problems with that process are, but we can boil it down to a single problem statement "As a voter I am not required to justify my vote and my opinion is not placed under any scrutiny". This allows for the malicious 1 voting and also the 5 voting, which may have nothing to do with the content of the article, but more subjective and anti-quality criteria such as whether I like the author etc.
Now let's assume the critique system is/was in place and see how that would pan out:
1) You post your article which is then open to critique for (for argument's sake) 30 days.
2) People come along and provide useful and also un-useful critiques which are voted upon.
3) After the 30 days, the review period is closed, no further critique can be offered and the resulting score for the article is posted. I see this not only getting rid of the "adsfs 1" type votes but also the "Ohh! Shiny! WPF! I like you! 5!" type votes, but also it concentrates on reviewing the content and quality of the article and also prevents the 1 spamming that might happen years after the article was published. At the end of the review period, what we're in effect saying is that this article was of this quality and was generally found to be correct (or incorrect).
But what about now (3+ years on) I discover a glaring error in your article, what do I do? I can't vote on it, but I do have some other choices:
1) Tell you about it.
2) Write an article in response to your original (an article response system - where my article has to be peer reviewed like any other article).
3) request that an article be reopened for critique (we'd need some sort of system for that also).
I think that system would make this sort of behaviour:
Luc Pattyn wrote: Individual univoters would be gone; teams of them might still have a chance.
less likely to succeed or be worth the effort and uni-voters intent on disruption would have a much smaller period of time to gather the sock-puppets of disruption. Even if they did, that behaviour would be much easier to spot on an article-by-article basis.
It would also get rid of this sort of rampant idiocy[^].
Luc Pattyn wrote: One minus is the delay between entry and publication (on the positive side the delay would now be known in advance). Gold/platinum members can now publish instantaneously, they seem to loose that. However this could probably be rescued, by giving them the option to skip the preliminary peer review behind the curtains, openly taking comments right away from everyone (or only from the happy few for a short while), and not processing the votes on comments for some time.
Yes, that's a good point. The ability to skip that stage should be directly linked to an author's proven technical expertise.
|
|
|
|
|
martin_hughes wrote: open to critique for (for argument's sake) 30 days
Hmm. So after 30 days all is over. That will disappoint some, Chris is much in favor of an article possibly yielding votes and rep points forever, kind of a royalty. I myself am not convinced one way or the other. I think I would be a bit disappointed that, when I stumble on an old article and decide on reading it, there is no way I can add a significant vote to it.
I discovered another potential issue. If I understood it right, an article getting more critiques allows a single voter to give or deny it more points. Whereas in the current system, a reader has a single vote of constant weight. That might become a problem, especially for highly specialized articles getting very few critiques. I for one do not want to favor articles on popular topics at the expense of specialized ones.
I still think the concept is worthwhile and all is fixable, it may need some more work though.
|
|
|
|
|
Luc Pattyn wrote: Hmm. So after 30 days all is over. That will disappoint some, Chris is much in favor of an article possibly yielding votes and rep points forever, kind of a royalty. I myself am not convinced one way or the other. I think I would be a bit disappointed that, when I stumble on an old article and decide on reading it, there is no way I can add a significant vote to it.
Remember the ability to critique an article is only there to ensure the quality of the article. In that scenario it is far more useful to have a small number of critiques that can be voted upon than 50,000 spammed votes and umpteen comments. But in terms of showing appreciation for an old article/author, I see no reason not to have a "Thanks" button that could add to reputation ad-inifinitum.
Luc Pattyn wrote: I discovered another potential issue. If I understood it right, an article getting more critiques allows a single voter to give or deny it more points. Whereas in the current system, a reader has a single vote of constant weight. That might become a problem, especially for highly specialized articles getting very few critiques. I for one do not want to favor articles on popular topics at the expense of specialized ones.
Hmmm. How about one critique vote per article? After reading an article I read the critiques and chose the one I find most appropriate to vote on or write my own critique?
Luc Pattyn wrote: I still think the concept is worthwhile and all is fixable, it may need some more work though.
I need to do some more drinking in order to flesh this one out
|
|
|
|
|
martin_hughes wrote: I need to do some more drinking in order to flesh this one out
You're doing well.
|
|
|
|
|
That's a pretty darned good idea. I like it.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
This will moderate some of the down voting issues, but is still wide open to having members post comments from one account and then vote on them from another. It's more painful for them, but we have some dedicated gamers out there.
Another issue is that it will reduce the amount of positive feedback an author gets dramatically. When I read a good article I want to vote on that article. I do not expect that I have to read the comments and vote on the comments to vote on the article. To me that is cumbersome and counter-intuitive (all respect to your idea, though).
Further, what if someone fills up the first page with negative comments and I want to vote an article up? I would have to search for a positive comment.
I don't want to search for positive critiques. I don't want to vote on someone elses critique, especially if they say an article is good for reasons other than why I think it's good. In the end I would walk away frustrated that a site like CodeProject won't even let me vote on an article.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
I do see what you mean and I've had another idea after chatting to Luc about it earlier that might be a bit simpler and more workable.
My thought is that what you really want to be able to do is to separate judgements about quality from appreciation.
One of my favourite CP articles is this one: Dynamic... But Fast: The Tale of Three Monkeys, A Wolf and the DynamicMethod and ILGenerator Classes[^]. It's funny, witty and an enjoyable read.
Under the current system I had to vote it a 5 to show my appreciation. But in doing so I'm also passing a technical judgement on the quality of the article - and I don't think that's particularly fair on the author or other readers. Let's have a quick look in my profile: "1,155
Authority"; what that's basically saying is that "This user has not yet shown any technical savvy - I wouldn't trust his technical judgement if I were you" (and it'd be right, I don't trust my judgement on getting out of bed in the morning!).
My new suggestion would be to link someone's ability to vote on an article to their proven technical ability and contribution to CP as indicated by their technical reputation points. Set the bar quite high (Gold and above). It would require a very determined sock-puppet master to bring all of his "buddies" up to a standard where they could all vote and have any meaningful effect on the voting.
For everyone else, give them the opportunity to say "Thanks!" to an author/article. Link that to a page that says "This article has been thanked by [list of people]", but crucially register the "thanks" against one of the author's non-technical reputation types (or create a new one, "Appreciation"). This would prevent the sock-puppeteers artificially giving themselves technical reputation.
I don't think this would hurt very many people. In my case if I want that ability to vote on articles back all I need do is contribute technically to the site and earn the right to vote. For those very rare, but legitimate, cases where someone is technical brilliant but can't contribute for some reason, you could always artificially increase his/her tech rep to the required level to enable them to vote at your discretion (Bobenprinzip )
|
|
|
|
|
The problem here is that you then have two types of rep for authors, and the 'appreciation' type will have far, far more votes than the "official" Author rep type. With so few Gold+ members compared to articles the vast majority of articles will have no "official" score, so members looking to the ratings on articles will be more used to checking out the "Appreciation" score instead of the official rating.
Also, if you had never visited CodeProject before then what would you make of a rating system that had two ratings? An article, typically, is either good or it isn't. Splitting the ranking doesn't make sense to me.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Luc Pattyn wrote: An article/message on a specialized topic would not get many readers and votes, and would probably score less than a mediocre article/message on a popular topic.
It's the same thing today. If a really excellent article on an obscure topic gets a few 1s, not enough people are going to read it to rectify that with 5s. Whereas if a fancy WPF article with 12 screenshots gets a single 1, it's immediately drowned out by a dozen 5s.
|
|
|
|
|
Hi Nish,
yep, you're right about that.
Martin's scheme is a better protection, even for the excellent obscure-topic articles.
|
|
|
|
|
I've suggested that at least once. It wasn't met with much enthusiasm.
My view is there should only be one thing someone can "vote" on - whether the article is useful. If they don't find it useful, they don't vote. Period. A 1-5 rating doesn't do anything but piss people off and provide some bizarre form of empowerment on the morons with sock-puppet accounts.
If Chris doesn't want to eliminate the voting system that's already in place (and I can understand why he would want to avoid this), maybe a "cooling off period" should be imposed on new accounts so that voting cannot even be performed for a reasonable amount of time and a certain reputation points level - say 14 days AND several hundred participant points. This might even cause some of the sock-puppet accounts to go unused/abandoned when the owner realizes their nefarious plans have been foiled by Father Time. With the exception of the voting, the account can be used on the site as any other account at that level.
I don't like the deferred voting idea either (where the users votes are nullified until a certain time, and then "come alive" at a certain point).
Whatever change Chris makes, it has to be as low-impact on the site as possible, especially where the database is concerned. I think a cooling off period would be that low impact change. Of course, it wouldn't solve the problem of current users, but whatever system is put in place has to be usable for both articles and messages, and coming up with something reasonable and with a certain degree of ease of implementation is a monumental task.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
modified on Saturday, March 27, 2010 7:15 AM
|
|
|
|
|
We need to keep this on track this time.
No other site offers the quality and quantity of articles that CP has.
No other site offers the high-quality, expert advice that CP does.
No other site offers start-to-finish mentoring that is absolutely free.
It's time to put aside the childish amusement that anonymous sniping offers, and become a truly helpful, supportive community, in spite of how immature members act. Let's take their toys away, and enjoy a growing, positive future.
|
|
|
|
|