One was stock "you can use this standard data structure - see details on Wiki". Basically, a priority queue.

One was mine, which had a somewhat-original (at least, I don't recall ever reading an official moniker for it) data structure. Actually, two of them, one for each possible domain of data distribution.

BOTH algorithms were faster on average (mods AND look-ups) than the standard Priority Queue when applied to that user's problem domain.

The proof, aside from fairly simple O(n) analysis, is that as of today, the OP commented on my post that my data structure was the best he could use and accepted my answer.

However, at the time of posting, a couple of people down-voted it initially, with incorrect excuses like "algorithm does not work" (based on incorrectly reading my answer), "Wiki data structure is better" (without reading my O(n) analysis or comprehending it). First down-vote was from a competing Wiki question.

Then it seemed to be lemming-like down-voting, including at least 2 serial down-voters that were since cleansed by SO team as per my report.

So, since most of the current down-votes if not all are based on people being obviously technically wrong as acknowledged by original poster, is there some sort of appeals process on SO whereby a technically competent moderator/superuser can review the Q, determine whether the people who down-voted also posted incorrect comments as reasons for down-voting, and fix this?

Please note that this is mostly a question of fairness - at my rep level, the current "-6" rep from the Q are not really that big of a deal (and the main problem was the opportunity cost of people not voting my A up when the thread was active due to seeing negative score and a long thread of comment criticisms - which I can't get back anymore since the thread is no longer active).

And yeah, I'm whining :)
But it was a behavior of a couple of people that was grossly unfair and totally contrary to the spirit of SO.

Geniuses are often underappreciated in their times.
–
LukLedNov 22 '09 at 23:23

Your analysis of why you are right seems to be based on the OP choosing your solution as the accepted answer. Given that the OP didn't know originally, it's at least possible that the community is able to choose the best answer with greater accuracy than the OP.
–
tvanfossonNov 23 '09 at 15:41

1

@tvanfosson - actually it is MOSTLY based on my O(n) analysis based on problem domain as well as practical experience of implementing at least two real life schedulers. So far, nobody bothered to actually point holes in my analysis, which would definitely shut me up real quick (or get me to tune the algo/DS :) ) The OP's acceptance was just what broght on the whining fit.
–
DVKNov 24 '09 at 1:16

1

As for community, I think I illustrated the main reasons people were downvoting, and precious few did it because they found actual technical flaws in the answer, which is the usual reason to down vote someone as opposed to not up-voting.
–
DVKNov 24 '09 at 1:23

The funny thing about downvotes is that even though they only have the fifth of the impact to your rep score as an upvote. When you get one you tend feel 42 times worse.

How could I ever be wrong, I mean you've got to be kidding.

There is no appeals process, stuff generally is fair, there are a few tactical downvoters and trolls around. If you think your question is unfairly stuck at -20 you can always try to post something on meta, the waffle loving crowd here is pretty helpful in salvaging questions that have lost interest on SO.

Keep in mind that controversial answers have a huge advantage on SO, as there is no trivial way using the SO ui to see the downvote/upvote split (you have to go to the profile page). Hopefully that is fixed some day.

I think that chasing up the person who -2ed your answer and demanding justice is a bit of an overkill, next upvote you get will pay for 5 downvotes.

I read your answer, thought it generally inferior to a priority queue based on the questioner's information at the time, and may have downvoted it. I certainly didn't upvote it.

Having reread the question and answers, I still think a priority queue is the way to go. I don't think you adequately analyzed your second suggestion (maintaining a priority queue, when all you need is the next event, is generally superior to maintaining a sorted list). I don't particularly like your array solution either, for lack of compactness and potential collision problems.

I may be wrong, but I do know a thing or two about algorithms, and my response was based on my own analysis of the problem and proposed solutions.

You are projecting an attitude that I really don't like, both in your last comment on your answer and in complaining about downvotes on meta. I suggest that you pick up a bit of humility, consider the possibility that people who disagree with you might possibly be right, and grow a thicker skin. You'll need it on internet forums.

1) Could you please comment on how exactly losing on average of 86,000 pointers (estimating that half the seconds have no events in 2 days) in a data structure that for 1M events (as per OP) would realistically take a couple of megs of memory is considered "lack of compactness"? Worst case scenario, 172,000 pointers. 2) What exactly do you mean by "collision problems"?
–
DVKNov 23 '09 at 19:27

1a) Just remembered, he clarified in the comment that he's much more likely to get near-future events than far-off, so most likely he can implement the array structure for next couple of hours as a fast cache and the rest of time interval as a hash, to be converted into the array every 1/2 hour or so. Compactness increases greatly.
–
DVKNov 23 '09 at 19:48

3) As for maintenance, PQ is O(log N). Where N is # of ALL entries; so's access. I'm trusting Wiki on this. Whereas my proposed structure is O(log M) where M is # of timestamps that events are scheduled for. Which, for very large # of events, becomes significantly cheaper than O(log N).
–
DVKNov 23 '09 at 20:08

1. This isn't the place to discuss the algorithmic analysis. 2. I already knew you were completely convinced by your analysis. 3. You don't seem to understand that intelligent and reasonable people can disagree with you, and that if they don't understand you it's probably at least partly your fault. 4. You don't seem to be able to let things go, and if I knew you personally I'd find it a little frightening. The right thing to do in a situation like this is to walk away and answer more questions.
–
David ThornleyNov 23 '09 at 22:40

2

OK, so your way to convince me on a technical level is to hurl personal insults and omit ANY technical detail/proof beyond "I don't particularly like". If this is not the place, post in comments or as edit to my post on SO. Otherwise, don't make your lack of convincing arguments into somehow being someone's fault.
–
DVKNov 24 '09 at 1:06

BTW, I have repeadedly conceded other people's technical objections in my SO career, never mind the rest of my life. It's hand in the air waving on pointy haired level that fails to convince me. P.S. I'm not making a case that I may not have been 100% clear. But you have not made any technical argument against what you THOUGHT I posted, so I can't very well clarify myself further.
–
DVKNov 24 '09 at 1:09

@DVK So there we have it... DVK doesn't like letting go of his clearly superior answers, and David Thornley has a superiority complex :)
–
Brandon MooreNov 17 '11 at 0:14

The only appeals process is to give your reasoning and see what happens. Of course, you can only do that if the downvoter explains why they downvoted (unless you can guess from other answers). You can give your reasons either in response comments or in the answer - although I would suggest that in the answer is a generally more positive approach. If one person doesn't understand some aspect of your answer, chances are that will go for someone else too. Editing the answer also allows the downvote to be undone, whereas commenting doesn't.

Often that can lead to downvotes being reversed. If it doesn't, just whistle and walk on. There will always be muppets around, but ultimately you'll be happiest if you can ignore them. Of course, that's a hypocritical thing for me to say as I do let them get under my skin too much - but I know I'd be better off if I didn't...

Could you please provide a definition of muppet for this purpose?
–
RosinanteNov 22 '09 at 23:20

"idiot, ignorant". "a person who defies explanation with regard to common sense and logic, exuding an air of confidence that is mutually exclusive to that of their accomplishments or ability"
–
Michael PetrottaNov 22 '09 at 23:32

This reminds me of the time a Brit at work called us "boffins", and I wondered whether to take it as an insult.
–
Michael PetrottaNov 22 '09 at 23:33

Now, we have to determine of boffins also eat waffles. Or vica versa.
–
RosinanteNov 23 '09 at 0:17

@Michael - that depends, does the chap work for "The Register"? :)
–
DVKNov 23 '09 at 3:48

I think that the answer here is that we all take our lumps. Over time, if you keep posting good answers, your rep will reach escape velocity, and you just won't notice the occasional mishap.

On your specific situation: SO is not an academic journal. People are looking for tested, practical, solutions, and delivering a novel solution may not always win you laurel wreaths.

I tend to aim toward witty in my responses, and it looks to me like I've taken a few DV's from people who felt that I crossed the line from witty to snarky. I'd be happier if they had left a comment, but that's how the cookie crumbles.

Or, as per @Andomar, if you attract the wikipedia low-lifes ...
–
RosinanteNov 22 '09 at 22:28

@bmargulies - I wonder if PQ has a standard implementation in major languages (STL and Java collections at least)... too lazy to Google now though... if it does not, then you're saying people rely on Wikipedia for technical accuracy over SO??? :)
–
DVKNov 23 '09 at 3:52

I just got downvoted and it rolled into four downvotes. I though about complaining but I got some good answers from those who had bothered to read the post properly and with it being a free site moderators will have more important things to do.
–
indofraiserFeb 18 '14 at 11:58