My favorites | Sign in
Project Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 7: Implement Karma Points like Reddit
11 people starred this issue and may be notified of changes. Back to list
Status:  Accepted
Owner:  ----
Type-Enhancement
Priority-Medium
Component-UI
Component-Logic


Sign in to add a comment
 
Reported by haacked, Jul 10, 2007
One reason I think Reddit is popular and has a lot of commenters is due to
its Karma system.

When you post an article, people can vote it up or down. Up votes add
points. Down votes subtract. This keeps people from posting stupid links.

Likewise, when you post comments, people can vote the comments up or down.
The motivation to build up Karma points is that when you submit a new link,
it's more likely to make the front page if you have high karma. 

It's this sort of "game"-like functionality that keeps people coming back.
Comment 1 by gavinjoyce, Jul 10, 2007
I like this idea, should be quite easy to implement. 
Comment 2 by gavinjoyce, Jul 14, 2007
How about the following rules for awarding points:

*Submitters*:

  Awarded *+1* point per kick on their unpublished stories, +5 points per kick for
published stories

*Commenters*:

 Awarded *+2* point per 'thumbs up', *-1* per 'thumbs down' on each comment

*Kickers*:

 Awarded *+5* for kicking an unpublished story which goes on to be published

--

As supports a number of host website, we should track an individuals karma points
_per user per host_.

Comment 3 by gavinjoyce, Jul 14, 2007
Taggers:

 Award +1 point per tag for the first 3 tags on a story
Comment 4 by gavinjoyce, Jul 14, 2007
Some extra discussion:

http://www.dotnetkicks.com/community/Karma_Points_System_for_DotNetKicks
Comment 5 by hasan.bazerbashi, Jul 15, 2007
Karma sounds like a good idea.
Comment 6 by terry.piper, Jul 16, 2007
I like the method deployed at Photosig, http://tinyurl.com/27wgej This has people returning just to get their 
status up while maintaining quality submissions.




Comment 7 by dan.bright, Jul 16, 2007
Karma sounds great to me.
Comment 8 by gavinjoyce, Sep 14, 2007
(No comment was entered for this change.)
Owner: ---
Comment 9 by cdjaco, Sep 20, 2007
I've changed my mind about a karma system; I think it might actually be useful,
especially in keeping 'revenge tagging' and meta-bad-behavior in check.  I agree with
Phil that the karma game can keep people coming back, but I'm also wary about the
case when karma becomes more important than anything else on DNK.  I think Slashdot
is a good example of karma run amok.
Comment 10 by james.e.welch, Sep 20, 2007
What are the bad things about karma? People just play the system to get more credits? 

How about we just put a limit on the number of karma points per day/month and let
them know that they have received the max allowed for that time period?

I think that if we weigh the different factors properly, then it might be less of an
issue. 

Example: 
Maximum points per submitted story: 200 (ex: published and 20 kicks)

Story published = 100 points
Story deleted = -75 points

Each kick on published story (by someone else) = 5 points
Each comment on published story per unique user (by someone else, grouped by user, so
3 comments made by userX counts as 1) = 1 point

This would put quality over quantity and would require someone to do a lot of work to
gain the system. The downside is that we get more stories published, which is good :)

There's no benefits here for non-submitters, but it sounds like that's were the
problems are at. We can also renamed karma points to something like Quality Points, etc.

Comment 11 by james.e.welch, Sep 20, 2007
All of the above example can be calculated using SubSonic aggregate queries without
the need for an additional table. Or we can just make a View with that code in it so
that it can be added to the DAL as a class that extends the User class and would let
us cache it.
Comment 12 by cdjaco, Sep 20, 2007
I like your idea of a time period limit on karma, James.  But once we have some users
with good karma, others with bad ... how to we make use of it?  Lower the kick
threshold for publishing stories by users with good karma and raise it for those with
bad?

If a comment-rating system were implemented (positive rating = + karma) then
non-submitters could see a benefit.

As for a name...."karma" by itself is good, though "juju" and "mojo" might work as
well.  "Quality Points" just sounds so....sterile and unfriendly. :)
Comment 13 by james.e.welch, Sep 20, 2007
That's a good point. What would be the use of any point system? How would it affect a
user? If its just a number on their profile page, then it might not be worth doing
it. We could just show the user's # of published stories stats there and not worry
about a ranking system.

I don't like the idea of punishing lower point users by hiding/disabling site
functionality, etc.
Comment 14 by cdjaco, Sep 20, 2007
I agree, if by "lower point users" you mean "new users".   IMO, a new user should not
be penalized merely because they have no track record...but an established user with
bad karma should suffer *some* kind of penalty.  Any penalty, however, should not
prevent said user from somehow redeeming themselves in the future.

For instance, user evilbob manages to develop a bad karma rating.  At some point he
crosses a particular threshold and he is no longer permitted to submit a new story
(or perhaps submit a story that is not first reviewed by a moderator).  After being
informed of this, a repentant evilbob starts making constructive, positive comments
on existing submissions; ratings on his comments by other users slowly but surely
restore his karma level to a point where he can again be a fully productive member of
DNK society.
Comment 15 by gavinjoyce, Sep 24, 2007
How expensive do you think the aggregate queries would be? Should we just create a
table to model this data? A row per user/host/month with a point score? We could then
aggregate this data to get top users for the zeitgeist per month and year.
Comment 16 by cdjaco, Sep 24, 2007
That sounds like a good place to start, at least.  I can't testify as to how much
overhead this would add -- I just don't know.
Comment 17 by james.e.welch, Sep 24, 2007
If you aggregate the queries, then you could just run a SP every night/day for it and
it shouldn't be too much on the server.

What if evilbob just created another account and become evilbob2? I think that anyone
with that low of score (where it prevents normal site interaction) would either make
a new account or just leave the site.
Comment 18 by cdjaco, Sep 24, 2007
Heh.  Gets a bit more complicated then, doesn't it?

I can think of a few ways to handle this, none one of which are close to being foolproof.

The first one, and the one most easily circumvented, is by setting a cookie on the
client when the user first registers.  It simply contains an ID (maybe even a db key)
which can be associated with the user account.  If a user attempts to register a new
account while their client still holds a key associated with a low-karma (or banned)
account, then the new user's account is either a) not created at all (though the
interface lets the user believe it is) or b) hit with a karma penalty just as great
as the one against the old account.

While this would deter the real bottom-feeders, it is unlikely to thwart anybody with
much of a clue about how web sites work.  Additionally, it could penalize new,
well-intentioned users who access DNK through a shared workstation, such as at a library.

The second method would be simply to compare a new user's email address with those
currently 'on file' associated with DNK users.  If there is a match, don't create the
account.  Additionally, a check could be run against banned/very low-karma users'
email addresses -- if the domain is identical (and isn't a "big name" ISP or email
provider like Yahoo!, Gmail, Comcast, etc) perhaps a moderator/admin-eyes-only flag
is associated with the account so if any questionable activity takes place a human
can do some follow-up work.

This would be more effective than the cookie method, but not by much.  Again, your
lower-tier troublemakers (who don't know about or can't figure out how to get a new
email address) would be filtered out but that's about it.  

The third method would be to capture remote IP and HTTP Agent information and do
comparisons between the new user who is applying for an account and banned/low-karma
user accounts.  Perhaps by comparing the first three octets of the IP along with HTTP
Agent info and maybe even timestamp maybe most troublemakers could be weeded out.

There are several problems with this approach, however.  How much data would we
capture and how often?  Would we end up with a lot of false positives for users with
big ISPs and common browsers (e.g. AOL and Internet Explorer)?

It might be that a combination of approaches might work, and would be enough to keep
out all but the real dedicated sociopaths.  Then again, this could be overkill since
a person like evilbob will eventually burn out the karma on his new account as well
and would have to repeat the process.  Eventually (one would hope) he would tire of
the game and move on to other sites.

If there are other options, I'd love to learn about them (though further discussion
may or may not be on-topic for this page).
Comment 19 by gavinjoyce, Sep 25, 2007
I'm not sure that this will even be a problem. I see the whole karma feature as just
a bit of fun, a nice way to see who is contributing to the site - another way to view
the DNK community. We can hand out awards for top contributers every month, a small
award graphic could be shown beside the usernames of these users.

Once we build the scoring system, we can consider other utilities for it.


Comment 20 by haacked, Sep 25, 2007
Well part of the reward for high karma should be intrinsic to the site itself. For
example, with Reddit, if a high karma scorer submits a story, the submitter's karma
adds weight to the "score" that puts an item on the front page.
Comment 21 by gavinjoyce, Sep 25, 2007
I see, that is useful. We can easily incorporate the submitters karma in the
publishing process scoring algorithm - either during or after the karma points
functionality implemntation.
Comment 22 by james.e.welch, Sep 27, 2007
I just thought of an idea. We could limit the number of stories submitted per user by
the point system. So that someone doesn't submit a dozen stories they just got from
msdn blogs or a microsoft rss feed. Those that submit quality stories will always
have more points, so they will always be able to continue to submit a dozen or more
stories/day. But the people that submit lower quality articles will be limited, etc.
Comment 23 by gavinjoyce, Sep 28, 2007
I like that idea James, I guess we should start to build this soon.
Comment 24 by azizatif, Sep 28, 2007
> people that submit lower quality articles will be limited, etc.

I'd be careful about confusing popularity for quality. It's a big world out there. :)
Comment 25 by james.e.welch, Sep 28, 2007
^ I agree.

But sometimes, when I'm watching the Spy, you see people submit several articles at
once and usually none of them get more than a couple kicks*. As the site's popularity
increases, Upcoming Stories is getting full of good and not-so-good stories and it's
making it harder to find the good ones that get buried/pushed to back pages.

* = sometimes there's a herd of people that comes in (usually enough to get it
promoted to the front page, 5 or 6) and kick the same story within a few minutes of
each other - sometimes like 5 kicks in 4 minutes. I've been trying to think of a way
to develop an algorithm to detect swarms/cliques/groups of users that routinely kick
each other's articles to "play the system." It would be nice to add IP Address info
to the StoryKick table, so we can check to make sure its not the same people with
different usernames kicking articles.

Comment 26 by rfurdzik, Nov 19, 2007
When will this be ready aprox?
Comment 27 by james.e.welch, Nov 20, 2007
Unknown. Nobody has signed up for it or started on it.
Comment 28 by gavinjoyce, Nov 21, 2007
I am working hard to release a new website that I have been working on for the past
number of months (http://www.carlist.ie/) so I don't have any free time at the moment.
Comment 29 by james.e.welch, Nov 21, 2007
I've been busy as well. Hopefully, I'll get some free time after the holiday season
passes.
Comment 30 by yesthatmcgurk, Dec 03, 2007
Wow, nobody has downed karma.  So let me.

I'm not a fan of karma.  It makes new members of a community feel very 
insignificant, and elevates people who basically have no life.  Plus, with a karma 
system you have those people who game the system out of some sick obcession with 
getting high karma points.  And, in the end, what do you get from it?  Bragging 
rights?  The ability to get a story on the front page with little or no effort?  The 
right to look down on noobs?  

I would strongly suggest that unless there is a definitive benefit to the DNK 
ecosystem that karma not be implemented.  
Comment 31 by cdjaco, Dec 03, 2007
I've been a critic of karma in the past, but considering how some people are
attempting to 'game' DNK right now makes me think that a karma system might provide a
good balance.
Comment 32 by DustinBrand, Jan 19, 2008
From what I know, digg already ditched site-wide karma on dugg's since I think May of
07.  With their new comment system (I think the 4th rendition now) it uses thumbs up
/ down as the "karma" so it can auto hide those comments that have a negative rating.

If we're going to do karma, lets do it in the sense Digg does and focus on improving
the comment system; which is a big task and would require a lot of rewiring.
Comment 33 by DustinBrand, Jan 19, 2008
Also assuming here one can reply to a specific comment like on digg (as for the
rewiring).
Comment 34 by hoelbling.d, Jan 29, 2008
I think there should be some way to bury stuff. 
If you look at users like this one:
http://www.dotnetkicks.com/users/tmax6y

He just filled half of the upcoming page with bogus about health issues, and I think 
there should be some punishment system in place. (Like, enough bad votes and you 
can't post more than one story per X<hours>, if stories keep getting voted down 
account gets suspended etc.

One of the main reasons I use DotNetKicks is it's little spam. You should let the 
community help in stopping spam.
Comment 35 by SMcKoy, Feb 15, 2008
> *Kickers*:
> Awarded *+5* for kicking an unpublished story which goes on to be published

Presuming something to also stop people kicking every story just to try hit a few +5
karma?

>I'm not a fan of karma.  It makes new members of a community feel very 
>insignificant, and elevates people who basically have no life.

While I'm not a fan of karma I think the idea is interesting, I am wondering if the
system had some form of automatic decay added to it, so that users were slowly
brought back to 0 karma (from both positive and negative) but scale the decay so that
users without alot of karma wouldn't lose it as fast as those with alot. 

Or maybe a form of karma scaling, so that a front page article is worth more karma to
a person who has less, this would mean that to have high karma you would need to keep
working at it and it would make it easier for new members to 'catch up'
Comment 36 by jsimone, May 15, 2008
When the system turns into an RPG, using a vast and arbitrary set of point scales to
rate people and by extension articles, I think it's a clue that we're on the wrong path.
Comment 37 by rfurdzik, May 29, 2008
When wil this be completed?
Comment 38 by jrwren, Sep 16, 2008
You NEED this.

I don't visit your site because there are so many garbage posts. Now if I felt like 
I could contribute back and -1 those garbage posts, I would visit your site.

I am sure that I am not the only one who feels your signal to noise ratio could be 
better.
Sign in to add a comment

Hosted by Google Code