Pablo_Stafforini comments on Zero-based karma coming through - Less Wrong

6 Post author: Eliezer_Yudkowsky 08 April 2009 01:19AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (39)

You are viewing a single comment's thread.

Comment author: Pablo_Stafforini 08 April 2009 03:42:19AM 0 points [-]

Great. I really hope that, when time permits, the folks at Tricycle can apply this retroactively as well. There are a few users who, despite posting comments of low quality, manage to have high karmas due to sheer frequency of commenting.

Comment author: dclayh 08 April 2009 03:55:20AM 2 points [-]

I don't know, maybe an early-adopter karma bonus is appropriate :)

Comment author: dfranke 08 April 2009 06:06:13AM 1 point [-]

Reddit had one. In the very early days of Reddit, one upvote was one karma point. Now they have some fancy-pants weighting algorithm that translates to much less than one point per vote.

Comment author: dfranke 08 April 2009 06:12:11AM *  1 point [-]

I don't see why it would be at all complicated to do. Shouldn't it just be something like

UPDATE comments c SET c.score = c.score - 1 WHERE c.post_date < 'some time today'

UPDATE users u SET u.karma = u.karma - (SELECT COUNT(*) FROM comments c WHERE c.author = u.id AND c.post_date < 'some time today')?

Comment author: Eliezer_Yudkowsky 08 April 2009 09:14:46AM 1 point [-]

Some people were testing the system by deliberately not voting for themselves. Also, Reddit doesn't really run off a proper database. And there could be other consistency checks (I haven't looked at the code).

Comment author: dfranke 08 April 2009 09:23:58AM 0 points [-]

Last I spoke with Steve Huffman, he told me they were running on top of PostgreSQL, but maybe they switched to something non-relational in the most recent rewrite. Now you've got me curious; I'll check the source.

Comment author: Eliezer_Yudkowsky 08 April 2009 09:33:36AM 1 point [-]

That's not the problem, apparently, it's that what Reddit built on top of the SQL is a huge list of key/value pairs or something like that - in any case it's not as simple as an SQL query.

Comment author: dfranke 08 April 2009 09:51:18AM 0 points [-]

I just finished going through the source, and while it's still Postgres-based, the schema just uses five tables: type, rel_type, thing, data, rel. So yes, it's fundamentally just a key-value store. I bet I could still whip up some SQL that would do the trick, though it would be a good deal uglier than the above.

Comment author: wmoore 14 April 2009 01:29:21AM 0 points [-]

This is pretty much right, it uses a big key value store. The issue with karma is that the Account record maintains the karma value but the vote is stored as a separate relationship between the Account and the Link (article). Generally is is not safe to update the database directly as it is necessary to keep the separate memcache coherent. Thus any changes must be done via Python code. Whilst such a change is possible and relatively straightforward I'm not sure its worth it. From what I've seen there are no truly obnoxious users on less wrong that need to be dealt with by such a change.