Schooling Microsoft On Random Browser Selection 436
Rob Weir got wind that a Slovakian tech site had been discussing the non-randomness of Microsoft's intended-to-be-random browser choice screen, which went into effect on European Windows 7 systems last week. He did some testing and found that indeed the order in which the five browser choices appear on the selection screen is far from random — though probably not intentionally slanted. He then proceeds to give Microsoft a lesson in random-shuffle algorithms. "This computational problem has been known since the earliest days of computing. There are 5 well-known approaches: 3 good solutions, 1 acceptable solution that is slower than necessary and 1 bad approach that doesn’t really work. Microsoft appears to have picked the bad approach. But I do not believe there is some nefarious intent to this bug. It is more in the nature of a 'naive algorithm,' like the bubble sort, that inexperienced programmers inevitably will fall upon when solving a given problem. I bet if we gave this same problem to 100 freshmen computer science majors, at least 1 of them would make the same mistake. But with education and experience, one learns about these things. And one of the things one learns early on is to reach for Knuth. ... The lesson here is that getting randomness on a computer cannot be left to chance. You cannot just throw Math.random() at a problem and stir the pot and expect good results."
LAST (Score:5, Funny)
Hmm, there's a nice shuffle implementation in Java that Microsoft could use... Oh, wait...
Rgds
Damon
Adding randomness... (Score:4, Funny)
pickabrowser() {
if (rand()>0.05) {
use IE
} else {
pickabrowser()
}
}
Nobody said anything about bias.
Re:What's the problem? (Score:2, Funny)
Re:Adding randomness... (Score:5, Funny)
Microsoft problem solving (Score:2, Funny)
There are 5 well-known approaches: 3 good solutions, 1 acceptable solution that is slower than necessary and 1 bad approach that doesn’t really work. Microsoft appears to have picked the bad approach.
We are still talking here about the random selection of browsers, or something more broad?
Re:Good enough (Score:1, Funny)
Given that each person will only lose one cent per lifetime, I propose to move $0.01 from each bank account in the world to my own account.
That must be the most accurate and incredible insightful analogy to the issue at hand I've ever seen that doesn't involve cars.
Random (Score:4, Funny)
Anywhoo... So what you're telling me is that Microsoft's programmers made a mistake for a production system that 99% of freshmen CS students wouldn't make? In this case, I think you're actually giving too much credit to Freshman CS students...
Re:You can't artificially put down competition (Score:5, Funny)
Safari will almost always (almost 50% of the time) be put in the bottom two elements [out of five].
And how well did you do in statistics class?
Re:He's just bitching (Score:3, Funny)
On the other hand, the devil is in the details, and one would think that a company such as Microsoft that has been owning the software market for decades now would know how to implement a randomizing algorithm correctly.
Sure!
10 RANDOMIZE TIMER
20 PRINT INT(RND * 5)
30 GOTO 20
Re:What's the problem? (Score:5, Funny)
Re:He's just bitching (Score:5, Funny)
> ...the manager ignored it...
Or he decided that it was so important that he had to do it himself.
Knuth's Quote Re: Random Number Generators (Score:2, Funny)
I always liked Knuth's choice quote from John von Neumann on the subject:
"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin."
- Michael
Quality Standards (Score:3, Funny)
I bet if we gave this same problem to 100 freshmen computer science majors, at least 1 of them would make the same mistake.
Well, that seems an awfully high standard for Microsoft to hold itself to.
Microsoft: Ranked 1st percentile with Freshmen CS Majors
Re:Malice? (Score:1, Funny)
I tried that, and IE appeared in the first slot -every- time. Then I realized that I had javascript off. You might try it in Chrome to get an idea of how much faster their javascript engine is on your system.