{"id":2307,"date":"2010-03-09T10:49:29","date_gmt":"2010-03-09T09:49:29","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=2307"},"modified":"2010-03-09T10:49:29","modified_gmt":"2010-03-09T09:49:29","slug":"why-programmers-should-study-microsofts-random-failure-and-not-trust-google-search","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/2307-why-programmers-should-study-microsofts-random-failure-and-not-trust-google-search.html","title":{"rendered":"Why programmers should study Microsoft\u2019s random failure and not trust Google search"},"content":{"rendered":"<p>The bizarre story of the EU-mandated Windows browser choice screen took an unexpected twist recently when it was noticed that the order of the browsers was not truly random.<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2010\/03\/image2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2010\/03\/image_thumb2.png\" width=\"404\" height=\"254\" \/><\/a><\/p>\n<p>IBM\u2019s Rob Weir was not the first to spot the problem, but did a great job in writing it up, both when <a href=\"http:\/\/www.robweir.com\/blog\/2010\/02\/microsoft-random-browser-ballot.html\" target=\"_blank\">initially observed<\/a> and <a href=\"http:\/\/www.robweir.com\/blog\/2010\/03\/new-microsoft-shuffle.html\" target=\"_blank\">after it was fixed<\/a> by Microsoft.<\/p>\n<p>It was an algorithm error, a piece of code that did not return the results the programmer intended. <\/p>\n<p>Unless Microsoft chooses to tell us, there is no way to tell how the error happened. However, as Weir and others observe, it may be significant that a Google search for something like <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=javascript+random+sort&amp;meta=\" target=\"_blank\">Javascript random sort<\/a> immediately gets you sample code that has the same error. Further, the error is not immediately obvious, making it particularly dangerous.<\/p>\n<p>I am sure I am not the only person to turn to Google when confronted with some programming task that requires some research. In general, it is a great resource; and Google\u2019s own algorithms help a little with filtering the results so that sites with better reputation or more inbound links come higher in the results.<\/p>\n<p>Still, what this case illustrates \u2013 though accepting again that we do not know how the error occurred in this instance \u2013 is that pasting code from a Google search into your project without fully understanding and testing it does not always work. Subtle bugs like this one, which may go unnoticed for a long time, can have severe consequences. Randomisation is used in security code, for example.<\/p>\n<p>As an aside, there also seems to be some randomness in the appearance of the browser choice screen. It turned up on my laptop, but not on my desktop, although both have IE as the default.<\/p>\n<p>And who would have guessed that the EU would arrange for so many of us to get an ad for something like the <a href=\"http:\/\/www.morequick.com\/IndexEn.htm\" target=\"_blank\">GreenBrowser<\/a> popping up on our desktop? Apparently it is the \u201cbest choice of flexible and powerful green web browser\u201d, though since it is based on IE it is less radical a choice than it first seems.<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2010\/03\/image1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2010\/03\/image_thumb1.png\" width=\"404\" height=\"254\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The bizarre story of the EU-mandated Windows browser choice screen took an unexpected twist recently when it was noticed that the order of the browsers was not truly random. IBM\u2019s Rob Weir was not the first to spot the problem, but did a great job in writing it up, both when initially observed and after &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/2307-why-programmers-should-study-microsofts-random-failure-and-not-trust-google-search.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Why programmers should study Microsoft\u2019s random failure and not trust Google search<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50,55,80,1],"tags":[422,514,586,740],"class_list":["post-2307","post","type-post","status-publish","format-standard","hentry","category-javascript","category-microsoft","category-software-development","category-uncategorized","tag-google","tag-javascript","tag-microsoft","tag-programming"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/2307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=2307"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/2307\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=2307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=2307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=2307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}