Difference between revisions of "1636: XKCD Stack"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
m (Added some text to the Mystery Networking Horror)
(Explanation of steps: Excel is not a database system!)
Line 34: Line 34:
 
Archive.org Mirror
 
Archive.org Mirror
 
|  |
 
|  |
Archive.org is a website which archives websites, and created the Wayback Machine. An Archive.org mirror would be a duplicate of a website on Archive.org's servers. As Archive.org attempts to mirror whole internet, Archive.org's mirror would be rather big. Moreover, the backup of Archive.org should not back up Archive.org itslef or, otherwise, create an infinite backup loop.
+
Archive.org is a website which archives websites, and created the Wayback Machine. An Archive.org mirror would be a duplicate of a website on Archive.org's servers. As Archive.org attempts to mirror whole internet, Archive.org's mirror would be rather big. Moreover, the backup of Archive.org should not back up Archive.org itself or, otherwise, create an infinite backup loop.
  
 
|-
 
|-
Line 40: Line 40:
 
Hypercard.js
 
Hypercard.js
 
|  |
 
|  |
{{w|HyperCard}} can be considered as a kind of precedessor for the world wide web developed at {{w|Apple Inc.|Apple}}. The file extension .js indicates that is was rewritten in {{w|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
+
{{w|HyperCard}} can be considered as a kind of predecessor for the world wide web developed at {{w|Apple Inc.|Apple}}. The file extension .js indicates that is was rewritten in {{w|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
 
QBasic on Rails
 
|  |
 
|  |
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. QBasic was programming language on first PCs, known for spagethi code. Ruby on Rails is rather modern language. I'm sure someone, somewhere has a web server running on basic.
+
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. QBasic was programming language on first PCs, known for spaghetti code. Ruby on Rails is rather modern language. I'm sure someone, somewhere has a web server running on basic.
  
 
|-
 
|-
Line 56: Line 56:
 
MongoDB/Excel
 
MongoDB/Excel
 
|  |
 
|  |
MongoDB is modern database, Excel being classical database system from Microsoft.
+
MongoDB is modern database, Excel is a spreadsheet program from Microsoft, which is sometimes misused as a database system.
  
 
|-
 
|-

Revision as of 11:08, 29 January 2016

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.

The title text most likely refers to the difficulty of dealing with an outdated Java plugin. Even after installing Java, the plugin might not work correctly and clicking the update link just sends you to the very unhelpful java.com main page. This problem is caused by the fact that browsers are for the most part 32 bit applications and 64 bit Java only works with 64 bit applications.

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 the structure of the page (i.e. divides the document into paragraphs, lists, etc.) complemented with CSS which describes the look and feel of the page (colors, fonts, margins, etc.). EBNF/CSS would suggest CSS with strange syntax.

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. Furthermore, two days before this comic was published Oracle (the developer of Java) announced plans to officially end support of Java applets in an upcoming version.

Archive.org Mirror

Archive.org is a website which archives websites, and created the Wayback Machine. An Archive.org mirror would be a duplicate of a website on Archive.org's servers. As Archive.org attempts to mirror whole internet, Archive.org's mirror would be rather big. Moreover, the backup of Archive.org should not back up Archive.org itself or, otherwise, create an infinite backup loop.

Hypercard.js

HyperCard can be considered as a kind of predecessor 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. QBasic was programming language on first PCs, known for spaghetti code. Ruby on Rails is rather modern language. I'm sure someone, somewhere has a web server running on basic.

[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

MongoDB is modern database, Excel is a spreadsheet program from Microsoft, which is sometimes misused as a database system.

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

Docker allows complete operating system to run under different operating system (with some performance penalty). Triply-nested docker would mean operating system A running under operating system B running under operating system C. That would likely be a performance and management nightmare

Paravirtual Boy®

This is a reference to the Virtual Boy, a failed portable console created by Nintendo. Paravirtual is recent buzzword in virtualization community these days. "Virtual X" means simulated X. "Paravirtual X" means X is simulated, but is aware of simulation and cooperating, for faster performance. I hope the triply-nested Docker above runs paravirtualized.

A dev typing real fast

A dev is a software developer. This is possibly a reference to 341: 1337: Part 1, where Mrs. Roberts edits the TCP stream live while wearing oven mitts and baking cookies. Such a feat would require real fast typing. It looks like xkcd webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. I guess he's busy.

Older version of our software

People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and less bugs, they end up confusing users. Users of older versions are used to do everything with less features and circumventing old bugs. They don't know how to use the new features, which of course come with new bugs they haven't learned how to circumvent yet. It is also often the case that newer versions remove weird unused old features, breaking the workflow of users who actually did use such features and are left without a suitable replacement.

Mystery Networking Horror

Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (none actually knows the details) and horrific (technically questionable architecture and implementation).

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", and the idea was that you could click on a pen and open the word processor. It was heavily criticized and was soon discontinued. Randall seems to be making the suggestion the Bob has continued to be developed and now there's a Bob Server, similarly to Windows 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. The most complex of these machines simulate simple computers, capable of storing several lines of code and performing basic mathematical operations such as division, which requires thousands of blocks and extremely complex designs.

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)
Java is needed to run Minecraft. This makes sense!172.69.6.132 13:31, 28 November 2024 (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)

Could the 3/4 version be a joke related to the 48 bit version since 48/64 reduces to 3/4? 172.70.210.69 18:28, 19 December 2024 (UTC)