Some Fun Software Facts

Hillel Wayne — Computer Things News

Summary

A collection of fun and obscure software facts, including Tetris implemented in Conway's Game of Life, Vim being Turing complete, and the history of the backslash character.

<p>Last newsletter of the year!</p> <p>First some news on <em>Logic for Programmers</em>. Thanks to everyone who donated to the <a href="https://buttondown.com/hillelwayne/archive/get-logic-for-programmers-50-off-support-chicago" target="_blank">feedchicago charity drive</a>! In total we raised $2250 for Chicago food banks. Proof <a href="https://link.fndrsp.net/CL0/https:%2F%2Fgiving.chicagosfoodbank.org%2Freceipts%2FBMDDDCAF%3FreceiptType=oneTime%26emailLog=YS699MZW/2/0100019ae2b7eb92-7c917ad0-c94e-4fe2-8ee1-1b9dc521c607-000000/brmxoTOvoJN94I9nQH26s7fRrmyFDj_Jir1FySSoxCw=434" target="_blank">here</a>.</p> <p>If you missed buying <em>Logic for Programmers</em> real cheap in the charity drive, you can still get it for $10 off with the holiday code <a href="https://leanpub.com/logic/c/hannukah-presents" target="_blank">hannukah-presents</a>. This will last from now until the end of the year. After that, I'll be raising the price from $25 to $30.</p> <p>Anyway, to make this more than just some record keeping, let's close out with something light. I'm one of those people who loves hearing "fun facts" about stuff. So here's some random fun facts I accumulated about software over the years:</p> <ul> <li>In 2017, a team of eight+ programmers <a href="https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life" target="_blank">successfully implemented Tetris</a> as a <a href="https://en.wikipedia.org/wiki/Conway's_Game_of_Life" target="_blank">game of life simulation</a>. The GoL grid had an area of 30 trillion pixels and implemented a full programmable CPU as part of the project.</li> </ul> <ul> <li>Computer systems have to deal with leap seconds in order to keep UTC (where one day is 86,400 seconds) in sync with UT1 (where one day is exactly one full earth rotation). The people in charge recently passed a resolution to abolish the leap second by 2035, letting UTC and UT1 slowly drift out of sync.</li> </ul> <ul> <li><a href="https://buttondown.com/hillelwayne/archive/vim-is-turing-complete/" target="_blank">Vim is Turing complete</a>.</li> </ul> <div class="subscribe-form"></div> <ul> <li>The backslash character basically didn't exist in writing before 1930, and <a href="http://dump.deadcodersociety.org/ascii.pdf" target="_blank">was only added to ASCII</a> so mathematicians (and ALGOLists) could write <code>/\</code> and <code>\/</code>. It's popular use in computing stems entirely from being a useless key on the keyboard.</li> </ul> <ul> <li><a href="https://en.wikipedia.org/wiki/Galactic_algorithm" target="_blank">Galactic Algorithms</a> are algorithms that are theoretically faster than algorithms we use, but only at scales that make them impractical. For example, matrix multiplication of NxN is <a href="https://en.wikipedia.org/wiki/Strassen_algorithm" target="_blank">normally</a> O(N^2.81). The <a href="https://www-auth.cs.wisc.edu/lists/theory-reading/2009-December/pdfmN6UVeUiJ3.pdf" target="_blank">Coppersmith Winograd</a> algorithm is O(N^2.38), but is so complex that it's vastly slower for even <a href="https://mathoverflow.net/questions/1743/what-is-the-constant-of-the-coppersmith-winograd-matrix-multiplication-algorithm" target="_blank">10,000 x 10,000 matrices</a>. It's still interesting in advancing our mathematical understanding of algorithms!</li> </ul> <ul> <li>Cloudflare generates random numbers by, in part, <a href="https://www.cloudflare.com/learning/ssl/lava-lamp-encryption/" target="_blank">taking pictures of 100 lava lamps</a>.</li> </ul> <ul> <li>Mergesort is older than bubblesort. Quicksort is slightly younger than bubblesort but older than the <em>term</em> "bubblesort". Bubblesort, btw, <a href="https://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/" target="_blank">does have some uses</a>.</li> </ul> <ul> <li>Speaking of mergesort, most implementations of mergesort pre-2006 <a href="https://research.google/blog/extra-extra-read-all-about-it-nearly-all-binary-searches-and-mergesorts-are-broken/" target="_blank">were broken</a>. Basically the problem was that the "find the midpoint of a list" step <em>could</em> overflow if the list was big enough. For C with 32-bit signed integers, "big enough" meant over a billion elements, which was why the bug went unnoticed for so long.</li> </ul> <ul> <li><a href="https://nibblestew.blogspot.com/2023/09/circles-do-not-exist.html" target="_blank">PDF's drawing model cannot render perfect circles</a>.</li> </ul> <ul> <li>People make fun of how you have to flip USBs three times to get them into a computer, but there's supposed to be a guide: according to the standard, USBs are supposed to be inserted <em>logo-side up</em>. Of course, this assumes that the port is right-side up, too, which is why USB-C is just symmetric. </li> </ul> <ul> <li>I was gonna write a fun fact about how all spreadsheet software treats 1900 as a leap year, as that was a bug in Lotus 1-2-3 and everybody preserved backwards compatibility. But I checked and Google sheets considers it a normal year. So I guess the fun fact is that things have changed!</li> </ul> <ul> <li>Speaking of spreadsheet errors, in 2020 <a href="https://www.engadget.com/scientists-rename-genes-due-to-excel-151748790.html" target="_blank">biologists changed the official nomenclature</a> of 27 genes because Excel kept parsing their names as dates. F.ex MARCH1 was renamed to MARCHF1 to avoid being parsed as "March 1st". Microsoft rolled out a fix for this... three years later.</li> </ul> <ul> <li>It is possible to encode any valid JavaScript program with just the characters <code>()+[]!</code>. This encoding is called <a href="https://en.wikipedia.org/wiki/JSFuck" target="_blank">JSFuck</a> and was once used to distribute malware on <a href="https://arstechnica.com/information-technology/2016/02/ebay-has-no-plans-to-fix-severe-bug-that-allows-malware-distribution/" target="_blank">Ebay</a>.</li> </ul> <p>Happy holidays everyone, and see you in 2026!</p> <div class="footnote"> <hr/> <ol> <li id="fn:status"> <p>Current status update: I'm finally getting line by line structural editing done and it's turning up lots of improvements, so I'm doing more rewrites than I expected to be doing. <a class="footnote-backref" href="#fnref:status" title="Jump back to footnote 1 in the text">↩</a></p> </li> </ol> </div>
Original Article
View Cached Full Text

Cached at: 05/16/26, 03:40 AM

# Some Fun Software Facts Source: [https://buttondown.com/hillelwayne/archive/some-fun-software-facts](https://buttondown.com/hillelwayne/archive/some-fun-software-facts) Last newsletter of the year\! First some news on*Logic for Programmers*\. Thanks to everyone who donated to the[feedchicago charity drive](https://buttondown.com/hillelwayne/archive/get-logic-for-programmers-50-off-support-chicago)\! In total we raised $2250 for Chicago food banks\. Proof[here](https://link.fndrsp.net/CL0/https:%2F%2Fgiving.chicagosfoodbank.org%2Freceipts%2FBMDDDCAF%3FreceiptType=oneTime%26emailLog=YS699MZW/2/0100019ae2b7eb92-7c917ad0-c94e-4fe2-8ee1-1b9dc521c607-000000/brmxoTOvoJN94I9nQH26s7fRrmyFDj_Jir1FySSoxCw=434)\. If you missed buying*Logic for Programmers*real cheap in the charity drive, you can still get it for $10 off with the holiday code[hannukah\-presents](https://leanpub.com/logic/c/hannukah-presents)\. This will last from now until the end of the year\. After that, I'll be raising the price from $25 to $30\. Anyway, to make this more than just some record keeping, let's close out with something light\. I'm one of those people who loves hearing "fun facts" about stuff\. So here's some random fun facts I accumulated about software over the years: - In 2017, a team of eight\+ programmers[successfully implemented Tetris](https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life)as a[game of life simulation](https://en.wikipedia.org/wiki/Conway's_Game_of_Life)\. The GoL grid had an area of 30 trillion pixels and implemented a full programmable CPU as part of the project\. - Computer systems have to deal with leap seconds in order to keep UTC \(where one day is 86,400 seconds\) in sync with UT1 \(where one day is exactly one full earth rotation\)\. The people in charge recently passed a resolution to abolish the leap second by 2035, letting UTC and UT1 slowly drift out of sync\. - [Vim is Turing complete](https://buttondown.com/hillelwayne/archive/vim-is-turing-complete/)\. - The backslash character basically didn't exist in writing before 1930, and[was only added to ASCII](http://dump.deadcodersociety.org/ascii.pdf)so mathematicians \(and ALGOLists\) could write`/\\`and`\\/`\. It's popular use in computing stems entirely from being a useless key on the keyboard\. - [Galactic Algorithms](https://en.wikipedia.org/wiki/Galactic_algorithm)are algorithms that are theoretically faster than algorithms we use, but only at scales that make them impractical\. For example, matrix multiplication of NxN is[normally](https://en.wikipedia.org/wiki/Strassen_algorithm)O\(N^2\.81\)\. The[Coppersmith Winograd](https://www-auth.cs.wisc.edu/lists/theory-reading/2009-December/pdfmN6UVeUiJ3.pdf)algorithm is O\(N^2\.38\), but is so complex that it's vastly slower for even[10,000 x 10,000 matrices](https://mathoverflow.net/questions/1743/what-is-the-constant-of-the-coppersmith-winograd-matrix-multiplication-algorithm)\. It's still interesting in advancing our mathematical understanding of algorithms\! - Cloudflare generates random numbers by, in part,[taking pictures of 100 lava lamps](https://www.cloudflare.com/learning/ssl/lava-lamp-encryption/)\. - Mergesort is older than bubblesort\. Quicksort is slightly younger than bubblesort but older than the*term*"bubblesort"\. Bubblesort, btw,[does have some uses](https://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/)\. - Speaking of mergesort, most implementations of mergesort pre\-2006[were broken](https://research.google/blog/extra-extra-read-all-about-it-nearly-all-binary-searches-and-mergesorts-are-broken/)\. Basically the problem was that the "find the midpoint of a list" step*could*overflow if the list was big enough\. For C with 32\-bit signed integers, "big enough" meant over a billion elements, which was why the bug went unnoticed for so long\. - [PDF's drawing model cannot render perfect circles](https://nibblestew.blogspot.com/2023/09/circles-do-not-exist.html)\. - People make fun of how you have to flip USBs three times to get them into a computer, but there's supposed to be a guide: according to the standard, USBs are supposed to be inserted*logo\-side up*\. Of course, this assumes that the port is right\-side up, too, which is why USB\-C is just symmetric\. - I was gonna write a fun fact about how all spreadsheet software treats 1900 as a leap year, as that was a bug in Lotus 1\-2\-3 and everybody preserved backwards compatibility\. But I checked and Google sheets considers it a normal year\. So I guess the fun fact is that things have changed\! - Speaking of spreadsheet errors, in 2020[biologists changed the official nomenclature](https://www.engadget.com/scientists-rename-genes-due-to-excel-151748790.html)of 27 genes because Excel kept parsing their names as dates\. F\.ex MARCH1 was renamed to MARCHF1 to avoid being parsed as "March 1st"\. Microsoft rolled out a fix for this\.\.\. three years later\. - It is possible to encode any valid JavaScript program with just the characters`\(\)\+\[\]\!`\. This encoding is called[JSFuck](https://en.wikipedia.org/wiki/JSFuck)and was once used to distribute malware on[Ebay](https://arstechnica.com/information-technology/2016/02/ebay-has-no-plans-to-fix-severe-bug-that-allows-malware-distribution/)\. Happy holidays everyone, and see you in 2026\! *If you're reading this on the web, you can subscribe[here](https://buttondown.com/hillelwayne)\. Updates are once a week\. My main website is[here](https://www.hillelwayne.com/)\.* *My new book,*Logic for Programmers*, is now in early access\! Get it[here](https://leanpub.com/logic/)\.*

Similar Articles

The vi family

Hacker News Top

This article provides a historical overview and categorized list of various vi-family text editors and clones, ranging from the original 1977 release to modern derivatives like Vim.

Saying Goodbye to one line of APL

Hacker News Top

The author reflects on a single line of APL code used in their voxel game to check exposed chunk faces, explaining its inspiration from Conway's Game of Life and its performance.

Soul Player C64 – A real transformer running on a 1 MHz Commodore 64

Hacker News Top

Soul Player C64 implements a real 2-layer decoder-only transformer with ~25,000 int8 parameters in hand-written 6502/6510 assembly, running entirely on an unmodified 1 MHz Commodore 64 loaded from a floppy disk. The project includes training scripts to build and quantize custom models, assemble C64 binaries, and run inference at roughly 60 seconds per token.

MuZero: Checkmate For Software 1.0?

ML at Berkeley

This article discusses Google DeepMind's MuZero algorithm as an example of 'Software 2.0,' arguing that while deep learning surpasses traditional software, it still relies on classical computational techniques like game tree search.

PipeDream on the Acorn Archimedes

Hacker News Top

This article explores the history of the Acorn Archimedes and its RISC OS, focusing on the PipeDream productivity suite as a unique example of early computing innovation that diverged from standard WIMP interfaces.