Some seem to me to be general absurdity, akin to Monty Python-esqe slapping someone in the face with a fish, whereas others are inspired by legitimate computer errors and made absurd in typical Discworld fashion.
I'd say these ones are possibly just general absurdity:
+++Mr. Jelly! Mr. Jelly!+++
+++MELON MELON MELON+++
+++Whoops! Here Comes The Cheese! +++
(this last one would also be a boomerang joke to the "out of cheese error" - i.e. general absurdity but also, a callback to the previous joke)
As others mentioned, the "
out of cheese error" is a Discworld version of the ubiquitous "Out of memory" errors (or the more generalized "Out of [resource]" errors, where 'resource' can be harddrive memory, RAM, network ports, file handles, etc; but memory (RAM or harddrive) is the most common and most well-known to non-programmers).
Recently while programming I had to deal with an Out of Memory error that was plaguing me on and off for about 3 months. They are very common, though less and less so (or at least, less visible to consumers), now that even cheap computers come with plenty of RAM.
(As an over-generalized simplification, RAM is memory that computers use to actively operate (and gets erased every time you shut down your computer), and the harddrive stores memory users want to save, such as files like photos and documents)
Here's a few other explanations to errors Pearl Sutton mentioned above:
+++Error At Address: 14, Treacle Mine Road, Ankh-Morpork+++
In computer RAM memory (its "thinking/operating" memory), an 'address' is the location of a particular piece of memory the computer is operating on. The address is a number, measured in bytes, that starts from 0 (in theory) up to the max amount of RAM you have. For example, from 0 up to 8,589,934,592 bytes (8 GB of RAM).
If there is an error at a specific address, it's not uncommon for an error to say something like, "Error at 0x075BCD15: <explanation of error>"
Instead, in Discworld, the 'address' outputted wasn't a memory address in bytes, but a street address (like "325 Broadway, New York City, New York"), as if the error occurred somewhere else in the world and you'd have to go there to fix the error.
It also leaves out the explanation of the error - which is part of the overall theme of the jokes: That none of these errors are remotely helpful in figuring out what went wrong (except perhaps the out of cheese one).
This is a common complaint with programmers, and computer users: that error messages are often unhelpful, and sometimes even deceptively misleading. Though, in recent years, some great effort has been made to improve the quality of error messages, but for *decades and decades*, error messages were stupidly opaque and often misleading. This is proven by even experienced programmers' first impulse being to first google the error message in the hope someone online can explain it in english, as the error message utterly fails to communicate what is wrong until someone has encountered the error enough times to be familiar with it.
Programmers usually specify byte addresses in hexadecimal form: 0x075BCD15 in base 16 (hexadecimal) is the number 123,456,789 in base 10 (decimal).
This also explains the computer's name, HEX. HEX is a pun, because it's both hexadecimal (a programmer's preferred method of counting bytes) and a wizard's hex (a curse/spell).
Decimal, how humans normally count, means we use 10 symbols to represent values. 0,1,2,3,4,5,6,7,8,9
Each additional position, is one power higher.
123 =
1 * (10 * 10) +
2 * (10) +
3 (
123 =
1(10^2) +
2(10^1) +
3(10^0))
(In grade school, I remember them calling it "the one's place", "the ten's place", "the hundred's place")
Hexadecimal uses 16 symbols: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F (A = 10, B = 11, etc...)
Each additional position, is one power higher.
A2F =
A * (16 * 16) +
2 * (16) +
F (
A2F =
A(16^2) +
2(16^1) +
F(16^0))
Programmers also count in binary. Binary is base 2, where everything is described with just two symbols: 0 and 1
This means numbers like decimal 123,456,789 are described as
0111 0101 1011 1100 1101 0001 0101
This following joke is reference to binary, but hilariously spells out the numbers:
+++Oneoneoneoneoneoneone+++
It's also possibly a callback to early internet culture.
Some people, when they get excited about something, type in way too many exclamation marks onto a sentence.
e.g: "I can't believe he did that!!!"
To type an exclamation mark on USA QWERTY keyboards, you hold shift and type the number '1'. (Shift + 1 = '!')
Sometimes they are so excited, they'd mistype some of their exclamation marks as the '1' instead of '!')
e.g: "I can't believe he did that!!1!!"
So other people started mocking or parodying that excitement, by adding 0's also, as if they were so excited, they accidentally (and ridiculously) started typing binary:
e.g: "I can't believe he did that!!10010101!!"
As that meme grew, people even began spelling out some of the letters, to take the absurdity up to eleven.
e.g: "I can't believe he did that!10one1!zero01one01!!"
Terry Pratchett was very familiar with internet culture and tech in general (many internet websites attempt to immortalize him
by injecting his name (invisibly) into the webpages displayed by many websites).
+++Divide By Cucumber Error. Please Reinstall Universe And Reboot +++
This is a three-for-one error message. It's combining three separate error messages in one, so I'm going to break it apart to explain:
Divide By Cucumber Error.
In math, you can't divide something by zero. 5 divided by 0 is nonsense in math, and is called '
undefined' by mathematicians - i.e. they don't know what the answer should be.
In programming, it's even worse. An accidental divide-by-zero often crashes an entire program, or throws a nasty type of error called an 'exception'. In older computers, it'd even crash the entire computer. If such an error occurs, the program can 'catch' the 'exception', prevent the crash, and display an error message. Almost always they'd just say, "Divide by Zero Error" or similar, and to someone using the program, they wouldn't have a clue what caused the crash.
Heck, even as a programmer writing the code, I once spent three days hunting down where a divide-by-zero error even occurred.
Terry Pratchett made this Discworld error even more opaque and absurd by making it a 'Divide by Cucumber'.
Please Reinstall [program] And Reboot
Sometimes, especially in the earlier days of computer (but can still occur), a program can mess itself up so badly (due to bugs or other mistakes), it messes up it's own files in such a way that it can't recover itself. They'd then pop up an error saying, "Please reinstall [program name] and reboot" (rebooting was required to make the installation fully take affect). For example, "Please reinstall Adobe Acrobat and reboot".
This would be a nuisance, as you'd have to stop what you're doing, hunt through your installation discs and find the program to install (or find the download online and wait for it to download), wait for it to install, and reboot everything.
Please Reinstall Universe
Sometimes, worse than reinstalling a program, would be having to reinstall the entire Windows operating system. No error message would tell you to do that, afaik, but many support companies would say that, and sometimes online forums would advise that. Especially if you got infected by the worse kind of viruses, known as 'rootkits', that antivirus programs can't remove, and the only solution is to, as techy people like to say, "nuke it from orbit" by reinstalling Windows from scratch.
Reinstalling Windows is a huge nuisance, and basically ruins your entire day. You'd have to back up your files first, and installing Windows would sometimes take three hours or more to install, and unless you've taken precautions in advance, you'd have to then reinstall all your (several dozen) programs one by one, hunting for your CD keys and registration info, and then load your backed up files back onto the PC.
"Please Reinstall Universe" is a reference to this, as internet users would sometimes joke about how extreme and annoying this was - you'd have to reinstall everything from scratch, from bottom up. Your entire day, or two, would be shot to ruins.