When I was at Amazon my manager told me that several years earlier he was responsible for updating the 404 page so he scanned a picture of a cat his daughter drew and made that the body of the page. In 2009 when I started, that was still the image, but at some point someone must have noticed and replaced it with a stock photo of a dog. The asset was still called kayli-kitty.jpg, though. It’s since been changed again to rotating pictures and references to the original are gone.
This is really cool! The filename on certain Amazon 404 pages (eg. https://www.amazon.co.jp/404) is still kailey-kitty.gif (but the image has been replaced with a standard icon).
Not really. Classic Mac OS didn't support virtual memory so everything had to fit in RAM unless a program itself offloaded data it's not currently using to the disk. Modern OSes, however, all support swapping. Your compilation would continue, just much slower. To truly "run out of memory" on a modern computer, you have to fill up both the RAM and the disk.
This is even more true today, because Apple Silicon Macs are able to store twice the amount of information in the same amount of memory, meaning that a paltry 8GB configuration can store 16GB of FizzBuzz boilerplate, 4 Google Chrome tabs, or 20% of the average node_modules.
I was programming on MacOS (the original) since it was possible. I remember many of these error messages! Especially "Too many errors on one line (make fewer)".
...also remember 45 minute builds when a header file changed.
In those days I wrote exclusively system extensions, plug-ins and XCMDs, using a mix of 68k, C and Pascal. Each project was quite small, so compile time was never a problem and MPW was a paradise. My largest XCMD actually had bits in all 3 languages which MPW happily linked together, and some projects had various little blocks of code to stick in the same file, all of which could be automated easily.
I remember these error messages coming up and laughing out loud when I saw the rare ones. Nice work, whoever did it!
I used this compiler for years and eventually came to be able to “decompile” the 68k object code it produced back to C code in my head on the fly unless the function was too large. Using MacNosy I could rebuild the C source for an app in usually only a couple of hours. I had a script that converted a MacNosy file of an app into an assembler file and rsrc file and I could translate functions to C one at a time while having a buildable app equivalent to the original. I originally used the tools for hacking games but sometimes used it to fix bugs.
The MPW C compiler code generation was so predictable in part because of the symmetry of the 68k instruction set. They wrote a simple compiler and it worked. For the most part effort was spent elsewhere. Since you could reasonably predict what code would be generated if you were unhappy with the code generation you fixed the source. I like that the javac compiler has a similar ethos,
With similar effect. Once you know the patterns to use you can generate fairly close to optimal byte code.
My favourite syntax error message produced by the Glockenspiel C++ compiler (a cfront derived piece of junk that I used in a training company in the early 90s) was simply "core dumped". This was slightly tricky to explain to people already struggling with C++, and who had paid us money for the course.
The users could simply run a debugger to get a backtrace from the core file... then with some experience, they would learn to associate different hex addresses with different kinds of errors. No harm, no foul.
Tangential to the content of the page: I really enjoyed how many MPW utilities generated output, including error messages, in the form of commands. Your terminal was an editor buffer, so you could cursor up (or click) on the appropriate line then press something like cmd-enter to pull up the file in question (among other things).
Just for some context, the MPW C compiler that produced those messages was actually not developed internally at Apple, but was rather done by Green Hills Software [1] under contract as mentioned on the wikipedia page [2] and its source [3] which is funnily enough about this exact same topic.
My favorite error message was produced by the Univac Fortran V compiler, circa 1970: “Warning: floating point equality tests are nugatory.” I pride myself on my vocabulary, but I had to use the dictionary.
I recall from 1965 getting an error message message something like this from the Fortran complier on a Univac 1107 system after receiving too many error messages: "Do not attempt to learn Fortran using Monte Carlo method. Buy a manual in the user office."
The old Clipper 5 compiler had some fun error messages. The two that I remember running into were “Ford Maverick Error”, and my personal favorite, “Carnage! Module name crushed in compilation disaster!”. I ran across both abusing its preprocessor.
I learned to program on various dBase languages. That Clipper 5 preprocessor was quite the thing! It reminds me of https://research.swtch.com/shmacro but it met a real need, lowering a COBOL-like syntax to a C/Pascal-like one.
jonhohle|2 years ago
When I was at Amazon my manager told me that several years earlier he was responsible for updating the 404 page so he scanned a picture of a cat his daughter drew and made that the body of the page. In 2009 when I started, that was still the image, but at some point someone must have noticed and replaced it with a stock photo of a dog. The asset was still called kayli-kitty.jpg, though. It’s since been changed again to rotating pictures and references to the original are gone.
varun_ch|2 years ago
I also found this comment from him on a blog: https://www.davebellous.com/2006/09/25/what-the/#comment-290...
hgs3|2 years ago
Playfulness isn't the only thing we've lost. Software bloat has reached comedic levels.
omoikane|2 years ago
I couldn't find this elusive picture of a cat on archive.org, but I found this dog instead:
https://web.archive.org/web/20030113144310/https://www.amazo...
June 2016 appears to be when Amazon adopted the current error pages with the large dog images.
https://web.archive.org/web/20160612232820/http://www.amazon...
bazbamduck|2 years ago
layer8|2 years ago
Serious question: Is this possible when a guardian gave consent earlier?
CalRobert|2 years ago
khiqxj|2 years ago
it's still right here every day when Firefox says "gah this tab crashed".
AnonC|2 years ago
Ah, the old times when one could purchase a RAM upgrade or upgrade RAM after buying a computer. Now this would be:
"Symbol table full - fatal heap error; please go buy a new Mac with more RAM"
grishka|2 years ago
catiopatio|2 years ago
phendrenad2|2 years ago
LoganDark|2 years ago
mkovach|2 years ago
jimmaswell|2 years ago
rickreynoldssf|2 years ago
...also remember 45 minute builds when a header file changed.
w0mbat|2 years ago
I remember these error messages coming up and laughing out loud when I saw the rare ones. Nice work, whoever did it!
bondolo|2 years ago
The MPW C compiler code generation was so predictable in part because of the symmetry of the 68k instruction set. They wrote a simple compiler and it worked. For the most part effort was spent elsewhere. Since you could reasonably predict what code would be generated if you were unhappy with the code generation you fixed the source. I like that the javac compiler has a similar ethos, With similar effect. Once you know the patterns to use you can generate fairly close to optimal byte code.
zabzonk|2 years ago
unnah|2 years ago
13of40|2 years ago
That, Sir, is none of your business.
Wowfunhappy|2 years ago
Idk, maybe that would be a terrible idea in practice. But there are lots of instances where it would have saved me time.
II2II|2 years ago
cschmidt|2 years ago
ilaksh|2 years ago
bemusedthrow75|2 years ago
I've seen this list so many times and this one makes me laugh out loud every single time.
hulitu|2 years ago
Veserv|2 years ago
To inline my comment in the previous thread:
Just for some context, the MPW C compiler that produced those messages was actually not developed internally at Apple, but was rather done by Green Hills Software [1] under contract as mentioned on the wikipedia page [2] and its source [3] which is funnily enough about this exact same topic.
[1] https://en.m.wikipedia.org/wiki/Green_Hills_Software
[2] https://en.m.wikipedia.org/wiki/Macintosh_Programmer%27s_Wor...
[3] https://web.archive.org/web/20140528005901/http://lists.appl...
unknown|2 years ago
[deleted]
vincent-manis|2 years ago
arnoldjm|2 years ago
skipkey|2 years ago
andrewf|2 years ago
(dBase code looks like https://github.com/harbour/core/blob/master/tests/ntx.prg , and https://github.com/harbour/core/blob/master/include/std.ch is an open-source reimplementation of Clipper's preprocessor definitions).
monitron|2 years ago
nickt|2 years ago
https://www.cs.cmu.edu/~jasonh/personal/humor/
d3psi|2 years ago
also, the note on the copyright is hilarious.
tom_|2 years ago
Did it seriously not let you have a goto label inside a switch?! This seems like an odd restriction, as all 3 are the same kind of thing.
bear8642|2 years ago
OnlyMortal|2 years ago
Been able to have a worksheet with random shell commands I’d built up, triple-clicking a line and hitting enter to run the selection.
It was quite a thing.
gjvc|2 years ago
nigwil_|2 years ago
mistrial9|2 years ago
khiqxj|2 years ago
[deleted]
smoldesu|2 years ago