Top all-time · #2571
Rob Weir
Personal blog · robweir.com/blogprogrammingdata
Rob Weir writes An Antic Disposition, a personal blog at robweir.com about programming and data. Since 2007, 30 different Hacker News readers have linked it 37 times, most often “Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot”. The last post was in 2020, but the archive is still widely read.
Too few sampled comments (16) to say how often HN recommends it.?
Why HN links it
Rob Weir's blog on document formats (OOXML, ODF), Microsoft, and biased random shuffling. Its browser-choice shuffle analysis is the post most often linked in HN threads on randomness.
Summarised by Claude from a sample of 16 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot7 people · 7 mentions · first linked 2010-02-28
- Twitter Powers of Ten (2011)3 people · 3 mentions · first linked 2014-10-22
- /blog/2010/02/microsoft-random-browser-ballot.html3 people · 3 mentions · first linked 2021-05-02
- Songs of the IBM2 people · 2 mentions · first linked 2012-09-01
- /blog/2007/01/how-to-hire-guillaume-portes.html2 people · 2 mentions · first linked 2019-04-25
- /blog/2007/01/how-to-hire-guillaume-portes.html2 people · 2 mentions · first linked 2024-02-14
- ODF conformance, but not interoperability, in MS Office 2007SP22 people · 2 mentions · first linked 2009-05-05
What Hacker News says?
It is shuffled badly, and not at all uniformly. And heavily implementation-dependent. https://stackoverflow.com/questions/962802/is-it-correct-to-... An example of this out in the wild: https://www.robweir.com/blog/2010/02/microsoft-random-browse...
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on ““A calculator app? Anyone could make that””Submitted Songs of the IBM as a story · 71 points
HN discussionFunny thing about that random comparator shuffle - Microsoft used it for their browser selection screen (part of the EU antitrust settlement). Oops! http://www.robweir.com/blog/2010/02/microsoft-random-browser...
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Visualizing Algorithms”Submitted Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot as a story · 59 points
HN discussionSee also: "How to hire Guillaume Portes" [1] (also "autoSpaceLikeWord95" in case anyone shares that specific brainworm with me and is Ctrl+Fing for it) [1] https://www.robweir.com/blog/2007/01/how-to-hire-guillaume-p...
Comment linking /blog/2007/01/how-to-hire-guillaume-portes.html
on “Original WWW proposal is a Word for Macintosh 4 file from 1990, can we open it?”Submitted Twitter Powers of Ten (2011) as a story · 6 points
HN discussionFully respect the history, but often these days as the corp has waned/is nothing more than a bygone great, I can't help but think of Songs of the I.B.M . ( https://www.robweir.com/blog/2011/06/songs-of-the-ibm.html ) i.e Ever onward! ever onward! that's the spirit that has brought us fame. we're big but bigger we will be, we can't fail for all can see, that to serve humanity has been our aim. our products now are kn…
Comment linking /blog/2011/06/songs-of-the-ibm.html
on “100 Years Ago, IBM Was Born”Submitted Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot as a story · 4 points
HN discussionThe European Browser Choice screen was a good example of where this style of sorting can come and bite you - the browser choice screen was designed to display a selection of browsers in random order, but the above sorting code unintentionally biased it towards particular browsers. Here's a good writeup with a bunch of test runs and graphs: http://www.robweir.com/blog/2010/02/microsoft-random-browser...
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Advanced Javascript tips and tricks”Submitted ODF enters the Semantic Web as a story · 4 points
HN discussionRob Weir has pointed out a lot of OOXML-problems over the years: http://www.robweir.com/blog/2007/07/formula-for-failure.html http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-d...
Comment linking /blog/2008/05/fractured-yearfrac-and-discounted-disc.html
on “A writer leaves Microsoft Word”Submitted The Versions of OpenDocument Format as a story · 3 points
HN discussionThere are places where it says the equivalent of "Works the same as Word 95" [3], but does not specify in the specification what that means. It's essentially a serialization of the binary format to XML. ODF 1.4 is around 1,100 pages across all 4 parts whereas OOXML is over 6,000. [1] https://stephesblog.blogs.com/my_weblog/2007/08/microsofts-f... [2] https://ooxmlisdefectivebydesign.blogspot.com/2007/08/micros... [3…
Comment linking /blog/2007/01/how-to-hire-guillaume-portes.html
on “Is OOXML Artifically Complex?”Submitted ODF conformance, but not interoperability, in MS Office 2007SP2 as a story · 3 points
HN discussionDOCX is not an open standard, there are many articles[1][2] why it isn't - even in Wikipedia article [3]. ISO standards committee were just a rubber stamp Microsoft puppets to ensure vendor lock for decades. [1] https://osswatch.jiscinvolve.org/wp/2007/01/05/criticism-of-... [2] http://www.robweir.com/blog/2007/01/how-to-hire-guillaume-po... [3] https://en.m.wikipedia.org/wiki/Standardization_of_Office_Op...
Comment linking /blog/2007/01/how-to-hire-guillaume-portes.html
on “USPTO to add surcharge on non-DOCX patent applications in 2023”- Mz · 2016-12-22
Submitted Jingle Bells, Batman Smells (2006) as a story · 2 points
HN discussion It's a bit debatable whether this is a security bug vs a "you're holding it wrong" kind of bug, but fixing the bounds check is a good defensive practice and I'm glad they implemented it. Somewhat tangentially, Microsoft at one point got in a bit of trouble for trying to use a randomized comparison function to implement shuffling on their "Browser choice" page: https://www.robweir.com/blog/2010/02/microsoft-random-br…
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Out-of-bounds read and write in the glibc's qsort()”Submitted ISO/IEC JTC1 Approves ODF 1.2 PAS Ballot as a story · 2 points
HN discussion- re · 2015-12-18
It can be extremely biased, and the results can depend on the sort algorithm, because what you're randomizing is the comparison results, not the order. Consider insertion sort: https://en.wikipedia.org/wiki/Insertion_sort As the list is sorted, elements are inserted from the back by finding the first element that the new element is smaller than. The last element to be inserted is the one at the end of the unsorted a…
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “How I Interview” Submitted Mapping the Apache Software Foundation as a story · 2 points
HN discussionThat is exactly the algorithm that Microsoft used to bias its purportedly random “browser choice” screen. Don’t use it. https://www.robweir.com/blog/2010/02/microsoft-random-browse... The Fisher–Yates shuffle is the right way to shuffle an array in an unbiased way. https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Evolution of Random Number Generators”Submitted ODF 1.2 Begins Final 60-day Public Review as a story · 2 points
HN discussionThe random return used in the comparison passed into an Array.sort() function would depend on the sort algorithm used by the JavaScript engine, since the comparisons being returned aren't "honest". Is it a merge sort, for example? Plus, it's kinda broken because if X > Y for one permutation, it should follow that Y < X if those same values are passed back in, and in this case, they' really not. MS took advantage of…
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Latacora: Security Programs For Startups”Submitted The Final OOXML Update: Part I as a story · 2 points
HN discussionExhibit A: MS Word "fast save" format: https://web.archive.org/web/20160308183811/http://1017.songt... https://www.joelonsoftware.com/2008/02/19/why-are-the-micros... From CS perspective, it's an impressive feat of engineering. They used persistent data structures to optimize in-memory operations, and essentially a write-ahead log of these same structures to optimize commits to disk. They also created "OLE" technolo…
Comment linking /blog/2007/01/how-to-hire-guillaume-portes.html
on “Phantom OS, a Russian OS where “everything is an object””Submitted Beautiful Word Clouds as a story · 2 points
HN discussionLike running a criminal monopoly. The problem with monopolies in the technical area is that they have a business reason to be incompatible (otherwise, they'll be cloned). That means they build over complex systems which have finicky compatibility problems. For a typical example, see this: http://www.robweir.com/blog/2009/05/update-on-odf-spreadshee... The monopolist's need for obscurity and complexity doesn't just c…
Comment linking /blog/2009/05/update-on-odf-spreadsheet.html
on “ Bill Gates funds scientists in unorthodox health research”Submitted Twitter Powers of Ten (2011) as a story · 1 points
HN discussionWhy do people program this stuff themselves? shuf -n22000 < list.all | sort > list.lucky See also http://www.robweir.com/blog/2010/02/microsoft-random-browser...
Comment linking /blog/2010/02/microsoft-random-browser-ballot.html
on “Due to a programming error, the results of the 2012 DV lottery were rescinded”Submitted Songs of the IBM (2011) as a story · 1 points
HN discussion