Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2571

R

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.

Visit the blog
37mentions?
30HN people?
2007–2025first – last linked?
Links on Hacker News per year · peak 6 in 2010

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?

  1. Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot
    7 people · 7 mentions · first linked 2010-02-28
  2. Twitter Powers of Ten (2011)
    3 people · 3 mentions · first linked 2014-10-22
  3. /blog/2010/02/microsoft-random-browser-ballot.html
    3 people · 3 mentions · first linked 2021-05-02
  4. Songs of the IBM
    2 people · 2 mentions · first linked 2012-09-01
  5. /blog/2007/01/how-to-hire-guillaume-portes.html
    2 people · 2 mentions · first linked 2019-04-25
  6. /blog/2007/01/how-to-hire-guillaume-portes.html
    2 people · 2 mentions · first linked 2024-02-14
  7. ODF conformance, but not interoperability, in MS Office 2007SP2
    2 people · 2 mentions · first linked 2009-05-05

What Hacker News says?

  1. 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””
  2. Submitted Songs of the IBM as a story · 71 points

    HN discussion
  3. Funny 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”
  4. Submitted Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot as a story · 59 points

    HN discussion
  5. See 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?”
  6. Submitted Twitter Powers of Ten (2011) as a story · 6 points

    HN discussion
  7. Fully 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”
  8. Submitted Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot as a story · 4 points

    HN discussion
  9. gmurphy · 2011-07-06Recommends
    The 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”
  10. Submitted ODF enters the Semantic Web as a story · 4 points

    HN discussion
  11. Rob 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”
  12. Submitted The Versions of OpenDocument Format as a story · 3 points

    HN discussion
  13. There 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?”
  14. Submitted ODF conformance, but not interoperability, in MS Office 2007SP2 as a story · 3 points

    HN discussion
  15. DOCX 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”
  16. Submitted Jingle Bells, Batman Smells (2006) as a story · 2 points

    HN discussion
  17. 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()”
  18. Submitted ISO/IEC JTC1 Approves ODF 1.2 PAS Ballot as a story · 2 points

    HN discussion
  19. 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”
  20. Submitted Mapping the Apache Software Foundation as a story · 2 points

    HN discussion
  21. That 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”
  22. Submitted ODF 1.2 Begins Final 60-day Public Review as a story · 2 points

    HN discussion
  23. The 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”
  24. Submitted The Final OOXML Update: Part I as a story · 2 points

    HN discussion
  25. Exhibit 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””
  26. Submitted Beautiful Word Clouds as a story · 2 points

    HN discussion
  27. Like 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”
  28. Submitted Twitter Powers of Ten (2011) as a story · 1 points

    HN discussion
  29. Why 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”
  30. Submitted Songs of the IBM (2011) as a story · 1 points

    HN discussion

Search all of HN for robweir.com

Linked by the same people?