7 ms·
I miss this kind of playfulness in computing. When I was at Amazon my manager told me that several years earlier he was responsible for updating the 404 page s
by jonhohle 3y ago
I miss this kind of playfulness in computing.
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.
- layer8 3y agoMaybe the daughter sued for copyright infringement when she turned 18. ;) Serious question: Is this possible when a guardian gave consent earlier?
- jonhohle 3y agoI know you’re joking, but she wasn’t 18 yet before they changed the picture. AFAICT, kids own the copyright to things they create[0], but guardians are responsible and can use it on the child’s interest. IANAL, consult an attorney, etc., etc. 0 - https://www.copyright.gov/help/faq/faq-who.html#:~:text=Can%20a%20minor%20claim%20copyright,state%20laws%2C%20consult%20an%20attorney https://www.copyright.gov/help/faq/faq-who.html#:~:text=Can%....
- deleted 3y ago[deleted]
- hgs3 3y ago> The compiler is 324k in size Playfulness isn't the only thing we've lost. Software bloat has reached comedic levels.
- bigbillheck 3y agoThe clang executable on my machine is 18kb.
- AnimalMuppet 3y agoI bet it forks some other executables, though...
- catiopatio 3y agoOn my system, where clang is statically linked, the binary is 48mb. As in megabytes. Nearly all of clang and LLVM are linked as libraries.
- retrac 3y agoYour optimizing compiler today will actually optimize. LLVM was recently ported to the 6502 (yes, really) [1]. An example: void outchar (char c) { c = c | 0x80; asm volatile ("jsr $fbfd\n" : : "a" (c): "a"); } void outstr (char* str) { while (*str != 0) outchar(*str++); } void main () { outstr("Hello, world!\n"); } That is compiled to this: lda #$c8 ; ASCII H | 0x80 jsr $fbfd lda #$e5 ; ASCII e | 0x80 jsr $fbfd ... Unrolled loop, over a function applied to a constant string at compile time. An assembler programmer couldn't do better. It is the fastest way to output that string so long as you rely on the ROM routine at $fbfd. (Apple II, for the curious.) Such an optimizing transform is unremarkable today. But stuff like that was cutting edge in the 90s. [1] https://llvm-mos.org/wiki/Welcome https://llvm-mos.org/wiki/Welcome
- Someone 3y agoDoes it end that code with a jmp $fbfd ?
- mananaysiempre 3y agoDoubtful, given the JSR comes from an inline asm. You’d need to code the call in C (with an appropriate calling convention, which I don’t know if this port defines) for Clang to be able to optimize a tail-position call into a jump—which it is capable of doing, generally speaking.
- retrac 3y agoNo. The compiler knows that trick for its own code :) not sure about introspecting into the assembly (I think LLVM doesn't do that). But either way, standard C returns int of 0 from main on success. So: ldx #0 txa rts
- Someone 3y agoNitpick: this isn’t standard C (it uses void main, not int main) Nitpick 2: why ldx #0 txa rts? I would think lda #0 rts is shorter and faster Back to my question: if it can’t, the claim “an assembler programmer couldn't do better” isn’t correct. I think an assembler programmer for the 6502 would consider doing a jmp at the end, even if it makes the function return an incorrect, possibly even unpredictable value. If that value isn’t used, why spend time setting it? A assembly programmer also would: - check whether the routine at 0xFBFD accidentally guarantees to set A to zero, or returns with the X or Y register set to zero, and shamelessly exploit that. - check whether the code at 0xFBFD preserves the value of the accumulator (unlikely, I would guess, but if it does, the two consecutive ‘l’s need only one LDA#) - consider replacing the code to output the space inside “hello world” by a call to FBF4 (move cursor right). That has the same effect if there already is a space there when the code is called. - call 0xFBF0 to output a printable character, not 0xFBFD (reading https://6502disassembly.com/a2-rom/APPLE2.ROM.html https://6502disassembly.com/a2-rom/APPLE2.ROM.html, I notice that is faster for letters and punctuation) On a 6502, that’s how you get your code fit into memory and make it faster. To write good code for a 6502, you can’t be concerned about calling conventions or having individually testable functions.
- Aurornis 3y agoThere’s nothing stopping anyone from going back and using all of that old software exclusively. For some reason everyone prefers the newer software, though. Perhaps there’s more to it than binary size?
- TillE 3y agoBinary size on a desktop OS is almost totally irrelevant in practice. Memory size matters a little more, but your OS will generally do a good job of loading what it needs (ie, huge binaries can still start quickly) and paging out what it doesn't. People have aesthetic complaints about "bloat", but again this is orthogonal to the actual speed of anything.
- Max-q 3y agoWell, the bloat has made many programs slower than they could be. Software is eating up the advances we get in hardware. Modern Word 365 is not any faster than Word 95 on a Pentium 66 in normal use. That is a ~100MHz computer with maybe 16MB RAM, and a rotating hard drive. Bloat making software bigger will in many cases also make it slower. Also, the UX on Windows 95 was consistent and easy to learn. Now, much software fail on stuff like disabling a button when you have clicked it and the computer is working. MacOS is on a steady curve to the bottom. It is not alone. The software bloat and decreasing quality is a serious issue.
- gizajob 3y agoWe need Stevesie to reincarnate and fire whoever is Scott-Forestall-ing it up this year.
- musicale 3y agoI still think iOS was more fun in the Forstall-skeuomorphic era, and screen elements were easier to differentiate. macOS icons also used to have distinct silhouettes which made them easier to distinguish, but now everything is a square tile. Screen controls which used to be visible and targetable are now hidden and are harder to hit when they do appear. It feels like we are still under the tyranny of the (Jony Ivian?) streamlined aesthetic over usability and functionality, as if a library decided to organize books by size and color.
- deleted 3y ago[deleted]
- khiqxj 3y ago> I miss this kind of playfulness in computing. it's still right here every day when Firefox says "gah this tab crashed".
- omoikane 3y ago> picture of a cat 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.amazon.com/404 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.com/404 https://web.archive.org/web/20160612232820/http://www.amazon...
- mastry 3y agoMaybe this is it? http://telcontar.net/Screenshots/worldwidewonk/Amazon-404-ehwhat.png http://telcontar.net/Screenshots/worldwidewonk/Amazon-404-eh...
- jonhohle 3y agoThat’s the one!
- hyperdimension 3y agoWow, now that is a screenshot full of nostalgia... Nice find.
- ezequiel-garzon 3y agoThanks to both of you for this heartwarming bit. How do you go about finding something like that?
- mastry 3y agoQuite manually, actually. I ran an image search on DDG for "Amazon 404 cat" and looked through the results for a kid's drawing.
- DaanDL 3y agoI really like the look of that browser, which is it? Netscape?
- jonhohle 3y ago
- bazbamduck 3y agoGo load www.amazon.com and check the source right after </html> :)
- jonhohle 3y agoThat's wonderful to see. Also interesting to see the site performance comments around different components. Another anecdote: somewhere in that time period we (Prime) were using comments for various metadata and pre-release and post-deployment checks would verify the comments were in place. The team responsible for the edge proxies decided they were going to rewrite all the HTML going out on the fly to remove extraneous comments and whitespace in an effort to reduce page-size. In the middle of testing a release all of the tests related to a particular feature started failing and (I believe) different devs were getting different HTML on their systems (the feature wasn't rolled out to every session). Our QA team was extremely pedantic in the best way possible and wouldn't allow the release to continue until testing could complete, so we had to track down the responsible parties and get them to dial down their transformation. They eventually tried again without stripping comments, but I can't imagine much was saved after compression without much of anything removed (they might have been rewriting other tags as well).
- CalRobert 3y agoWhere does this playfulness persist? I miss it too.
- jjoonathan 3y agoThe punishments continued until the playfulness went away.
- beeburrt 3y agoHTTP status code 418?
- ktm5j 3y agoHaha thanks for this. There are some funny gnu error codes: https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html https://www.gnu.org/software/libc/manual/html_node/Error-Cod... Including EDIED and EIEIO
- TheBrokenRail 3y agoIIRC people actually tried to get rid of that. Thankfully it failed.
- notbeuller 3y agoOn the other hand, I despise the mock playfulness exhibited by, eg, Slack. It’s such a frustrating environment for me - I feel like it’s not-so-subtle attempts at promoting engagement over presenting the content fill me with rage. I want my tools to fade into the background.
- varun_ch 3y agoThis is really cool! The filename on certain Amazon 404 pages (eg. https://www.amazon.co.jp/404 https://www.amazon.co.jp/404) is still kailey-kitty.gif (but the image has been replaced with a standard icon). I also found this comment from him on a blog: https://www.davebellous.com/2006/09/25/what-the/#comment-29013 https://www.davebellous.com/2006/09/25/what-the/#comment-290...