DEV Community

Tell me some useless (or useful) software trivia

Ben Halpern on June 23, 2019

Tell me a factoid I might not know about. It could be some weird edge case, a moment in history, or little known reasons for why some software behaves the way it does.

Collapse
gypsydave5 profile image
David Wickes

From the top of my head:

  • C, as in the language, stands for Christopher.
  • D in MS-DOS originally stood for Dirty.
  • We call anonymous functions 'lambdas' either because the Greek letter was easier to print than a hat, or because someone played eenie-meenie-minie-mo.
  • Ken Iverson was able to get IBM to build a whole new printer, with new characters on it, to write his APL programming language.
  • The first programming language used on a Unix machine was dc, a stack based Reverse Polish calculator still present on Linux/Mac today.
  • Type M-x doctor in Emacs to get access to a Rogerian psychotherapist.
  • The QWERTY keyboard layout was designed to slow down your typing
  • The reason keyboard rows are offset is to allow the hammers on a typewriter to fit inbetween them.
  • The Caps Lock key only moved to its current location in 1984 to satisfy the increasing number of secretaries using computer keyboards. It used to be Control.

... I'll have a think and come back ...

Collapse
kenbellows profile image
Ken Bellows

The QWERTY keyboard layout was designed to slow down your typing

This one seems to be an urban legend, probably not actually true
smithsonianmag.com/arts-culture/fa...

Collapse
gypsydave5 profile image
David Wickes

That's fun! Although I'm not sure if it's any better to know that QWERTY is an efficiency hack for transcribing telegrams from Morse.

Collapse
kenbellows profile image
Ken Bellows • Edited on

We call anonymous functions 'lambdas' either because the Greek letter was easier to print than a hat, or because someone played eenie-meenie-minie-mo

Can you elaborate on this one? "Lambdas" are named after the lambda calculus, which originated in the 1930s... Is the stuff about hats and eenie-meenie related to the name of the lambda calculus?

Collapse
gypsydave5 profile image
David Wickes

Willingly. You'll find most of it on the Wikipedia page under History, but in brief:

  • either Alonzo Church picked a random Greek letter, in his own words by eenie-meenie.

  • or he started with a 'hat' over a variable - like ê - which got shifted to the left to become an upside down V. Which looks like a capital lambda, and so it was lowercased.

Collapse
djtai profile image
David Taitingfong

I was informed that C was named so because it came after the B language (made by Bell Labs) - where did this Christopher thing come from?

Collapse
gypsydave5 profile image
David Wickes • Edited on

So B came from BCPL, the Basic Combined Programming Language at Cambridge. Which came from the (unimplemented) CPL - Combined Programming Language.

The C also stood for Cambridge. But it was also known as Christopher's Programming Language after one of its inventors, Christopher Strachey.

source: The Art of Unix Programming

Collapse
johnfound profile image
johnfound

The Caps Lock key only moved to its current location in 1984 to satisfy the increasing number of secretaries using computer keyboards. It used to be Control.

I always remap caplock as a Ctrl in my keyboards. Very comfortable.

Collapse
gypsydave5 profile image
David Wickes

I always remap caplock as a Ctrl in my keyboards.

If you don't YOU'RE A MONSTER!

Thread Thread
pinotattari profile image
Riccardo Bernardini

Actually, on my ezbook (with US keyboard) I remapped the Caps Lock to the "Compose" key in order to type accented letters (for everything else there is Shift-Ctrl-u + unicode) :-)

Collapse
johnylab profile image
João Ferreira

I'm a monster, cause I only use Shift (with little finger)

Collapse
kaspermeyer profile image
Kasper Meyer

This one blew me away when I first read it years ago.

Behold: The case of the 500-mile email

ibiblio.org/harris/500milemail.html

Collapse
johnylab profile image
João Ferreira

This is gold

Collapse
johnfound profile image
johnfound

That is good, but you MUST read the FAQ to this story. There is a link in the header.

Collapse
lukewestby profile image
Luke Westby • Edited on

Microsoft Excel originally (and perhaps still?) treated the year 1900 as a leap year in its date computations even though it is not a leap year. It was an intentional choice. The existing spreadsheet software with the greatest market share at the time of Excel’s release was Lotus 1-2-3. Lotus 1-2-3 had the same behavior via a legitimate bug. By replicating the behavior, Excel could import Lotus 1-2-3’s file format with no unexpected outcomes for the user. This made the switch to Excel seamless and it quickly dominated the market.

Collapse
hjess profile image
Howard Jess

Nice note. In the 80s, I worked on a 3D spreadsheet program named BitsCalc (later BoeingCalc). We inserted the same behavior, for the same reason.

Collapse
peter profile image
Peter Kim Frank

Fascinating!

Collapse
molly profile image
Molly Struve (she/her)
Collapse
mcsh profile image
Sajjad Heydari

Do you know lisp uses () instead of [] solely because the keyboard that was used to develop its first versions had a problem with [ key?

Collapse
taillogs profile image
Ryland G • Edited on

When Apple acquired NEXT in 1996, they mostly did it so Jobs could return to his previous role. But Apple/Jobs also saw the NEXT OS as a serious improvement over the existing Mac OS.

Because of this, Apple chose to build the next OS on top of NEXT. In fact, up until recently (might even still be the case) if you peeked into the source code of OSX you would still find original unmodified NEXT files. So in some ways if you’re running OSX you are still running part of NEXT.

Collapse
thefern profile image
Fernando B 🚀

That's why tons of classes have NS in the beginning, Next Step.

Collapse
aaronpowell profile image
Aaron Powell

Heres a few of mine:

  • JavaScript has both +0 and -0
  • The original version of the .NET framework was written in Java
  • C# is actually an implementation of an ECMA spec
  • PowerPoint is Turing-complete (along with a surprising list of other things)
Collapse
triptych profile image
Andrew Wooldridge

Magic: The Gathering is Turing-complete: toothycat.net/~hologram/Turing/

Collapse
cjbrooks12 profile image
Casey Brooks

In 2009, a carrier pigeon was faster and more reliable at data transfers than the Internet in South Africa.

Source: wired.com/2009/09/in-africa-a-pige...

Collapse
jckuhl profile image
Jonathan Kuhl • Edited on
  • Binary isn't the only system. A bi-quinary system was also proposed that would have, due to the wavelength nature of electricity, given us the ability to have a decimal system in our computers. Five levels of voltage above ground, five levels of voltage below. However, such a system was complex, power-hungry, and unreliable due to quantum mechanics (if the wavelengths were too small, it got difficult to precisely measure which level its at, and if the wavelengths are too big, it was too energy inefficient.)

youtube.com/watch?v=thrx3SBEpL8

Collapse
citizen428 profile image
Michael Kohl • Edited on
  • Array indexing didn’t always start at 0 (it still doesn’t in some languages): cs.utexas.edu/users/EWD/transcript...

  • Port 666 is reserved for Doom. Grep your /etc/services on Linux or Mac.

  • The oldest commercially released RPG was “Below Apple Manor”, which got its name from being written on an Apple II.

  • Emacs added the command M-x butterfly after an XKCD cartoon joked about it.

Collapse
ajonp profile image
Alex Patterson

Did you know the inventor of Atari also invented Chuck E Cheese 🤯

en.m.wikipedia.org/wiki/Nolan_Bush...

Collapse
chiangs profile image
Stephen E. Chiang

The hashtag/pound sign, #, is originally known as the octothorpe.

Collapse
johnfound profile image
johnfound

Actually, in my youth, we called it "trace" (and I still use it sometimes) because the TRACE command in Apple II BASIC, outputs the line numbers prefixed with #.

I learned much later that in some places # is used instead of № character.

Collapse
jmcp profile image
James McPherson

WellActually that's the proper name for it, from a typesetting point of view.

Collapse
lukewestby profile image
Luke Westby

Wi-Fi doesn't officially stand for anything and is just a pun on the abbreviation "hi-fi"

Collapse
mmphego profile image
Mpho Mphego

Lies it stands for Wireless Infidelity

Collapse
thefern profile image
Fernando B 🚀

Do you know this exists? Is a cool flowchart visual program developed by USAF. raptor.martincarlisle.com

And this is useless but funny, have you ever read any discord changelog?

I'm sure you know the arrow in the fuel gauge pointing towards the fuel tank.

Collapse
david_j_eddy profile image
David J Eddy

That Raptor page sent me right back to 1995.

Collapse
thefern profile image
Fernando B 🚀

Lmao, is stuck in the last century. Don't get fooled by that, Raptor is an awesome program.

Collapse
briwa profile image
briwa

In some programming languages, 0.1 + 0.2 doesn't always equal to 0.3. It would give you 0.30000000000000004 or something along the lines. In fact, you can try it out in your browser for Javascript at least.

For more info: 0.30000000000000004.com/ and also there's a list of the programming languages where this phenomenon occurs.

Collapse
jmcp profile image
James McPherson

Americans pronounce "cache" as "kaysh", but Australians are more likely to pronounce it like "cash".

Oh, and UK/Eire-denizens pronounce "router" like "rooter" - but that's got certain connotations here in AU/NZ ;)

Collapse
rhymes profile image
rhymes

In 2009-2010 Google tried to merge a separate version of Python inside the official one but didn't ultimately succeed.

The story around it was interesting for a few reasons:

  • Google at the time was really deep into Python, they were using it for all sorts of things and they employed a few core teams devs, Guido Van Rossum (the creator) included
  • "Unladen swallow" (the code name of this branch), was used internally and promised some performance improvements
  • Among those improvements there was a JIT compiler (Ruby 2.6 for example has merged an experimental JIT compiler, ten years later)

The reason it failed:

  • they thought they could reach 5x speed in single threaded cases but actually they were around 1.x kind of increase
  • The community already had a JIT enabled project, PyPy, which was a separate effort
  • Developers were not excited about it and also assumed that Google would maintain the code for ever and ever (honestly, nobody wants to merge an insanely huge patch that requires a lot of work to adjust in an already successful project)

So, it was a good idea, but it technically didn't work the way they tried it and there was not enough support around it to keep at it for a long time and hopefully improve the performance gains.

I think this story mostly speaks of what it means to mantain a hugely successful open source project and the relationship with contributors, even if they are a big company ;-)

If anyone is interested, the details and the story are here: python.org/dev/peps/pep-3146/

Collapse
lukewestby profile image
Luke Westby • Edited on
document.all instanceof HTMLAllCollection;
// => true
typeof document.all === 'undefined';
// => true
Collapse
excelite profile image
Benjamin Ewert

If you allow me to blunty borrow a quote:

„Below are the average carbon footprints of different emails:

An average spam email: 0.3 g CO2e (carbon dioxide equivalent)

A standard email: 4 g CO2e

An email with “long and tiresome attachments”: 50 g CO2e“

Not sure if the numbers are correct, but I recently heard about that on the local radio too.

Source: carbonliteracy.com/the-carbon-cost...

Collapse
brandonskerritt profile image
Brandon

Wat is a talk on all the weird things in programming, the things that make you say
"Wat"
destroyallsoftware.com/talks/wat
I highly reccomend this :)

Collapse
phlash909 profile image
Phil Ashby • Edited on

All MS-DOS .EXE programs start with a magic prefix 'MZ' or 'ZM' (very rare!), because they are the initials of the developer, Mark Zbikowski

en.wikipedia.org/wiki/DOS_MZ_execu...

Win/386 (and Win95 and OS/2) .VXD files use the Linear Executable (LE) format, which contains 3 different executable text sections: one for 32-bit protected mode, one for 16-bit protected mode and one for 16-bit real virtual mode, you get to manage the shared state yourself... Don't write one!

SMARTDRV.EXE (nobody remembers this right?) is/was a polyglot executable that could be loaded as an MS-DOS device (usually .SYS), or a Win/386 driver (usually .VXD) OR executed on the command line to manage itself. It thus contains 5 different executable text sections.

For the ultimate in insane polyglot'ness, check out POC||GTFO publications (sultanik.com/pocorgtfo/) where Ange Albertini (github.com/angea) officially does voodoo.

Collapse
steelwolf180 profile image
Max Ong Zong Bao

Alan Turning helps to lay the foundation of the software industry & AI during world war 2 as a codebreaker of the enigma machine.

Collapse
vuild profile image
Vuild
Collapse
tkbioclinica profile image
tony kwong

back in the day, you have a few models of ibm printers distinguished mostly by duty cycle. you customize via print chains that the operators can change based on what kind of material is being printed. it is possible that an APL chain was manufactured (I've never seen one in the wild, while working with ibm mainframes from 60's to 90's). what IS common is the APL typeball for the Selectric family of typewriters and teletypewriters. I even had one for a few years even though I was only an occasional user of APL, then it got lost in an office move.
so it is more akin to GM creating a special tire rim than a special truck model.

Collapse
olegthelilfix profile image
Oleg Aleksandrov • Edited on

Microprocessor MicroVAX 3000 и 6200 were containing a message for USSR engineers on Russian. That message on English - "when you care enough to steal the very best".

Collapse
karlredman profile image
Karl N. Redman

Tesla invented the radio.

Collapse
jlozovei profile image
Julio Lozovei

A stolen Tesla would be called a "Edison"?

Collapse
karlredman profile image
Karl N. Redman

Ha! That's probably about right :)

Collapse
bbutlerfrog profile image
Ben Butler

Tesla (the band, a great band, BTW, still touring and still great live) released an album called "The Great Radio Controversy".

Collapse
karlredman profile image
Karl N. Redman • Edited on

They did! I owned that album when it came out. Great songs. Great album. Great band!

Collapse
lukewestby profile image
Luke Westby
Collapse
mellen profile image
Matt Ellen

TIL toLocaleTimeString in Edge returns a string with directionality characters and so can't be used to set the value of an input element of type time.

Collapse
dechamp profile image
DeChamp

useless? here ya go! Peter DeChamp Richardson has been coding for 25 years (that guy is me :P)

Collapse
jlozovei profile image
Julio Lozovei

Have you ever asked Siri about "Beatbox"?

Collapse
jwollner5 profile image
John 'BBQ' Wollner

The term 'SPOOL' originates from an acronym meaning Simultaneous Peripheral Operation On Line

Collapse
bbutlerfrog profile image
Ben Butler • Edited on

Punch cards, the foundation of all computer programming, were inspired by automated looms. See en.wikipedia.org/wiki/Jacquard_loom.