On Stack Overflow at the moment, there is a popular question which is currently high in the Hot Questions feed: https://stackoverflow.com/q/17807531/42473

So far it has been closed twice (once by the community and a moderator and once by a moderator alone) but re-opened twice by the community. It is clearly not a [so] Stack Overflow question. Reading between the lines, there could be a valid Software Engineering question there, but it would be a very basic one (at the fizz-buzz competency level) and looks more like a populist attempt to farm reputation than a serious question.

Worst of all, even though there are some interesting answers on this question, they are all going to be completely useless to future visitors to the site, since they will be completely undiscoverable. If the question were at least "What is the best fair distribution algorithm?" it would still be off-topic (primarily opinion based), but at least it might help someone once the topic falls off the Hot Questions feed.

Although this has turned into just a bit of fun, and I don't want to kill that, enough is enough. While this question is open, unlocked, and still seen as a valid question, it is setting a bad example for the whole Stack Exchange network.

Bike shed questions like this, especially on the grandfather Stack Exchange site, devalue the work we are putting in on every other site by making it appear acceptable to re-open populist questions like this after two moderators have classified it as off-topic.

What should we do about this question?

  • Should it be left open? Power to the people?
  • Closed and locked by a moderator?
  • Migrated to another site?
  • …or something else?
  • 20
    Hear hear! This seems to be a real algorithm question with a bunch of trappings to make it interesting, but if anything it should belong on Software Engineering. – Caleb Jul 24 '13 at 9:25
  • 12
    @Caleb - it should have been migrated to Programmers just after it was asked. As it stands now - with so many upvotes and lots of answers - it's not really a suitable migration candidate. – ChrisF Mod Jul 24 '13 at 9:26
  • 20
    @ChrisF If SE would reset votes on migrated questions already this wouldn't be a problem. I wouldn't care if they kept their rep on the originating site and started fresh on the target and got two mortorboards out of it. The point is the question is on the wrong site. If we cant' migrate, close, lock, make the OP copy paste and link all the folks to the new target. Silly, but why let it become the next impossible to get rid of bike shed question that isn't even on topic? – Caleb Jul 24 '13 at 9:32
  • 17
    [Now contemplating a basic algorithm question packaged as something about kittens...] – Old Checkmark Jul 24 '13 at 9:34
  • 11
    How about "This question appears to be off-topic because it is too popular to be of legitimate value to anyone in particular."? – BoltClock's a Unicorn Jul 24 '13 at 9:38
  • 17
    It's not really a good Programmers question, IMO. It's a "gimme the algoz" question. It reads like he just wants someone to write the algorithm - is that appropriate anywhere? If anything, perhaps Code Golf and Programming Puzzles? – Thomas Owens Jul 24 '13 at 9:42
  • 5
    Honey, @CodyGray shrunk the croissants! – Old Checkmark Jul 24 '13 at 9:52
  • 12
    You all got it wrong. Croissant is a snack. It should be Snack Overflow! – Old Checkmark Jul 24 '13 at 10:04
  • 6
    @CodyGray: Shouldn't that really be: whyArePeopleSoSurprisedThatProgrammersLikeCamelCase – JonW Jul 24 '13 at 11:35
  • 45
    Why focus so much energy on this question when there's literally millions of questions that are so much crappier than this that make the site look like (multiple selections allowed): 1) a debugging service, 2) a write your code service 3) like a dumping ground of total crap that the laziest of programmers go in the hopes that rep-hungry users will do their work for them? – casperOne Jul 24 '13 at 11:38
  • 5
    @casperOne: Because Stack Overflow is a debugging service. – BoltClock's a Unicorn Jul 24 '13 at 11:40
  • 5
    @GeorgeStocker - the votes and answers things still apply regardless of the age of the question. The communities on SO and Programmers are different and what one site thinks is good isn't necessarily what the other one thinks and having a highly voted questions and answers that don't "fit" with the target site distorts the "tone" (for the want of a better word) of the site. – ChrisF Mod Jul 24 '13 at 12:29
  • 19
    @casperOne because People Are Having Fun. This Must Be Stopped At All Costs. – user56reinstatemonica8 Jul 24 '13 at 16:08
  • 8
    "Hotness score" of this question is about 2/3 fake, as usual - 11 of 16 answers score less than 1/10 of top-voted one, but each of these meh answers brings solid 10 points to question score thanks to bug in the formula. Unnaturally high position at collider damages a reasonably okay question, as usual. - What should we do about this question? - Fix the freakin' bug in hotness formula that causes drama like that – gnat Jul 24 '13 at 22:21
  • 5
    @gnat "This question has not received enough attention"—really? It's received at least as much attention as the original question, if not more. What other answers or types of discussion are you hoping to attract with this bounty? Don't the answers we have just about cover all the bases? – Cody Gray Jul 30 '13 at 6:08

15 Answers 15


I wasn't going to go out on a limb but since a follow up question has been asked...

More importantly, why is it any of your business?

...I would like to address that.

I for one am concerned about answers rather than the question. What I see in "Croissants", look painfully familiar to an issue that does so much damage at Programmers: Answers quality in hot questions. There are just too much meh answers there, and that is my concern.

  • Per my observations of questions with >2K views, this is somehow less of a problem at Stack Overflow (maybe concrete programming problems make it easier to flag meh answers for deletion, I don't know - eg "Croissants" went down from 16 to 14 answers in about an hour, between 1st and 4th revisions of this answer). But at Programmers, for example, crappy answers tend to plague a lot of the highly viewed questions - no matter, good or bad ones.

I hear you telling me about "hundreds - perhaps thousands - of embarrassingly bad questions asked" as opposed to few hot ones, as if this should make my life easier. But, oh, it doesn't, and the reason is simple - hot, highly visible questions set the tone for many answerers in many other questions.

An inexperienced reader looks at meh / link / funny image... whatever crappy answer getting their 5-10 cheap upvotes and says to self, hey that's the way to go, I sure can do like them.

Proliferation of low quality answers in hot questions results in what looks to visitors like a wasteland of low quality garbage (note that due to high views, it will score high in web searches).


And they start thinking it's the norm. That's what low quality answers in hot questions teach readers. That's what "educated" readers spread further, to their answers to other questions. That lowers overall quality of answers in multiple other questions, that is the site-wide damage1.

And please don't tell me that downvotes are solution. Yeah they are... sometimes (unless not obscured by totally free sympathy upvotes), but at what cost?

I downvoted maybe several hundreds low quality answers and pain and effort involved in making a difference goes far beyond tiny puny -1 rep penalty for the answer downvote.

Don't expect to make a difference if you just drop downvote and run away. Chances for it to work are less than 50/50, probably something like 30 against 70 or even 20:80. Yes, and that's fair, low effort makes low impact.

When other readers look at the answer having negative score without an explanation, they tend to think (unless it's obviously horrible) WTH guy invested an effort to write something and got downvoted for nothing. That's a fertile ground for sympathy upvotes and that's what makes many of the click-and-run downvotes useless.

  • You might hope that your DV made an indication for future readers that the post is of low quality, but that's not what happens. Sympathy upvotes come and obscure it and post looks like okay again.

To ensure substantial impact of downvotes, one has to invest respectively substantial effort into explaining what's wrong with the answer. Instead of having fun, reading and writing good posts, one has to focus on analyzing and describing the issues in a crappy low effort answer, just to make sure that future readers will agree that negative score is deserved.

Does it feel fair? decide for yourself. Oh and please don't forget, that when you think you're done with all the crappy answers that were posted, next hot question comes and mis-education rolls the next round.

  • Don't hope that it will somehow miss this time - no. The way how buggy collider score damages questions is reliable and predictable, it will go round and round and round again until the hell freezes over. When you know how collider bug works, following to what happens to hot question is like watching the train wreck in the slow motion.

Downvotes you cast today won't protect you tomorrow, when next potion of crap will get at you from the broken collider. And if you want to keep quality standards, you will have to invest "substantial effort" permanently. "Downvotes are a solution" yeah but at what cost? wouldn't it cost less to just fix the bug in hotness formula.


Above is what concerns me in questions like Croissants. And frankly, I think we're doomed to experience these issues (at least at Programmers) as long as collider uses buggy formula.


PS to address comment having unfairly high score...

(dealing with unfairly high scored comment in the answer about unfairly high scored posts... feels quite meta)

...dropping the hot list doesn't makes sense to me (as explained here).

To preemptively address yet another "funny" comment like gnat doesn't like hot list but he wants to keep it, he doesn't know what he wants - I know what I want (as explained here).

If you really want to make fun of what I want, make fun of what I really want:

In hotness formula, discard answers when voting evidence indicates that these are not good data points

  • 25
    This. This is why the discussion is important. Pet velociraptors aside, this is what trips up new users, every time. Y U NO LIKE MY QUESTION? U LIEK THAT ONE! – user102937 Jul 25 '13 at 18:03
  • 29
    To be honest, this sounds like an argument for dropping the hot list entirely. – Shog9 Jul 25 '13 at 18:03
  • 23
    @Shog9: Works for me. – user102937 Jul 25 '13 at 18:04
  • @Shog9 well if you ever decide to drop the hot list (or, which is essentially the same, switch to Mysticial' formula), I for one would be quite interested to first learn what will happen if we just fix that apparent bug in the formula – gnat Jul 25 '13 at 18:15
  • 4
    I already know what would happen, @gnat: folks would complain about some other aspect of popular questions. Y'know - like they've been doing here for most of this discussion. You hit the nail on the head: this isn't an inherently problematic question, but it serves as a symbol for every lazy/unclear/overrated post that frustrates and infuriates each day: the hot list as a sacrificial alter. – Shog9 Jul 25 '13 at 18:24
  • 4
    @Shog9 well I agree that it won't likely stop at this bugfix. We just seem to perceive what will happen next a bit differently. The way you describe it, sounds like oh that'll be yet another (useless?) complaint in that endless stream. To me, it rather feels like that'll be a next step to improve site quality – gnat Jul 25 '13 at 18:34
  • 1
    @Shog9 split-polish -- oh but I tried that, and it doesn't work. Or, more precisely, it doesn't work in hot questions. "What is especially depressing is that regular ways to deal with this kind of issues just don't work. It's typically not difficult to edit the question to repel garbage answers, I can easily name a handful of active regulars who can and do just that. Thing is though..." – gnat Jul 25 '13 at 18:42
  • 15
    @Shog9 To be fair, I rarely see complaints about in-depth technical stuff getting too many votes. So if the multicollider can be biased in favor of those, I'd say there will be fewer people complaining. My only real complaint about the current formula is not that it brings out the wrong types of questions, but that it buries the quality stuff. That said, it's not completely broken so I haven't been speaking out much. It's still possible for a technical question to get popular - but it usually requires the help of Reddit or Hacker news. (IOW, an external force to override the multicollider.) – Mysticial Jul 25 '13 at 18:47
  • 3
    Thanks @gnat - this quite comprehensively explained my biggest problem with this question. – Mark Booth Jul 25 '13 at 20:53
  • 8
    FWIW it's a very common problem on skeptics where 1. we get sudden spikes in traffic because we handle some very google friendly topics and 2. our site admits questions that everyone has an opinion on and feel that they can contribute. We have two strict rules about this which ensure quality of questions (notability) and answers (references). These rules allow us to aggressively close or delete poor quality questions and answers as mods or experienced users. Personally, I'd never go back to the sea of "meh" that ensues otherwise. – Sklivvz Jul 26 '13 at 11:30
  • 1
    @Sklivvz yeah I heard about that. I think rules allowing mods to unilaterally delete meh answers do a good job of taming the problem, be it concrete-programming at SO or famous back-it-up at Skeptics. At sites I am active though (Programmers and Workplace), such formal rules are hard to impossible to establish. I for one would not want to rely on mod discretion splitting meh and okay answers neither at Programmers nor at Workplace (with all due respect). – gnat Jul 26 '13 at 11:52
  • 4
    The topics accepted by Programmers and TWP are... problematic when it comes to objective evaluations of answers. But then, that's why these sites exist... – Shog9 Jul 26 '13 at 15:10
  • 4
    @Shog9 As long as we're dropping the HotList, can we also drop the /questions?sort=votes tab that makes it too easy to find a given sites all time most upvoted questions? Those are almost without always bad examples for newcomers and its' almost invariably where they end up starting from. – Caleb Jul 26 '13 at 17:52
  • 3
    On the topic of the HotList - I never look at it. I kinda didn't know it was there until reading this. I use that dropdown only to look at my Inbox and Notifications. – KatieK Jul 29 '13 at 23:20
  • 3
    @KatieK: I discovered it by accident when my inbox or notifications would fail to load ;) – BoltClock's a Unicorn Jul 30 '13 at 6:09

To find out the genuine value of a question like this, march down the close reasons, and see how many fit:

Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results.

Well, it doesn't ask for code, but the principle is the same. Why are you stuck? Have you tried anything yet? What were the results?

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.

The number of answers this question has attracted seem to confirm this suspicion. Further, the answers do not appear to coalesce into some fundamental principle of croissant purchase selection. How is this ever going to be useful to future programmers, other than as a mental masturbation exercise?

Verdict: Too broad, canihazalgoz.

Additional note: These kind of questions attract a lot of attention from the Reddit and Quora crowd, who don't know how to use their votes properly. They think they are still on Reddit. Or Quora.

Also, do you really want to open the door for any question that states "I have this life problem," and make it on-topic by slapping the word "algorithm" on it?

  • 9
    -1 for who don't know how to use their votes properly. I'm fairly certain I know how to use my votes, thank you. That I chose to use a few on a question that will likely end up being closed is my business. That question added a bit of interesting reading to what's normally a dreary morning spent waiting for the coffee to get my brain up to speed, and that's good enough for me, and 107 other users. – Adam Rackis Jul 24 '13 at 16:16
  • 25
    @AdamRackis: There's no way that question is worth that many upvotes. – user102937 Jul 24 '13 at 16:18
  • 7
    @Robert, probably true by most sensible criteria. But so long as SE let's users vote on questions as they choose, then interesting ones like this will always get more votes than they "deserve." People need to stop complaining about vote inflation in cases like this: it's baked right into the system – Adam Rackis Jul 24 '13 at 16:19
  • 7
    it's baked alright. – Old Checkmark Jul 24 '13 at 16:21
  • 17
    @AdamRackis You're entitled to use your votes however you see fit, but that doesn't mean voting choices can't be criticised. The goal is to index stuff by its value with regards to the site scope, not to index stuff by how entertaining one personally found it (although again, you're entirely free to vote as you see fit). – user200500 Jul 24 '13 at 16:23
  • 4
    @Asad - that's a fair criticism. If this question somehow doesn't get closed, I wish the system had a way to de-list edge case questions like this from the "top lists" for the reason you state. – Adam Rackis Jul 24 '13 at 16:31
  • 1
    @dystroy: A banner was applied to the socks question at one point: «Welcome, Redditors! We're looking for answers that provide serious, practical solutions to the problem stated. If you'd prefer to post a joke or launch a tangential discussion, please do so on the corresponding Reddit thread.», although it was mostly addressed at answerers (there are many deleted answers at that question). – jscs Jul 24 '13 at 18:52
  • 1
    @RexKerr: Nevertheless, the question is structured in such a way that the number of possibly correct algorithms is unbounded. To answer your question, we don't generally evaluate the answers to determine a question's veracity for closing purposes. – user102937 Jul 24 '13 at 19:49
  • 2
    @RobertHarvey - Does that mean that sorting questions are off-topic because there are exponentially many possible O(n log n) sorting algorithms in the length of the list? I don't think it matters if theoretically there are a large number of possible algorithms; Kolmogorov complexity is going to sink almost all of those as unworkable. A much more telling criticism is that this problem can be equally well solved by a "business method"--Stack Overflow is not for social solutions to technical problems. (Those should go on e.g. Workplace.) – Rex Kerr Jul 24 '13 at 19:54
  • 1
    @RexKerr: That's a straw-man. While there might be many possible sorting algorithms, it is likely that there are only one or two that satisfy an OP's particular requirements. – user102937 Jul 24 '13 at 19:58
  • 3
    @RobertHarvey - If you exclude the social engineering solutions, that is also true here. There are really only two classes of solution here (as far as I know): biased lotteries and random streams with filters. Within each of these solutions, there are very few that aren't absurdly over-complicated given the tools that programmers commonly have in hand. There are lots of solutions that don't work, but not so many that meet the three stated criteria. – Rex Kerr Jul 24 '13 at 20:11
  • 10
    Ugh. This attitude limits Stack Overflow to a debugging service. That's hundreds of thousands of people's effort to build a useful resource on programming problems down the drain. Why bother with a questions and answers site? A forum would be better suited for a debugging service. – Gilles 'SO- stop being evil' Jul 24 '13 at 20:28
  • 3
    I dare say I'm with @Gilles on this one. For all I know, more than half of my contributions to the site (in terms of questions and answers) should have been closed instead simply because the questions aren't looking to solve a problem with existing code. I always refer to this question on the types of questions I find myself asking and answering most often. – BoltClock's a Unicorn Jul 25 '13 at 3:42
  • 8
    To be fair, this stupid meta thread attracted a lot more whining, flailing, and dire warnings of Stack Overflow's imminent demise under a deluge of "bike shed" questions than the "croissant question" ever did. If people had just let this silly question have its 15 minutes of fame, most of us probably would never have ever seen it, let alone cared. – Adam Rackis Jul 25 '13 at 19:22
  • 2
    sort of ironic to see objections against too much attention to the meta question which is, in turn, related to questions receiving too much attention from collider – gnat Jul 30 '13 at 15:53

Oh my.

Disclaimer: I'm the OP of the question.

Firstly, anyone looking at this thread from outside is scared. Really. So much hate in there... Please, don't bite me. I bite back. And I have a pet velociraptor.

So, when I wrote the question, did I think it was on-topic? Yes. Did it lack effort in research? Definitely.

Here is the story: it's a real issue I have. I need a software algorithm to solve a specific issue for me. I did have a few ideas of implementation to start with, but I wanted a few more options, hence the question. I guess that's close to off-topic. Maybe it would've been better on programmers. I thought SO would get me better answers.

Now, and why I think it had so much attention, did I try to make it funny? Attractive? Tasty? Definitely. I believe fun is acceptable on SO, when it's closely related to programming. So I made it this way. Do I regret it? Damn no! I had fun, and I believe many other people had fun. Some answers are explicitly stating it. And I have very useful answers.

I just regret that so many people are angry here.

About the "How to deal with it", just close it and we'll stop talking about it. Too much drama.

  • 8
    Exquisitely written! And I think you made more people laugh then really angry, so goal achieved. :-) – Shadow Wizard Wearing Mask V2 Jul 24 '13 at 15:26
  • 26
    Characterising those that disagree the question is a good fit for the site as somehow being full of hate and anger isn't exactly accurate (although I admit it is probably effective). – user200500 Jul 24 '13 at 15:29
  • 8
    Yeah, I think you're misconstruing emtional-context-less statements of disagreement with anger. I didn't get the impression that there was any anger here - just (valid) disagreement as to the quality of the question. – Joe Jul 24 '13 at 15:31
  • 9
    @Asad "Anyone looking from outside" doesn't include myself only. Actually, it's other people who pointed out to me that the thread was "full of wolves". There is a lot of valid criticism, but the atmosphere is definitely "anger". – Florian Margaine Jul 24 '13 at 15:31
  • 11
    I see more jealousy than outright hate, if that makes you feel any better. The big-ass picture at the top was probably unnecessary though. – Shog9 Jul 24 '13 at 15:37
  • 10
    It's funny, "Oh my" is pretty much my reaction to this meta thread too. *8') – Mark Booth Jul 24 '13 at 15:42
  • 6
    There's no hard rule on this, Florian - but in general, a good question leads with the problem to be solved not tangential detail, whether that's a block of code or a picture. It's very eye-catching, but attracting indiscriminate attention cuts both ways (as illustrated here). Also, I'm now ravenously hungry - brb, gotta find a bakery. – Shog9 Jul 24 '13 at 15:49
  • 9
    @FlorianMargaine I don't think the picture itself was the real problem at all. If the question was a good fit for the site, there's nothing wrong with occasionally jazzing it up with a little humor. The main problems (IMO at least) were that neither your question nor the answers it generated had much to do with programming, and that since you don't have any hard requirements, there is no way to compare answers other than subjectively. Neither of these make for a great SO question. Hate (or jealousy for that matter) don't enter into it at all. – user200500 Jul 24 '13 at 15:50
  • 4
    Yeah, there's no hate here. There is, however, the mild suspicion that the site has been temporarily hijacked, both here and on the original question. Not your fault, really; it's just how the Reddit crowd behaves. That the question happened is not in itself a bad thing; edge cases help us refine our scope. – user102937 Jul 24 '13 at 15:59
  • 22
    Florian, you say you need a software algorithm, but you don't specify where it should run. Excel? A programming language (of what family)? You spent more time looking for a great picture of croissants than actually giving us all the bits of info we need. Also, the answer is really trivial. Are you sure you are being completely honest here? – Sklivvz Jul 24 '13 at 16:35
  • 9
    @Sklivvz, if a question is asking for algorithm, one shouldn't really be that concerned about the language of implementation – Old Checkmark Jul 24 '13 at 16:41
  • 3
    I think that you have a business problem which needs more definition before software development can begin. – KatieK Jul 24 '13 at 16:57
  • 17
    I've taken a great deal of effort to write good, on-topic, and researched questions with detail and I'm pretty sure they sometimes get ignored for being too detailed (tl;dr) or too specific about the subject matter. Not closed, just ignored. Apparently I could've asked a much looser question and stuck a picture of candy at the top. So sure, I'm a little angry and jealous. I won't make a pejorative of fun if you don't make one of anger. But let's not make fun cost StackOverflow its usefulness. It's more fun when it's useful. – kojiro Jul 24 '13 at 17:08
  • 5
    @FlorianMargaine re: "seeing the number of different answers" -- that is exactly the detail that makes me think this is not a good fit for the site. There is no one or even a handful of really right answers and judging which ones are better is very subjective. That's not a very SO MO if you know what I mean. – Caleb Jul 24 '13 at 17:29
  • 5
    I don't come to SO to have fun, I come for relevant information. When I have a similar problem, I don't care about your croissant ramblings and your pretty picture, it's just in my way. – Stijn Jul 25 '13 at 13:09

Zero effort

While I do think the question is on-topic for SO, I think it shows zero effort.

To demonstrate, let's take a part of the original question and reword it, just a little bit. I have replaced "algorithm" with "c# code":

So, how is this related to Stack Overflow? I want an algorithmc# code to decide who's going to buy the croissants next week.

  • The chosen person should be pseudo-random
  • No one should buy the croissants twice in a row
  • Generally speaking, everyone should buy croissants as many times as the others

Now the difficulty is that some of us can be absent during a week or two. Or just this Friday. And the next week, it's another. It's a company with people having vacation, and we have customers or off-days. Hence simple sorting is not good enough.

Would the changed question above be on-topic for SO? I don't think so. It sure looks like a "give me teh codez" question to me. For this reason, I voted to keep the question closed on the review queue.

What Is The Precedent For Questions That Demonstrate Little Effort?

Take a look at these meta questions, about "give me teh codez":

I'm sure there are more. The general conclusion in the above links is that questions that show little effort are closed.

My point is

The question shows little effort. Close it.

  • Currently standing at 4 closures and 3 reopens. *8') – Mark Booth Jul 24 '13 at 15:36
  • 3
    Meh. It's a fair criticism to say that it fails to explain what was tried, or what effort was put into self-solving by the OP, but the question demonstrates effort - it's well written, formatted, and includes a lovely (if silly) photo. I think you're really criticizing it as a "request to solve the whole problem", which is fine, but saying it shows "no effort" seems broad. – Jaydles Jul 24 '13 at 15:51
  • 4
    I think it's used in the sense that "zero effort at attempting to solve the question themselves" – Old Checkmark Jul 24 '13 at 15:57
  • 3
    @Jaydles - I definitely meant it the way Old Checkmark has worded it. No effort in solving the problem. – chue x Jul 24 '13 at 15:59

First off, the answer to this question is easy:

Should it be left open? Power to the people?

Yeah, that. There's nothing particularly exceptional about this question apart from its popularity; given that most of the attention is coming from this post and SO itself, I'm not too worried that it'll be overlooked by the community.

Moving beyond that, I'd like to address something Robert wrote in his answer:

How many topical questions about serious problems languish in neglect because we are too busy answering questions about croissant algorithms?

How many topical questions on serious problems languish because folks are fixing a trivial regular expression somewhere, or teaching PHP folks how to not send headers prematurely for the umpteenth time? More importantly, why is it any of your business? Because of the network-wide "hot" list? We have 6 sites dedicated to games - if that doesn't bother you, I'm not sure why pastry-oriented programming questions would.

Y'all are straining at gnats here. There are hundreds - perhaps thousands - of embarrassingly bad questions asked on Stack Overflow every day; this question is just not that interesting, even if it did prompt me to eat a half-dozen croissants today. It's neither exceptionally good, or exceptionally bad - pictures of pastry aside, there are countless banal questions like this posted every day.

And... so what?

We used to argue about bikeshed questions that were clearly identifiable as such; what colors do you use in your IDE, what music do you listen to, what should I put on my wedding cake... But reading the answers here, I find very few simple, compelling arguments for why this question is harmful or sets a bad example. Adam does the best job of it, and even hints at how the question could be fixed if need-be, something sorely lacking from most of the rest of this discussion. Gilles went ahead and took a stab at that - good for him.

I've been spending a lot of time analyzing closed and low-quality questions lately; it's possible this has biased me in favor of any programming question written in clear English with the problem stated in the title. But I know one thing: this question isn't gonna rob me of any sleep.

Indigestion caused by all of the buttery pastries I've consumed while reading this discussion OTOH...

  • "most of the attention is coming from this post" - somehow, I doubt that – gnat Jul 25 '13 at 5:25
  • 1
    This post and Stack Overflow, @gnat. You do know that most of the traffic brought in by the hot list comes from SO, right? That said, this meta post accounted for a pretty decent minority of the total pageviews when I checked earlier today. – Shog9 Jul 25 '13 at 5:26
  • 3
    11 meh answers each contributing solid 10 points to score calculated by buggy formula won't go away no matter what. As if these were good answers (but these weren't) – gnat Jul 25 '13 at 5:35
  • 11
    To reinforce @gnat's point, there is plenty of evidence that the current formula favors easy/open-ended questions and works against the high-quality technical ones. (If you want to see it and/or an explanation for why, just ping either of us and we can dump a mountain of evidence on the table.) But ultimately, it boils down to what you want the multicollider to show. If you want to keep on showing open-ended controversial stuff, then fine. That's the current behavior. But if you want to it to favor the high-quality technical stuff, then the formula can use some improvement. – Mysticial Jul 25 '13 at 15:50
  • 3
    People start looking for close reasons that fit, when they see that the community has clearly taken their eye off the ball. Note that the sole downvote on that answer is mine, because the answer has nothing whatsoever to do with programming. But I do agree that we have bigger fish to fry. – user102937 Jul 25 '13 at 17:48
  • 2
    "why is it any of your business?" -- good troll, nice catch :) – gnat Jul 25 '13 at 17:58
  • @RobertHarvey not sole anymore. I know it will probably make no difference but WTH – gnat Jul 25 '13 at 18:19

Why are we even considering to keep it?

  1. It's a super simple question that shows no effort, nor it needs to be answered with an algorithm. Just pick a person somehow and redo if it's not acceptable. Unless we want to discuss how to generate random numbers, the rest of the answer is completely trivial. There's no need of an algorithm.

  2. It doesn't seem to have long-lasting value or to ask about a problem in a general enough way. It's very specific, because of the "no repeat" clause which adds no value - picking at random with no constraints is just as fair, so why would someone need to look for a more complicated version of something that already works?

  3. It doesn't require any programming expertise to answer. In fact, it's no different from asking "Good methods how to pick who's 'it' at the playground".

  4. Since it's so easy, it has a lot of answers, all possibly correct and equivalent. Voting basically becomes a beauty contest on who has the nicest way of generating a random person out of a fixed pool.

  5. Since it's so easy, it has a lot of answers, a few of which are not even coding related. There's one answer about economics and another about workplace politics. Come on.

  6. It's not the kind of content we want: question is not very interesting, answers are in some cases poor, the overall example is not a great beauty to behold.

On the other hand, I don't see any reason to keep this.

  • 8
    I mean, when you get answers starting with "This is a much more interesting problem when considered as an economics problem as well as a programming one." you know there's something very wrong. – Sklivvz Jul 24 '13 at 15:06
  • 1
    1) agreed, reason to close, not delete or migrate. 2) disagree - there's no "too localized anymore" 3) disagree - you don't need programming expertise in many algorithm questions, but we need algorithms in programming 4) disagree - This is the nature of many of the questions and answers we consider good on Stack Overflow 5) disagree - It's an algorithm question, code isn't required, but can be translated into code. 6) disagree - You don't substantiate this singular statement in any way and it's subjective at best. – casperOne Jul 24 '13 at 15:28
  • 2
    @casperOne: 4) Wait, what? Many correct and equivalent answers is the hallmark of a good question now? I smell a new definitive book list question in the works. – user102937 Jul 24 '13 at 15:36
  • 2) we have dropped too localised but this doesn't make this question valuable or general enough. 3) then close the other questions too as too basic. SO is for programmers not the general public. 4) see 3. 5) clearly you haven't read the answers ;-) 6) see 5. – Sklivvz Jul 24 '13 at 15:44
  • 4
    Multiple correct answers are neither the hallmark of a good question nor a sure indicator of a bad one, @Robert. A lack of criteria for incorrect answers comes closer to the real test there. Is this question too broad? Does it lean too heavily on subjective opinion rather than demonstrable fact? – Shog9 Jul 24 '13 at 15:46
  • 2
    @Shog9 Yes. The requirements are poorly specified (the algo must be random, but also "fair", for varying interpretations of fair). The primary discussion on an SO question shouldn't be about ethics. If it is, IMO that is a symptom of something being wrong. – user200500 Jul 24 '13 at 15:56
  • Let's focus on that then, @Asad. Much better argument than "lack of effort", IMHO - or the slipperly-slope of "if it doesn't require a computer to execute then it's not a software algorithm" (who here has never done a binary search by hand?) – Shog9 Jul 24 '13 at 15:59
  • To be fair I never argued that any of the points I make are enough to close by themselves. I do believe that altogether they don't paint a good enough picture to keep this question though. – Sklivvz Jul 24 '13 at 16:10
  • 8
    Also, it's a "As a programmer, how can I choose the next guy who buy croissants" question. Boat programming – Sklivvz Jul 24 '13 at 16:13
  • @Shog9 The reason I've been saying this isn't a software algorithm is because to my mind, a software algorithm needs to operate upon elements of software, instead of simply being capable of demonstration/implementation as a software package. An algorithm for calculating optimal moves in a chess game, or an algo for stock prediction number crunching is not a software algorithm, regardless of being an algorithm that can be implemented as software. – user200500 Jul 24 '13 at 16:16
  • That seems like a really fine hair to split, @Asad. So the travelling salesman problem is OT if I'm actually mapping routes to actual cities, but on-topic if I'm working with an object graph? – Shog9 Jul 24 '13 at 17:12
  • @Shog9 Yes, because most non programming algorithms cannot be as easily repurposed for non trivial programming problems. It isn't really a fine hair to split unless you're deliberately looking at algorithms from CS theory (such as traveling salesman), which originate in problems dealing with computing and have merely been analogised for ease of understanding. – user200500 Jul 24 '13 at 17:22
  • My original example was the common binary search, @Asad. – Shog9 Jul 24 '13 at 17:25
  • 1
    @Asad: I'm still struggling to understand what rule you're applying here. It sounds like you're settling on a standard that allows questions on algorithms only if those algorithms are 1) already commonly-known (so, if it's in a CS textbook I can ask about it) or 2) clearly intended for use in software but not application software contexts (comparing sets of abstract data types is good, comparing contact lists is bad). This strikes me as a brutally difficult rule to put into practice - and one that prioritizes homework questions over real problems people face. – Shog9 Jul 24 '13 at 19:38
  • 1
    @RexKerr the answer is simply "pick one at random, until it's not a one you don't want". It's extremely simple. If people complicate the issue it's because it's probably too simple to see... which again doesn't make it good, or complex, or a viable question. – Sklivvz Jul 24 '13 at 19:54

This is a good question asked on the wrong site.

Because it has no code and no tie in to specific software or even a language, it's really a software architecture/algorithm design question and is suitable for Programmers or Computer Science. Partly because it's obviously so popular tasty we really should go to the extra trouble of making it a good example for the rest of the network instead of a bad one.

Ideally it should have been migrated there within minutes and none of this would be an issue. Unfortunately it wasn't caught and how it's turned into a bike-shed question. This is a good example of why migrating questions should reset votes. This should be handled automatically by the close system. Since it's not, something has to give.

Option 1: Just migrate it already.

Drawbacks are that votes are going to be reflective of a different community and a few answers will be out of place. Bummer. Fix the migrate system.

If that's an unacceptable result...

Option 2: Manually twiddle everything to pseudo-migrate.

The drawback is quite a bit of hassle and consternation, but in the end everybody lives happily ever after.

  1. Close the current question
  2. Ask the OP to copy/paste it to a new question on Programmers
  3. Link everybody to the new question, creating new answers.
  4. Lock the old one so votes/comments don't collect on both.

In the end everybody that put work into writing questions and answers will get even MORE rep out of the deal for their troubles, but the resulting question will be on the community where the question best fits and is most suited to vote on it's merits.

  • 3
    Nah I'm pretty sure people just wanted it to remain on Stack Overflow. A lot of people can't accept that there exists a diversity of Stack Exchange Q&A sites for various topics, and insist that SO be a catch-all for questions of any sub-topic of software development. – BoltClock's a Unicorn Jul 24 '13 at 9:47
  • 9
    @BoltClock'saUnicorn I get that. There are lots of those people. But since when did we start pandering to their vision for SE? Why don't we just let this proposal through while we're at it? – Caleb Jul 24 '13 at 9:49
  • @bolt I don't know, we've had 3 people within the last day or so posting feature requests for a separate site where they can ask their bad, off-topic questions. – Cody Gray Jul 24 '13 at 9:49
  • @Caleb: Yeah, I'm all for it, we could rename it to "Garbagecan SE" or something and use it to keep all those users away from the main sites which do not bother to ready anything... – Time Traveling Bobby Jul 24 '13 at 9:51
  • Can't the mods at the receiving end on migration manually reset the vote on a migrated question? Or are the votes locked in? – Old Checkmark Jul 24 '13 at 9:56
  • 1
    @OldCheckmark Votes are locked in. Migrated questions with negative votes rest to zero but positive vote counts get locked in and even mods can't reset this. Please see the linked question and vote up so we could someday get a tool to fix this! – Caleb Jul 24 '13 at 9:58
  • @Caleb: We haven't - I don't see anybody on the mod team or The Meta Police having voted to reopen the question. I'm just saying. No need to get defensive. (Wait, that sounds familiar...) – BoltClock's a Unicorn Jul 24 '13 at 9:58
  • @Caleb: Also, you most likely want to read this, and then follow the linked questions down into that rabbit hole...it goes deep...very deep... – Time Traveling Bobby Jul 24 '13 at 9:59
  • 2
    @OldCheckmark The feature request is about auto-resets but one way they could fulfill it is with a manual tool too. At least the more people that think its an issue the more likely it will get some sort of solution. – Caleb Jul 24 '13 at 10:04
  • 3
    This question is not suitable for Programmers. Like Stack Overflow, we don't do work for people. We have the guidelines about explaining what research or work has already been done to solve the problem and expect the asker to have a "minimal understanding of the problem being solved". This question, in its current form, is purely asking for someone to write an algorithm and would be closed on Programmers. – Thomas Owens Jul 24 '13 at 11:27
  • 2
    Your premise that it's off topic is wrong, from the FAQ: What topics can I ask about here? but if your question generally covers... a software algorithm. Do I like the presentation? No, we really don't need a picture of croissants, and it's goofy, but there's a legitimate on topic question there. – casperOne Jul 24 '13 at 11:35
  • 3
    @MarkBooth I fail to see how the question in its original or current form is a shopping question. If the question was "what kinds of algorithms can I use to solve this type of problem", then that's a shopping question. As it stands now, there's a specific problem and answers are being provided. It's also on topic because while about algorithms, it's an algorithm that a program can be written for to solve the problem as presented. Right now, the answers are not recommendations, but actual algorithms. – casperOne Jul 24 '13 at 13:37
  • 3
    The OP specifically says "I want an algorithm to decide" based on these criteria, so there are many equally valid answers. Not only that, but the most highly voted answer would be more suitable on workplace than on Stack Overflow. – Mark Booth Jul 24 '13 at 13:49
  • 1
    @MarkBooth That's splitting hairs when dealing with algorithms. You're automatically throwing algorithms into the same bucket as shopping questions. Many of the questions on Stack Overflow that are more code-based have different code that solve the same problem, but those aren't shopping questions. – casperOne Jul 24 '13 at 15:26
  • 1
    Good - you should always think twice when migrating anything. There should be a good reason for it, something valuable that would be lost but for the migration. If you don't think the votes are justified by the quality of the question and/or answer, then... Don't migrate. – Shog9 Jul 24 '13 at 15:41

Can't believe we're even discussing this. Had I come across this question before it was locked, I would have edited all the irrelevant rambling crap out of the post (as I often do) and left behind virtually nothing of substance:

How can I randomly select a person from a group of people?

I need to periodically select a person at random from a list of people, such that the same person isn't selected twice. I need to also insure that the selected person doesn't appear in a second list of people who are on vacation. Is there an algorithm for this?

And then I would have voted to close it as off topic, because it's completely useless. It's asking for an algorithm for something so unspecific that the only real answer is:

  1. Choose a person at random
  2. If the person is on the vacation list, go to step 1
  3. If the person was chosen last week, go to step 1

Why are we discussing this, and why did 100+ people upvote a question that is so obviously awful? It's utterly baffling to me that anybody is defending this question.

Further grievances:

  • He mentions that the solution may use a database, and may be some kind of script, and maybe it could even email people when chosen. WHAT? How is any of this relevant to us providing an algorithm? Is he looking for code? For a DB recommendation? For us to draw out his entire architecture?

  • He wants the algorithm to work for 10, but scale to fifty whole people people. If ever a question begged to be closed for lack of minimal understanding of the subject matter, this is it. "Scale". From 10 to 50. Because choosing from 1 to 50 is so much harder than choosing from 1 to 10. Has this person ever written a single line of code in their life?

  • The "difficult" part is that people might be absent, but with no groundwork for the language/database/whatever, this is completely irrelevant. As I've said above, literally the only response we can give to the "difficult" part of the question is to modify our algorithm with "Ok, don't choose an absent person".

  • 6
    The lack of understanding of the question from people such as you is a very good proof that the question is not trivial. – Gilles 'SO- stop being evil' Jul 24 '13 at 20:58
  • 5
    @Gilles Please, enlighten me. The actual choosing of a person could be accomplished in one line of ruby code: (people - people_on_vacation - [last_person_choosen]).sample. How is this "non trivial"? Everything else (actually generating the lists of people and people on vacation and storing them, and storing the person chosen last week) is external to the algorithm, and all impossible to comment on because he hasn't told us anything useful about how that data is made available. – meagar Jul 24 '13 at 21:03
  • 1
    +1 about it being unspecific. Indeed behind its crispy and tasty exterior, the constraints/conditions are not very well defined. – Old Checkmark Jul 24 '13 at 21:07
  • 2
    That algorithm meets the hard requirements, but has the defect that depending on chance a person may go a long time between bringing croissants, or conversely may have to bring croissants many times in quick succession. Also, there's at least one issue that wasn't mentioned in the question and that a good answer should have pointed out or accommodated: how do you tell someone who's absent one day that they have to bring croissants the next day? If you prepare the roster in advance, how do you accommodate unexpected absences? – Gilles 'SO- stop being evil' Jul 24 '13 at 21:08
  • @OldCheckmark Defining the constraints is part of the modeling work. The question has put forward some of them. Answers should further analyze the scenario and come up with a suitable model. – Gilles 'SO- stop being evil' Jul 24 '13 at 21:09
  • 7
    @Gilles You are reading a massive amount into this question that OP never asked. How do we tell the person who might be absent? How is that in any conceivable way related? You must be joking at this point. We should also adjust for salaries, right? Clearly the CEO should buy croissants 5 times more often as every body else. What about people with gluten intolerance? Have to model for them too, right? What about the guy who bikes to the office, I think he deserves 1.5x the croissants that the rest of the people get. – meagar Jul 24 '13 at 21:09
  • 1
    You didn't read the question properly. Maybe the picture of croissants distracted you? The number of croissants bought by people will diffuse away from each other with this algorithm. Also, it is not unreasonable to worry about scaling to 50 when you ask a question for which factorial complexity answers could be proposed. – Rex Kerr Jul 24 '13 at 21:09
  • 8
    @RexKerr No, I read the question, repeatedly. Just because you think there's a wonderful universe of mathematical modelling to apply to this staggeringly trivial problem doesn't mean the question has merit. He asked for a pseudo random selection. Full stop. – meagar Jul 24 '13 at 21:12
  • “Generally speaking, everyone should buy croissants as many times as the others”. It's right there in the question. Maybe you should read it? Social fairness is a completely different issue. Now you might choose to propose an algorithm that takes into account that some people should bring croissants more often than others. It's part of the design work that the question is calling for. – Gilles 'SO- stop being evil' Jul 24 '13 at 21:14
  • 4
    @Gilles "Pseudo-random". Right there, in the question. If you could stop playing the cheap "did you read the question" card for a minute, and accept that I really did, maybe you could say something worth while to defend your case. – meagar Jul 24 '13 at 21:19
  • 2
    Maybe this question should be closed because it inspires such aggressive ignorance. I'm not inventing mathematical modeling for fun--the point is that you are not solving the problem to specification. "Pseudorandom" doesn't mean "ignores my constraints", or "admits a trivial and wrong solution". – Rex Kerr Jul 24 '13 at 21:21
  • 4
    @Gilles not specifying the distribution does not mean "use a more complicated one than equal distribution". Like any other question, it can be made over-complicated by choosing. Unlike other questions, it has a trivial valid solution which is appropriate. – Sklivvz Jul 25 '13 at 7:47
  • 3
    @LanceRoberts I don't hate pictures, I hate off-topic irrelevancies in what is supposed to be reference-quality writing. Can you actually defend your position? Why in the world would that image belong in the post? Why do you think Stack Overflow "loses" because users have to go to Google to find a picture of croissants instead of a programming Q&A site? – meagar Jul 25 '13 at 23:33
  • 4
    @LanceRobers Do you not understand how utterly stupid that line of logic is? Should we also put pictures of servers in there, because it mentions servers? Should we slap some Harry Potter fan art in here? Guess a pic of marbles would be on-topic over here, right? Please don't mention reductio ad absurdum, as we've already hit it with croissants being "on topic" on a program Q&A site. – meagar Jul 25 '13 at 23:36
  • 3
    I agree with @Gilles, meager you haven't fully addressed the requirements of the OP's question and at worst, there should have been comments to request the OP edit the question to rephrase better not outright closing. The number of useful and relevant questions that I come across daily that had been closed after an answer was provided that saved me hours of needless searching elsewhere shows that the SO community are way too quick on the draw to close questions. The hot debate around this question is yet another example – Maks Jul 26 '13 at 0:24

I agree with casperOne; it's explicitly on-topic:

What topics can I ask about here?

Stack Overflow is for professional and enthusiast programmers, people who write code because they love it. We feel the best Stack Overflow questions have a bit of source code in them, but if your question generally covers…

  • ...
  • a software algorithm

it's has just been asked in a way that causes things like this question to happen. There's always a lot of debate around algorithm questions that get noticed because there's not often much attempt made to make your own. This is, apparently, common in the algorithm tag and people aren't necessarily downvoted because of it.


  • Voted to reopen because it's on-topic.
  • Downvoted the OP for not showing a scintilla of effort in answering their own question; they've obviously thought a lot about how to ask it though.
  • Upvoted icepack's answer 'cause I think it's the best.

It's a good question, where the OP shows little effort, which has effective internetz juice. I'm all for leaving it alone and concentrating on the worse stuff instead, like these.

  • True, it also happened in the infamous "is user a goat" question which attracted lots of funny but totally non professional answers. – Shadow Wizard Wearing Mask V2 Jul 24 '13 at 12:13
  • 16
    But it's not asking about a software algorithm, it's asking for a software algorithm recommendation and it fails on all three of the relevant points on the Stack Overflow question checklist. – Mark Booth Jul 24 '13 at 12:26
  • If this is the stance the community ultinately takes, the answers that have nothing to do with programming whatsoever should be deleted (there's one that I know of so far). – animuson ModStaff Jul 24 '13 at 12:28
  • I won't touch the close queue until the team takes any of the rational suggested steps to auto-close the bulk of the complete trash in there. It's not worth my time to read all that nonsense. – Rosinante Jul 24 '13 at 12:53
  • 1
    Yes @Mark, and as I said the people in the algorithm tag tend to be more accepting. You only notice it because it got a load of upvotes, because it's well asked... It seems strange to penalise someone for asking a question well when there are other questions out there. For instance, this is the most recently asked algorithm what's the difference? This is the fourth, what's the different? – ben is uǝq backwards Jul 24 '13 at 12:59
  • Partially agreed @Rosinante, I'm so depressed by the volumes that I've mostly given up. – ben is uǝq backwards Jul 24 '13 at 13:00
  • I think there was something about socks as well @ShaWizDowArd :-). – ben is uǝq backwards Jul 24 '13 at 13:04
  • 2
  • @benisuǝqbackwards but why should "people in the algorithm tag tend to be more accepting"? Each StackExchange site has one and only one set of principles guiding what are and are not acceptable questions–It doesn't change from tag to tag. – kojiro Jul 24 '13 at 13:40
  • 4
    It's about an algorithm, not a software algorithm. The fact that the algorithm can be implemented in software has no relevance. – Sklivvz Jul 24 '13 at 14:35

I take a strong objection to your assertion that “while this question is open, unlocked, and still seen as a valid question, it is setting a bad example for the whole Stack Exchange network.” No, this is not a bad question.

There is a clear statement of the scenario. There is a clear statement of the core objective. The requirements are slightly subpar: it's not at all clear what “the chosen person should be pseudo-random” is supposed to mean. But all in all, this is a decent question. The quality of the question sets a good example for Stack Exchange.

Your objections

You have several objections to this question. I'll try to address them all (not in order), though it's a bit difficult because some of them aren't clearly formulated. One is that “even though there are some interesting answers on this question, (…) they will be completely undiscoverable”, as I understand it due to the lack of search keywords. I agree with the sentiment if not with the degree to which it is expressed. This is however irrelevant to whether to close this question or not. If the question lacks search keywords, edit it to add them.

You also object that “it would be a very basic one (at the fizz-buzz competency level)”. The assertion that the question is very basic is completely ludicrous. Fizz-buzz is “code up this very simple thing”. Here, we have a modeling problem, which admits many potential solutions which can be evaluated according to several different metrics. The choice of metrics is an interesting modeling problem and the evaluation against this metrics is a computation problem whose difficulty depends on the algorithm and on the metric. If you think this question is trivial, you've let yourself be blinded by the croissants and you're reading the question for presentation and not for meaning.

You also state that the question “looks more like a populist attempt to farm reputation than a serious question”. I don't see where you get this. To me it looks like the asker has the genuine problem of bringing croissants to work — it doesn't get more concrete than that. If you think this isn't a serious question, the burden is on you to prove it. Furthermore, here the test is in the appearance and not in the essence: we care about the question as it is, not about the asker's motivation, which the ones among us who aren't telepathic cannot possibly know. Therefore the burden is also on you to prove that it is harmful.

So far I don't see how any of your arguments justify closing the question.

The “minimal understanding” close reason, or, Stack Overflow as a debugging service

Oddly, you don't mention the objection which was chosen by several close voters: “Questions asking for code must demonstrate a minimal understanding of the problem being solved.” On face value, this is completely bogus: the problem is clearly understood and stated, there has been a decent amount of thought about what kind of difficulties must be tackled (fairness, absences). The point of the “minimal understanding” close reason is to avoid wasting time on questions where the asker is so out of his depth that he will not be able to gain any useful knowledge and understanding from the answers. It's for those “I read one Java tutorial, how do I write an Angry Birds clone?” questions — though in most cases it's redundant with “too broad”. Here, it's clearly apparent that a typical answer would be useful and perfectly comprehensible at the asker's level.

Now there is a school of thought that all questions on Stack Overflow must include, in the words of the advice on the close reason, “attempted solutions, why they didn't work, and the expected results”. This is good advice for a majority of the questions asked on Stack Overflow. “I have a programming problem, help” is no good. “Here are my requirements, here's what I tried and where I'm stuck”, complete with code and error messages, is how you get help. But not every question on Stack Overflow is about fixing an attempted solution. Or at least, that's not how it should be.

What's so bad about a debugging service?

Hey, I'm not saying that it's bad to be a debugging service. But it isn't Stack Exchange's core strength.

For a long time, the about page described Stack Exchange as drawing from wikis, share-and-vote sites, blogs and forums. “How do I fix this program?” is best suited for forums. Wikis need a structure, so that you can find the right page. A debugging service works differently: there's no good indexing schemes for buggy programs. Share-and-vote is secondary: a debugging service requires content to be provided in the form of solutions to make the program work. Blogs are inadapted because they're completely focused on the initial content, whereas the most important part of a debugging service is the solutions.

Can a debugging service work in questions and answers format? Sure. “How do I fix this program?” requires two layers, the buggy program and the solutions, which fit exactly as questions and answers. But it's not a perfect fit. It lacks an important thing: reproducibility. No two people have exactly the same program to debug. In the end, the useful thing that emerges from the question is a working way of accomplishing the task. And “How do I accomplish this?” is a much better way to phrase the question, because it is shared by everyone who wants the same result.

To limit Stack Overflow to a debugging service is harmful because it significantly reduces its usefulness to people who are looking for the knowledge. If I have a programming problem, I'll go and look for how others have solved it. How others have attempted but failed to solve it is mostly irrelevant. (It can help warn me that I'm looking in the wrong place, or give me inspiration, but that's secondary.) What do I care about how much effort the original asker put into the question? Not a whit. To base a question's purely on the effort expended by the asker neglects its value for others. And that is a critical difference between Stack Exchange posts and forum posts: forum posts are for that one time, Stack Exchange answers are supposed to be forever.

To limit Stack Overflow to a debugging service is also harmful because it devalues the work performed by answerers. So you put in some effort into solving the problem, explaining how it's done, writing working code? Nah, it's not important. We'll close the question and make you do it again next month, when someone else comes along trying to solve exactly the same problem but going about it in a slightly different way. Sorry buddy, but Stack Overflow is all about pointing out the syntax error on line 3.

So what about this question?

I do have one reservation about this question. Not its quality — I've just ranted on and on to explain how the question is fine for Stack Exchange. But is it really on-topic for Stack Overflow? The question isn't exactly about a programming problem. There's a real-world problem, and the question is to device an algorithm to solve that problem. It's a bit borderline between programming and applied computer science.

Now this kind of modeling is common enough in the daily life of a programmer that I think it can fit under “software algorithms”. But I admit that it is marginal. For this reason, I have so far refrained from voting to reopen the question.

Questions about designing or analyzing algorithms (as opposed to questions about implementing them) may find a better home on Computer Science. I've reposted the question there) (formulated in my own words).

  • 8
    Sorry, but you're wrong. This is a super, super, super bad question. If you trim away all the useless rambling crap, you get "I want to choose a person, but they might not be in the office. How can I do this?" When "put the names in a hat and draw" is a valid answer, it's a bad question. – meagar Jul 24 '13 at 20:52
  • 1
    @meagar You clearly haven't read the question. The only part that may be construed as “useless rambling” is the introduction, mostly the picture. “Put the names in a hat and draw” does not meet the hard requirements, and even after applying the minimum necessary fix, it isn't a good answer. – Gilles 'SO- stop being evil' Jul 24 '13 at 20:57
  • 1
    I really don't understand why you think this is a high quality question. "The choice of metrics is an interesting modeling problem" The choice of metrics shouldn't be part of the problem the answerers are supposed to solve. If you come up with conflicting requirements like random but "fair", you need to make it concrete. "Fair" to within what number of croissant runs? Otherwise all discussion and voting on the answers relies on an attribute of the algorithm that has nothing to do with programming. – user200500 Jul 24 '13 at 20:58
  • 4
    Really? How do you define an "algorithm", except as a set of steps to follow? He said he "can" have a server, but didn't stipulate that he needed anything more than the algorithm. He didn't tell us a language, or request pseudo code, or give us anything resembling useful information. He asked for an algorithm for something so trivial that my one sentence answer ("put names in hat and draw") fits. Everything else was useless except to demonstrating his ignorance of the subject matter. – meagar Jul 24 '13 at 20:58
  • 1
    @Asad The choice of metrics is part of the problem. This isn't a pure coding problem, and I do expect the coding to be easy. The modeling is part of the problem. Modeling of this kind is part of the work of a programmer. Arguably, it's not part of the work of a code monkey — but is Stack Overflow really solely about code monkeys? – Gilles 'SO- stop being evil' Jul 24 '13 at 21:01
  • 1
    @Gilles Modeling a process is distinct from coming up with definite requirements for a process. The latter has to precede the former, and should always be the job of the OP. – user200500 Jul 24 '13 at 21:05
  • 2
    @Asad Nonsense. Coming up with definite requirements is part of the modeling job. It's part of programming. Stack Overflow is about programming; there's more to programming than writing code. – Gilles 'SO- stop being evil' Jul 24 '13 at 21:11
  • 4
    Sigh, I'm glad I don't work in the same office as you. We'd always be making nuclear power plants out of bike sheds. As it is, I bow to your superior arguments. – Mark Booth Jul 25 '13 at 0:36

Too broad, not explicitly stated as a programming problem. There's a difference between a problem a programmer might have, and a programming problem.

It could easily, however, be turned into a programming problem. Take, for example, this question which is obviously a programming problem, but started as a challenge from someone to post a question to stack overflow about hamburgers:

Complex Combinatorial Algorithms

Whether the OP wants to alter the question so it's an explicit programming problem or not is up to the OP, but as stated it doesn't belong.


Remove the picture. Actually, in general I suspect that a lot of the upvoting has to do with the large, visually appealing picture of a pile of croissants. The picture adds no clarity to the question. All it does is give everyone who sees it a quick shot of "oh, hey - pretty croissants" which in turn translates (I suspect) to a disproportionate number of upvotes. You'd get a similar effect by somehow shoehorning in a picture of fluffy kittens. Given that this is not a lolcats site, I'd argue that that's a net negative, and that we should have a rule about not putting in pictures of peripheral or solely audience-appeal purposes. I suspect that someone else would be better at figuring out exactly how to phrase such a rule, though.

  • 4
    The picture is not the real problem with the question. It's just a distraction. – user102937 Jul 24 '13 at 15:40
  • 3
    @RobertHarvey If the question were not getting huge numbers of upvotes and lots of attention then no one would care about it. As a question it's borderline, but borderline questions get asked and answered (or asked and closed and improved and answered) with some regularity, and it's not all that damaging to the site. The problem is that this particular borderline question is disproportionately popular, and the otherwise meaningless picture is part of what made it so. – Ben Barden Jul 24 '13 at 15:47
  • 2
    I don't care if there's a picture in the post, but not that one. Firstly, there's no attribution to where it's being "borrowed" from, and secondly, it's an image that is popularly re-used so there's little hope in finding the original source. There are plenty of public domain or CC licensed images that can be used instead – JohnB Jul 24 '13 at 17:29

Why I don't think this question is a good fit:

Because it's a basically a homework Question telling: hey this is the problem give me a solution.

It lacks any attempt by the author to solve it. The questions lacks good effort by the author to actually solve themselves and what problems he encounters. The Requirements are ambiguous. So there is no real answer. Also: "fair" does not exist.

  • You are right about the "ambiguous part", but a "I'm looking for an algorithm to [30 lines of specification]" where not knowing said algorithm is not due to laziness is a much better question than "I need to [homework assignment]. This is what I have so far: [amalgam of previous answers that doesn't even compile] but it duzn't wrk". I believe this question does show effort. If nothing else - effort to ask the question. While the question is a bit ambiguous, you can't say the asker didn't try to be specific. – John Dvorak Jul 29 '13 at 14:36
  • 2
    @JanDvorak I just think the question hasn't gotten locked is because it's well written and it's about croissants and everybody likes croissants. But even a well written question can be a bad one. – Pieter B Jul 30 '13 at 6:53

After reading the comments here and answers there, I am inclined to agree that StackOverflow is the wrong venue not because the problem is too simple, but because it's deceptively hard. A bit more clear research effort should be shown, but it's really implicit in the questions, and adding some simple yet wrong things that don't work should be plenty to fix that (an edit at most). If only automated solutions are admitted, then it'd be on topic.

Note--this sort of problem is not completely isolated to needing croissants. Want a loot system that distributes fairly for a game? Same problem. Thread contention? A similar solution can solve dependency problems. Need to send encrypted signals mixed together so that they can't easily be isolated from each other? Same deal. It's not a very common algorithmic need--to maintain both an invariant quantity within some bounds, and inject a desirable degree of randomness--but it comes up now and again.

It's a lovely programming problem amusingly stated. But it should have had more effort put into a solution (not just statement of problem). I think it's fine for StackOverflow for people who read the algorithms tag, but once it hit the "hot question" list, I'm not so sure that the algorithmic issues are what were mostly appreciated. Programmers is no better; Computer Science perhaps would have resulted in better answers.

I'm not sure what to do now--the comments and answers even are a bit of a mess, including a lot of answers that probably solve the social problem but don't solve the algorithmic problem. Just leaving it closed would be the simplest, perhaps after minimal editing to make it more findable.


The original is a bad question and should be closed, and this is a bad question because it has encouraged answers which, influenced by the original bad question, fail to focus in its essential parts.

The original is a bad question

The OP of the original question did a terrible job in clarifying requirements. When you are trying to solve an algorithm you need to focus on the important ideas and not be distracted by data which may be related in the real world, but totally unrelated to the particular algorithm.

Croissants are such data. Not only their picture, but their very mention distracted everyone. It would be ok if the question had been otherwise clear, i.e. if besides the useless picture the requirements had been clearly isolated. But they were not.

In my opinion this question would only fit in a Stack Exchange site which does not exist yet: Requirements Definition (or perhaps Problem Definition). People (mainly non-programmers) would post their everyday problems there (Which bus stop should I choose if...? How many elevators do I need if...?) and the answers would clarify the exact requirements for them.

In our example, people would set to ask the OP if it's ok that someone brings the croissants twice in a row, or three times in a week, just by chance, as a result of the randomness. And two or three more questions specific to his problem. Then they would clarify the problem in a set of basic requirements, which would be the answer.

It would be a bad Q&A site, because it would be one in which people do your work for you and virtually noone else can benefit from it. In any case, it wouldn't be StackOverflow.

This is a bad question

The original should have been closed as off-topic because it doesn't show a minimal research effort and it doesn't demonstrate a minimal understanding of the problem being solved. It basically asks for a minimal understanding of that problem, as I said before.

This question dedicates a special attention to the original one, as if it was "special" in some way. As if it should generate a debate about lots of upvotes, nice images, popular title, popularity and close reasons altogether. It shouldn't. Each of these subjects should be (and has already) discussed independently on Meta. Nice images, for example, should be discussed in the context of a good question. Descriptive titles as opposed to popular titles should also be discussed for a good question. If the question is not good in the first place, all these debates become useless and just add confusion.

If a question should be closed, it should be closed, not have every detail of it debated on Meta.

  • Comments on questions have effectively allowed Stack Overflow to operate in this special "debug my code for me" mode that you describe. I'm not sure that's a positive development. – Cody Gray Jul 31 '13 at 9:03
  • @CodyGray Been there done that. I remember having begged OP's to please, please step through their code and include the values of several important variables in the line where they write "cout << "Impossible! Should never be here!! Why?";". I'm sure that's not a positive development at all, although I have taken part in it. – Daniel Daranas Jul 31 '13 at 9:06

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