1636: XKCD Stack

Explain xkcd: It's 'cause you're dumb.
Revision as of 08:51, 29 January 2016 by 198.41.235.173 (talk) (Explanation of steps)
Jump to: navigation, search
XKCD Stack
This site requires Sun Java 6.0.0.1 (32-bit) or higher. You have Macromedia Java 7.3.8.1¾ (48-bit). Click here [link to java.com main page] to download an installer which will run fine but not really change anything.
Title text: This site requires Sun Java 6.0.0.1 (32-bit) or higher. You have Macromedia Java 7.3.8.1¾ (48-bit). Click here [link to java.com main page] to download an installer which will run fine but not really change anything.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Needs more detail.
If you can address this issue, please edit the page! Thanks.

In software engineering, a tech stack is the set of technology platforms and tools that a company or app uses. A common tech stack is LAMP, composed of a Linux operating system, an Apache web server, a MySQL database, and the PHP programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated.

Explanation of steps

Layer Explanation

EBNF/CSS

BNF or Backus–Naur Form is a syntax used for describing context-free grammars. EBNF is "Extended BNF", it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. CSS or Cascading Style Sheets are a language used to describe what a web page should look like. Web pages are usually written in HTML, which describes de structure of the page (i.e. divides the document into paragraphs, lists, etc.) complemented with CSS which describes de look and feel of the page (colors, fonts, margins, etc.).

Broken Java Applet

Recent years it became more difficult to run java applets in several browsers. Since Chrome 45 stopped supporting NPAPI, it's no longer possible to run java applets on Chrome.

Archive.org Mirror

Hypercard.js

HyperCard can be considered as a kind of precedessor for the world wide web developed at Apple. The file extension .js indicates that is was rewritten in JavaScript. A similar reference to JavaScript is found in 1508: Operating Systems. The .js extension also refers to node.js, where most library names end in .js

QBasic on Rails

A mix between QBasic and Ruby on Rails.

[Blocked by AdBlocker]

Ad blocking software are extensions to browsers that try to remove ads from web pages, so the user is not distracted by them. 624: Branding shows what "browsing without adblock" looks like.

MongoDB/Excel

Some piece that works so nobody asks any questions

Writing any non-trivial piece of software always require a phase of debugging, which consists in finding and fixing bugs. With complex software, this is a long and tiring process, so when the product is finally finished no one dares to modify it any further for fear that it will fail in unexpected ways. After some time passes, it is even worse because nobody really remembers how the software was supposed to work, so the product becomes some kind of godlike treasure which must be treated with the utmost respect and reverence because, you know, if it stops working we're all doomed.

Triply-Nested Docker

Paravirtual Boy®

This is a reference to the Virtual Boy, a failed portable console created by Nintendo.

A dev typing real fast

A dev is a software developer. This is possibly a reference to the 1337 series, i.e. comics 341 to 345.

Older version of our software

Mystery Networking Horror

Microsoft Bob Server®

Microsoft Bob was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the Windows 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual "house" and "rooms". Randall seems to be making the suggestion the Bob has continued to be developed and now there's a Bob Server.

A giant CPU someone built in Minecraft

Minecraft is a popular sandblock game where you place blocks to build things. Since the introduction of Redstone objects (materials used to create basic electric circuits within the game) people have made many machines within Minecraft, including calculators and clocks. Since the introduction of the Command Block in 1.3, players can now code within the game and create new creatures, new games and even more complex computers. While we aren't at this stage yet, Randall seems to be making reference to how Minecraft's redstone aspect has changed a lot and how you can do so much more in the game.

Transcript

Introducing

The XKCD Stack

EBNF/CSS

Broken Java Applet

Archive.org Mirror

Hypercard.js

QBasic on Rails

[Blocked by AdBlocker]

MongoDB/Excel

Some piece that works so nobody asks any questions

Triply-Nested Docker

Paravirtual Boy®

A dev typing real fast

Older version of our software

Mystery Networking Horror

Microsoft Bob Server®

A giant CPU someone built in Minecraft


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

I just came here. AM I IN THE FUTURE? I'm in the future! 199.27.130.246 (talk) (please sign your comments with ~~~~)

We are in the future together. -- KingSupernova (talk) (please sign your comments with ~~~~)
But if there are no comments, aren't we in the past? The distant past, before the beginning of the comments? ...Watch out for raptors! 162.158.2.227 (talk) (please sign your comments with ~~~~)
Can confirm... all you guys are in the past; (as an active time traveller heading to the future, i've seen it all!) 162.158.91.210 09:11, 29 January 2016 (UTC)

Would you two sign your comments, please? --PsyMar (talk) 07:17, 29 January 2016 (UTC)

It was actually three people Davidy²²[talk] 08:12, 29 January 2016 (UTC)

Right now it says that we aren't yet at the stage of having a CPU in Minecraft. That's not true. SethBling has implemented BASIC using only command blocks, armor stands, and banners. DanielLC (talk) 08:50, 29 January 2016 (UTC)

That's not really a CPU, it's just an inefficient method to parse characters and compile code. 108.162.216.38 17:28, 29 January 2016 (UTC)
Actually, isn't BASIC an interpreted language? Thus, "compile code" should be stated as "interpret code". 108.162.216.58 18:02, 29 January 2016 (UTC)

I would think "archive.org mirror" means a mirror of [company]'s website on archive.org, not a mirror of archive.org. Sjorford (talk) 11:51, 29 January 2016 (UTC)

But a mirror of archive.org would be funny because a) it's essentially a mirror already and b) it would be absolutely enormous. 141.101.70.55 23:25, 31 January 2016 (UTC)
I think a mirror of the company's site on archive.org would be much funnier, because it would imply that this whole stack is pointless because it recursively requires a mirror of its own operation as part of itself. 172.68.254.66 05:49, 31 July 2017 (UTC)

Docker?

Docker: A-B
Nested Docker: A-B-C
Doubly Nested Docker: A-B-C-D
Triply Nested Docker: A-B-C-D-E

Surely. --141.101.106.161 13:38, 29 January 2016 (UTC)

LOL, I read on the front page the bit about Excel being a database, clicked through here to edit it, and found that in the intervening 2 minutes someone had made the exact edit I meant to. The system works :) 162.158.153.59 14:01, 29 January 2016 (UTC)

"The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built." Microsoft Access 95 / Excel 95 Jet version 3.0 https://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine 108.162.208.68 15:19, 29 January 2016 (UTC)
48-bit architecture
  1. you mixed together machine word size and address space size, the former is the matter, address space is insignificant (eg most 8-bit computers use 16bit address space).
  2. there are 48-bit architectures "Computers with 48-bit words include the AN/FSQ-32, CDC 1604/upper-3000 series, BESM-6, Ferranti Atlas, and Burroughs large systems (B5xxx-B8xxx, which additionally had a 3-4 type tag)." https://en.wikipedia.org/wiki/48-bit

108.162.208.68 15:14, 29 January 2016 (UTC)

  1. Does anyone else think that the 48bit arch could be a reference to the 3/4s from the version number, 48 is 3/4 of 64, which is a much more common arch. 162.158.34.140 (talk) (please sign your comments with ~~~~)


I see it as a Randall-style compromise between 32- and 64-bits. Zetfr 17:53, 29 January 2016 (UTC)

Mystery Networking Horror

This may also be a reference to the D-Reaper from the anime Digimon Tamers, which was a primitive anti-virus and resource manager that was, as TV Tropes put it, Gone Horribly Right. Constructed to cull AI programs that that exceeded their memory budget on a computer from the year 197X, it saw the Digimon (and humans) in the year 200X as a threat, and was actually able to delete anything in the Digital World that it touched due to having grown more powerful and complex by many orders of magnitude from all of the code it had consumed in the past. It was quite literally a digital Eldritch Horror, in every sense of the word.

You may view both TV Tropes and the Digimon Wiki for more information on this subject. - Kitsune_Phoenix; 16:13, 2016-01-29 (UTC)


How exactly did someone interpret "Macromedia Java 7.3.8.1¾ (48-bit)" as a reference to Platform 9¾? The only obvious connection I see is that they both include "¾", but if that's enough to make something a reference, then Platform 9¾ is actually, itself, a reference to Deep Space 9. 162.158.142.222 20:55, 29 January 2016 (UTC)

Agree. I'm taking it out. Jkshapiro (talk) 03:37, 31 January 2016 (UTC)
Broken Java Applet Interpretation

Could this not also be saying that the Java applet is "broken" in the same sense that people say that Windows is "broken"

I mean, technically, Windows works, but it works so poorly, and there are alternatives that are so much better, so by comparison, it is broken. Well, of course there are some things in Windows that truly are broken, too.

Honestly, this is definition I originally used internally when I first read through the comic.108.162.216.46 02:46, 31 January 2016 (UTC)


I think the stack presented is mostly a pun on the OSI/ISO stack (see OSI model) which is usually drawn in this kind of format, and is usually thought to be too cumbersome to use in actual practice. --Lou Crazy (talk) 14:53, 1 February 2016 (UTC)

Everytime I see someone say something about Java not working anymore I play that rap music video "Java Life" they released a few years ago Beastachu (talk) 12:47, 4 February 2016 (UTC)


There actually was something called "MacromediaJava" (one word). Before Alchemy/FlasCC/CrossBridge, there was an earlier C-to-AS3 compiler meant to demonstrate how cool the AS3 runtime is. Someone managed to port enough of Kaffe and Classpath to it to build a replacement for the Java Plugin that ran applets in Kaffe under FlashPlayer instead of directly in Java. It didn't work on most applets, and was slow and glitchy, and it was never meant as more than a demonstration, and normally I'd say there's no way anyone would be referring to that in 2016… but given the theme of this comic, the XKCD stack may be the one place where it was used. --162.158.255.82 23:34, 7 March 2016 (UTC)

I changed the table in the transcript to a list. If this fits the requirements for transcripts, please remove the incomplete-tag. --LaVe (talk) 22:36, 8 March 2017 (UTC)

Thanks for bringing this up, but removing that table means you have to explain it. Furthermore have a look at the standard layout like I've done. --Dgbrt (talk) 23:48, 8 March 2017 (UTC)
Thank you! --LaVe (talk) 06:52, 9 March 2017 (UTC)

i keep getting error 503 when viewing this comic :(

edit: the "giant cpu someone built in minecraft" and "a dev typing real fast" parts made me laugh so hard i fell off my chair An user who has no account yet (talk) 13:06, 5 September 2023 (UTC)