18

Some time ago, I added an entry to the SO C++ FAQ community effort, which deals with C++ operator overloading. For that piece I had spent half a Sunday I was supposed to spend building something out of LEGO for my kids, plus I butchered an article draft that I had lying around which had accumulated more than a decade's worth of experience in C++. So I thought I'd deserve the rep I might get from it and didn't make this a community wiki question.

Over time, this has become one of the more popular FAQ entries. It got reddited, and sometimes I get a flurry of upvotes for it, supposedly because somebody must have linked to it from some other question. Also, operator overloading is one of the few topics on Stack Overflow I still cannot resist looking at questions about (I rarely answer anymore these days), and when I look at one of those questions, I usually consider it worth pointing out the FAQ in a comment. The other day I even provided an answer to such a question, in which I also put links to the relevant sections of that FAQ entry. This resulted in a few upvotes to the question and the answers.

Today, when I refreshed Stack Overflow's main page, I saw my rep dropping. I had a look at my reputation page, and it turns out I lost 55 rep for serial upvoting. Looking at today's and yesterdays stats.

screenshot

(Note that the consecutive upvotes on "Operator overloading" are all for different answers to the same question.)

I bet what happened is that someone had a look at that FAQ, read through it, and then went and upvoted the question and the answers, which the fraud detection algorithm considered serial upvoting.

I'd consider that an error.


Now please don't get me wrong here. I am not at all concerned with losing <0.1% of my rep while I have done so little for raising it for such a long time. I currently have a rep of 62698, and if I wanted to up it, I'd start to answer questions again, rather than coming to the madhouse to ask to get back a meager 55 rep.

What brings me here is this question: Did that algorithm do the right thing there? I don't think it did.

I think this all boils down to whether that form of an FAQ entry, with myself giving several answers to my own question, is Ok. Because if this is Ok, then it should be fine if someone, after reading it, goes through it and votes on the question and all the answers. (The difference to fraudulent serial voting is that in this case someone votes several answers to the same question, whereas serial voting is normally considered when some user goes to some other user's profile and votes on answers that have little or nothing to do with each other, except for being by the same user.)

However, if that form is not Ok, then I'd like to know how we could organize such an FAQ in a way that it provides at least all the benefits the current one has, notably the ability to close questions as duplicates of FAQ questiions. (Please read the whole of the FAQ discussion, including the numerous comment discussions, if you're not familiar with it, in order to understand the benefits of the current system. I do not want to reiterate all of it here.)

12
  • 7
    I think the title and the lead-in should focus on the core of the question, which is "whether that form of an FAQ entry, with myself giving several answers to my own question, is Ok." rather than the reversal of serial upvotes (you can get to that later). Else, you're just bound to get downvoted (after Lounge C++ has finished upvoting) by people who disagree with changes to the serial upvoting algorithm or who just see it as yet another post on this topic. Commented May 7, 2012 at 19:47
  • @yoda: You might have a point there, even though I disagree that this is my question. My question is in bold, I just thought that it would boil down to that other question. Well, do you think that's better now?
    – sbi
    Commented May 7, 2012 at 19:49
  • Madhouse?! Madhouse?! Wait until Won't sees this! ...oh wait... Commented May 7, 2012 at 19:53
  • 3
    @Kobobby: I am sure he is well aware of my opinion about meta. I was never shy to speak up what I think about you inmates. :)
    – sbi
    Commented May 7, 2012 at 19:54
  • Just to make sure, I was joking...of course I was...*coughs*...back on topic. Did you consider the simple possibility that this is not directly related to that answer you wrote? As far as I know a simple user could trigger that by simply going through your profile and upvote many things to do you...well...a favor. Which is pretty much the same as vote-fraud without the bad intentions. Commented May 7, 2012 at 19:57
  • @Kobobby No, see the consecutive upvotes in the screenshot posted — they're all for different answers on the same question Commented May 7, 2012 at 19:58
  • @yoda: Ohhhh...now I understand... Commented May 7, 2012 at 19:59
  • The title is better now. I agree that this can be a problem at times... I too read down the answer list, upvote the good ones, and seldom look at who answered it. But in the end, the answer's probably going to be that this is such an edge case that they won't consider changing the algorithm. Commented May 7, 2012 at 20:00
  • @yoda: Ah, yes, I should have explicitly mentioned that those are different answers. It's too uncommon to be understood at first sight.
    – sbi
    Commented May 7, 2012 at 20:01
  • I think this is way too lengthy to describe the core problem, which is a simple: Should the vote-fraud algorithm take multiple answers to one question into account? Commented May 7, 2012 at 20:01
  • 2
    @sbi Yeah, that's what I was trying to get at... most people wouldn't have realized that it's for multiple answers on the same post. This is pretty rare though... Commented May 7, 2012 at 20:03
  • @Kobobby: I lack the time to make it shorter.
    – sbi
    Commented May 7, 2012 at 20:04

3 Answers 3

16

However, if that form is not Ok, then I'd like to know how we could organize such an FAQ in a way that it provides at least all the benefits the current one has, notably the ability to close questions as duplicates of FAQ questiions.

Break it up. This could be at least four questions, each with one canonical answer - and it could potentially be split up even further (guidance on overloading each operator could very well be one question per operator, and drop the "common" requirement).

Then just create a directory that links to each question. I strongly recommend making this directory CW, to reduce the resistance to editing. Alternately, put the directory in the C++ tag wiki.

This preserves the ability to close as duplicates (in fact, it improves on that ability by allowing you to close with much more specificity - you can't close a question as a duplicate of an answer after all). At the same time, it reduces the danger of folks blindly voting on all the answers without bothering to actually read them.

As an aside, note that the "Jeopardy!"-style question+answer format has long been encouraged:

  • if you have a question that you already know the answer to
  • if you’d like to document it in public so others (including yourself) can find it later
  • it is OK to ask, and answer, your own question on a relevant Stack Exchange site.

But once you want or need to break your answer up into multiple, non-overlapping answers, there's a very good chance you've asked yourself a poor question. If you wouldn't post a half-dozen answers to someone else's question, you probably shouldn't be doing so to your own.

20
  • 1
    Actually I have considered several times to break up that long answer into several ones, but then I thought I'd be accused of rep-whoring. :) I am not sure breaking this whole thing apart would do it any good, as IMO it should be read in one piece. But I am open to suggestions.
    – sbi
    Commented May 7, 2012 at 20:34
  • I know that it always was encouraged to answer your own question, even if it is obvious when you knew the answer while writing the question. But I was specifically wondering if it would be seen as raping that idea with giving several answers to your own question.
    – sbi
    Commented May 7, 2012 at 20:37
  • FWIW, I had already answered numerous questions on operator overloading when I finally sat down and wrote this, and I wanted to address specifically all those points the answers list. (I skipped over many points I had in that article draft, because those don't come up on SO as often.) So the question was mere a hook to hang my text from, and I only broke the text down into several answers because it was way to much matter for one answer. This format is far from what I considered ideal when that FAQ idea came up, but it does address many problems we were fed up with when we thought this up.
    – sbi
    Commented May 7, 2012 at 20:38
  • 4
    Here's the crucial bit: if you absolutely feel that this should all be read together, put it in one answer. If it's too long, if you think folks will want or need to skip to specific sections, then split it into multiple Q+A pairs. We ran into this same issue with the SO FAQ years ago, and solved it in this fashion - not only is it more practical from an organizational perspective, it's much more likely that someone directed to "how does editing work?" will actually read it.
    – Shog9 Mod
    Commented May 7, 2012 at 20:52
  • We considered copying the SO FAQ idea back then, but dismissed as such fake questions (and that's what the FAQ is, really) would have a snowball in hell's chance to survive 5mins until getting closed and deleted.
    – sbi
    Commented May 7, 2012 at 20:57
  • @sbi: actually, a great many of the SO FAQ questions were asked honestly by folks genuinely interested in the answers. They've merely been heavily edited over the years, to the extent that many of them scarcely resemble the original queries.
    – Shog9 Mod
    Commented May 7, 2012 at 20:59
  • 1
    @sbi: BTW, if you're concerned about accusations of rep-whoring, then make them CW. Commented May 7, 2012 at 22:38
  • So I have been thinking about this, and now it struck me that splitting this into several questions wouldn't answer at all the problem I have pointed out: Since those questions would still belong together in the very same way this does belong together now, users would still read all of them in a row, and still upvote all of them — which would then still be picked up by the fraud detection algorithm.
    – sbi
    Commented May 18, 2012 at 20:19
  • Not to go into too much detail on how that script works, but it is less likely, @sbi. But yes, it's still possible, just as it's possible that someone would go through all of your top answers and up-vote them back-to-back and trigger the script.
    – Shog9 Mod
    Commented May 18, 2012 at 20:23
  • @Shog9: Well, this answer has gathered a lot of votes in a lot of time, and that problem so far occurred only once. I don't think I would want to rip it apart in order to circumvent that algorithm, just to lessen the obviously already low probability a bit. You fix your algorithm (upvoting all answers to some question is not a crime), instead of having me rip this apart.
    – sbi
    Commented May 18, 2012 at 21:14
  • If you're gonna break it up, do it because you're building a better structure for it, @sbi. I'm primarily critiquing your format here, not really touching on the fraud-script because this is such an extreme edge case that it'd be difficult to support it. As you can probably gather from your screenshot, the guy who tripped this wasn't exactly voting as he read - or is an exceptionally fast reader. This will tend to trip things up. The "fix" for this will probably be adding support for linkable section headings to answers.
    – Shog9 Mod
    Commented May 18, 2012 at 21:23
  • @NicolBolas: I do think I deserve the rep I get for this. It took a lot of effort and knowledge to put it together, and on SO, rep is what acknowledges effort and knowledge. (I consider "rep-whoring" when you try to get a lot of rep while putting in minimal effort. If someone puts in a lot of effort, I don't mind if they get a lot of rep for it.)
    – sbi
    Commented May 25, 2012 at 7:01
  • @Shog9: Ok, it happened again last night. (I was actually expecting it, seeing the upvotes it got yesterday.) I still stand by my POV: upvoting all answers to a question even within a short period is not voting fraud. I also still do not think ripping this FAQ apart does it any good, but since it was robbed of what's probably half the upvotes it got this month, I am now considering doing it amyway. However, if I do this (of which I am still not sure), I anticipate a lot of accusations that I am just doing it for rep-whoring, and I want to make sure I have the backup of the meta-crowd for this.
    – sbi
    Commented May 25, 2012 at 7:03
  • @sbi: "I consider 'rep-whoring' when you try to get a lot of rep while putting in minimal effort." Not everyone agrees with that definition. For some people, 'rep-whoring' means something that gives you more rep pointlessly. You added 5 separate answers to that question. Which means that people who upvote one answer are more likely to upvote others. Does posting separate answers help the person looking for info? No; all it does is help you get more rep. Hence, some people will consider that rep-whoring. Commented May 25, 2012 at 7:54
  • @sbi: "but since it was robbed of what's probably half the upvotes it got this month" It was "robbed"? I really think you need to reconsider how much it matters to you that things are upvoted and such. You can argue whether it was reasonable to remove those votes or not, but the fact is this: you were not stolen from. You were not personally harmed or afflicted. No human being accosted you or otherwise stole something of any real importance from your person. You have not been wronged. Commented May 25, 2012 at 7:59
8

Yes, I think the vote fraud algorithm did the right thing.

Why? Because there's no way to determine a voter's intent.

A sock puppet could just as easily upvote everything on one question as they could upvote multiple separate questions. (In fact it would be easier, just one page load!) You might argue that this is less likely to occur, and I agree; few users have multiple answers on the same question. But that just means that if this was made a special case and allowed, the smart people would exploit it. We definitely don't want to make it easier for the smart cheaters.

We need to do the best job we can of educating users that you can't go through someone's posts and upvote them, whether you do so from their profile or within a single question page or anything else. In addition to Shog's suggestion about breaking up the posts, I think that's the best way to avoid this problem.

4
  • "The difference to fraudulent serial voting is that in this case someone votes several answers to the same question, whereas serial voting is normally considered when some user goes to some other user's profile and votes on answers that have little or nothing to do with each other, except for being by the same user."
    – sbi
    Commented May 7, 2012 at 20:22
  • @sbi I addressed that -- "A sock puppet could just as easily upvote everything on one question as they could upvote multiple separate questions." The purpose of the serial upvoting detector is to prevent abuse, not to specifically prevent going through someone's profile and voting, which is not necessarily abusive.
    – user154510
    Commented May 7, 2012 at 20:25
  • Yeah. Or someone could create multiple sockpuppets, and get new IPs every time, and thus slip through the net. There's many ways to circumvent that fraud detection if you really want to. The question here is whether changing the algorithm to catch those is worth the collateral damage this does. In this case, I don't think it is. It is a legitimate way to answer a question, and it is legitimate to upvote a question and all answers. Since there is no way — even for a human being — to look at it and decide whether it's fraud, it should not be considered fraud "just in case".
    – sbi
    Commented May 7, 2012 at 20:31
  • 1
    @sbi That would require a lot more work than posting a bunch of answers to the same question and just using one sock to upvote them. In any case, I think Shog's answer makes clear that this sort of setup isn't a good idea. I don't think they should make a special case for something that's discouraged (too-broad questions).
    – user154510
    Commented May 7, 2012 at 20:40
1

Having multiple answers by the same user on the same question is a very unusual case. In the words of Jeff Atwood:

If it is possible for a question to have two valid answers from the same person, the odds are high that it's a bad question.

This C++ FAQ is indeed a special case. But I agree with Shog9 that you should break the questions up. You're trying to shoehorn Stack Exchange, a questions and answers platform, into something that it was not intended for. When you use software for a purpose that it wasn't intended for, it's not surprising that you'll occasionally run into undesirable behavior. The fraud detection algorithm did what it should have done. Your use was out-of-spec, so the responsibility is on you if the software doesn't behave as you intended.

1
  • "Having multiple answers by the same user on the same question is a very unusual case." Yeah. And nobody needs more than 640k of memory.
    – sbi
    Commented May 14, 2012 at 19:43

You must log in to answer this question.

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