3

I'm wondering why the upvote/downvote count is hidden from everybody with less than One Thousand Reputation. This seems fairly arbitrary, and is really useless in the end, as scrutiny of the person's timeline can reveal the exact vote count.

I've heard rumors that this somehow helps inhibit spam, or something like that, but I really see no point. A spam-bot could easily send a crawler through the person's profile page, but it would be much, much harder for a living, breathing human being to comb a page for data.
Why, then, do we do this? The only thing that it does is annoy real human beings who are just curious about a question's popularity.

I will probably have to whip up a Javascript script (for people who use Greasemonkey or equivalent,) to simulate having that privilege. I think it's ridiculous, though, that we have to go through such an annoying process just to answer a quick burst of curiosity. I hope this is amended soon.

2 Answers 2

2

tl; dr: This is for performance. If you want to use a userscript, there's one here.

This is for performance reasons in the Stack Exchange engine. If you look at the schema seen under http://data.stackexchange.com/ubuntu/query/new, you will see that posts have a Score column, but not one for upvotes and another for downvotes. Therefore, getting vote counts means doing:

SELECT COUNT(* FROM Votes WHERE PostId=1337)

or something, not just:

SELECT Upvotes, Downvotes FROM Posts WHERE PostId=1337

. Clearly, the first query is more expensive since it will most likely use a clustered index scan instead of a very fast, specific seek. Why the separate vote counts aren't stored in the database, I don't know. For 200,000 questions, it would only take 16 MB more space to store these vote counts.

Also see this answer by Jeff Atwood and this question.

3
  • The API bundles what looks to be a denormalised up_vote_count and down_vote_count. I'm not sure if these are programatically added in the API but given the strides to denormalise data like this in the past, and considering how heavy a job this would be for the API, I think I'm probably closer to the truth.
    – Oli Mod
    Dec 1, 2012 at 23:54
  • @Oli I believe that this API call will return backoff requirements more often. The database explorer doesn't show signs of this, although I am basing this off outdated posts and the SE Data Explorer.
    – nanofarad
    Dec 1, 2012 at 23:56
  • hehehehehehehe. Thank you, thank you, thank you. I've really wanted something like this. Thank you so very much for linking me that. :) :D Dec 4, 2012 at 2:47
3

There's no good reason, as far as I know. The data is accessible through the API, so yes, it would be comically easy to set a UserScript up for this functionality.

I would assume this limit is here to serve as a carrot. A lot of the site gets its benefits by "gameification" of otherwise dull aspects. Review is turned into a game. Writing good answers gets you experience, I mean reputation and that earns you privileges. A downside of that is there are occasionally things that have to be held back to serve as that incentive.

In this case, just as there's little point in holding the feature back for 1k users, it does little harm to those users who haven't earnt it.

3
  • 2
    Is this notion of "gamification" officially supported in any way by SE staff?
    – nanofarad
    Dec 1, 2012 at 23:54
  • 1
    Yeah! That was one of the main design factors: codinghorror.com/blog/2011/10/the-gamification.html
    – Oli Mod
    Dec 2, 2012 at 0:00
  • Uugh... gamification... it seems kind of manipulative, but, then again, it works. That's actually why I use the Ubuntu forums (instead of this place) for any questions that I have that seem like they're close to being "too specific" or "not broad enough." I NEED 25 beans, after all! ;) Dec 4, 2012 at 2:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .