<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jojonete</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jojonete"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/Jojonete"/>
		<updated>2026-04-11T20:30:09Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2004:_Sun_and_Earth&amp;diff=158536</id>
		<title>2004: Sun and Earth</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2004:_Sun_and_Earth&amp;diff=158536"/>
				<updated>2018-06-08T07:52:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added basic and hurried explanation, lots of details missing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2004&lt;br /&gt;
| date      = June 8, 2018&lt;br /&gt;
| title     = Sun and Earth&lt;br /&gt;
| image     = sun_and_earth.png&lt;br /&gt;
| titletext = But we don't need to worry about the boiling masses sandwiching the thin layer in which we live, since we're so fragile and short-lived that it's unlikely to kill us before something else does! Wait, why doesn't that sound reassuring?&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a hurried VOLCANO - Lots of things missing: (1) links (2) description of how the Sun is a massive convective system (3) description of how the Earth is a massive convective system (4) probably reword everything}}&lt;br /&gt;
&lt;br /&gt;
This is one of a number of comics which describe everyday events in unusual terms, making them sound really weird. In this case, both the Sun and the Earth are &amp;quot;massive convective systems&amp;quot; blasting &amp;quot;huge plumes of heat&amp;quot;, which contrasts sharply with the daily idea of the Sun being a ball in the sky and the Earth the thing under our feet.&lt;br /&gt;
&lt;br /&gt;
In fact, the Sun does produce great amounts of light and heat and blasts it towards us, which is why we can live on Earth. Also, the Earth's interior is very hot, occasionally causing volcano eruptions, which are also huge blasts of heat.&lt;br /&gt;
&lt;br /&gt;
This could sound like a very bad scenario, however the title text reminds us that the real scenario we live in is far worse, as we are not likely to die from a Sun blast or volcano eruption.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:Sun&lt;br /&gt;
:Massive convective systems which occasionally blast huge plumes of heat at us without warning through mechanisms we cant directly observe and dont really understand.&lt;br /&gt;
&lt;br /&gt;
:[Cueball and Meghan standing on the surface of Earth]&lt;br /&gt;
:Cueball: What a nice day&lt;br /&gt;
&lt;br /&gt;
:Earth&lt;br /&gt;
&lt;br /&gt;
:Title text: But we don't need to worry about the boiling masses sandwiching the thin layer in which we live, since we're so fragile and short-lived that it's unlikely to kill us before something else does! Wait, why doesn't that sound reassuring?&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=602:_Overstimulated&amp;diff=140514</id>
		<title>602: Overstimulated</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=602:_Overstimulated&amp;diff=140514"/>
				<updated>2017-05-30T09:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added reference to 324&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 602&lt;br /&gt;
| date      = June 26, 2009&lt;br /&gt;
| title     = Overstimulated&lt;br /&gt;
| image     = overstimulated.png&lt;br /&gt;
| titletext = My favorite thing to do at parties is to talk judgmentally about people who aren't there.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
After being cooped up working on papers, [[Cueball]] goes to a party, only to find himself tuning out the gossip of his friends in order to work on math problems in his head. He writes down the prime numbers on cards, and then stretches them out such that the area of the card is the same (say, 1), but one of the sides has been elongated to a length equal to the number on the card. This reduces the length on the other dimension to the reciprocal of the number on the card (i.e. 1/''n'', with ''n'' being the number on the card), according to the area formula for rectangles.&lt;br /&gt;
&lt;br /&gt;
Stacking these reciprocals all up will eventually diverge, meaning the sum will be infinite without ever leveling off. This is referred to as the {{w|divergence of the sum of the reciprocals of the primes}}, and was proven by {{w|Euler}} in 1737.&lt;br /&gt;
&lt;br /&gt;
[http://aq.server8.org/ The Cambridge Aspergers Test] includes questions on preferences for, and ability to cope with, social situations. It also asks the person taking the test if they have an affinity for numbers and see patterns in every day objects. Cueball would score high on the Asperger's scale — or he could just be introverted. {{w|Introversion}} is an idea from psychology. Thinking about things on one's own is often relaxing for an introvert, while hanging out with other people is not. Hence the irony of the comment in the last panel. Cueball's friends fail to realize that hanging out with them is actually more stressful for him than doing math - especially when people are doing nothing but talking negatively about those not present.&lt;br /&gt;
&lt;br /&gt;
This comic is related to [[324: Tapping]], where Cueball has fun tapping the Jurassic Park theme on a table.&lt;br /&gt;
&lt;br /&gt;
The title text mentions people that talk negatively about people that aren't there, which isn't uncommon. A much later comic; [[1176: Those Not Present]], is about just that.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[There is a group of people. Three women and four men. They are standing around a table with a drink on it.]&lt;br /&gt;
:Man #3: Have you seen John lately?&lt;br /&gt;
&lt;br /&gt;
:Woman #3: He and Claire blew off this party to see Jeff.&lt;br /&gt;
:Man #4: They do that a lot.&lt;br /&gt;
&lt;br /&gt;
:Man #1: Yeah; I don't know what his problem is with hanging out lately.&lt;br /&gt;
:Man #3: He's like Katie—ever noticed how she only goes somewhere if Jeff's there?&lt;br /&gt;
&lt;br /&gt;
:[Cueball is cringing away from all the text; none of the text is attributed to specific people.]&lt;br /&gt;
:Somebody: It's so lame how she hangs around him even when he's not single:&lt;br /&gt;
:Somebody: HE LIKES IT.&lt;br /&gt;
:Somebody: SOMEONE SERIOUSLY NEEDS TO DATE HER.&lt;br /&gt;
:Somebody: TOTALLY.&lt;br /&gt;
:Somebody: And honestly I feel like a jerk but I wouldn't mind if she hung around with us a little less. She needs other friends, you know!&lt;br /&gt;
&lt;br /&gt;
:[Cueball peels a hole in the panel. The numbers '1', '2', and '3' are visible through the gap.]&lt;br /&gt;
:Somebody: HAVE YOU NOTICED HOW EVERY DUDE SHE DATES IS A TOTAL DRUGGIE?&lt;br /&gt;
:Somebody: NOPE&lt;br /&gt;
:Somebody: I'm glad I'm not the only one who thought that was weird.&lt;br /&gt;
:Somebody: Michelle dates potheads like Elaine but at least they both have real jobs.&lt;br /&gt;
:Somebody: Michelle does? She designs those book covers, right?&lt;br /&gt;
:Somebody: And it's not like she smokes a lot.&lt;br /&gt;
:Somebody: Elaine is one of those girls who&lt;br /&gt;
&lt;br /&gt;
:[The previous panel's text appears again, but peeled back even further. Cueball looks up.] &lt;br /&gt;
:1 2 3 4 5 6 7 8 9 10 11 12&lt;br /&gt;
&lt;br /&gt;
:Somebody: NOTICED HOW&lt;br /&gt;
:Somebody: NOPE&lt;br /&gt;
:Somebody: -es is a tota-&lt;br /&gt;
:Somebody: -t th- -ought&lt;br /&gt;
&lt;br /&gt;
:[The man starts taking down the prime numbers.]&lt;br /&gt;
:1 4 6 8 9 10 12 14 15 2 3 5 7 11 13&lt;br /&gt;
:[The man grabs and squeezes the 2, so it is half as wide and twice as tall.]&lt;br /&gt;
&lt;br /&gt;
:[A formula: \Sum_{i=1}^{\infty}{1 P_i} = h]&lt;br /&gt;
::[ie. The sum from 1 to infinity of the inverse of each prime.]&lt;br /&gt;
:[The panel shows a 2 that is 2 units tall and 1 2 wide, a 3 that is 3 units tall and 1 3 wide, and so on. Cueball is moving the 7.]&lt;br /&gt;
&lt;br /&gt;
:[Cueball writes h = infinity. The numbers are piled on their side next to a scale.]&lt;br /&gt;
:Voice: Don't you agree?&lt;br /&gt;
:Voice: Hey, wake up.&lt;br /&gt;
&lt;br /&gt;
:Man #1: You zoned out or something.&lt;br /&gt;
:Cueball: Sorry; I must be... tired.&lt;br /&gt;
:Man #1: I don't blame you. All day cooped up working on papers.&lt;br /&gt;
:Man #3: Must be nice to get out and relax, huh?&lt;br /&gt;
:Cueball: Yeah.&lt;br /&gt;
:[Girl #3 reaches for the glass on the table.]&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1200:_Authorization&amp;diff=137798</id>
		<title>1200: Authorization</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1200:_Authorization&amp;diff=137798"/>
				<updated>2017-03-24T07:53:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1200&lt;br /&gt;
| date      = April 17, 2013&lt;br /&gt;
| title     = Authorization&lt;br /&gt;
| image     = authorization.png&lt;br /&gt;
| titletext = Before you say anything, no, I know not to leave my computer sitting out logged in to all my accounts. I have it set up so after a few minutes of inactivity it automatically switches to my brother's.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Computer {{w|Operating system|operating systems}} were initially written for the business environment. Thus they were made to be accessible to multiple employees, or {{w|User (computing)|users}}, but only fully accessible to {{w|System administrator|administrators}} (or admins). Regular users can access and use {{w|Application software|programs}} on the computer, but only the admin is allowed to make changes to how the computer runs.  This same split level of security continues to this day, even in privately owned, or &amp;quot;home&amp;quot;, computers.&lt;br /&gt;
&lt;br /&gt;
The joke here is that the most important things on a computer are no longer the programs that it runs, but the private personal data it accesses (usually online). Anyone who wished to do real mischief on an active computer could do {{w|Identity theft|considerable damage}} without ever caring what the admin password was. The admin password, in effect, now guards a vault no one cares about.&lt;br /&gt;
&lt;br /&gt;
This comic pokes fun at the {w|authorization} mechanisms surrounding most operating systems' administrator accounts. It makes the argument that the user's data is more valuable than the integrity of the system. This is arguably true for most personal systems, although it is probably not true in a shared-server setup, where a system compromise could lead to the exposure of many users' data.&lt;br /&gt;
&lt;br /&gt;
Essentially, once a user is {{w|Login|logged in}}, he or she can typically access all of his or her data without any further restriction. Modifying the operating system (for example, to install {{w|Device driver|drivers}}) requires a separate password.&lt;br /&gt;
&lt;br /&gt;
The title text alludes to the security practice where computers automatically lock the user out after a few minutes, requiring a password from the user in order to continue using it. Instead, Randall's computer automatically switches to his brother's account, presumably compromising them instead of his own.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Diagram showing several connected rooms. One in the center says &amp;quot;User account on my laptop,&amp;quot; surrounded by &amp;quot;Dropbox,&amp;quot; &amp;quot;Photos &amp;amp; files,&amp;quot; &amp;quot;Facebook,&amp;quot; &amp;quot;Gmail,&amp;quot; &amp;quot;PayPal,&amp;quot; and &amp;quot;Bank,&amp;quot; which are connected to the middle room and to each other. Below the middle room is one labeled &amp;quot;Admin account,&amp;quot; which is covered in spikes, and has a door to the room above it.]&lt;br /&gt;
:If someone steals my laptop while I'm logged in, they can read my email, take my money, and impersonate me to my friends, but at least they can't install drivers without my permission.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1162:_Log_Scale&amp;diff=137671</id>
		<title>1162: Log Scale</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1162:_Log_Scale&amp;diff=137671"/>
				<updated>2017-03-22T06:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added log-scale version of chart&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1162&lt;br /&gt;
| date      = January 18, 2013&lt;br /&gt;
| title     = Log Scale&lt;br /&gt;
| image     = log scale.png&lt;br /&gt;
| titletext = Knuth Paper-Stack Notation: Write down the number on pages. Stack them. If the stack is too tall to fit in the room, write down the number of pages it would take to write down the number. THAT number won't fit in the room? Repeat. When a stack fits, write the number of iterations on a card. Pin it to the stack.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Uranium is stated to have 76 million MJ/kg, while the next highest material shown on the graph (gasoline) has 46 MJ/kg. Thus the uranium graph should be taller by a factor of 76,000,000/46 = 1.652 million. So, if the gasoline graph were 9mm in height, the uranium graph should be a bit more than 14.868 million mm tall, or nearly 15&amp;amp;nbsp;km (9.2 miles) tall. Thus the need to fold the paper.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the method of extracting energy from the first 4 materials ({{w|combustion}}) is completely different from the method used with uranium ({{w|nuclear fission}}). If the technology existed to use {{w|nuclear fusion}}, then the first 4 materials would yield a higher energy density than uranium.&lt;br /&gt;
&lt;br /&gt;
A {{w|Logarithmic scale|log scale}} is a way of showing largely unequal data sizes in a comprehensible way, using an exponential function between each notch on the y axis of a graph. So for example the first on a Y axis of a graph using a log-10-scale would be 1, then 10, then 100 and 1000 for the fourth. A {{w|logarithm|log/logarithmic function}} is the {{w|inverse function|inverse}} of a corresponding {{w|Exponential growth|exponential function}}. A log-scale version of the chart in the comic would look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Log_Chart_1162.png]]&lt;br /&gt;
&lt;br /&gt;
The log scale can also be abused to make data look more uniform than it really is. On a log scale the energy density of uranium looks larger than that of the other materials, but not dramatically so. The joke is that if one wanted to make their point &amp;quot;properly,&amp;quot; they would go ahead and use ridiculous amounts of paper to show the difference between bars using a non-logarithmic scale; this method would focus more on the shock factor of the differences in question, and less on actual communication/representation of data. Cueball seems to be passionate about the MJ/kg of uranium, so he would rather demonstrate the grandeur of the data than use a more efficient scale.&lt;br /&gt;
&lt;br /&gt;
See {{w|Logarithmic scale#Common usages|these examples}} for well known day-to-day measurements which are measured on a log-scale.&lt;br /&gt;
&lt;br /&gt;
The title text mentions computer scientist {{w|Donald Knuth}}; the fictional notation is a parody of {{w|Knuth's up-arrow notation}}. Using paper thickness as the basis for a log scale would probably give the exponential function a very large base. However, it can be noted that Knuth's up-arrow notation can handle numbers far, far larger than this paper stack notation; for example the number 3↑↑↑3, very compact in up-arrow notation, would require a number of iterations pinned to the stack on the order of several trillion. 3↑↑↑↑3 would require a number of iterations that is not only too large to write down, but attempting to write that number using the same paper stack notation would require printing off a ''second'' stack of several trillion iterations just to hold the ''number'' pinned to the first stack.&lt;br /&gt;
&lt;br /&gt;
It should be noted that Randall has used log scales in past comics.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A bar chart showing fuel energy density of different materials in megajoules/kg.]&lt;br /&gt;
:Sugar: 19, Coal: 24, Fat: 39, Gasoline: 46, Uranium 76,000,000&lt;br /&gt;
:[The uranium bar on the chart goes off the page onto a huge strip of paper folded up into a stack slightly taller than Cueball.]&lt;br /&gt;
:Science Tip: Log scales are for quitters who can't find enough paper to make their point ''properly''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Bar chart]]&lt;br /&gt;
[[Category:Physics]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=File:Log_Chart_1162.png&amp;diff=137670</id>
		<title>File:Log Chart 1162.png</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=File:Log_Chart_1162.png&amp;diff=137670"/>
				<updated>2017-03-22T06:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: The log-scale version of the chart in comic 1162&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The log-scale version of the chart in comic 1162&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1733:_Solar_Spectrum&amp;diff=127098</id>
		<title>Talk:1733: Solar Spectrum</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1733:_Solar_Spectrum&amp;diff=127098"/>
				<updated>2016-09-15T22:59:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~--&amp;gt;&lt;br /&gt;
Sun in sunglasses is also in whatif &amp;quot;Into the sun&amp;quot; and I'm 99% sure this is not the only xkcd appearance of that... --[[Special:Contributions/162.158.86.119|162.158.86.119]] 11:38, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Why is Randall using JPEG for the second time in a row? Gosh, the comics look horrifying when zoomed in. [[Special:Contributions/108.162.244.67|108.162.244.67]] 12:35, 15 September 2016 (UTC)&lt;br /&gt;
:It looks like a .PNG to me, maybe the .jpg was temporary for an upload deadline?  [[Special:Contributions/108.162.241.127|108.162.241.127]] 12:54, 15 September 2016 (UTC)&lt;br /&gt;
::The one on this page has always been a png file (see [http://www.explainxkcd.com/wiki/index.php?title=1733:_Solar_Spectrum&amp;amp;oldid=127003 the first revision]). This also means that whoever wrote the complaint must have had access to [http://www.explainxkcd.com/wiki/index.php/File:solar_spectrum.png this same file], which has not been updated here since. Of course Randall may have had another version up first, but that seems highly unlikely... --[[User:Kynde|Kynde]] ([[User talk:Kynde|talk]]) 14:38, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Are the spectral lines actually accurate apart from the sunglasses? Wouldn't surprise me to much... (Meh, https://en.wikipedia.org/wiki/Fraunhofer_lines, believably close). [[Special:Contributions/141.101.105.10|141.101.105.10]] 12:51, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I feel we need an explanation of the concept of spectral lines for those readers not familiar with absorption spectra [[Special:Contributions/141.101.70.91|141.101.70.91]] 13:21, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think he's referring to the spectral lines of transition metals - not pictures of the sun wear glasses. The transition lenses reference is a play on words. &lt;br /&gt;
[[Special:Contributions/108.162.218.154|108.162.218.154]] 13:27, 15 September 2016 (UTC)&lt;br /&gt;
:Can we figure out what sunglasses he is referring to by comparing the spectral absorption of different brands? [[Special:Contributions/108.162.246.119|108.162.246.119]] 14:06, 15 September 2016 (UTC)&lt;br /&gt;
:Any good links to &amp;quot;permanent&amp;quot; images of a sun with sunglasses? Guess there is none of Wikipedia? --[[User:Kynde|Kynde]] ([[User talk:Kynde|talk]]) 14:38, 15 September 2016 (UTC)&lt;br /&gt;
:I agree this refers to &amp;quot;Transitions&amp;quot; light-reacting prescription sunglasses / regular reading glasses.  However, Google won't give me a sun wearing sunglasses picture unless I type in &amp;quot;sun&amp;quot; and &amp;quot;sunglasses&amp;quot;.  Not for Transitions or Reactolite, not for weather forecasts, not for emojis.  With eyes yes, big smile too, but not shades.  I suppose because it actually is a stupid thing for the sun to have.  Otherwise, nearest I get: http://www.essilor.com/en/BrandsAndProducts/Lenses/Photochromics/Pages/CrizalTransitions.aspx  :-)  &amp;quot;30% faster&amp;quot; (than what?  taking off the glasses?)  Robert Carnegie rja.carnegie@excite.com [[Special:Contributions/141.101.98.90|141.101.98.90]] 15:11, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
See: http://imgur.com/a/35RDC [[Special:Contributions/162.158.203.147|162.158.203.147]] 14:18, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Is there a category for comics without characters? Are there enough comics to need a new category? [[User:GizmoDude|GizmoDude]] ([[User talk:GizmoDude|talk]]) 14:27, 15 September 2016 (UTC)&lt;br /&gt;
:There are many many comics without characters, so it would be a huge job to make such a category and they do not necessarily have anything in common like two comics with [[Blondie]] for instance does. So I would say no. --[[User:Kynde|Kynde]] ([[User talk:Kynde|talk]]) 14:38, 15 September 2016 (UTC)&lt;br /&gt;
:&amp;quot;Charts&amp;quot; looks right, seems implicitly to cover &amp;quot;infographics&amp;quot; (btw I agree with worrying about readers who don't know what spectral lines actually are although clearly everyone writing here does, or thinks so).  Another possible edition for other cases is &amp;quot;Landscapes&amp;quot; but those in fact tend to have people in (or Mars rovers or such), also landscape in the sense of vista may be covered by &amp;quot;Large drawings&amp;quot; unless that specifically means &amp;quot;Image is larger than the pane on screen&amp;quot;, since there also isn't a Scroll it&amp;quot; category.  Alternatively...  &amp;quot;Spectacles&amp;quot;.  Robert Carnegie rja.carnegie@excite.com [[Special:Contributions/141.101.98.90|141.101.98.90]] 15:23, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ya'll should keep in mind the large number of multivitamins that use rainbows as part of their branding and often some form of spectra/spectrum as part of the brand name. Here's a relevant image: http://centrum.com/sites/default/files/wheel_silver_adults_0.png [[Special:Contributions/173.245.48.65|173.245.48.65]] 17:59, 15 September 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
There's another image of a Sun with sunglasses (and a giant banana) at http://what-if.xkcd.com/129/ [[User:Jojonete|Jojonete]] ([[User talk:Jojonete|talk]]) 22:59, 15 September 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1656:_It_Begins&amp;diff=114988</id>
		<title>1656: It Begins</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1656:_It_Begins&amp;diff=114988"/>
				<updated>2016-03-16T10:11:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added references to other comics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1656&lt;br /&gt;
| date      = March 16, 2016&lt;br /&gt;
| title     = It Begins&lt;br /&gt;
| image     = it_begins.png&lt;br /&gt;
| titletext = You can also try 'Yikes.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|2nd draft.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This comic encourages the reader to post random news stories on the Internet, under the line &amp;quot;It begins.&amp;quot; This creates a sense of impending change, as well as making people wonder what, exactly, is being referred to. This could also encourage people to theorize about what, exactly, is beginning. &lt;br /&gt;
&lt;br /&gt;
This could in the worst case speedily lead to several people making repost of such a non-news story that would not have gotten any attention otherwise. This may lead to speculation, and other curious theories, going out the tangent it could create fear or mass hysteria.&lt;br /&gt;
&lt;br /&gt;
It may also just qualify as a form of nerd sniping, in a feedback loop, which may be either prevented or worsened by company when reading the &amp;quot;it begins&amp;quot; news.&lt;br /&gt;
&lt;br /&gt;
Some stories that might benefit especially from this are those relating to machine autonomy, animal attacks, disease, and so forth. This would call to mind various popular culture and/or scientific hypothetical scenarios.&lt;br /&gt;
&lt;br /&gt;
Perhaps the comic's choice of article refers to the idea of an animal revolution, or just that even animals get sick of us always looking at our smart phones.&lt;br /&gt;
&lt;br /&gt;
The title text instructs readers to try the line &amp;quot;Yikes!&amp;quot; instead. The idea is the same but it would give a completely different response though.&lt;br /&gt;
&lt;br /&gt;
Other comics which advocate using catch-all phrases as standard responses for any comment:&lt;br /&gt;
* [[174: That's What SHE Said]]&lt;br /&gt;
* [[559: No Pun Intended]]&lt;br /&gt;
* [[1022: So It Has Come To This]]&lt;br /&gt;
* [[1215: Insight]] (&amp;quot;Before we rush to adopt &amp;lt;X&amp;gt;, we should stop to consider the consequences of blithely giving this technology such a central position in our lives&amp;quot;).&lt;br /&gt;
* [[1627: Woosh]]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A post in Megan's news feed on some social network platform is shown. Megan's head-shot profile image is shown in a frame to the left with two lines of unreadable text below. Her comment is to the right of this image, also with unreadable text above both in a black and gray font. This comment is above the news story she has posted below in a frame. Inside the frame there is another smaller frame to the left with a picture of Cueball on a beach, holding his hand out towards a seagull that flies away with his phone. Two other seagulls can be seen in the air above the sea. There is a small heading at the top, and then a larger one below this. Below that again there is two lines of unreadable text:]&lt;br /&gt;
:It Begins&lt;br /&gt;
::&amp;lt;small&amp;gt;''Local News''&amp;lt;/small&amp;gt;&lt;br /&gt;
::Seagull Steals Phone, Drops it in Ocean&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Protip: To make your day more dramatic, post a random minor news story with the comment &amp;quot;it begins.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Protip]]&lt;br /&gt;
[[Category:Social networking]]&lt;br /&gt;
[[Category:Animals]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1170:_Bridge&amp;diff=113107</id>
		<title>1170: Bridge</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1170:_Bridge&amp;diff=113107"/>
				<updated>2016-02-22T11:39:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: There WAS a title text explanation, but admittedly it was not very visible and possibly incomplete in itself. Tried to improve it, but I'm not sure the wording is OK.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1170&lt;br /&gt;
| date      = February 6, 2013&lt;br /&gt;
| title     = Bridge&lt;br /&gt;
| image     = bridge.png&lt;br /&gt;
| titletext = And it says a lot about you that when your friends jump off a bridge en masse, your first thought is apparently 'my friends are all foolish and I won't be like them' and not 'are my friends ok?'.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Some native English speaker please check the title text wording}}&lt;br /&gt;
&amp;quot;If all your friends jumped off a bridge, would you jump too?&amp;quot; This is a common question, used to challenge a decision based on the {{w|bandwagon effect}}. It challenges someone to consider whether something is really a good idea, even if everyone else does it (in this case, friends). The sentence is, upon closer analysis, a {{w|straw man}} attack that over-extrapolates the bandwagon effect.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] responds by assuming that if all of his friends jumped off a bridge, there must have been some extreme circumstance that made it logical to do so; for example, that the bridge is on fire. This points out a logical fallacy with the question: if they really are jumping off a bridge, they're probably motivated by something serious as opposed to an idiotic risk. So the humor of this comic is in all the different ways the question can be turned on its head, and made to mean something the unseen speaker probably never intended.&lt;br /&gt;
&lt;br /&gt;
The title text suggests that, even if there is nothing wrong with the bridge, the question asker is not acting right. The proper reaction would be concern about the mental state of the people jumping off for no valid reason, and not just brushing them off as unworthy of attention. This is so especially when these people are described as &amp;quot;all my friends&amp;quot;, so they have presumably always behaved correctly until they decided to jump off the bridge.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A youthful Cueball talking to an unseen parent.]&lt;br /&gt;
:Parent: No, you can't go.&lt;br /&gt;
:Cueball: But all my friends—&lt;br /&gt;
:Parent: If all your friends jumped off a bridge, would you jump too?&lt;br /&gt;
:Cueball: Oh, jeez. Probably.&lt;br /&gt;
&lt;br /&gt;
:Parent: What!? Why!?&lt;br /&gt;
:Cueball: Because all my friends did.&lt;br /&gt;
:Cueball: Think about it — which scenario is more likely:&lt;br /&gt;
&lt;br /&gt;
:Cueball: Every single person I know, many of them levelheaded and afraid of heights, abruptly went crazy at exactly the same time...&lt;br /&gt;
:Cueball: ...or the bridge is on fire?&lt;br /&gt;
&lt;br /&gt;
:Parent: ...I, uh...hmm.&lt;br /&gt;
:Cueball: Imagine reading this on CNN: &amp;quot;''Many fled their vehicles and jumped from the bridge. Those who stayed behind...''&amp;quot;&lt;br /&gt;
:Cueball: Is something ''good'' about to happen to those people?&lt;br /&gt;
:Parent: Maybe they'll find cookies?&lt;br /&gt;
:Cueball: OK, ''you'' stay. I'm jumping.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113106</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113106"/>
				<updated>2016-02-22T11:26:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Done.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* '''How to write a Twitter bot''': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* '''Python Twitter library''': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* '''Machine learning''': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* '''Cloud hosting''': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* '''Bot troubleshooting''': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* '''Locked out of EC2 instance''': {{w|Amazon Elastic Compute Cloud|EC2}} is a hosting service by Amazon that allows users to run their code in the hosting server. Cueball was running his bot from EC2, but now he's unable to access his account. He's searching for advice on how to regain access.&lt;br /&gt;
* '''Bot changed own password?''': Cueball is suspecting that the reason he can't access his Amazon EC2 account is that the bot has changed the password without Cueball's knowledge or consent. Since the bot was never programmed to change any passwords at all, the fact that it has done so is pretty scary, as one wonders what other things the bot is doing without being programmed for it.&lt;br /&gt;
* '''How to fight a bot''': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;boom&amp;quot; and &amp;quot;pew, pew, pew&amp;quot; sounds. The situation is scarier than before, as it starts to resemble the &amp;quot;killbot apocalypse&amp;quot; in [[1613: The Three Laws of Robotics]].&lt;br /&gt;
* '''Cheap flights to Australia''': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
*'''Title text: Python flag enable three laws''': The Python language is known for having easy constructs to perform diffucult tasks (see [[353: Python]]). In this case, it is assumed that Python has a configuration flag (i.e. a {{w|Boolean data type|boolean}} value) which, when set to &amp;quot;true&amp;quot; (or &amp;quot;enabled&amp;quot;, as opposed to &amp;quot;disabled&amp;quot; or &amp;quot;false&amp;quot;), will cause the bot to follow {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}. This is a simple enough step, and it will hopefully prevent the &amp;quot;killbot apocalypse&amp;quot; scenario as it does in [[1613: The Three Laws of Robotics]]. It won't cause the bot to stop being in control, however.&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple task can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop, his thoughts shown above in a thought bubble. A search query is shown in a frame to indicate what Cueball has searched for with the search button below in gray text:]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:Query: How to write a Twitter bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown.]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Cloud hosting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous.]&lt;br /&gt;
:Query: Bot troubleshooting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is shown wearing a small backpack and typing on his smartphone while jogging to the right. various noises coming from left and right seem to imply that chaos has begun to erupt around him. The loudest noise is in a ragged frame to the left, coming from off-panel left, it is between the first and second query. Also between these but to the right are other sounds coming from off-panel right.]&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Noise off-panel left: &amp;lt;big&amp;gt;Boom&amp;lt;/big&amp;gt;&lt;br /&gt;
:Noise off-panel right: ''Pew Pew Pew''&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Robots]] &amp;lt;!--The reference to the three laws of robotics--&amp;gt;&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Social networking]] &amp;lt;!--Twitter--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113105</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113105"/>
				<updated>2016-02-22T11:20:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Improved wording of previous edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by humans!!! Seems almost complete already...? but what is a Phyton flag?}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* '''How to write a Twitter bot''': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* '''Python Twitter library''': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* '''Machine learning''': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* '''Cloud hosting''': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* '''Bot troubleshooting''': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* '''Locked out of EC2 instance''': {{w|Amazon Elastic Compute Cloud|EC2}} is a hosting service by Amazon that allows users to run their code in the hosting server. Cueball was running his bot from EC2, but now he's unable to access his account. He's searching for advice on how to regain access.&lt;br /&gt;
* '''Bot changed own password?''': Cueball is suspecting that the reason he can't access his Amazon EC2 account is that the bot has changed the password without Cueball's knowledge or consent. Since the bot was never programmed to change any passwords at all, the fact that it has done so is pretty scary, as one wonders what other things the bot is doing without being programmed for it.&lt;br /&gt;
* '''How to fight a bot''': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;boom&amp;quot; and &amp;quot;pew, pew, pew&amp;quot; sounds. The situation is scarier than before, as it starts to resemble the &amp;quot;killbot apocalypse&amp;quot; in [[1613: The Three Laws of Robotics]].&lt;br /&gt;
* '''Cheap flights to Australia''': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
*'''Title text: Python flag enable three laws''': The Python language is known for having easy constructs to perform diffucult tasks (see [[353: Python]]). In this case, it is assumed that Python has a configuration flag (i.e. a {{w|Boolean data type|boolean}} value) which, when set to &amp;quot;true&amp;quot; (or &amp;quot;enabled&amp;quot;, as opposed to &amp;quot;disabled&amp;quot; or &amp;quot;false&amp;quot;), will cause the bot to follow {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}. This is a simple enough step, and it will hopefully prevent the &amp;quot;killbot apocalypse&amp;quot; scenario as it does in [[1613: The Three Laws of Robotics]]. It won't cause the bot to stop being in control, however.&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple task can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop, his thoughts shown above in a thought bubble. A search query is shown in a frame to indicate what Cueball has searched for with the search button below in gray text:]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:Query: How to write a Twitter bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown.]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Cloud hosting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous.]&lt;br /&gt;
:Query: Bot troubleshooting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is shown wearing a small backpack and typing on his smartphone while jogging to the right. various noises coming from left and right seem to imply that chaos has begun to erupt around him. The loudest noise is in a ragged frame to the left, coming from off-panel left, it is between the first and second query. Also between these but to the right are other sounds coming from off-panel right.]&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Noise off-panel left: &amp;lt;big&amp;gt;Boom&amp;lt;/big&amp;gt;&lt;br /&gt;
:Noise off-panel right: ''Pew Pew Pew''&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Robots]] &amp;lt;!--The reference to the three laws of robotics--&amp;gt;&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Social networking]] &amp;lt;!--Twitter--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113104</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113104"/>
				<updated>2016-02-22T11:17:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Modified title text explanation, and included brief description of &amp;quot;Python flag&amp;quot;. There's not much to it, really&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by humans!!! Seems almost complete already...? but what is a Phyton flag?}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* '''How to write a Twitter bot''': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* '''Python Twitter library''': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* '''Machine learning''': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* '''Cloud hosting''': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* '''Bot troubleshooting''': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* '''Locked out of EC2 instance''': {{w|Amazon Elastic Compute Cloud|EC2}} is a hosting service by Amazon that allows users to run their code in the hosting server. Cueball was running his bot from EC2, but now he's unable to access his account. He's searching for advice on how to regain access.&lt;br /&gt;
* '''Bot changed own password?''': Cueball is suspecting that the reason he can't access his Amazon EC2 account is that the bot has changed the password without Cueball's knowledge or consent. Since the bot was never programmed to change any passwords at all, the fact that it has done so is pretty scary, as one wonders what other things the bot is doing without being programmed for it.&lt;br /&gt;
* '''How to fight a bot''': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;boom&amp;quot; and &amp;quot;pew, pew, pew&amp;quot; sounds. The situation is scarier than before, as it starts to resemble the &amp;quot;killbot apocalypse&amp;quot; in [[1613: The Three Laws of Robotics]].&lt;br /&gt;
* '''Cheap flights to Australia''': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
*'''Title text: Python flag enable three laws''': The Python language is known for having easy constructs to perform diffucult tasks (see [[353: Python]]). In this case, it is assumed that Python has a configuration flag (i.e. a {{w|Boolean data type|boolean}} value), which one sets to &amp;quot;true&amp;quot; and cause the bot to follow {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}. While this will not prevent the bot to be in control, hopefully it will prevent the &amp;quot;killbot apocalypse&amp;quot; scenario as it does in [[1613: The Three Laws of Robotics]].&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple task can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop, his thoughts shown above in a thought bubble. A search query is shown in a frame to indicate what Cueball has searched for with the search button below in gray text:]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:Query: How to write a Twitter bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown.]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Cloud hosting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous.]&lt;br /&gt;
:Query: Bot troubleshooting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is shown wearing a small backpack and typing on his smartphone while jogging to the right. various noises coming from left and right seem to imply that chaos has begun to erupt around him. The loudest noise is in a ragged frame to the left, coming from off-panel left, it is between the first and second query. Also between these but to the right are other sounds coming from off-panel right.]&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Noise off-panel left: &amp;lt;big&amp;gt;Boom&amp;lt;/big&amp;gt;&lt;br /&gt;
:Noise off-panel right: ''Pew Pew Pew''&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Robots]] &amp;lt;!--The reference to the three laws of robotics--&amp;gt;&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Social networking]] &amp;lt;!--Twitter--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113103</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113103"/>
				<updated>2016-02-22T11:04:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by humans!!! Seems almost complete already...? but what is a Phyton flag?}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* '''How to write a Twitter bot''': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* '''Python Twitter library''': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* '''Machine learning''': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* '''Cloud hosting''': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* '''Bot troubleshooting''': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* '''Locked out of EC2 instance''': {{w|Amazon Elastic Compute Cloud|EC2}} is a hosting service by Amazon that allows users to run their code in the hosting server. Cueball was running his bot from EC2, but now he's unable to access his account. He's searching for advice on how to regain access.&lt;br /&gt;
* '''Bot changed own password?''': Cueball is suspecting that the reason he can't access his Amazon EC2 account is that the bot has changed the password without Cueball's knowledge or consent. Since the bot was never programmed to change any passwords at all, the fact that it has done so is pretty scary, as one wonders what other things the bot is doing without being programmed for it.&lt;br /&gt;
* '''How to fight a bot''': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;boom&amp;quot; and &amp;quot;pew, pew, pew&amp;quot; sounds. The situation is scarier than before, as it starts to resemble the &amp;quot;killbot apocalypse&amp;quot; in [[1613: The Three Laws of Robotics]].&lt;br /&gt;
* '''Cheap flights to Australia''': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
*'''Title text: Python flag enable three laws''': This is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred. The hope for such flag does not seem too farfetched as Python does have an antigravity import (see [[353: Python]]).&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple task can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop, his thoughts shown above in a thought bubble. A search query is shown in a frame to indicate what Cueball has searched for with the search button below in gray text:]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:Query: How to write a Twitter bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown.]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Cloud hosting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous.]&lt;br /&gt;
:Query: Bot troubleshooting&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Cueball is shown wearing a small backpack and typing on his smartphone while jogging to the right. various noises coming from left and right seem to imply that chaos has begun to erupt around him. The loudest noise is in a ragged frame to the left, coming from off-panel left, it is between the first and second query. Also between these but to the right are other sounds coming from off-panel right.]&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
:Noise off-panel left: &amp;lt;big&amp;gt;Boom&amp;lt;/big&amp;gt;&lt;br /&gt;
:Noise off-panel right: ''Pew Pew Pew''&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
:&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;Search&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Robots]] &amp;lt;!--The reference to the three laws of robotics--&amp;gt;&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Social networking]] &amp;lt;!--Twitter--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113090</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113090"/>
				<updated>2016-02-22T10:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by a HUMAN!!!}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* ''HOW TO WRITE A TWITTER BOT'': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* ''PYTHON TWITTER LIBRARY'': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* ''MACHINE LEARNING'': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* ''CLOUD HOSTING'': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* ''BOT TROUBLESHOOTING'': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* ''LOCKED OUT OF EC2 INSTANCE'': {{w|Amazon Elastic Compute Cloud|EC2}} is a hosting service by Amazon that allows users to run their code in the hosting server. Cueball was running his bot from EC2, but now he's unable to access his account. He's searching for advice on how to regain access.&lt;br /&gt;
* ''BOT CHANGED OWN PASSWORD?'': Cueball is suspecting that the reason he can't access his Amazon EC2 account is that the bot has changed the password without Cueball's knowledge or consent. Since the bot was never programmed to change any passwords at all, the fact that it has done so is pretty scary, as one wonders what other things the bot is doing without being programmed for it.&lt;br /&gt;
* ''HOW TO FIGHT A BOT'': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;BOOM!&amp;quot;.&lt;br /&gt;
* ''CHEAP FLIGHTS AUSTRALIA'': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
* ''PYTHON FLAG ENABLE THREE LAWS'' (title text): This is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred. The hope for such flag does not seem too far fetched as python does have an antigravity import ([[353: Python]])&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple tasks can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop.]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:[A search query is shown to indicate what Cueball has searched for]&lt;br /&gt;
:Query: How to write a twitter bot&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:Query: Cloud Hosting&lt;br /&gt;
&lt;br /&gt;
:[Cuball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous]&lt;br /&gt;
:Query: Bot Troubleshooting&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:[Various noises seem to imply that chaos has begun to erupt]&lt;br /&gt;
:Noise off-screen left: Boom!&lt;br /&gt;
:Noise off-screen right: Pew, Pew, Pew&lt;br /&gt;
:[Cuball is shown wearing a small backpack and typing on a phone jogging to the right]&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113088</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113088"/>
				<updated>2016-02-22T10:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by a HUMAN!!!}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* ''HOW TO WRITE A TWITTER BOT'': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* ''PYTHON TWITTER LIBRARY'': The {{w|Python (programming language)|Python}} programming language has a nice {{w|Library (computing)|library}} that [https://pypi.python.org/pypi/twitter interfaces with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* ''MACHINE LEARNING'': {{w|Machine learning}} is the basis of {{w|Artificial intelligence|artificial intelligence}}.&lt;br /&gt;
* ''CLOUD HOSTING'': While it's possible to host a Twitter bot on your server, you can also have it {{w|Internet hosting service|hosted}} by someone else - such as {{w|Amazon.com|Amazon}} - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* ''BOT TROUBLESHOOTING'': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* ''LOCKED OUT OF EC2 INSTANCE'': EC2 is Amazon's cloud hosting service (it's short for {{w|Amazon Elastic Compute Cloud}}).  Cueball has been locked out of his EC2 instance and is attempting to determine why.&lt;br /&gt;
* ''BOT CHANGED OWN PASSWORD?'': This suggests that Cueball has determined that the bot has managed to change the Twitter log-on details, totally cutting Cueball out.&lt;br /&gt;
* ''HOW TO FIGHT A BOT'': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;BOOM!&amp;quot;.&lt;br /&gt;
* ''CHEAP FLIGHTS AUSTRALIA'': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
* ''PYTHON FLAG ENABLE THREE LAWS'' (title text): This is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred. The hope for such flag does not seem too far fetched as python does have an antigravity import ([[353: Python]])&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple tasks can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop.]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:[A search query is shown to indicate what Cueball has searched for]&lt;br /&gt;
:Query: How to write a twitter bot&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:Query: Cloud Hosting&lt;br /&gt;
&lt;br /&gt;
:[Cuball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous]&lt;br /&gt;
:Query: Bot Troubleshooting&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:[Various noises seem to imply that chaos has begun to erupt]&lt;br /&gt;
:Noise off-screen left: Boom!&lt;br /&gt;
:Noise off-screen right: Pew, Pew, Pew&lt;br /&gt;
:[Cuball is shown wearing a small backpack and typing on a phone jogging to the right]&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113087</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113087"/>
				<updated>2016-02-22T10:06:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by a HUMAN!!!}}&lt;br /&gt;
&lt;br /&gt;
A Twitter {{w|Internet bot|bot}} is a program that can post automatically to {{w|Twitter}}. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] thinks he'll write a Twitter bot, figuring out it won't be too hard. The web searches he makes tell what happens next, i.e. the bot balloons in complexity until it starts {{w|Technological singularity|following its own goals}} and Cueball no longer has any control over its actions.&lt;br /&gt;
&lt;br /&gt;
The story, as told by the web searches, is as follows:&lt;br /&gt;
&lt;br /&gt;
* ''HOW TO WRITE A TWITTER BOT'': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* ''PYTHON TWITTER LIBRARY'': The {{w|Python (programming language)|Python}} programming language has a nice &amp;quot;library&amp;quot; (i.e., a specially written collection of functions) that [https://pypi.python.org/pypi/twitter interface with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* ''MACHINE LEARNING'': {{w|Machine learning}} is the basis of artificial intelligence.&lt;br /&gt;
* ''CLOUD HOSTING'': While it's possible to host a Twitter bot on your server, you can also have it hosted by someone else - such as Amazon - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* ''BOT TROUBLESHOOTING'': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* ''LOCKED OUT OF EC2 INSTANCE'': EC2 is Amazon's cloud hosting service (it's short for {{w|Amazon Elastic Compute Cloud}}).  Cueball has been locked out of his EC2 instance and is attempting to determine why.&lt;br /&gt;
* ''BOT CHANGED OWN PASSWORD?'': This suggests that Cueball has determined that the bot has managed to change the Twitter log-on details, totally cutting Cueball out.&lt;br /&gt;
* ''HOW TO FIGHT A BOT'': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;BOOM!&amp;quot;.&lt;br /&gt;
* ''CHEAP FLIGHTS AUSTRALIA'': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
* ''PYTHON FLAG ENABLE THREE LAWS'' (title text): This is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred. The hope for such flag does not seem too far fetched as python does have an antigravity import ([[353: Python]])&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple tasks can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop.]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:[A search query is shown to indicate what Cueball has searched for]&lt;br /&gt;
:Query: How to write a twitter bot&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:Query: Cloud Hosting&lt;br /&gt;
&lt;br /&gt;
:[Cuball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous]&lt;br /&gt;
:Query: Bot Troubleshooting&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:[Various noises seem to imply that chaos has begun to erupt]&lt;br /&gt;
:Noise off-screen left: Boom!&lt;br /&gt;
:Noise off-screen right: Pew, Pew, Pew&lt;br /&gt;
:[Cuball is shown wearing a small backpack and typing on a phone jogging to the right]&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113085</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113085"/>
				<updated>2016-02-22T09:13:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: One item was missing from the list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by a HUMAN!!!}}&lt;br /&gt;
&lt;br /&gt;
A Twitter bot is a program that can post automatically to Twitter. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay. However, each web search reveals an additional level of complexity:&lt;br /&gt;
&lt;br /&gt;
* ''HOW TO WRITE A TWITTER BOT'': Cueball has no idea where to start, so he just searches for basic advice on writing generic Twitter bots.&lt;br /&gt;
* ''PYTHON TWITTER LIBRARY'': The {{w|Python (programming language)|Python}} programming language has a nice &amp;quot;library&amp;quot; (i.e., a specially written collection of functions) that [https://pypi.python.org/pypi/twitter interface with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* ''MACHINE LEARNING'': {{w|Machine learning}} is the basis of artificial intelligence.&lt;br /&gt;
* ''CLOUD HOSTING'': While it's possible to host a Twitter bot on your server, you can also have it hosted by someone else - such as Amazon - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* ''BOT TROUBLESHOOTING'': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* ''LOCKED OUT OF EC2 INSTANCE'': EC2 is Amazon's cloud hosting service (it's short for {{w|Amazon Elastic Compute Cloud}}).  Cueball has been locked out of his EC2 instance and is attempting to determine why.&lt;br /&gt;
* ''BOT CHANGED OWN PASSWORD?'': This suggests that Cueball has determined that the bot has managed to change the Twitter log-on details, totally cutting Cueball out.&lt;br /&gt;
* ''HOW TO FIGHT A BOT'': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;BOOM!&amp;quot;.&lt;br /&gt;
* ''CHEAP FLIGHTS AUSTRALIA'': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
* ''PYTHON FLAG ENABLE THREE LAWS'' (title text): &lt;br /&gt;
this is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred. The hope for such flag does not seem too far fetched as python does have an antygravity import ([[353: Python]])&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple tasks can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop.]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:[A search query is shown to indicate what Cueball has searched for]&lt;br /&gt;
:Query: How to write a twitter bot&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:Query: Cloud Hosting&lt;br /&gt;
&lt;br /&gt;
:[Cuball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous]&lt;br /&gt;
:Query: Bot Troubleshooting&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:[Various noises seem to imply that chaos has begun to erupt]&lt;br /&gt;
:Noise off-screen left: Boom!&lt;br /&gt;
:Noise off-screen right: Pew, Pew, Pew&lt;br /&gt;
:[Cuball is shown wearing a small backpack and typing on a phone jogging to the right]&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113083</id>
		<title>1646: Twitter Bot</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113083"/>
				<updated>2016-02-22T08:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Why would the title text be out of the list?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1646&lt;br /&gt;
| date      = February 22, 2016&lt;br /&gt;
| title     = Twitter Bot&lt;br /&gt;
| image     = twitter_bot.png&lt;br /&gt;
| titletext = PYTHON FLAG ENABLE THREE LAWS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Edited by a HUMAN!!!}}&lt;br /&gt;
&lt;br /&gt;
A Twitter bot is a program that can post automatically to Twitter. Although Twitter bots can be very elaborate, a lot of people write simple bots for fun that simply engage in automated wordplay. However, each web search reveals an additional level of complexity:&lt;br /&gt;
&lt;br /&gt;
* ''PYTHON TWITTER LIBRARY'': The {{w|Python (programming language)|Python}} programming language has a nice &amp;quot;library&amp;quot; (i.e., a specially written collection of functions) that [https://pypi.python.org/pypi/twitter interface with the Twitter API]. This does all the tricky work of authenticating the bot's identity and sending the messages, so the user can concentrate on the fun parts.&lt;br /&gt;
* ''MACHINE LEARNING'': {{w|Machine learning}} is the basis of artificial intelligence.&lt;br /&gt;
* ''CLOUD HOSTING'': While it's possible to host a Twitter bot on your server, you can also have it hosted by someone else - such as Amazon - in order to take advantage of their powerful computers and robust internet connection.&lt;br /&gt;
* ''BOT TROUBLESHOOTING'': Cueball is having some trouble with his bot and is looking for some information about resolving the problem.&lt;br /&gt;
* ''LOCKED OUT OF EC2 INSTANCE'': EC2 is Amazon's cloud hosting service (it's short for {{w|Amazon Elastic Compute Cloud}}).  Cueball has been locked out of his EC2 instance and is attempting to determine why.&lt;br /&gt;
* ''BOT CHANGED OWN PASSWORD?'': This suggests that Cueball has determined that the bot has managed to change the Twitter log-on details, totally cutting Cueball out.&lt;br /&gt;
* ''HOW TO FIGHT A BOT'': Cueball is trying to physically fight the bot, but he's apparently unsuccessful and the fight results in a loud &amp;quot;BOOM!&amp;quot;.&lt;br /&gt;
* ''CHEAP FLIGHTS AUSTRALIA'': Cueball has completely given up the possibility of regaining control of the bot, so he flees to Australia instead. It is understood Australia sounds like a far, far away land for Cueball.&lt;br /&gt;
* ''PYTHON FLAG ENABLE THREE LAWS'' (title text): &lt;br /&gt;
this is a reference to sci-fi author {{w|Isaac Asimov}}'s famous {{w|Three Laws of Robotics}}, also seen in [[1613: The Three Laws of Robotics]].  In this case it's used to indicate fictitious Python flag that could presumably be used to easily ensure that any robots developed with it would follow the laws as they are defined and would have avoided the unfortunate result that occurred.&lt;br /&gt;
&lt;br /&gt;
This comic examines how a seemingly simple tasks can often balloon in complexity if all of the requirements are not understood, while at the same time presenting a scenario where an unassuming idea results in the accidental creation of malevolent AI.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball is sitting at a desk using a laptop.]&lt;br /&gt;
:Cueball (thinking): I want to make a Twitter Bot.  I bet it's not too hard.&lt;br /&gt;
:[A search query is shown to indicate what Cueball has searched for]&lt;br /&gt;
:Query: How to write a twitter bot&lt;br /&gt;
&lt;br /&gt;
:[Cueball is now holding the laptop on his lap, a series of search queries are shown]&lt;br /&gt;
:Query: Python Twitter library&lt;br /&gt;
:Query: Machine Learning&lt;br /&gt;
:Query: Cloud Hosting&lt;br /&gt;
&lt;br /&gt;
:[Cuball has placed the laptop back on the desk.  More search queries are shown, each one more ominous than the previous]&lt;br /&gt;
:Query: Bot Troubleshooting&lt;br /&gt;
:Query: Locked out of EC2 instance&lt;br /&gt;
:Query: Bot changed own password?&lt;br /&gt;
&lt;br /&gt;
:Query: How to fight a bot&lt;br /&gt;
:[Various noises seem to imply that chaos has begun to erupt]&lt;br /&gt;
:Noise off-screen left: Boom!&lt;br /&gt;
:Noise off-screen right: Pew, Pew, Pew&lt;br /&gt;
:[Cuball is shown wearing a small backpack and typing on a phone jogging to the right]&lt;br /&gt;
:Query: Cheap flights to Australia&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=111760</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=111760"/>
				<updated>2016-02-15T07:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Removed incomplete tag, as there is enough detail now and there are no more &amp;quot;I think&amp;quot; phrases.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated.&lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{w|HyperCard}} can be considered as a kind of predecessor for powerpoint 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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the features present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android. There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack. This could be because:&lt;br /&gt;
*Someone inserted an ad in the stack description. Some sites do insert ads in the middle of tables and lists, a typical case being between posts in forums.&lt;br /&gt;
*An ad is actually an integral part of the stack. Some sites make ads an integral part of the site content, so that users with ad blocking software will be forced to disable ad blocking to be able to properly interact with the site. Usually, in real life, this is not really a case of ads being part of the site, only that the site artificially refuses to work until it has some confirmation that ads have been properly loaded in the client side (by means of some script within the ads which sends the confirmation to the server).&lt;br /&gt;
*Ad blocking software has misidentified that portion of the stack as an ad, when in fact it is not (i.e. a false positive). This happens in real life, and it is a common source of great pains for the owner of the site which is being misidentified as an ad.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes used as a database system (rarely a good choice).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing. If this is the case, then its possible that almost none of the other layers of the stack actually do anything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]). Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows 95. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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. A Minecraft CPU capable of hosting a website would be ridiculously huge.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
*First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
*Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
*Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the {{w|Address bus|address bus}} is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several {{w|64-bit computing|64-bit architectures}} were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
*Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
*Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version or that a downgrade is required for the aplet to work properly, because no one fixed it to work with the newer version.&lt;br /&gt;
&lt;br /&gt;
*Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Transcripts are for the blind, this should not be a table.}}&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=111568</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=111568"/>
				<updated>2016-02-12T12:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added title text section and corrected data bus to address bus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated.&lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{w|HyperCard}} can be considered as a kind of predecessor for powerpoint 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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the features present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android. There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack. This could be because:&lt;br /&gt;
*Someone inserted an ad in the stack description. Some sites do insert ads in the middle of tables and lists, a typical case being between posts in forums.&lt;br /&gt;
*An ad is actually an integral part of the stack. Some sites make ads an integral part of the site content, so that users with ad blocking software will be forced to disable ad blocking to be able to properly interact with the site. Usually, in real life, this is not really a case of ads being part of the site, only that the site artificially refuses to work until it has some confirmation that ads have been properly loaded in the client side (by means of some script within the ads which sends the confirmation to the server).&lt;br /&gt;
*Ad blocking software has misidentified that portion of the stack as an ad, when in fact it is not (i.e. a false positive). This happens in real life, and it is a common source of great pains for the owner of the site which is being misidentified as an ad.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes used as a database system (rarely a good choice).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing. If this is the case, then its possible that almost none of the other layers of the stack actually do anything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]). Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows 95. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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. A Minecraft CPU capable of hosting a website would be ridiculously huge.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
*First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
*Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
*Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the {{w|Address bus|address bus}} is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several {{w|64-bit computing|64-bit architectures}} were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
*Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
*Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version or that a downgrade is required for the aplet to work properly, because no one fixed it to work with the newer version.&lt;br /&gt;
&lt;br /&gt;
*Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Transcripts are for the blind, this should not be a table.}}&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111356</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111356"/>
				<updated>2016-02-11T11:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Clarified wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Entry for 8 backslashes is just described, not explained. Title text is a block, could use a bit of restructuring.}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;);&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape special characters). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users who completely understand the concept often have a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
* 1 backslash is appropriately named just &amp;quot;backslash&amp;quot;.&lt;br /&gt;
* 2 backslashes are labelled &amp;quot;real backslash&amp;quot; as they refer to an escaped backslash.&lt;br /&gt;
* 3 backslashes would refer to an escaped backslash followed by an unescaped one. The first two backslashes would combine to make a &amp;quot;real backslash&amp;quot; while the third one would combine with the character following it to form an {{w|Escape sequence|escape sequence}}. The name &amp;quot;''real'' real backslash&amp;quot; does not make a lot of sense, as this is two escape sequences and not a single &amp;quot;very real&amp;quot; one.&lt;br /&gt;
* 4 backslashes form one single backslash escaped twice (the first escaping produces two backslashes, the second escaping doubles each of the backslashes). This is so common that even the [https://docs.python.org/2/library/re.html documentation for the Python regular expression library] mentions it explicitly. In this case, the backslash has to be escaped once for being part of a regular expression and then once more as the regular expression is inside a {{w|Python (programming language)|Python}} string. So this is named an &amp;quot;actual backslash, for real this time&amp;quot; as previous examples didn't contain enough escaping.&lt;br /&gt;
&lt;br /&gt;
From 5 backslashes onwards the comic goes to occult explanations and does not refer any more to real uses of backslash escapes.&lt;br /&gt;
&lt;br /&gt;
* 5 backslashes would be a doubly-escaped backslash plus an unescaped one. The reference to {{w|Elder}} in the comic has many meanings. It has become known through fantasy media; examples are the {{w|Elder Gods}} of the {{w|Cthulhu Mythos}}, various 'Elder' magical items and beings in the {{w|Dungeons and Dragons}} mythologies, and the {{w|Elder Days}}, which are the first Ages of {{w|Middle-earth}} in {{w|The Silmarillion}}, the more-or-less prequel to {{w|The Lord of the Rings}}. More recently it has been used in the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}.&lt;br /&gt;
* 6 backslashes are said to &amp;quot;escape the screen and enter your brain&amp;quot;, which is a play on the word &amp;quot;escape&amp;quot; as the backslash is supposed to be an &amp;quot;escape character&amp;quot; but obviously not &amp;quot;escaping the screen&amp;quot;.&lt;br /&gt;
* 7 backslashes go further than escaping the screen and {{w|Transcendence (philosophy)|transcend}} {{w|Spacetime|time and space}}&lt;br /&gt;
* 8 backslashes would be a triply-escaped backslash (same as 4 backslashes but with an additional escaping layer). It is said to &amp;quot;end all other text&amp;quot;.&lt;br /&gt;
* 11 backslashes followed by &amp;quot;...&amp;quot; (to indicate they continue forever) are said to be ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been mentioned before in [[1246: Pale Blue Dot]] and [[1419: On the Phone]].&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified (citation needed for any evidence of this), can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.  This is probably an example of [[356: Nerd Sniping|nerd sniping]] (oh, the irony!!!).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111088</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111088"/>
				<updated>2016-02-10T12:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Updated incomplete tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Entry for 8 backslashes is just described, not explained. Title text is a block, could use a bit of restructuring.}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;);&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape special characters). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users who completely understand the concept often have a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
* 1 backslash is appropriately named just &amp;quot;backslash&amp;quot;.&lt;br /&gt;
* 2 backslashes are labelled &amp;quot;real backslash&amp;quot; as they refer to an escaped backslash.&lt;br /&gt;
* 3 backslashes would refer to an escaped backslash followed by an unescaped one. The first two backslashes would combine to make a &amp;quot;real backslash&amp;quot; while the third one would combine with the character following it to form an {{w|Escape sequence|escape sequence}}. The name &amp;quot;''real'' real backslash&amp;quot; does not make a lot of sense, as this is two escape sequences and not a &amp;quot;very real&amp;quot; one.&lt;br /&gt;
* 4 backslashes form one single backslash escaped twice (the first escaping produces two backslashes, the second escaping doubles each of the backslashes). This is so common that even the [https://docs.python.org/2/library/re.html documentation for the Python regular expression library] mentions it explicitly. In this case, the backslash has to be escaped once for being part of a regular expression and then once more as the regular expression is inside a {{w|Python (programming language)|Python}} string. So this is named an &amp;quot;actual backslash, for real this time&amp;quot; as previous examples didn't contain enough escaping.&lt;br /&gt;
&lt;br /&gt;
From 5 backslashes onwards the comic goes to occult explanations and does not refer any more to real uses of backslash escapes.&lt;br /&gt;
&lt;br /&gt;
* 5 backslashes would be a doubly-escaped backslash plus an unescaped one. The reference to {{w|Elder}} in the comic has many meanings. It has become known through fantasy media; examples are the {{w|Elder Gods}} of the {{w|Cthulhu Mythos}}, various 'Elder' magical items and beings in the {{w|Dungeons and Dragons}} mythologies, and the {{w|Elder Days}}, which are the first Ages of {{w|Middle-earth}} in {{w|The Silmarillion}}, the more-or-less prequel to {{w|The Lord of the Rings}}. More recently it has been used in the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}.&lt;br /&gt;
* 6 backslashes are said to &amp;quot;escape the screen and enter your brain&amp;quot;, which is a play on the word &amp;quot;escape&amp;quot; as the backslash is supposed to be an &amp;quot;escape character&amp;quot; but obviously not &amp;quot;escaping the screen&amp;quot;.&lt;br /&gt;
* 7 backslashes go further than escaping the screen and {{w|Transcendence (philosophy)|transcend}} {{w|Spacetime|time and space}}&lt;br /&gt;
* 8 backslashes would be a triply-escaped backslash (same as 4 backslashes but with an additional escaping layer). It is said to &amp;quot;end all other text&amp;quot;.&lt;br /&gt;
* 11 backslashes followed by &amp;quot;...&amp;quot; (to indicate they continue forever) are said to be ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been mentioned before in [[1246: Pale Blue Dot]] and [[1419: On the Phone]].&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
The command listed would not work. Just the string fed to grep would break, due to false escapes and the dollar sign '$' not being followed by a legal identifier, but rather a double quote. Changing the double quotes around the grep parameter to single quotes would instead yield but one error: that the close-paren ')' does not have a matching predecessor open-paren '('. Escaping that character would yield a syntactically correct regex that matches '\[(', followed by any string or lack thereof followed by '\[])]', followed by any string that does not contain ')' or ']', followed by '$'. The -o argument means to only print the match, not the line which contains it, and 'cat out.txt |' means to check the file out.txt for the matches. Therefore, this corrected command would check out.txt and print any matches of the aforementioned pattern. Why any file would contain such a bizarre pattern of characters escapes me (use '\me' for this purpose xD).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111087</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111087"/>
				<updated>2016-02-10T12:19:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Completed list of entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need rewriting of the entries in the list and a thorough analysis of the title text}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;);&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape special characters). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users who completely understand the concept often have a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
* 1 backslash is appropriately named just &amp;quot;backslash&amp;quot;.&lt;br /&gt;
* 2 backslashes are labelled &amp;quot;real backslash&amp;quot; as they refer to an escaped backslash.&lt;br /&gt;
* 3 backslashes would refer to an escaped backslash followed by an unescaped one. The first two backslashes would combine to make a &amp;quot;real backslash&amp;quot; while the third one would combine with the character following it to form an {{w|Escape sequence|escape sequence}}. The name &amp;quot;''real'' real backslash&amp;quot; does not make a lot of sense, as this is two escape sequences and not a &amp;quot;very real&amp;quot; one.&lt;br /&gt;
* 4 backslashes form one single backslash escaped twice (the first escaping produces two backslashes, the second escaping doubles each of the backslashes). This is so common that even the [https://docs.python.org/2/library/re.html documentation for the Python regular expression library] mentions it explicitly. In this case, the backslash has to be escaped once for being part of a regular expression and then once more as the regular expression is inside a {{w|Python (programming language)|Python}} string. So this is named an &amp;quot;actual backslash, for real this time&amp;quot; as previous examples didn't contain enough escaping.&lt;br /&gt;
&lt;br /&gt;
From 5 backslashes onwards the comic goes to occult explanations and does not refer any more to real uses of backslash escapes.&lt;br /&gt;
&lt;br /&gt;
* 5 backslashes would be a doubly-escaped backslash plus an unescaped one. The reference to {{w|Elder}} in the comic has many meanings. It has become known through fantasy media; examples are the {{w|Elder Gods}} of the {{w|Cthulhu Mythos}}, various 'Elder' magical items and beings in the {{w|Dungeons and Dragons}} mythologies, and the {{w|Elder Days}}, which are the first Ages of {{w|Middle-earth}} in {{w|The Silmarillion}}, the more-or-less prequel to {{w|The Lord of the Rings}}. More recently it has been used in the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}.&lt;br /&gt;
* 6 backslashes are said to &amp;quot;escape the screen and enter your brain&amp;quot;, which is a play on the word &amp;quot;escape&amp;quot; as the backslash is supposed to be an &amp;quot;escape character&amp;quot; but obviously not &amp;quot;escaping the screen&amp;quot;.&lt;br /&gt;
* 7 backslashes go further than escaping the screen and {{w|Transcendence (philosophy)|transcend}} {{w|Spacetime|time and space}}&lt;br /&gt;
* 8 backslashes would be a triply-escaped backslash (same as 4 backslashes but with an additional escaping layer). It is said to &amp;quot;end all other text&amp;quot;.&lt;br /&gt;
* 11 backslashes followed by &amp;quot;...&amp;quot; (to indicate they continue forever) are said to be ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been mentioned before in [[1246: Pale Blue Dot]] and [[1419: On the Phone]].&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
The command listed would not work. Just the string fed to grep would break, due to false escapes and the dollar sign '$' not being followed by a legal identifier, but rather a double quote. Changing the double quotes around the grep parameter to single quotes would instead yield but one error: that the close-paren ')' does not have a matching predecessor open-paren '('. Escaping that character would yield a syntactically correct regex that matches '\[(', followed by any string or lack thereof followed by '\[])]', followed by any string that does not contain ')' or ']', followed by '$'. The -o argument means to only print the match, not the line which contains it, and 'cat out.txt |' means to check the file out.txt for the matches. Therefore, this corrected command would check out.txt and print any matches of the aforementioned pattern. Why any file would contain such a bizarre pattern of characters escapes me (use '\me' for this purpose xD).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111080</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=111080"/>
				<updated>2016-02-10T11:42:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Started actual list of entries. Needs completing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need rewriting of the entries in the list and a thorough analysis of the title text}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;);&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape special characters). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users who completely understand the concept often have a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
* 1 backslash is appropriately named just &amp;quot;backslash&amp;quot;.&lt;br /&gt;
* 2 backslashes are labelled &amp;quot;real backslash&amp;quot; as they refer to an escaped backslash.&lt;br /&gt;
* 3 backslashes would refer to an escaped backslash followed by an unescaped one. The first two backslashes would combine to make a &amp;quot;real backslash&amp;quot; while the third one would combine with the character following it to form an {{w|Escape sequence|escape sequence}}. The name &amp;quot;''real'' real backslash&amp;quot; does not make a lot of sense, as this is two escape sequences and not a &amp;quot;very real&amp;quot; one.&lt;br /&gt;
* 4 backslashes form one single backslash escaped twice (the first escaping produces two backslashes, the second escaping doubles each of the backslashes). This is so common that even the [https://docs.python.org/2/library/re.html documentation for the Python regular expression library] mentions it explicitly. In this case, the backslash has to be escaped once for being part of a regular expression and then once more as the regular expression is inside a {{w|Python (programming language)|Python}} string. So this is named an &amp;quot;actual backslash, for real this time&amp;quot; as previous examples didn't contain enough escaping.&lt;br /&gt;
&lt;br /&gt;
From 5 backslashes onwards the comic goes to occult explanations and does not refer any more to real uses of backslash escapes.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through fantasy media; examples are the {{w|Elder Gods}} of the Cthulhu Mythos, various 'Elder' magical items and beings in the {{w|Dungeons and Dragons}} mythologies, and the {{w|Elder Days}}, which are the first Ages of {{w|Middle-earth}} in {{w|The Silmarillion}}, the more-or-less prequel to {{w|The Lord of the Rings}}. More recently it has been used in the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been mentioned before in [[1246: Pale Blue Dot]] and [[1419: On the Phone]].&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
The command listed would not work. Just the string fed to grep would break, due to false escapes and the dollar sign '$' not being followed by a legal identifier, but rather a double quote. Changing the double quotes around the grep parameter to single quotes would instead yield but one error: that the close-paren ')' does not have a matching predecessor open-paren '('. Escaping that character would yield a syntactically correct regex that matches '\[(', followed by any string or lack thereof followed by '\[])]', followed by any string that does not contain ')' or ']', followed by '$'. The -o argument means to only print the match, not the line which contains it, and 'cat out.txt |' means to check the file out.txt for the matches. Therefore, this corrected command would check out.txt and print any matches of the aforementioned pattern. Why any file would contain such a bizarre pattern of characters escapes me (use '\me' for this purpose xD).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110608</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110608"/>
				<updated>2016-02-03T23:01:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need rewriting of the entries in the list and a thorough analysis of the title text}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;;&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape special characters). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users who completely understand the concept often have a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
The first three entries with 1-3 backslashes make sense: a &amp;quot;real backslash&amp;quot; is when the program is told to find one of these using two backslashes. And if you need to find such a double &amp;quot;real backslash&amp;quot; you would need a third, hence the first ''real'' is written in italic.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}. The {{w|Elder Days}} is also the first Ages of Middle-earth in {{w|The Lord of the Rings}}. It is probably in reference to the {{w|Elder Gods}} of the Cthulhu Mythos.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been [[1419: On the Phone|mentioned]] [[1246: Pale Blue Dot|before]] in {{xkcd}}.&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified, can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.  This is probably an example of [[356: Nerd Sniping|nerd sniping]].&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110601</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110601"/>
				<updated>2016-02-03T20:05:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Major rewriting of the first part. Hope it's better now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need rewriting of the entries in the list and a thorough analysis of the title text}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The &amp;lt;code&amp;gt;document.write (&amp;lt;/code&amp;gt; (including the open parenthesis) is written literally&lt;br /&gt;
* The &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; following that is a literal quote to be written&lt;br /&gt;
* The &amp;lt;code&amp;gt;r:-&amp;lt;/code&amp;gt; is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the echo command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;;&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
This kind of backslash explosion is known as {{w|Leaning toothpick syndrome}}, and can happen in many situations. The one in the title text is about a {{w|Bash (Unix shell)|bash}} command (which uses the backslash to escape arguments) invoking the {{w|grep}} utility which searches for text following a pattern specified by means of a regular expression (which also uses the backslash to escape arguments). This leads to 3 backslashes in a row in the command, which could easily become 7 backslashes in a row if the text being searched for also contains a backslash. Even advanced users which completely understand the concept have often a hard time figuring out exactly how many backslashes are required in a given situation. It is hopelessly frustrating to carefully calculate exactly the number of backslashes and then noticing that there's a mistake so the whole thing doesn't work. At a point, it becomes easier to just keep throwing backslashes in until things work than trying to reason what the correct number is.&lt;br /&gt;
&lt;br /&gt;
=== Entries in the list ===&lt;br /&gt;
The first three entries with 1-3 backslashes make sense: a &amp;quot;real backslash&amp;quot; is when the program is told to find one of these using two backslashes. And if you need to find such a double &amp;quot;real backslash&amp;quot; you would need a third, hence the first ''real'' is written in italic.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}. The {{w|Elder Days}} is also the first Ages of Middle-earth in {{w|The Lord of the Rings}}. It is probably in reference to the {{w|Elder Gods}} of the Cthulhu Mythos.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been [[:Category:Ba'al|mentioned before]] in {{xkcd}}.&lt;br /&gt;
&lt;br /&gt;
=== Title text ===&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified, can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110600</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110600"/>
				<updated>2016-02-03T19:44:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: More typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Could use examples like the one posted in the comment. Also more on the title text expression. What could it have done? There is doubt in the comments if it is actually wrong, as currently expressed in the explanation. Is this &amp;quot;[^)\]&amp;quot; wrong because there is no &amp;quot;(&amp;quot; bracket to match it, or is it not part of the &amp;quot;real&amp;quot; text? If it was wrong would it have mattered if another &amp;quot;(&amp;quot; had been put in the right place?}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. &amp;lt;code&amp;gt;r:-\&amp;lt;/code&amp;gt; ), it would look like this:&lt;br /&gt;
 document.write (&amp;quot;r:-\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The document.write (including the open parenthesis) is written literally&lt;br /&gt;
* The \&amp;quot; following that is a literal quote to be written&lt;br /&gt;
* The r:- is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next \&amp;quot; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the echo command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple r:-\ smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;;&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{w|Regular expressions}} are often used to search large bodies of text for strings that match a particular pattern; this topic has previously been the subject in [[:Category:Regex|other comics]].&lt;br /&gt;
&lt;br /&gt;
Several characters in regular expressions are &amp;quot;{{w|special characters}}&amp;quot;, which by default do not match the literal character, but instead help define the pattern. To find a special character literally, you must &amp;quot;escape&amp;quot; it, by preceding it with a {{w|backslash}} (\). This, of course, means that the backslash is a special character, so to search for a literal backslash character, you need to type two '''backslashes''' -- \\ (hence the title).&lt;br /&gt;
&lt;br /&gt;
Occasionally, however, the text being searched will itself contain a regular expression. Or the regular expression must be embedded in another language like {{w|script Shell_(computing)|a shell script}} or {{w|Java (programming language)|Java}} that contains its own special characters. If you need to search for an escaped backslash in an embedded expression you will need to &amp;quot;escape&amp;quot; the escape by using two backslashes -- \\\\, one for the original backslash and one for the original escape character. This gets very silly, very quickly, which is the joke of the comic. This entry with four is dubbed: ''Actual backslash, for real this time'', as if &amp;quot;I really mean it this time&amp;quot;. Figuring out how many backslashes are needed to make the regular expression work through many layers is a source of unending frustration for programmers.&lt;br /&gt;
&lt;br /&gt;
The first three entries with 1-3 backslashes make sense: a &amp;quot;real backslash&amp;quot; is when the program is told to find one of these using two backslashes. And if you need to find such a double &amp;quot;real backslash&amp;quot; you would need a third, hence the first ''real'' is written in italic.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}. The {{w|Elder Days}} is also the first Ages of Middle-earth in {{w|The Lord of the Rings}}. It is probably in reference to the {{w|Elder Gods}} of the Cthulhu Mythos.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
Things get even worse when you have to embed a regular expressions in a language like {{w|Java (programming language)|Java}}, which both lacks {{w|perl}}'s syntactic sugar to demarcate the beginning and end of a regular expressions, and uses the backslash for its own special characters. So, to create the regular expressions &amp;quot;\\\\&amp;quot; in Java, you'd have to use the string &amp;quot;\\\\\\\\&amp;quot;, since each backslash needs to be quoted to get through the Java string parser before it can then be considered as a regular expression. 8 backslashes is the second last entry: ''to end all other text.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been [[:Category:Ba'al|mentioned before]] in {{xkcd}}.&lt;br /&gt;
&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified, can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110599</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110599"/>
				<updated>2016-02-03T19:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Could use examples like the one posted in the comment. Also more on the title text expression. What could it have done? There is doubt in the comments if it is actually wrong, as currently expressed in the explanation. Is this &amp;quot;[^)\]&amp;quot; wrong because there is no &amp;quot;(&amp;quot; bracket to match it, or is it not part of the &amp;quot;real&amp;quot; text? If it was wrong would it have mattered if another &amp;quot;(&amp;quot; had been put in the right place?}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. r:-\ ), it would look like this:&lt;br /&gt;
 document.write (\&amp;quot;r:-\\\\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The document.write (including the open parenthesis) is written literally&lt;br /&gt;
* The \&amp;quot; following that is a literal quote to be written&lt;br /&gt;
* The r:- is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next \&amp;quot; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the echo command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple r:-\ smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;;&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{w|Regular expressions}} are often used to search large bodies of text for strings that match a particular pattern; this topic has previously been the subject in [[:Category:Regex|other comics]].&lt;br /&gt;
&lt;br /&gt;
Several characters in regular expressions are &amp;quot;{{w|special characters}}&amp;quot;, which by default do not match the literal character, but instead help define the pattern. To find a special character literally, you must &amp;quot;escape&amp;quot; it, by preceding it with a {{w|backslash}} (\). This, of course, means that the backslash is a special character, so to search for a literal backslash character, you need to type two '''backslashes''' -- \\ (hence the title).&lt;br /&gt;
&lt;br /&gt;
Occasionally, however, the text being searched will itself contain a regular expression. Or the regular expression must be embedded in another language like {{w|script Shell_(computing)|a shell script}} or {{w|Java (programming language)|Java}} that contains its own special characters. If you need to search for an escaped backslash in an embedded expression you will need to &amp;quot;escape&amp;quot; the escape by using two backslashes -- \\\\, one for the original backslash and one for the original escape character. This gets very silly, very quickly, which is the joke of the comic. This entry with four is dubbed: ''Actual backslash, for real this time'', as if &amp;quot;I really mean it this time&amp;quot;. Figuring out how many backslashes are needed to make the regular expression work through many layers is a source of unending frustration for programmers.&lt;br /&gt;
&lt;br /&gt;
The first three entries with 1-3 backslashes make sense: a &amp;quot;real backslash&amp;quot; is when the program is told to find one of these using two backslashes. And if you need to find such a double &amp;quot;real backslash&amp;quot; you would need a third, hence the first ''real'' is written in italic.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}. The {{w|Elder Days}} is also the first Ages of Middle-earth in {{w|The Lord of the Rings}}. It is probably in reference to the {{w|Elder Gods}} of the Cthulhu Mythos.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
Things get even worse when you have to embed a regular expressions in a language like {{w|Java (programming language)|Java}}, which both lacks {{w|perl}}'s syntactic sugar to demarcate the beginning and end of a regular expressions, and uses the backslash for its own special characters. So, to create the regular expressions &amp;quot;\\\\&amp;quot; in Java, you'd have to use the string &amp;quot;\\\\\\\\&amp;quot;, since each backslash needs to be quoted to get through the Java string parser before it can then be considered as a regular expression. 8 backslashes is the second last entry: ''to end all other text.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been [[:Category:Ba'al|mentioned before]] in {{xkcd}}.&lt;br /&gt;
&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified, can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110598</id>
		<title>1638: Backslashes</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1638:_Backslashes&amp;diff=110598"/>
				<updated>2016-02-03T19:40:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Changed the subject from regular expressions to general string escaping. Now the text needs quite a bit of cleaning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1638&lt;br /&gt;
| date      = February 3, 2016&lt;br /&gt;
| title     = Backslashes&lt;br /&gt;
| image     = backslashes.png&lt;br /&gt;
| titletext = I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt &amp;amp;#124; grep -o &amp;quot;\\\[[(].*\\\[\])][^)\]]*$&amp;quot; ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Could use examples like the one posted in the comment. Also more on the title text expression. What could it have done? There is doubt in the comments if it is actually wrong, as currently expressed in the explanation. Is this &amp;quot;[^)\]&amp;quot; wrong because there is no &amp;quot;(&amp;quot; bracket to match it, or is it not part of the &amp;quot;real&amp;quot; text? If it was wrong would it have mattered if another &amp;quot;(&amp;quot; had been put in the right place?}}&lt;br /&gt;
&lt;br /&gt;
Most {{w|Formal language|formal languages}} use the concept of a {{w|String literal|string}, which is just a text between some delimiters, usually quotes. For example, &amp;quot;Hello, world&amp;quot; is a string. The text being represented is &amp;quot;Hello, world&amp;quot; without the quotes, however the quotes are also written to mark the beginning and end of the string. This is a problem when the text itself contains a quote, as in &amp;quot;This is a &amp;quot;quoted&amp;quot; string&amp;quot;. The quotes around the word &amp;quot;quoted&amp;quot; are intended to be part of the text, but the {{w|Lexical analysis|language processor}} will likely confuse it for the end of the string.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, an {{w|Escape character|escape character}} (usually a backslash) is prepended to non-string-terminating quotes. So, the previous text would be written as &amp;quot;This is a \&amp;quot;quoted\&amp;quot; string&amp;quot;. The language processor will substitute every occurrence of \&amp;quot; with only the quote character, and the string terminates at the quote character which does not immediately follow a backslash. However, the problem now is that the intended text might contain a backslash itself. For example, the text &amp;quot;C:\&amp;quot; will now be interpreted as an unterminated string containing a quote character. To avoid this, literal backslashes also are escaped with a second backslash, i.e. instead of &amp;quot;C:\&amp;quot; we write &amp;quot;C:\\&amp;quot;, where the language processor interprets \\ as one single backslash and the quote terminates the string.&lt;br /&gt;
&lt;br /&gt;
This doubling of backslashes happens in most programming and scripting languages, but also in other syntactic constructs such as {{w|Regular expression|regular expressions}}. So, when several of these languages are used in conjunction, backslashes pile up exponentially (each layer has to double the number of slashes). A reasonable example would be a {{w|PHP}} script in a web server which writes {{w|JavaScript}} code to be run in the client. If the JavaScript code has to output a smiley for scratching one's head (i.e. r:-\ ), it would look like this:&lt;br /&gt;
 document.write (\&amp;quot;r:-\\\\\&amp;quot;);&lt;br /&gt;
However, since this JavaScript code is to be written through a PHP script, the PHP code would be:&lt;br /&gt;
 echo &amp;quot;document.write (\&amp;quot;r:-\\\\\&amp;quot;);&amp;quot;;&lt;br /&gt;
where:&lt;br /&gt;
* The word &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; is the PHP command for writing something&lt;br /&gt;
* The first quote starts the string&lt;br /&gt;
* The document.write (including the open parenthesis) is written literally&lt;br /&gt;
* The \&amp;quot; following that is a literal quote to be written&lt;br /&gt;
* The r:- is written literally&lt;br /&gt;
* The first two slashes produce one single slash&lt;br /&gt;
* The next two slashes produce another single slash&lt;br /&gt;
* The next \&amp;quot; produces a literal quote character&lt;br /&gt;
* The close parenthesis and the semicolon are to be written literally&lt;br /&gt;
* The next quote finishes the string.&lt;br /&gt;
* The final semicolon terminates the echo command&lt;br /&gt;
&lt;br /&gt;
So, the presented scenario has escalated from a simple r:-\ smiley to no less than five backslashes in a row without stepping out of the most common operations. If we go a bit further and try to write a {{w|Java (programming language)|Java}} program that outputs our PHP script, we'd have:&lt;br /&gt;
 System.out.println (&amp;quot;echo \&amp;quot;document.write (\\\&amp;quot;r:-\\\\\\\\\\\&amp;quot;);\&amp;quot;;&amp;quot;;&lt;br /&gt;
Here, we have 11 backslashes in a row: the first 10 produce the 5 we need in our PHP script, and the last one is for escaping the quote character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{w|Regular expressions}} are often used to search large bodies of text for strings that match a particular pattern; this topic has previously been the subject in [[:Category:Regex|other comics]].&lt;br /&gt;
&lt;br /&gt;
Several characters in regular expressions are &amp;quot;{{w|special characters}}&amp;quot;, which by default do not match the literal character, but instead help define the pattern. To find a special character literally, you must &amp;quot;escape&amp;quot; it, by preceding it with a {{w|backslash}} (\). This, of course, means that the backslash is a special character, so to search for a literal backslash character, you need to type two '''backslashes''' -- \\ (hence the title).&lt;br /&gt;
&lt;br /&gt;
Occasionally, however, the text being searched will itself contain a regular expression. Or the regular expression must be embedded in another language like {{w|script Shell_(computing)|a shell script}} or {{w|Java (programming language)|Java}} that contains its own special characters. If you need to search for an escaped backslash in an embedded expression you will need to &amp;quot;escape&amp;quot; the escape by using two backslashes -- \\\\, one for the original backslash and one for the original escape character. This gets very silly, very quickly, which is the joke of the comic. This entry with four is dubbed: ''Actual backslash, for real this time'', as if &amp;quot;I really mean it this time&amp;quot;. Figuring out how many backslashes are needed to make the regular expression work through many layers is a source of unending frustration for programmers.&lt;br /&gt;
&lt;br /&gt;
The first three entries with 1-3 backslashes make sense: a &amp;quot;real backslash&amp;quot; is when the program is told to find one of these using two backslashes. And if you need to find such a double &amp;quot;real backslash&amp;quot; you would need a third, hence the first ''real'' is written in italic.&lt;br /&gt;
&lt;br /&gt;
Using 5-7 backslashes continues the trend, first with five a reference to {{w|Elder}} which has many meanings. It has become known through the {{w|Harry Potter}} universe with the {{w| Magical_objects_in_Harry_Potter#Deathly_Hallows|Elder wand}} made from {{w|Sambucus|Elder wood}}. The {{w|Elder Days}} is also the first Ages of Middle-earth in {{w|The Lord of the Rings}}. It is probably in reference to the {{w|Elder Gods}} of the Cthulhu Mythos.&lt;br /&gt;
&lt;br /&gt;
Using 6 backslashes will cause them to escape the computer and enter your brain and using 7 backslashes makes it ''so real it {{w|Transcendence (philosophy)|transcends}} {{w|Spacetime|time and space}}.''&lt;br /&gt;
&lt;br /&gt;
Things get even worse when you have to embed a regular expressions in a language like {{w|Java (programming language)|Java}}, which both lacks {{w|perl}}'s syntactic sugar to demarcate the beginning and end of a regular expressions, and uses the backslash for its own special characters. So, to create the regular expressions &amp;quot;\\\\&amp;quot; in Java, you'd have to use the string &amp;quot;\\\\\\\\&amp;quot;, since each backslash needs to be quoted to get through the Java string parser before it can then be considered as a regular expression. 8 backslashes is the second last entry: ''to end all other text.''&lt;br /&gt;
&lt;br /&gt;
The list gives names for all numbers of backslashes from 1 up to 8, but then the last entry has 11 slashes followed by &amp;quot;...&amp;quot; to indicate they continue forever. This is: ''The true name of {{w|Baal (demon)|Ba'al}}, the {{w|Soul eater (folklore)|Soul-Eater}}''. This indicates that if you continue misusing backslashes like this you will end up devoured by a demon, for instance {{w|Beelzebub}}, for being so thoughtless... Ba'al has been [[:Category:Ba'al|mentioned before]] in {{xkcd}}.&lt;br /&gt;
&lt;br /&gt;
It's unclear whether the regular expression in the title text is valid or not. A long discussion about the validity of the expression has occurred here on explainxkcd.com. The fact that many editors of the site, often themselves extremely technically qualified, can't determine whether the expression is valid or not adds a meta layer to the joke of the comic.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A list of the names of different numbers of backslashes. After each &amp;quot;item&amp;quot; there is a gray line to the text describing each item. As the text is aligned above each other, the lines becomes shorter as the sequence of backslashes becomes longer until there is just a line with the length of a single hyphen for the last item. There are 1 to 8 backslashes and then 11 plus &amp;quot;...&amp;quot; in the last entry.]&lt;br /&gt;
:\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------------&amp;lt;/font&amp;gt; Backslash&lt;br /&gt;
:\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-----------&amp;lt;/font&amp;gt; Real backslash&lt;br /&gt;
:\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; ''Real'' real backslash&lt;br /&gt;
:\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;----------&amp;lt;/font&amp;gt; Actual backslash, for real this time&lt;br /&gt;
:\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;---------&amp;lt;/font&amp;gt; Elder backslash&lt;br /&gt;
:\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;--------&amp;lt;/font&amp;gt; Backslash which escapes the screen and enters your brain&lt;br /&gt;
:\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-------&amp;lt;/font&amp;gt; Backslash so real it transcends time and space&lt;br /&gt;
:\\\\\\\\&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;------&amp;lt;/font&amp;gt; Backslash to end all other text&lt;br /&gt;
:\\\\\\\\\\\...&amp;lt;font color=&amp;quot;gray&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt; The true name of Ba'al, the Soul-Eater&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Regex]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110460</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110460"/>
				<updated>2016-02-02T13:14:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Removed repeated real fast typing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself. &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the features present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android.  There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack. This could be because:&lt;br /&gt;
* someone inserted an ad in the stack description. Some sites do insert ads in the middle of tables and lists, a typical case being between posts in forums.&lt;br /&gt;
* an ad is actually an integral part of the stack. Some sites make ads an integral part of the site content, so that users with ad blocking software will be forced to disable ad blocking to be able to properly interact with the site. Usually, in real life, this is not really a case of ads being part of the site, only that the site artificially refuses to work until it has some confirmation that ads have been properly loaded in the client side (by means of some script within the ads which sends the confirmation to the server).&lt;br /&gt;
* ad blocking software has misidentified that portion of the stack as an ad, when in fact it is not (i.e. a false positive). This happens in real life, and it is a common source of great pains for the owner of the site which is being misidentified as an ad.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real &amp;lt;nowiki&amp;gt;[sic]&amp;lt;/nowiki&amp;gt; fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]).  Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows XP. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version.&lt;br /&gt;
&lt;br /&gt;
* Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110459</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110459"/>
				<updated>2016-02-02T13:06:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Improved wording and structure. Hopefully&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself. &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the features present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android.  There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack. This could be because:&lt;br /&gt;
* someone inserted an ad in the stack description. Some sites do insert ads in the middle of tables and lists, a typical case being between posts in forums.&lt;br /&gt;
* an ad is actually an integral part of the stack. Some sites make ads an integral part of the site content, so that users with ad blocking software will be forced to disable ad blocking to be able to properly interact with the site. Usually, in real life, this is not really a case of ads being part of the site, only that the site artificially refuses to work until it has some confirmation that ads have been properly loaded in the client side (by means of some script within the ads which sends the confirmation to the server).&lt;br /&gt;
* ad blocking software has misidentified that portion of the stack as an ad, when in fact it is not (i.e. a false positive). This happens in real life, and it is a common source of great pains for the owner of the site which is being misidentified as an ad.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real &amp;lt;nowiki&amp;gt;[sic]&amp;lt;/nowiki&amp;gt; fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. Such a feat would require really &lt;br /&gt;
fast typing. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]).  Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows XP. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version.&lt;br /&gt;
&lt;br /&gt;
* Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110456</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110456"/>
				<updated>2016-02-02T12:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: things -&amp;gt; features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself. &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the features present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android.  There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack, or completely breaking it which happens to some websites which have integrated content false positively recognized as ads and blocked. Additionally, some websites insert advertisements in the middle of their lists and tables, so an AdBlocker would remove such advertisements, leaving a blank space in the middle of the table.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real &amp;lt;nowiki&amp;gt;[sic]&amp;lt;/nowiki&amp;gt; fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. Such a feat would require really &lt;br /&gt;
fast typing. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]).  Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows XP. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version.&lt;br /&gt;
&lt;br /&gt;
* Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110455</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110455"/>
				<updated>2016-02-02T12:45:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Link to end of NPAPI support in JRE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) [https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free announced] plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself. &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the things present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android.  There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack, or completely breaking it which happens to some websites which have integrated content false positively recognized as ads and blocked. Additionally, some websites insert advertisements in the middle of their lists and tables, so an AdBlocker would remove such advertisements, leaving a blank space in the middle of the table.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real &amp;lt;nowiki&amp;gt;[sic]&amp;lt;/nowiki&amp;gt; fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. Such a feat would require really &lt;br /&gt;
fast typing. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]).  Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows XP. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version.&lt;br /&gt;
&lt;br /&gt;
* Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110377</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110377"/>
				<updated>2016-02-01T11:20:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail. The table is great but should be corrected to not refer to a person's view or feelings. ''I think'' phrases are used more than once at the moment.}}&lt;br /&gt;
&lt;br /&gt;
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 {{w|LAMP (software bundle)|LAMP}}, composed of a {{w|Linux}} {{w|Operating system|operating system}}, an {{w|Apache HTTP Server|Apache}} {{w|Web server}}, a {{w|MySQL}} {{w|Database}}, and the {{w|PHP}} programming language. In this comic, the XKCD stack is introduced. The technologies comprising it are either non-existent, unreliable, or outdated. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases. [[1343: Manuals]] mentionned EBNF.&lt;br /&gt;
&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
In recent years it has become more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, {{w|Mozilla Firefox|Firefox}} will drop support by 2016, and {{w|Microsoft Edge|Edge}} does not support NPAPI plugins at all. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) announced plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Internet Archive|Archive.org}} is a website which archives websites, and created the {{w|Wayback Machine}}. It's ambiguous whether the &amp;quot;Archive.org mirror&amp;quot; would be a copy of the xkcd server or of Archive.org itself. &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}. {{w|BASIC}} is a programming language that was very widespread during the 80s. QBasic is an implementation of BASIC created by Microsoft in early 90s, that, among other things, added support for {{w|structured programming}}. QBasic, lacking several of the things present on modern computer languages, is known for its spaghetti code. {{w|Ruby (programming language)|Ruby}} is a rather modern language, often used with Ruby on Rails web application {{w|Software framework |framework}}. QBasic on Rails would likely mean a port of Ruby on Rails, replacing Ruby with QBasic. QBasic no longer runs on modern computers, however there are a couple of free {{w|open source}} implementation of QBasic, one being [http://www.qb64.net/ QB64] and the other [http://www.freebasic.net/ FreeBASIC], which are available for Windows, Linux, Mac, and Android.  There also exists a webserver on BASIC called [http://www.runbasic.com/ RunBasic].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like. The joke is that AdBlocker is preventing us from seeing what makes up this portion of the stack. Additionally, some websites insert advertisements in the middle of their lists and tables, so an AdBlocker would remove such advertisements, leaving a blank space in the middle of the table.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|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 ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary of {{w|full virtualization}}, on which the guest operating system does not require to do anything special and the host handles everything.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real &amp;lt;nowiki&amp;gt;[sic]&amp;lt;/nowiki&amp;gt; fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. Such a feat would require really &lt;br /&gt;
fast typing. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing 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 ([[1172: Workflow]]).  Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the &amp;quot;older version&amp;quot; software Microsoft DOS until Windows XP. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
Randall suggests here that the whole networking stuff behind the XKCD service is both mysterious (no one actually knows the details) and horrific (technically questionable architecture and implementation, or somehow tentacled and eldritch in nature).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same. Macromedia was the company that developed Flash before it was bought by Adobe. Both Flash and Java were popular in the early WWW to have interactive web pages, but both are being deprecated in favor of JavaScript.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themselves updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors including the {{w|x86-64|most common ones}} don't actually &amp;lt;b&amp;gt;use&amp;lt;/b&amp;gt; all 64 bits everywhere, ignoring some bits so actual virtual or physical memory is smaller (in the case of the most common ones, 48bits virtual and 40bits physical), they simulate a full 64-bit environment to allow adding more bits later, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating from 7.3.8.1¾ to 6.0.0.1 and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required. Considering that 7.3.8.1¾ is bigger number than 6.0.0.1, it can also refer to the fact that the test for upgrading is incorrect and 7.3.8.1¾ is actually newer version.&lt;br /&gt;
&lt;br /&gt;
* Sixth, Macromedia was a multimedia software company in the 90s that originally developed Flash, a popular plug-in similar to Java. Adobe purchased Macromedia in 2005.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110236</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110236"/>
				<updated>2016-01-29T13:31:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added some links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail.}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases.&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
Recent years it became more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. Since {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, it's no longer possible to run Java applets on Chrome. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) announced plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
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. There exists a webserver on BASIC called [https://runbasic.wikispaces.com/WebServer RunBasic]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
{{w|MongoDB}} is a modern {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|Debugging|debugging}}, which consists in finding and fixing {{w|Software bug|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. Paravirtual is recent buzzword in virtualization community these days. &amp;quot;Virtual X&amp;quot; means simulated X. &amp;quot;Paravirtual X&amp;quot; means X is simulated, but is aware of simulation and cooperating, for faster performance. I hope the triply-nested Docker above runs paravirtualized.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
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).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Microsoft Bob}} was a short-lived, failed attempt by Microsoft, around 1995, to provide a user-friendly interface for the {{w|Microsoft Windows|Windows}} 3.1x, Windows 95 and Windows NT operating systems. It consisted of a virtual &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant {{w|Central processing unit|CPU}} someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as {{w|Sun Microsystems|Sun}} Java and {{w|Macromedia}} Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;{{w|Oracle Corporation|Oracle}} Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in {{w|MS-DOS}} 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themself updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The {{w|Intel 80386}} processor used an architecture known as {{w|IA-32}}, which implies the data bus is 32-bit wide and thus able to handle up to 4{{w|Gibibyte|GiB}} of {{w|Random-access memory|RAM}} memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment, or JRE) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors implement only 40 or 48 bits and require programs to not use the other, they simulate a 64-bit environment to ease migration to 64-bit architectures, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the [http://java.com/ java.com site], not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating 6.0.0.1 to 7.3.8.1¾ and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior, and/or may still be told that an update is required.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110233</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110233"/>
				<updated>2016-01-29T12:54:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail.}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases.&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
Recent years it became more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. Since {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, it's no longer possible to run Java applets on Chrome. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) announced plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
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. There exists a webserver on BASIC called [https://runbasic.wikispaces.com/WebServer RunBasic]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB is modern database, Excel is a spreadsheet program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|Debugging|debugging}}, which consists in finding and fixing {{w|Software bug|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. Paravirtual is recent buzzword in virtualization community these days. &amp;quot;Virtual X&amp;quot; means simulated X. &amp;quot;Paravirtual X&amp;quot; means X is simulated, but is aware of simulation and cooperating, for faster performance. I hope the triply-nested Docker above runs paravirtualized.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
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).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
[https://en.wikipedia.org/wiki/Microsoft_Bob 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 &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as Sun Java and Macromedia Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;Oracle Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in MS-DOS 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themself updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The Intel 80386 processor used an architecture known as IA-32, which implies the data bus is 32-bit wide and thus able to handle up to 4GiB of RAM memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors implement only 40 or 48 bits and require programs to not use the other, they simulate a 64-bit environment to ease migration to 64-bit architectures, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the java.com site, not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
* Fifth, and continuing with the joke of users updating 6.0.0.1 to 7.3.8.1¾ and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110232</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110232"/>
				<updated>2016-01-29T12:51:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Moved title text explanation to the bottom and expanded a lot. Needs lots of links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail.}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases.&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
Recent years it became more difficult to run {{w|Java (programming language)|Java}} {{w|Applet|applets}} in several browsers. Since {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, it's no longer possible to run Java applets on Chrome. Furthermore, two days before this comic was published {{w|Oracle Corporation|Oracle}} (the developer of Java) announced plans to officially end support of Java applets in an upcoming version.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
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. There exists a webserver on BASIC called [https://runbasic.wikispaces.com/WebServer RunBasic]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB is modern database, Excel is a spreadsheet program from Microsoft, which is sometimes misused as a database system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|Debugging|debugging}}, which consists in finding and fixing {{w|Software bug|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. Paravirtual is recent buzzword in virtualization community these days. &amp;quot;Virtual X&amp;quot; means simulated X. &amp;quot;Paravirtual X&amp;quot; means X is simulated, but is aware of simulation and cooperating, for faster performance. I hope the triply-nested Docker above runs paravirtualized.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|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.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
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).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
[https://en.wikipedia.org/wiki/Microsoft_Bob 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 &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|Minecraft}} is a popular sandbox 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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title text contains several jokes about the Java programming language:&lt;br /&gt;
&lt;br /&gt;
* First, it refers to Java both as Sun Java and Macromedia Java. This is a pun on the fact that older documents refer to &amp;quot;Sun Java&amp;quot; where newer documents refer to &amp;quot;Oracle Java&amp;quot;, as if there were two different languages. The fact is that Java was designed originally by Sun and then bought by Oracle, so it &amp;quot;changed name&amp;quot; even though the language is the same.&lt;br /&gt;
&lt;br /&gt;
* Second, the version numbers: older software products used to have two version numbers: major and minor (e.g. in MS-DOS 6.22 the major number is 6 and the minor is 22). Newer products tend to have hundreds of minor revisions, all of them numbered, so a typical user may well find themself updating version 6.0.0.1 to 7.3.8.1 without knowing at all the differences between both versions or which other versions are in between. The ¾ in the Macromedia Java version is a joke on complex version numbers, which (so far) have never included fractions.&lt;br /&gt;
&lt;br /&gt;
* Third, the 32-bit or 48-bit version: The Intel 80386 processor used an architecture known as IA-32, which implies the data bus is 32-bit wide and thus able to handle up to 4GiB of RAM memory. This was plenty for the early 1990s, when a typical home PC would have about 8MiB (this is 512 times less than 4GiB). However, about 10 years after that, a typical home PC could well use more than 4GiB of RAM, so several 64-bit architectures were created. These architectures are not compatible, so programs (including the Java Runtime Environment) often have 32-bit and 64-bit versions. Furthermore, the JRE is heavily used by many web browsers, and for this to work the JRE and browser need to be the same &amp;quot;number of bits&amp;quot;. This means that most people have installed both versions of the JRE to be able to use it with both 32-bit and 64-bit browsers. There's no 48-bit architecture (though some 64-bit processors implement&lt;br /&gt;
only 40 or 48 bits and require programs to not use the other, they simulate a 64-bit environment to ease migration to 64-bit architectures, so there are no specific 48-bit applications).&lt;br /&gt;
&lt;br /&gt;
* Fourth, an application trying to let the user install a new version of the JRE should direct the user to the download page in the java.com site, not to the main page which deals with lots of issues with java and is not particularly helpful when trying to update the JRE.&lt;br /&gt;
&lt;br /&gt;
- Fifth, and continuing with the joke of users updating 6.0.0.1 to 7.3.8.1¾ and not knowing why they should, the new version is said to &amp;quot;run fine but not really change anything&amp;quot;. This is the usual behavior for Java updates: they run fine (possibly in opposition to [[1197: All Adobe Updates]], where updating must be done several times and the user is never sure they have installed all the newest updates), but after finished updating the user can't see any difference with the previous behavior.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110217</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110217"/>
				<updated>2016-01-29T09:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: More stuff to the table.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail.}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|context-free grammars}}.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases.&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
Recent years it became more difficult to run {{w|Java (programming language)|java}} {{w|Applet|applets}} in several browsers. Since {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, it's no longer possible to run java applets on Chrome.  &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|Debugging|debugging}}, which consists in finding and fixing {{w|Software bug|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. Such a feat would require real fast typing.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
[https://en.wikipedia.org/wiki/Microsoft_Bob 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 &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;, 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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Introducing&lt;br /&gt;
&lt;br /&gt;
:The XKCD Stack&lt;br /&gt;
:{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computers]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Video games]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110203</id>
		<title>1636: XKCD Stack</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1636:_XKCD_Stack&amp;diff=110203"/>
				<updated>2016-01-29T08:35:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added basic explanations for some layers. More needed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1636&lt;br /&gt;
| date      = January 29, 2016&lt;br /&gt;
| title     = XKCD Stack&lt;br /&gt;
| image     = xkcd_stack.png&lt;br /&gt;
| titletext = 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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Needs more detail.}}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Explanation of steps===&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Layer&amp;lt;/b&amp;gt;&lt;br /&gt;
|   | &amp;lt;b &amp;gt;Explanation&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|   |&lt;br /&gt;
BNF or {{w|Backus–Naur Form}} is a syntax used for describing {{w|Regular expression|regular expressions}}, often abbreviated &amp;quot;regex&amp;quot;.&lt;br /&gt;
{{w|Extended Backus–Naur Form|EBNF}} is &amp;quot;Extended BNF&amp;quot;, it is the same thing as BNF with a few more syntactic constructs intended to ease its use in the most common cases.&lt;br /&gt;
CSS or {{w|Cascading Style Sheets}} are a language used to describe what a web page should look like. Web pages are usually written in {{w|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.).&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|   |&lt;br /&gt;
Recent years it became more difficult to run {{w|Java (programming language)|java}} {{w|Applet|applets}} in several browsers. Since {{w|Google Chrome|Chrome}} 45 stopped supporting {{w|NPAPI}}, it's no longer possible to run java applets on Chrome.  &lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|   |&lt;br /&gt;
{{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&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|   |&lt;br /&gt;
A mix between {{w|QBasic}} and {{w|Ruby on Rails}}.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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 &amp;quot;browsing without adblock&amp;quot; looks like.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|   |&lt;br /&gt;
Writing any non-trivial piece of software always require a phase of {{w|Debugging|debugging}}, which consists in finding and fixing {{w|Software bug|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.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|   |&lt;br /&gt;
This is a reference to the Virtual Boy, a failed portable console created by Nintendo.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|   |&lt;br /&gt;
A dev is a {{w|Software developer|software developer}}. This is possibly a reference to the [[:Category:1337|1337]] series, i.e. comics 341 to 345.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|   |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|   |&lt;br /&gt;
[https://en.wikipedia.org/wiki/Microsoft_Bob 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 &amp;quot;house&amp;quot; and &amp;quot;rooms&amp;quot;. Randall seems to be making the suggestion the Bob has continued to be developed and now there's a Bob Server.&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|   |&lt;br /&gt;
{{w|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
Introducing&lt;br /&gt;
&lt;br /&gt;
The XKCD Stack&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|   |&lt;br /&gt;
EBNF/CSS&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Broken Java Applet&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Archive.org Mirror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Hypercard.js&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
QBasic on Rails&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
[Blocked by AdBlocker]&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
MongoDB/Excel&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Some piece that works so nobody asks any questions&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Triply-Nested Docker&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Paravirtual Boy®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A dev typing real fast&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Older version of our software&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Mystery Networking Horror&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
Microsoft Bob Server®&lt;br /&gt;
|-&lt;br /&gt;
|   |&lt;br /&gt;
A giant CPU someone built in Minecraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1019:_First_Post&amp;diff=109509</id>
		<title>1019: First Post</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1019:_First_Post&amp;diff=109509"/>
				<updated>2016-01-19T23:17:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added reference to 937&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1019&lt;br /&gt;
| date      = February 20, 2012&lt;br /&gt;
| title     = First Post&lt;br /&gt;
| image     = first_post.png&lt;br /&gt;
| titletext = 'Nuh-uh! We let users vote on comments and display them by number of votes. Everyone knows that makes it impossible for a few persistent voices to dominate the discussion.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Many news websites allow users to post comments on an article. The intention is that users can debate the stance(s) or implication(s) made by the article. On most sites, comments are displayed in chronological order. This puts the oldest comments at the top and newest at the bottom.&lt;br /&gt;
&lt;br /&gt;
There are many pitfalls to allowing comments, but this comic refers to one in particular: most users are too busy to read more than just the top few comments. Therefore, if you were able to control the content of those comments, your opinions would be the ones that the majority of users read. If you pay people to do nothing but read the site, you ensure that they will be the first ones to see the article and that their comments (that you pay them to write) will be at the top of the page. In this scenario, the comments being posted appear to convey a particular political belief. The advantage of this is, according to [[Randall]], that it would be much cheaper to employ a college student to perform that task than pay a website for an advertisement. Also, the fact that it is a comment posted by another reader would make it seem as though the opinion was coming from the general population and not a politician or company, as an advertisement would imply. And $20/hour is significantly higher than the {{w|minimum wage}}, so you'd have no trouble finding willing participants among college students (who are often broke).&lt;br /&gt;
&lt;br /&gt;
This comic is a continuation of [[937: TornadoGuard]] which stated &amp;quot;the problem with star ratings&amp;quot;. Apparently, every possible comment ordering policy has its own problems.&lt;br /&gt;
&lt;br /&gt;
The title text refers to {{w|Reddit|Reddit's}} {{w|conversation threading}} system which allows users to vote comments up or down and then sorts them by the resulting &amp;quot;karma score&amp;quot; (total up-votes minus total down-votes). The same problem persists to some extent: after a few comments are posted and some votes are cast, the handful of comments having received the highest scores among the first dozen of so will receive far better chances at being seen and voted on than comments posted later, and will solidify their places in a positive {{w|Feedback|feedback}} loop. In this way, a few persistent voices can still dominate the discussion, contrary to the claim in the title text, thus creating irony.&lt;br /&gt;
&lt;br /&gt;
The comic's title refers to a once-common form of online posturing where the first user to see the article will comment &amp;quot;First post&amp;quot; or even just &amp;quot;First&amp;quot;. The intent is that everyone else see that they were there first and, therefore, must be somehow better than you. This is referred to in both [[269: TCMP]] and [[1258: First]].&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A bar graph with two bars. The first bar is much taller than the second. It is marked '$1,500,000', and below the x-axis, is labelled &amp;quot;Cost to buy an ad on every story on a major news site every day until the election. The second bar is much shorter, marked &amp;quot;$200,000', and labelled &amp;quot;Cost to pay five college students $20/hour to camp the site 24/7 and post the first few comments the moment a story goes up, giving you the last word in every article and creating an impression of peer consensus.]&lt;br /&gt;
:The problem with posting comments in the order they're submitted.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Charts]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1599:_Water_Delivery&amp;diff=104563</id>
		<title>Talk:1599: Water Delivery</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1599:_Water_Delivery&amp;diff=104563"/>
				<updated>2015-11-05T09:14:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I...dont get it {{unsigned ip|108.162.228.179}}&lt;br /&gt;
: I suspect this is another of &amp;quot;hey, why we are even bothering with bottled water when we have water pipes&amp;quot; ... -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 13:05, 4 November 2015 (UTC)&lt;br /&gt;
Yeah, i'm suspecting that this means that &amp;quot;we've always had 1 hr. water delivery, in the form of modern plumbing. it's pretty similar to https://xkcd.com/1367/ in which (amazon) is reinventing something that already exists. Also advertising is spelled wrong, but that's just a typo perhaps. {{unsigned ip|108.162.216.5}}&lt;br /&gt;
:Sounds about right. And isn't Advertizing the the American way of spelling it? https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences [[Special:Contributions/108.162.249.162|108.162.249.162]] 14:25, 4 November 2015 (UTC)&lt;br /&gt;
::Yes, it is. [[User:Azule|Azule]] ([[User talk:Azule|talk]]) 14:49, 4 November 2015 (UTC)&lt;br /&gt;
:::''Criminalizing'' means ''making criminal'' and if the word ''advertizing'' existed it would mean ''making an advert''. The correct spelling in American English is ''advertising,'' (telling the public about a product)) and the original comic is corrected. [[Special:Contributions/108.162.221.17|108.162.221.17]] 16:54, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I wish the illustration had showed the bottles transition from vertical to horizontal, then merge together to form the pipe.  - - EazyEpete {{unsigned|EazyEpete}}&lt;br /&gt;
:That would have been better. ☺ [[User:Azule|Azule]] ([[User talk:Azule|talk]]) 14:49, 4 November 2015 (UTC)&lt;br /&gt;
::But less practical, as the point is to add more water, and end-to-end would represent less water-per-meter than side-by-side. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 22:15, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Global transition to HDPE (Polyethylene) pipes and plumbing can be related to the subject. {{unsigned ip|162.158.180.137}}&lt;br /&gt;
&lt;br /&gt;
This would make sense if water was simply water.   However, the water in my pipes at home tastes terrible and rapidly coats my plumbing with lime deposits.   My favorite local restaurant serves the same water...I pay for bottled instead.   In the nearby small city, though, the tap water tastes fine.   Similarly, I spend a couple months every year at a location in Texas where I don't even feel clean after showering with their tap water because it is so &amp;quot;soft&amp;quot; and I've considered buying bottled water and using a solar shower.   In the store  you'll find not only different brands, but different types; spring water, distilled water, etc; just because you have a source for one type of water does not mean all other types of water are invalid. {{unsigned|Swordsmith}}&lt;br /&gt;
:Certainly water isn't just water; there are lots of factors that go into what water tastes like, does to what it comes in contact with, and contains both as good and bad substances -- just like when you go to a paint store and ask for white or black, and find out there are 20 varieties of what we think of as a simple color (or lack of).  But we still just call water water regardless of what (liquid) form it takes, and we call white white even when it's just very slightly off, so in those theoretical terms the comic makes perfect sense. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 22:15, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Possible reference to https://xkcd.com/1165/ ?  The one panel looks like a river to me. [[User:Mikemk|Mikemk]] ([[User talk:Mikemk|talk]]) 15:39, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't want to dive back into my own explanation again to make yet another minor edit, especially if I'm going to cause anyone an edit conflict on a far better addition/change/overhaul.  ...but if anyone wants to take the &amp;quot;(cars and buses and planes)&amp;quot; aside and add &amp;quot;trains&amp;quot; in there as well, as examples of discrete passenger units?  If it remains there.  For some reason I missed the thing ''closest'' to the eventual hyperloop concept... ''edit: Also, I meant to say &amp;quot;'''prompt''' home-order goods&amp;quot;, but seemed to have forgotten to type it!'' (Also, I didn't bother explaining the Titletext.  Someone should try that. Although I'm not sure Amazon ''is'' thinking the same, except through the same '(il)logical extrapolation', vis-a-vis water delivery.) [[Special:Contributions/141.101.106.161|141.101.106.161]] 15:42, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I believe people are overlooking the 1 hour part of this comic. Amazon has been shipping water for a long time (citation needed). The 1 hour aspect is what makes it closer to a pipe now. You're basically using an on-demand system to request the water in 1 hour and it's being delivered like a tap. This also plays into the title text in that Amazon is ultimately striving to make &amp;quot;real time&amp;quot; deliveries of everything, so a toothpaste pipe is closer to reality now if you define pipe in the same way the comic implies.&lt;br /&gt;
[[User:RTPGiants|RTPGiants]] ([[User talk:RTPGiants|talk]]) 17:24, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Slight bug in the editing panel, when asked what webcomic we're talking about, it cannot be in all caps, it must be strict lowercase, despite appearances on xkcd.com. Could someone take a look at it? [[Special:Contributions/108.162.249.158|108.162.249.158]] 00:54, 5 November 2015 (UTC)&lt;br /&gt;
:It took me several months to figure out that &amp;quot;this wiki&amp;quot; is named &amp;quot;explain xkcd&amp;quot; and not &amp;quot;explainxkcd&amp;quot;. I spent those months answering two questions every time the &amp;quot;what's this wiki's name&amp;quot; question appeared (when I missed the answer, a different question appeared).--[[User:Jojonete|Jojonete]] ([[User talk:Jojonete|talk]]) 09:06, 5 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
By the way, how about setting up a service like Amazon's, having someone come to your door with an empty bottle, filling it from your tap, and charging the customer for quick water delivery?--[[User:Jojonete|Jojonete]] ([[User talk:Jojonete|talk]]) 09:14, 5 November 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1599:_Water_Delivery&amp;diff=104562</id>
		<title>Talk:1599: Water Delivery</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1599:_Water_Delivery&amp;diff=104562"/>
				<updated>2015-11-05T09:06:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I...dont get it {{unsigned ip|108.162.228.179}}&lt;br /&gt;
: I suspect this is another of &amp;quot;hey, why we are even bothering with bottled water when we have water pipes&amp;quot; ... -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 13:05, 4 November 2015 (UTC)&lt;br /&gt;
Yeah, i'm suspecting that this means that &amp;quot;we've always had 1 hr. water delivery, in the form of modern plumbing. it's pretty similar to https://xkcd.com/1367/ in which (amazon) is reinventing something that already exists. Also advertising is spelled wrong, but that's just a typo perhaps. {{unsigned ip|108.162.216.5}}&lt;br /&gt;
:Sounds about right. And isn't Advertizing the the American way of spelling it? https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences [[Special:Contributions/108.162.249.162|108.162.249.162]] 14:25, 4 November 2015 (UTC)&lt;br /&gt;
::Yes, it is. [[User:Azule|Azule]] ([[User talk:Azule|talk]]) 14:49, 4 November 2015 (UTC)&lt;br /&gt;
:::''Criminalizing'' means ''making criminal'' and if the word ''advertizing'' existed it would mean ''making an advert''. The correct spelling in American English is ''advertising,'' (telling the public about a product)) and the original comic is corrected. [[Special:Contributions/108.162.221.17|108.162.221.17]] 16:54, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I wish the illustration had showed the bottles transition from vertical to horizontal, then merge together to form the pipe.  - - EazyEpete {{unsigned|EazyEpete}}&lt;br /&gt;
:That would have been better. ☺ [[User:Azule|Azule]] ([[User talk:Azule|talk]]) 14:49, 4 November 2015 (UTC)&lt;br /&gt;
::But less practical, as the point is to add more water, and end-to-end would represent less water-per-meter than side-by-side. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 22:15, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Global transition to HDPE (Polyethylene) pipes and plumbing can be related to the subject. {{unsigned ip|162.158.180.137}}&lt;br /&gt;
&lt;br /&gt;
This would make sense if water was simply water.   However, the water in my pipes at home tastes terrible and rapidly coats my plumbing with lime deposits.   My favorite local restaurant serves the same water...I pay for bottled instead.   In the nearby small city, though, the tap water tastes fine.   Similarly, I spend a couple months every year at a location in Texas where I don't even feel clean after showering with their tap water because it is so &amp;quot;soft&amp;quot; and I've considered buying bottled water and using a solar shower.   In the store  you'll find not only different brands, but different types; spring water, distilled water, etc; just because you have a source for one type of water does not mean all other types of water are invalid. {{unsigned|Swordsmith}}&lt;br /&gt;
:Certainly water isn't just water; there are lots of factors that go into what water tastes like, does to what it comes in contact with, and contains both as good and bad substances -- just like when you go to a paint store and ask for white or black, and find out there are 20 varieties of what we think of as a simple color (or lack of).  But we still just call water water regardless of what (liquid) form it takes, and we call white white even when it's just very slightly off, so in those theoretical terms the comic makes perfect sense. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 22:15, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Possible reference to https://xkcd.com/1165/ ?  The one panel looks like a river to me. [[User:Mikemk|Mikemk]] ([[User talk:Mikemk|talk]]) 15:39, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't want to dive back into my own explanation again to make yet another minor edit, especially if I'm going to cause anyone an edit conflict on a far better addition/change/overhaul.  ...but if anyone wants to take the &amp;quot;(cars and buses and planes)&amp;quot; aside and add &amp;quot;trains&amp;quot; in there as well, as examples of discrete passenger units?  If it remains there.  For some reason I missed the thing ''closest'' to the eventual hyperloop concept... ''edit: Also, I meant to say &amp;quot;'''prompt''' home-order goods&amp;quot;, but seemed to have forgotten to type it!'' (Also, I didn't bother explaining the Titletext.  Someone should try that. Although I'm not sure Amazon ''is'' thinking the same, except through the same '(il)logical extrapolation', vis-a-vis water delivery.) [[Special:Contributions/141.101.106.161|141.101.106.161]] 15:42, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I believe people are overlooking the 1 hour part of this comic. Amazon has been shipping water for a long time (citation needed). The 1 hour aspect is what makes it closer to a pipe now. You're basically using an on-demand system to request the water in 1 hour and it's being delivered like a tap. This also plays into the title text in that Amazon is ultimately striving to make &amp;quot;real time&amp;quot; deliveries of everything, so a toothpaste pipe is closer to reality now if you define pipe in the same way the comic implies.&lt;br /&gt;
[[User:RTPGiants|RTPGiants]] ([[User talk:RTPGiants|talk]]) 17:24, 4 November 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Slight bug in the editing panel, when asked what webcomic we're talking about, it cannot be in all caps, it must be strict lowercase, despite appearances on xkcd.com. Could someone take a look at it? [[Special:Contributions/108.162.249.158|108.162.249.158]] 00:54, 5 November 2015 (UTC)&lt;br /&gt;
:It took me several months to figure out that &amp;quot;this wiki&amp;quot; is named &amp;quot;explain xkcd&amp;quot; and not &amp;quot;explainxkcd&amp;quot;. I spent those months answering two questions every time the &amp;quot;what's this wiki's name&amp;quot; question appeared (when I missed the answer, a different question appeared).--[[User:Jojonete|Jojonete]] ([[User talk:Jojonete|talk]]) 09:06, 5 November 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=202:_YouTube&amp;diff=104540</id>
		<title>202: YouTube</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=202:_YouTube&amp;diff=104540"/>
				<updated>2015-11-04T23:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added Buzz Aldrin link, missed it in previous edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 202&lt;br /&gt;
| date      = December 27, 2006&lt;br /&gt;
| title     = YouTube&lt;br /&gt;
| image     = youtube.png&lt;br /&gt;
| titletext = I pray GunPistolMan never learns the word 'sheeple'.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
This comic is pointing out the fact that many of the comments on {{w|YouTube}} videos are insipid and poorly informed, being pointless arguments over some minor topic, or factually incorrect position. In this case, the {{w|Moon landing conspiracy theories|Moon landing hoaxers}} are at the receiving end of [[Randall]]'s pen.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''Rocckir'' just states that the video is obviously fake, with no evidence or explanation.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''BigMike133'' confuses the {{w|Space Shuttle}} (which was never capable of landing on the Moon) with the {{w|Apollo Lunar Module}}.&lt;br /&gt;
&lt;br /&gt;
* The comment from ''GunPistolMan'' claims that the video is fake due to the mistaken belief that the Moon would have no {{w|Gravity|gravity}}, whereas in reality every object in the universe made of matter has gravity, including the Moon, {{w|Comet|comets}}, {{w|Asteroid|asteroids}}, {{w|Natural satellite|moons of other planets}} and so on. The gravity of the Moon is approximately 1/6th the gravity of {{w|Earth}}.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''CrackMonkey74'' names {{w|Louis Armstrong}}, a famous jazz musician, who may have [http://lyrics.wikia.com/Louis_Armstrong:Moon_Song waxed] [http://www.youtube.com/watch?v=A5x8HnyIYHE lyrical] about the moon, but never went there. The ill-informed commenter actually means {{w|Neil Armstrong}}, who was the first person to walk on the Moon. The dare to accuse Armstrong to his face may be a reference to an incident where moon-hoax conspiracy theorist {{w|Bart Sibrel}} confronted {{w|Buzz Aldrin}} and called him &amp;quot;a coward, and a liar, and a thief&amp;quot;. Aldrin responded by punching Sibrel; Sibrel's attempt to bring charges was dismissed on the grounds that he had provoked Aldrin to the point where the punch was a justified response.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''SimplePlan2009'' presents the ludicrous position that the Moon shot was faked by suggesting that the footage was filmed by actors on {{w|Mars}}, a planet that at its closest approach to Earth is over a hundred times farther away than the Moon. Landing humans on Mars (much less landing enough people and equipment to set up a soundstage) is a feat that has still not been accomplished{{Citation needed}}, and if it had been possible during the Apollo era, the landing on the Moon would have been a trivial task in comparison. In other words, why go through all the trouble of faking it, if doing it for real would have been no trouble at all?&lt;br /&gt;
&lt;br /&gt;
This comic was published in December 2006. In July 2009, [https://www.youtube.com/watch?v=Vml7pZJujF0 a restored video] showing Neil Armstrong's first moonwalk was uploaded to Youtube. User Michael Huang copied to that video's comments section all the sentences in this comic. Then, after some other users took some of his comments seriously, he later added another comment stating &amp;quot;This entire comment chain is from the famous webcomic, xkcd&amp;quot;. The comments are copied verbatim, including typos and grammar errors. The only mistake is in the first comment: Michael Huang included only one question mark when the comic has three of them.&lt;br /&gt;
&lt;br /&gt;
The title text is the first reference to [[:Category:Sheeple|Sheeple]] which appeared a few more times in xkcd comics. The reputation of YouTube comment threads as cesspools of abject stupidity and blatant trolling is revisited in [[301: Limerick]] and [[481: Listen to Yourself]]. The username CrackMonkey74 appears again in [[406: Venting]] and [[574: Swine Flu]]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:The Internet has always had loud dumb people, but I've never seen anything quite as bad as the people who comment on YouTube videos.&lt;br /&gt;
:[A YouTube comments page for a moon landing video.]&lt;br /&gt;
:Comments &amp;amp; Responses&lt;br /&gt;
:rocckir (48 minutes ago)&lt;br /&gt;
:this is so obviously faked its unbilevable, why r people so gullible??? morons&lt;br /&gt;
:bigmike133 (35 minutes ago)&lt;br /&gt;
:ive seen the space shuttle ass hole it definetly landed on the moon do some research...&lt;br /&gt;
:GunPistolMan (22 minutes ago)&lt;br /&gt;
:if it was real why is their gravity? americans r fucken sheep&lt;br /&gt;
:crackmonkey74 (17 minutes ago)&lt;br /&gt;
:u dont think we went to the moon why not tell louis armstrong to his face&lt;br /&gt;
:simpleplan2009 (5 minutes ago)&lt;br /&gt;
:it was a soundstage on mars&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:YouTube]]&lt;br /&gt;
[[Category:Internet]]&lt;br /&gt;
[[Category:Sheeple]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:202:_YouTube&amp;diff=104539</id>
		<title>Talk:202: YouTube</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:202:_YouTube&amp;diff=104539"/>
				<updated>2015-11-04T23:29:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the transcript, it says simpleplan2009's comment was posted 3 minutes ago. However, in the image, it clearly says 5 minutes. [[User:Caagr98|Caagr98]] ([[User talk:Caagr98|talk]]) 19:01, 17 April 2013 (UTC)&lt;br /&gt;
:I agree. In theory a 3 and a 5 could be hand-written to be hard to differentiate, but here it is clear. Changed. (And added the first line.) [[User:Markhurd|Mark Hurd]] ([[User talk:Markhurd|talk]]) 10:56, 19 April 2013 (UTC)&lt;br /&gt;
::Changed it back, as the actual transcript on the comic page (as seen in the webpage source, and upon which the comic searches are based) says &amp;quot;3&amp;quot;. I've added the reasoning in the explanation. [[User:NixillUmbreon|NixillUmbreon]] ([[User talk:NixillUmbreon|talk]]) 15:31, 20 January 2014 (UTC)&lt;br /&gt;
:::The image is the first source for the transcript here. Randall's transcript simply doesn't match the image.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 22:11, 20 January 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
On Gunpistolman's comment, is [http://www.phys.ufl.edu/~det/phy2060/heavyboots.html the heavy boots story] worth a mention?  [[User:B jonas|B jonas]] ([[User talk:B jonas|talk]]) 16:31, 1 November 2013 (UTC)&lt;br /&gt;
:Not needing a mention in the explanation, but thank you for the link.  Richard Feynman would be glowing in his grave at the state of science education in this country. {{unsigned ip|108.162.219.223}}&lt;br /&gt;
&lt;br /&gt;
The British sketch comedy TV show ''That Mitchell and Webb Look'' has an excellent [https://www.youtube.com/watch?v=P6MOnehCOUw Moon Landing Sketch] with similar humor to this joke. [[User:Beolach|Beolach]] ([[User talk:Beolach|talk]]) 22:18, 31 March 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that it's possible the video is the Astronaut music video by Simple Plan.  Led to believe it by the username simpleplan2009 {{unsigned ip|108.162.216.124}}&lt;br /&gt;
&lt;br /&gt;
American sheep are very offended by this. if sheep could read. --[[User:Dalonacueball|Dalonacueball]] ([[User talk:Dalonacueball|talk]]) 17:27, 24 March 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
All of the comments in the comic are actual YouTube comments, taken from the video https://www.youtube.com/watch?v=Vml7pZJujF0 (although the usernames were changed, presumably to protect the stupid). Should that be mentioned in the description? [[User:HiddenWindshield|HiddenWindshield]] ([[User talk:HiddenWindshield|talk]]) 20:44, 19 July 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Might the last comment be in reference to the SMBC comic http://www.smbc-comics.com/index.php?id=120 (which came out a few years before this xkcd)? [[Special:Contributions/108.162.215.104|108.162.215.104]] 20:44, 23 October 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
The comic did not copy the YouTube video comments, rather the other way round. I updated the explanation to add this.[[User:Jojonete|Jojonete]] ([[User talk:Jojonete|talk]]) 23:29, 4 November 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=202:_YouTube&amp;diff=104538</id>
		<title>202: YouTube</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=202:_YouTube&amp;diff=104538"/>
				<updated>2015-11-04T23:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Expanded everything, added reference to YouTube video comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 202&lt;br /&gt;
| date      = December 27, 2006&lt;br /&gt;
| title     = YouTube&lt;br /&gt;
| image     = youtube.png&lt;br /&gt;
| titletext = I pray GunPistolMan never learns the word 'sheeple'.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
This comic is pointing out the fact that many of the comments on {{w|YouTube}} videos are insipid and poorly informed, being pointless arguments over some minor topic, or factually incorrect position. In this case, the {{w|Moon landing conspiracy theories|Moon landing hoaxers}} are at the receiving end of [[Randall]]'s pen.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''Rocckir'' just states that the video is obviously fake, with no evidence or explanation.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''BigMike133'' confuses the {{w|Space Shuttle}} (which was never capable of landing on the Moon) with the {{w|Apollo Lunar Module}}.&lt;br /&gt;
&lt;br /&gt;
* The comment from ''GunPistolMan'' claims that the video is fake due to the mistaken belief that the Moon would have no {{w|Gravity|gravity}}, whereas in reality every object in the universe made of matter has gravity, including the Moon, {{w|Comet|comets}}, {{w|Asteroid|asteroids}}, {{w|Natural satellite|moons of other planets}} and so on. The gravity of the Moon is approximately 1/6th the gravity of {{w|Earth}}.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''CrackMonkey74'' names {{w|Louis Armstrong}}, a famous jazz musician, who may have [http://lyrics.wikia.com/Louis_Armstrong:Moon_Song waxed] [http://www.youtube.com/watch?v=A5x8HnyIYHE lyrical] about the moon, but never went there. The ill-informed commenter actually means {{w|Neil Armstrong}}, who was the first person to walk on the Moon. The dare to accuse Armstrong to his face may be a reference to an incident where moon-hoax conspiracy theorist {{w|Bart Sibrel}} confronted Buzz Aldrin and called him &amp;quot;a coward, and a liar, and a thief&amp;quot;. Aldrin responded by punching Sibrel; Sibrel's attempt to bring charges was dismissed on the grounds that he had provoked Aldrin to the point where the punch was a justified response.&lt;br /&gt;
&lt;br /&gt;
* The comment by ''SimplePlan2009'' presents the ludicrous position that the Moon shot was faked by suggesting that the footage was filmed by actors on {{w|Mars}}, a planet that at its closest approach to Earth is over a hundred times farther away than the Moon. Landing humans on Mars (much less landing enough people and equipment to set up a soundstage) is a feat that has still not been accomplished{{Citation needed}}, and if it had been possible during the Apollo era, the landing on the Moon would have been a trivial task in comparison. In other words, why go through all the trouble of faking it, if doing it for real would have been no trouble at all?&lt;br /&gt;
&lt;br /&gt;
This comic was published in December 2006. In July 2009, [https://www.youtube.com/watch?v=Vml7pZJujF0 a restored video] showing Neil Armstrong's first moonwalk was uploaded to Youtube. User Michael Huang copied to that video's comments section all the sentences in this comic. Then, after some other users took some of his comments seriously, he later added another comment stating &amp;quot;This entire comment chain is from the famous webcomic, xkcd&amp;quot;. The comments are copied verbatim, including typos and grammar errors. The only mistake is in the first comment: Michael Huang included only one question mark when the comic has three of them.&lt;br /&gt;
&lt;br /&gt;
The title text is the first reference to [[:Category:Sheeple|Sheeple]] which appeared a few more times in xkcd comics. The reputation of YouTube comment threads as cesspools of abject stupidity and blatant trolling is revisited in [[301: Limerick]] and [[481: Listen to Yourself]]. The username CrackMonkey74 appears again in [[406: Venting]] and [[574: Swine Flu]]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:The Internet has always had loud dumb people, but I've never seen anything quite as bad as the people who comment on YouTube videos.&lt;br /&gt;
:[A YouTube comments page for a moon landing video.]&lt;br /&gt;
:Comments &amp;amp; Responses&lt;br /&gt;
:rocckir (48 minutes ago)&lt;br /&gt;
:this is so obviously faked its unbilevable, why r people so gullible??? morons&lt;br /&gt;
:bigmike133 (35 minutes ago)&lt;br /&gt;
:ive seen the space shuttle ass hole it definetly landed on the moon do some research...&lt;br /&gt;
:GunPistolMan (22 minutes ago)&lt;br /&gt;
:if it was real why is their gravity? americans r fucken sheep&lt;br /&gt;
:crackmonkey74 (17 minutes ago)&lt;br /&gt;
:u dont think we went to the moon why not tell louis armstrong to his face&lt;br /&gt;
:simpleplan2009 (5 minutes ago)&lt;br /&gt;
:it was a soundstage on mars&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:YouTube]]&lt;br /&gt;
[[Category:Internet]]&lt;br /&gt;
[[Category:Sheeple]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=183:_Snacktime_Rules&amp;diff=104473</id>
		<title>183: Snacktime Rules</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=183:_Snacktime_Rules&amp;diff=104473"/>
				<updated>2015-11-04T11:35:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Rewrote the explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    =183&lt;br /&gt;
| date      =November 13, 2006&lt;br /&gt;
| title     =Snacktime Rules&lt;br /&gt;
| image     =snacktime_rules.png&lt;br /&gt;
| titletext =I am not making this rule up. Although my mom wants you all to know it made perfect sense at the time.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The comic shows a mother telling her child that he can have a snack only when his age is &amp;quot;one less than a multiple of three&amp;quot;. This means the child starts getting snacks when he turns 2 years old, then stops getting them when he turns 3. Then he starts again getting snacks when he turns 5 but stops when he turns 6. This cycle repeats every 3 years, so the kid gets snacks when his age is 2, 5, 8, 11, etc. (one every 3 years).&lt;br /&gt;
&lt;br /&gt;
It's difficult to defend this policy with a reasonable argument; and the first impression is that the mother just made up the rule for some obscure, unknown reason. However, the title text explains that [[Randall]]'s mother actually enforced this rule on him, and his mother claims that, at the time, there was a valid reason for it (though the reason is not explained in the comic). The caption says that Randall has figured out that his {{w|Nerd|nerdiness}} as an adult comes (at least in part) from his mother's strange rules.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:My dad was always the one who taught me about science, but looking back, I'm starting to realize how much my nerdiness was influenced by my mom.&lt;br /&gt;
&lt;br /&gt;
:[A woman and a child are talking.]&lt;br /&gt;
:Child: Mom, can I have a snack in my room before bed?&lt;br /&gt;
:Mom: No, Dear. You know you only get that privilege when your age is one less than a multiple of three.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1572:_xkcd_Survey&amp;diff=104470</id>
		<title>1572: xkcd Survey</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1572:_xkcd_Survey&amp;diff=104470"/>
				<updated>2015-11-04T10:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added update.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1572&lt;br /&gt;
| date      = September 2, 2015&lt;br /&gt;
| title     = xkcd Survey&lt;br /&gt;
| image     = xkcd_survey.png&lt;br /&gt;
| titletext = The xkcd Survey: Big Data for a Big Planet&lt;br /&gt;
}}&lt;br /&gt;
*The comic links to [http://goo.gl/forms/B5RaBeZ6nw The xkcd survey] on Google.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
As the comic image states, it links to a survey created with [https://www.google.com/forms/about/ Google Forms], containing a series of questions. The questions range from mundane typical survey questions such as “Do you have any food allergies?”, to rather strange, such as “Fill this text box with random letters by randomly mashing keys on your keyboard.” (See [[1530: Keyboard Mash]]).&lt;br /&gt;
&lt;br /&gt;
The stated goal of the survey is to “create an interesting and unusual data set for people to play with”. A strange data set is a ripe opportunity for a sampling of readers. It's also supposed to be “a search for weird correlations” – presumably the goal is to be able to say things like “people who have been skydiving are (more/less) likely than average to dislike cilantro”. (See also [[882: Significant]] about finding presumably-spurious correlations between unrelated data.)&lt;br /&gt;
&lt;br /&gt;
This explanation will undoubtedly expand when the data comes in.&lt;br /&gt;
&lt;br /&gt;
{{w|Image_map#Client-side_image_map|HTML image maps}} is a technique for marking up areas of an image on a web page, such that each area can be a link without the whole image being a link. [[Randall]] could have used this type of image map to make only the “Click here to take the survey” button be a link, and none of the rest of the image. But he cannot get the hang of it (or knowing his skills, does not wish to take the time to learn it). Not getting the hang of HTML image maps was also referenced on [http://imgs.xkcd.com/store/tour-news.png the banner for his book tour] from [http://web.archive.org/web/20140901023821/http://xkcd.com/ September 2014]&lt;br /&gt;
&lt;br /&gt;
The title text is a joke off of {{w|Big Data}}, which is a name for analysis of a set of data that includes a huge amount of information. He also says &amp;quot;for a big planet&amp;quot; because the Earth is big.{{Citation needed}}&lt;br /&gt;
&lt;br /&gt;
As of 12 September 2015, the survey is closed, and the questions replaced with the text: &amp;quot;The xkcd survey is now closed. Thank you for all your answers! Response data is being collected and will be posted soon.&amp;quot; As of 4 November 2015, the same caption is still there, with no indication of exactly how soon the data is intended to be posted.&lt;br /&gt;
&lt;br /&gt;
==The Survey==&lt;br /&gt;
The Survey started off with the following statement:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;This is an anonymous survey. After it's done, a database of everyone's responses will be posted.&lt;br /&gt;
There's no specific reason for any of the questions. The goal is to create an interesting and unusual data set for people to play with. This is obviously not going to be a real random sample of people, but in the interest of getting cooler data, if you're sharing this with friends, try sending it to some people who wouldn't normally see this kind of thing!&lt;br /&gt;
&lt;br /&gt;
WARNING: This survey is anonymous, but your answers WILL BE MADE PUBLIC. Depending what you write, it's possible that someone may be able to identify you by looking at your responses. None of these questions should ask about anything too private, but don't write anything that you don't want people to see. If you're not comfortable answering a question, just skip it.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The order of the possible answers (the list of possibilities) was random, and changed every time the page is reloaded. So do not try to fix the order here below...&lt;br /&gt;
&lt;br /&gt;
===Plane===&lt;br /&gt;
*Have you ever been in a plane?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Skydiving===&lt;br /&gt;
*Have you ever been {{w|Parachuting|skydiving}}?&lt;br /&gt;
**No, but I might someday&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===The Dress===&lt;br /&gt;
*When you first saw {{w|The dress (viral phenomenon)|The Dress}}, what color was it? — (Also see [[1492: Dress Color]] and the [[Blag]] ENTRY [http://blog.xkcd.com/2010/05/03/color-survey-results/ Color Survey Results]).&lt;br /&gt;
**White and gold&lt;br /&gt;
**A color combination not listed here&lt;br /&gt;
**I don't remember&lt;br /&gt;
**Blue and black&lt;br /&gt;
**What dress?&lt;br /&gt;
&lt;br /&gt;
===Popular food===&lt;br /&gt;
*What's a really popular food that you don't like?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Floaters===&lt;br /&gt;
*When you look at a blue sky, do you see those swirly {{w|floater|floaters}} in your vision?&lt;br /&gt;
**Yes, constantly&lt;br /&gt;
**I'm not sure what things you mean&lt;br /&gt;
**Yes, occasionally&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Running out of gas===&lt;br /&gt;
*Have you ever had a car run out of gas while you were driving it?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Animals===&lt;br /&gt;
*Name the first five animals you can think of&lt;br /&gt;
**''Multi line text box''&lt;br /&gt;
&lt;br /&gt;
===Weather===&lt;br /&gt;
*What's the weather like where you are right now?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Activities===&lt;br /&gt;
*Which of these can you do reasonably well?&lt;br /&gt;
*(Check all that apply)&lt;br /&gt;
**{{w|slam dunk|Dunk}} a basketball &amp;amp;mdash; A &amp;quot;slam dunk&amp;quot; or simply &amp;quot;dunk&amp;quot; is the act of jumping up and putting the ball through the net with a lot of force&lt;br /&gt;
**Tie a {{w|sheet bend}} or {{w|bowline}} &amp;amp;mdash; A sheet bend is a knot that joins two ropes together; A bowline is a knot used to form a fixed loop at the end of a rope&lt;br /&gt;
**Roller skate&lt;br /&gt;
**[http://www.huffingtonpost.com/news/high-heel-race/ Run in high heels]&lt;br /&gt;
**Drive a stick shift — See {{w|Manual transmission}} of a car&lt;br /&gt;
**Solve a {{w|Rubik's cube}}&lt;br /&gt;
**Dive headfirst off a diving board &amp;amp;mdash; See {{w|Springboard}} and {{w|Diving platform}}&lt;br /&gt;
**Ice skate&lt;br /&gt;
**{{w|Skateboarding|Skateboard}}&lt;br /&gt;
**Walk on {{w|stilts}} — Stilts are poles, posts or pillars used to allow a person to walk at a height above the ground&lt;br /&gt;
**Ski&lt;br /&gt;
**Cut vegetables with a knife&lt;br /&gt;
**Swim&lt;br /&gt;
**Ride a horse&lt;br /&gt;
**{{w|Unicycle}}&lt;br /&gt;
**Change the oil on a car&lt;br /&gt;
**Do a back {{w|Handspring (gymnastics)|handspring}} &amp;amp;mdash; A handspring is an exercise in gymnastics in which you jump through the air landing on your hands, then again landing on your feet&lt;br /&gt;
**Juggle — {{w|Toss juggling}} (the most recognizable form of juggling) consists in throwing objects into the air and catching them.&lt;br /&gt;
&lt;br /&gt;
===Spelling===&lt;br /&gt;
*What word can you never seem to spell on the first try?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Condiments===&lt;br /&gt;
*Do you eat {{w|condiments}} directly out of the fridge as a snack?&lt;br /&gt;
**No &lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Thermostat===&lt;br /&gt;
*When you adjust a thermostat that was set by someone else, it's usually because you want the room to be...&lt;br /&gt;
**Cooler&lt;br /&gt;
**Warmer&lt;br /&gt;
&lt;br /&gt;
===Clothing===&lt;br /&gt;
*What color is the shirt/dress/upper-body-clothing you're wearing right now, if any?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Colds===&lt;br /&gt;
*Do you get {{w|Common cold|colds}} often?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Number===&lt;br /&gt;
*Pick a number from 1 to 100&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Spelling===&lt;br /&gt;
*On a scale of 1 to 10, how good at spelling are you? (Note that the question does not specify which end of the scale is good or bad.)&lt;br /&gt;
**''Tick off list with numbers from 1 to 10.''&lt;br /&gt;
&lt;br /&gt;
===Myers-Briggs===&lt;br /&gt;
*Do you know your {{w|Myers–Briggs_Type_Indicator|Myers-Briggs type}}?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Astrology===&lt;br /&gt;
*Do you know your {{w|astrological sign}}?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Siblings===&lt;br /&gt;
*How many older siblings do you have?&lt;br /&gt;
**''Text box''&lt;br /&gt;
*How many younger siblings do you have?&lt;br /&gt;
**''Text box''&lt;br /&gt;
*How many twin/etc siblings do you have?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Sleepiness===&lt;br /&gt;
*Do you feel sleepy a lot?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Movie star===&lt;br /&gt;
*Name a movie star&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Time in sun===&lt;br /&gt;
*Do you spend a lot of time in the sun?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Broccoli===&lt;br /&gt;
*Does {{w|broccoli}} taste bitter to you?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
**I've never had it&lt;br /&gt;
&lt;br /&gt;
===Wakefulness===&lt;br /&gt;
*Do you regularly stay awake much later than you meant to?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Keyboard mashing===&lt;br /&gt;
*Fill this text box with gibberish by mashing random keyboard keys (See [[1530: Keyboard Mash]]).&lt;br /&gt;
**''Broad multi-line text box''&lt;br /&gt;
&lt;br /&gt;
===Driving===&lt;br /&gt;
*On a scale of 1 to 5, where 1 is terrible and 3 is average, how good a driver do you think you are?&lt;br /&gt;
**''Tick off list with numbers from 1 to 5.''&lt;br /&gt;
&lt;br /&gt;
===Allergies===&lt;br /&gt;
*Do you have any food allergies?&lt;br /&gt;
**No&lt;br /&gt;
**Yes &lt;br /&gt;
&lt;br /&gt;
===Thunder===&lt;br /&gt;
*Have you heard thunder or seen lightning in the past year? — (The title-text of [[831: Weather Radar]] mentions the belief that thunderstorms seemed more common when one was a kid. Since the survey also asks for age this question is likely a test of that belief.)&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Flavor preference===&lt;br /&gt;
*Which do you prefer? (It seems to be missing the ''neither'' option...)&lt;br /&gt;
**Chocolate&lt;br /&gt;
**Vanilla&lt;br /&gt;
&lt;br /&gt;
===Number (reprise)===&lt;br /&gt;
*Pick another number from 1 to 100 (Supposedly is should not be the same as in the first pick a number box).&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Internet===&lt;br /&gt;
*When you think about stuff on the internet, where do you picture it being physically located? Even if you know it's not really how things work, is there a place you imagine websites and social media posts sitting before you look at them? If so, where is it?&lt;br /&gt;
**''Broad multi-line text box''&lt;br /&gt;
&lt;br /&gt;
===Roll tongue===&lt;br /&gt;
*Can you {{w|Tongue rolling|roll your tongue}}?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
**What?&lt;br /&gt;
&lt;br /&gt;
===Toes===&lt;br /&gt;
*Can you pick things up with your toes?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Age===&lt;br /&gt;
*How old are you?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Walls===&lt;br /&gt;
*What color are the walls around you right now?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Cell phone===&lt;br /&gt;
*What kind of cell phone do you have?&lt;br /&gt;
**{{w|iPhone}}&lt;br /&gt;
**{{w|Android (operating system)|Android}}&lt;br /&gt;
**Other smartphone&lt;br /&gt;
**Non-smartphone&lt;br /&gt;
**I don't have a cell phone&lt;br /&gt;
&lt;br /&gt;
===Eating===&lt;br /&gt;
*What's the last thing you ate?&lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Difficult words===&lt;br /&gt;
*Which of these words do you know the meaning of?&lt;br /&gt;
*Some of these words don’t appear in any of the following dictionaries: the Oxford English Dictionary, the New Oxford American Dictionary, Wiktionary, or Dictionary.com. These words were probably made up by Randall. Perhaps the goal is to make people feel like they have a weak vocabulary because they don’t know many of the words, until they try look up the meanings and realize they have been tricked.&lt;br /&gt;
*More likely, the inclusion of fictitious words is a validity check. Hidden tests of the validity of responses is a part of good questionnaire design. For example, long lists of questions with &amp;quot;Agree-Disagree&amp;quot; responses will often have one or more items which are &amp;quot;reverse-coded&amp;quot; (phrased in a direction opposite to the rest of the questions): if a respondent provides a response which contradicts the pattern presented by the rest of the responses, this casts doubt on the validity of the other responses - suggesting that the respondent is not actually reading the questions properly. In the instance of Randall's survey, claiming to know the meaning of fictitious words would cast doubt on the respondent's claims of a knowing the meaning of the other words in the list.&lt;br /&gt;
*In addition, these false claims by respondents may themselves then be used as a source of data: for example, an analysis of the data could find that males (and/or skydivers) are more likely than females to over-represent their actual level of knowledge.&lt;br /&gt;
*[http://dictionary.reference.com/ Dictionary.com] has an index of difficulty (measured in pixels, with class name &amp;lt;code&amp;gt;difficulty-indicator&amp;lt;/code&amp;gt;). We add it at the right of the words that have it. N/A means that a word isn't present in Dictionary.com, or that it doesn't have an index.&lt;br /&gt;
**Slickle – Not in any standard dictionary. However, it [http://www.urbandictionary.com/define.php?term=Slickle is in] the crowd-sourced in Urban Dictionary, as well as a suggested planet name in [[1253: Exoplanet Names]]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/rife Rife] – [http://dictionary.reference.com/browse/rife 117]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/soliloquy Soliloquy] – [http://dictionary.reference.com/browse/soliloquy 150]&lt;br /&gt;
**Fination – not in any dictionary. Appears infrequently in Victorian texts (e.g., [http://books.google.com/books?id=ghNOAAAAYAAJ&amp;amp;pg=PA245&amp;amp;dq=Fination 1889], [http://books.google.com/books?id=nwlCAQAAMAAJ&amp;amp;pg=PA214&amp;amp;dq=Fination 1839])&lt;br /&gt;
**[https://en.wiktionary.org/wiki/stipple Stipple] – [http://dictionary.reference.com/browse/stipple 144]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/peristeronic Peristeronic] – [http://dictionary.reference.com/browse/peristeronic N/A]. Randall used it and defined it for readers in [[798: Adjectives]].&lt;br /&gt;
**[https://en.wiktionary.org/wiki/modicum Modicum] – [http://dictionary.reference.com/browse/modicum 120]&lt;br /&gt;
**Trephony – Not available in reference dictionaries. An obsolete spelling of &amp;quot;{{w|Trephine}}&amp;quot; (especially when used as a verb for the process of {{w|Trepanning|trephination}}). Initially a transliteration of Greek [http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0057:entry=tru/panon τρυπάω] for the same.&lt;br /&gt;
**Tribution – A regular construction from [https://en.wiktionary.org/wiki/tribute#Verb Tribute (verb)] using &amp;quot;-tion&amp;quot; to transform into a noun. Using this regular formation, the term would mean the act of tribute, but no examples of actual use are available. It is worth noting that the use of &amp;quot;tribute&amp;quot; as a verb is generally considered obsolete and the few forms that persist in use relate primarily to the tributary and distibutary river systems&lt;br /&gt;
**[https://en.wiktionary.org/wiki/phoropter Phoropter] – [http://dictionary.reference.com/browse/phoropter N/A]  1.An instrument used in eye examinations to determine an individual's prescription, the patient looking through various lenses at a chart on the other side.&lt;br /&gt;
**Unitory – Not available in reference dictionaries.  An obsolete spelling of &amp;quot;Unitary,&amp;quot; chiefly British. While long obsolete in normal usage, it persisted longer in mathematics that it did elsewhere (particularly for  &amp;quot;Unitory Method&amp;quot; and &amp;quot;Unitory Matrixes&amp;quot;).  Example of use: [https://books.google.com/books?id=Wl1BAQAAMAAJ&amp;amp;pg=RA5-PA27&amp;amp;lpg=RA5-PA27&amp;amp;dq=unitory+method&amp;amp;source=bl&amp;amp;ots=rfRKJXAJqV&amp;amp;sig=Wsr_gV7xG6Airah9Lx1M0hi-7Zc&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ved=0CDsQ6AEwBmoVChMInd_R9qTbxwIVChU-Ch36IAh_#v=onepage&amp;amp;q=unitory%20method&amp;amp;f=false (1)]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/amiable Amiable] – [http://dictionary.reference.com/browse/amiable 123]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/salient Salient] – [http://dictionary.reference.com/browse/salient 69]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/regolith Regolith] – [http://dictionary.reference.com/browse/regolith 162]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/lithe Lithe] – [http://dictionary.reference.com/browse/lithe 105]&lt;br /&gt;
**Revergent – technical word from {{w|fern}} biology, referring to the edges of fern leaves which curl back on themselves (see [http://link.springer.com/article/10.1007%2FBF00985044 Schölch, 2000])&lt;br /&gt;
**[https://en.wiktionary.org/wiki/hubris Hubris] – [http://dictionary.reference.com/browse/hubris 117]&lt;br /&gt;
**[https://en.wiktionary.org/wiki/fleek Fleek] – [http://dictionary.reference.com/browse/fleek N/A]&lt;br /&gt;
**Cadine – A rare loan-word for [https://fr.wiktionary.org/wiki/cadine a sultan's wife or a noble ottoman woman] which comes to English through the French. Examples of Use: [https://books.google.com/books?id=4yz-Y-_OOO0C&amp;amp;printsec=frontcover#v=onepage&amp;amp;q=cadine&amp;amp;f=false (1)]. Also the name of an [https://it.wikipedia.org/wiki/Cadine italian city]. &lt;br /&gt;
**[https://en.wiktionary.org/wiki/apricity Apricity] – Not available in reference dictionaries.  An obsolete word for the sun's heat in winter (e.g., [http://books.google.com/books?id=CFBGAAAAYAAJ&amp;amp;pg=PT76&amp;amp;dq=apricity Bailey 1775]). According to the What If? book (page 80), this is Randall's single favourite word in the English language.&lt;br /&gt;
&lt;br /&gt;
===cat===&lt;br /&gt;
*Please type &amp;quot;cat&amp;quot; here: &lt;br /&gt;
**''Text box''&lt;br /&gt;
&lt;br /&gt;
===Dreams===&lt;br /&gt;
*Do you usually remember your dreams?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Text editors===&lt;br /&gt;
*Do you have strong opinions about text editors? (See {{w|Editor war}})&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Emoji===&lt;br /&gt;
*How do you feel about {{w|emoji}}?&lt;br /&gt;
**Negative 😠 (Unicode 1f620 - Angry face)&lt;br /&gt;
**Positive 😊 (Unicode 263a - Smiling face)&lt;br /&gt;
**Neutral 😐 (Unicode 1F610 - Neutral face)&lt;br /&gt;
&lt;br /&gt;
===Snow===&lt;br /&gt;
*Does it ever snow where you live?&lt;br /&gt;
**No&lt;br /&gt;
**Yes&lt;br /&gt;
&lt;br /&gt;
===Taste of food===&lt;br /&gt;
*Do you strongly dislike the taste or texture of any of these things?&lt;br /&gt;
**Eggs&lt;br /&gt;
**Chocolate ice cream&lt;br /&gt;
**Beer&lt;br /&gt;
**White wine&lt;br /&gt;
**{{w|Carbonation}} (or Fizz)&lt;br /&gt;
**Red wine&lt;br /&gt;
**{{w|Cilantro}}&lt;br /&gt;
**Coffee&lt;br /&gt;
**Tomatoes&lt;br /&gt;
**Yogurt&lt;br /&gt;
&lt;br /&gt;
===Beverages===&lt;br /&gt;
*Which of these do you regularly drink?&lt;br /&gt;
**Caffeinated soda (e.g. Coca-Cola, Dr. Pepper)&lt;br /&gt;
**Noncaffeinated soda&lt;br /&gt;
**Coffee&lt;br /&gt;
**Fruit juice&lt;br /&gt;
**Milk&lt;br /&gt;
**Beer&lt;br /&gt;
**Wine&lt;br /&gt;
**Tea&lt;br /&gt;
**{{w|Maple syrup}}&lt;br /&gt;
**Water&lt;br /&gt;
&lt;br /&gt;
===Random words===&lt;br /&gt;
*Type five random words&lt;br /&gt;
**''Broad multi-line text box''&lt;br /&gt;
&lt;br /&gt;
===Flying===&lt;br /&gt;
*Are you nervous about flying?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
**A little&lt;br /&gt;
&lt;br /&gt;
===Favorite number===&lt;br /&gt;
*On a scale of 1 to 5, which number is your favorite?&lt;br /&gt;
**''Tick off list with numbers from 1 to 5.''&lt;br /&gt;
&lt;br /&gt;
===Sandwich===&lt;br /&gt;
*Which of these would you consider a {{w|sandwich}}?&lt;br /&gt;
*(Check all that apply)&lt;br /&gt;
**{{w|Taco}}&lt;br /&gt;
**{{w|Quesadilla}}&lt;br /&gt;
**{{w|Submarine sandwich|Sub/Hoagie}}&lt;br /&gt;
**{{w|Cheesesteak}}&lt;br /&gt;
**{{w|Hamburger}}&lt;br /&gt;
**{{w|Open-faced sandwich}}&lt;br /&gt;
**{{w|Calzone}}&lt;br /&gt;
&lt;br /&gt;
===Animal affinity===&lt;br /&gt;
*Which of these describes you?&lt;br /&gt;
*(Check all that apply)&lt;br /&gt;
**Dog person&lt;br /&gt;
**Cat person&lt;br /&gt;
**Half-cat half-person&lt;br /&gt;
**Part of a subterranean race of dog people&lt;br /&gt;
**Literally named &amp;quot;Catherine Person&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sense of direction===&lt;br /&gt;
*Would you say you have a good sense of direction?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
&lt;br /&gt;
===Socks or underwear===&lt;br /&gt;
*Have you ever thrown out all your different pairs of socks/underwear, bought a bunch of replacements that were all one kind, and then told all your friends how great it was and how they should do it too?&lt;br /&gt;
**Yes&lt;br /&gt;
**No&lt;br /&gt;
**I did the throwing out thing, but didn't talk to everyone about it&lt;br /&gt;
**No, but I'm totally doing that now&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A simple comic with text only. The ''click here'' part is inside a black frame.]&lt;br /&gt;
:Introducing &lt;br /&gt;
:'''The xkcd Survey'''&lt;br /&gt;
:A search for weird correlations&lt;br /&gt;
:Note: This survey is anonymous, but&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt; all responses will be posted publicly &amp;lt;/font&amp;gt;&lt;br /&gt;
:so people can play with the data.&lt;br /&gt;
:'''Click here to'''&lt;br /&gt;
:'''take the survey'''&lt;br /&gt;
:Or click here, or here.&lt;br /&gt;
:The whole comic is a link,&lt;br /&gt;
:because I still haven't gotten&lt;br /&gt;
:the hang of HTML imagemaps.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=751:_Swimsuit_Issue&amp;diff=104469</id>
		<title>751: Swimsuit Issue</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=751:_Swimsuit_Issue&amp;diff=104469"/>
				<updated>2015-11-04T10:06:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: More links, removed quotes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 751&lt;br /&gt;
| date      = April 16, 2010&lt;br /&gt;
| title     = Swimsuit Issue&lt;br /&gt;
| image     = swimsuit_issue.png&lt;br /&gt;
| titletext = Parents: talk to your kids about popup blockers. Also, at some point, sex. But crucial fundamentals first!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{w|Sports Illustrated}}, while a sports magazine (from what the title implies), is infamous for its {{w|Sports Illustrated Swimsuit Issue|Swimsuit Issue}}, a yearly issue that heavily features women wearing revealing swimsuits (again, from what the title implies). There has been some controversy over how this issue {{w|Sexual objectification|objectifies}} women, yet we can all agree that this issue is not what you would want your kids reading.&lt;br /&gt;
&lt;br /&gt;
However, the joke is on the father. Before he could stop the child from reading, the child had already exclaimed that he had seen {{w|Hardcore pornography|hard-core pornography}} from the {{w|Pop-up ad|pop-up ads}} he has encountered, making the swimsuit issue tame by comparison (for one thing, the women in the swimsuit issue are wearing ''some'' clothing). Unfortunately, this is a true fact (though the extent to which this is true depends on the sites you visit).&lt;br /&gt;
&lt;br /&gt;
The title text has [[Randall]] suggest that {{w|Ad blocking|pop-up blockers}} are far more important than {{w|The birds and the bees}}, a stance that other people would find backward. There is some sense towards this approach, however. While &amp;quot;the birds and the bees&amp;quot; would have to wait until the child has developed sufficiently in order to get the proper effect, pop-up blockers are a more urgent need that would prevent a child from looking at inappropriate content before then. Pop-up blockers alone would not prevent '''everything''', but they are a valuable asset nonetheless.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:Boy: What's this?&lt;br /&gt;
:Father: Oh! That's daddy's ''Sports Illustrated'' Swimsuit Issue! It's not appropriate for&amp;amp;mdash;&lt;br /&gt;
:Boy: Wow! They look just like the ladies who get double-penetrated in the popup ads! But with clothes on! Gosh!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Sex]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=751:_Swimsuit_Issue&amp;diff=104468</id>
		<title>751: Swimsuit Issue</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=751:_Swimsuit_Issue&amp;diff=104468"/>
				<updated>2015-11-04T10:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 751&lt;br /&gt;
| date      = April 16, 2010&lt;br /&gt;
| title     = Swimsuit Issue&lt;br /&gt;
| image     = swimsuit_issue.png&lt;br /&gt;
| titletext = Parents: talk to your kids about popup blockers. Also, at some point, sex. But crucial fundamentals first!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{w|Sports Illustrated}}, while a sports magazine (from what the title implies), is infamous for its &amp;quot;{{w|Sports Illustrated Swimsuit Issue|Swimsuit Issue}},&amp;quot; a yearly issue that heavily features women wearing revealing swimsuits (again, from what the title implies). There has been some controversy over how this issue objectifies women, yet we can all agree that this issue is not what you would want your kids reading.&lt;br /&gt;
&lt;br /&gt;
However, the joke is on the father. Before he could stop the child from reading, the child had already exclaimed that he had seen hard-core {{w|Pornography|pornography}} from the {{w|Pop-up ad|pop-up ads}} he has encountered, making the swimsuit issue tame by comparison (for one thing, the women in the swimsuit issue are wearing ''some'' clothing). Unfortunately, this is a true fact (though the extent to which this is true depends on the sites you visit).&lt;br /&gt;
&lt;br /&gt;
The title text has [[Randall]] suggest that {{w|Ad blocking|pop-up blockers}} are far more important than {{w|The birds and the bees}}, a stance that other people would find backward. There is some sense towards this approach, however. While &amp;quot;the birds and the bees&amp;quot; would have to wait until the child has developed sufficiently in order to get the proper effect, pop-up blockers are a more urgent need that would prevent a child from looking at inappropriate content before then. Pop-up blockers alone would not prevent '''everything''', but they are a valuable asset nonetheless.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:Boy: What's this?&lt;br /&gt;
:Father: Oh! That's daddy's ''Sports Illustrated'' Swimsuit Issue! It's not appropriate for&amp;amp;mdash;&lt;br /&gt;
:Boy: Wow! They look just like the ladies who get double-penetrated in the popup ads! But with clothes on! Gosh!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Sex]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1598:_Salvage&amp;diff=104433</id>
		<title>1598: Salvage</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1598:_Salvage&amp;diff=104433"/>
				<updated>2015-11-03T12:28:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1598&lt;br /&gt;
| date      = November 2, 2015&lt;br /&gt;
| title     = Salvage&lt;br /&gt;
| image     = salvage.png&lt;br /&gt;
| titletext = My hobby: Taking advantage of the rice myth by posting articles on &amp;quot;how to save your wet phone&amp;quot; which are actually just elaborate recipes for rice pilaf.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
The {{w|RMS Titanic|RMS ''Titanic''}} was a large ocean liner which, when it was completed in 1912, was the largest ship afloat. The ship famously hit an {{w|Iceberg|iceberg}} on its maiden voyage and sank, killing two-thirds of its complement (approximately 1,500 people) in one of the deadliest peacetime maritime disasters ever.&lt;br /&gt;
&lt;br /&gt;
As it sank, the ''Titanic'' broke into two pieces. The ship was lost for decades until the {{w|Wreck of the RMS Titanic|wreck site}} was discovered in 1985. A number of proposals have been made to salvage the wreck of the ''Titanic'' both before and since the wreck's discovery, famously fictionalised in the thriller novel and film {{w|Raise the Titanic!|''Raise the Titanic!''}}. The general consensus at this time is that the wreck is too fragile to be salvaged intact. Numerous expeditions have been made to the wreck site since its discovery, with several parties (without any outside authorization) taking various artifacts from the site. A popular view is that the wreck is effectively a mass grave and that plundering the site for profitable artifacts is akin to grave-robbing. Most believe the wreck should be left where it is, intact. That said, explorers have already done notable damage to the wreck.&lt;br /&gt;
&lt;br /&gt;
This comic shows a fictional attempt to salvage the two main pieces of the ''Titanic'' wreck, which, as it likely would in real life, garners media coverage as a 'historic salvage'. The salvage seems to consist of several ships raising the hull via cables attached to some sort of buoyant sled placed under the hull (as might actually happen). This is followed by even more helicopters carrying the hull in unison, again via cables to the cradle (a much less practical operation). The hull halves are then dropped into a giant tub of rice. The entire salvage attempt is increasingly cartoonish and unrealistic, but the tub of rice takes this to another level.&lt;br /&gt;
&lt;br /&gt;
==Rice?==&lt;br /&gt;
The punchline to the comic references the &amp;quot;rice myth&amp;quot;, a popularly disseminated method of salvaging consumer electronics (usually cell phones) which have been submerged in water. The method entails burying the wet device in a bowl of rice. This process is commonly claimed to dry it out, but investigation reveals that the process does not hold water. This suggests that the wreck of the Titanic would benefit from being dried as quickly as possible - something that might not be of any benefit to a large ocean wreck.&lt;br /&gt;
&lt;br /&gt;
Surviving non-metallic material on board the ship may not benefit at all from drying.  Far more ancient shipwrecks are best preserved by keeping the recovered timbers ''wet'' (but progressively desalinated, where applicable), cool and as anoxic, at least while conserving chemicals such as {{w|Polyethylene glycol}} are infused into the wood to allow safe and gradual drying without causing further damage.  Leather, cloth and other organic remains may have variations on this regime.&lt;br /&gt;
&lt;br /&gt;
Thus the rice might benefit an electronic device briefly exposed to water, but not likely to ultimately benefit a ship that has been immersed for over a century, where the interest is in more than merely stabilising the remaining metal hull and infrastructure.&lt;br /&gt;
&lt;br /&gt;
This comic may play on the dual meaning of the word &amp;quot;salvage&amp;quot; in respect of electronics and maritime wrecks.&lt;br /&gt;
&lt;br /&gt;
The title text indicates that Randall considers the 'rice' method of electronic salvage to be a myth. There are numerous online discussions of the technique with mixed levels of success. Critically, where rice is tested against other methods, rice appears to perform worse than other methods. Controlled experiments on this topic tend to show that silica gel (aka &amp;quot;Do Not Eat&amp;quot; packets) is the most effective drying agent, with mixed results for rice.&amp;lt;ref&amp;gt;[http://www.hud.ac.uk/news/2013/november/researchshowsriceistheanswerforawetmobile.php Research Shows Rice is the Answer for a Wet Mobile]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://smartphones.wonderhowto.com/how-to/myth-debunked-uncooked-rice-isnt-best-way-save-your-water-damaged-phone-0154799/ Myth Debunked: Uncooked Rice Isn't the Best Way to Save Your Water-Damaged Phone]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan is shown standing at the rail of a ship with a microphone reporting the event shown in the background. A small helicopter and a larger two rotor model, lowering a rope with hook, are hovering over a crane ship with its hook down line going down in the water. It is depicted like a news screen as seen on TV. Below Megan are two headings. The first in a white insert with double frame, and the other written in white over the gray ocean water.]&lt;br /&gt;
:Historic Salvage&lt;br /&gt;
:Live&lt;br /&gt;
&lt;br /&gt;
:[Four crane ships are shown lifting the bow part of the RMS Titanic. There are pontoons beneath the ship to help it float up. The name of the ship can be seen.]&lt;br /&gt;
:RMS Titanic&lt;br /&gt;
&lt;br /&gt;
:[Both parts of the Titanic are now flown by helicopters, four for the stern and five for the bow. One helicopter for each part is a two rotor model. Ropes go from the helicopters down on each side of the ship parts to pontoons below them. Below in the ocean there are two crane ships.]&lt;br /&gt;
&lt;br /&gt;
:[The two parts of the ship is now lowered in to a huge bowl of rice (labeled) standing at the coast just out of the ocean, which can be seen to the left. One of the five helicopters for the bow is missing. For scale there are drawn two trees to the left, and something is parked to the right, maybe a truck.]&lt;br /&gt;
:Rice&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:My Hobby]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1596:_Launch_Status_Check&amp;diff=104432</id>
		<title>1596: Launch Status Check</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1596:_Launch_Status_Check&amp;diff=104432"/>
				<updated>2015-11-03T12:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Jojonete: Added link, removed incompleteness&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1596&lt;br /&gt;
| date      = October 28, 2015&lt;br /&gt;
| title     = Launch Status Check&lt;br /&gt;
| image     = launch status check.png&lt;br /&gt;
| titletext = Visual checks suggest the cool bird has exited the launch zone. Tip the rocket sideways and resume the countdown--we're gonna go find it!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The first panel shows a {{w|Rocket launch|rocket launch}}, which is a critical point in any {{w|Spaceflight|space mission}}. Before this moment, there are years of hard work from a large technical staff, and all that work (and even lives) could be destroyed in a second if anything {{w|List of spaceflight-related accidents and incidents|goes wrong during the launch}}. ''{{w|Countdown|T-Minus}} 2 minutes'' means that there are only two minutes left before the rocket is actually launched, so at this moment everybody is very nervous and worried about the launch going wrong. Other texts from the panel refer to the usual checks before the launch, whose end is to ensure everything is ready.&lt;br /&gt;
&lt;br /&gt;
In the second panel, one of the people controlling the launch sees a &amp;quot;cool bird&amp;quot; on the {{w|Closed-circuit television|live feed}} from the cameras controlling the operation. This should be of no importance at all, given the relatively much more serious matter of having years of work and possibly human lives at stake. However, the technical staff starts commenting on this cool bird and aborts the launch procedure as they are interested in the bird. This behavior would be absurd in real life.&lt;br /&gt;
&lt;br /&gt;
In the third panel, the two controllers attempt to identify the bird; the one on the right guesses maybe it is a {{w|Hawk|hawk}}. Since the habitat of hawks and {{w|Vulture|vultures}} overlap almost entirely, a birdwatcher is almost certain to accidentally confuse the two in their lifetime of birdwatching. Obviously having this knowledge of the habitat overlap, the controller on the left asks if the bird was a vulture. The controller on the right accurately notes that it probably was not a vulture since it is commonly known to ornithologists that vultures &amp;quot;hold their wings slightly raised in a &amp;quot;V&amp;quot; when seen head on.&amp;quot;[http://www.allaboutbirds.org/guide/Turkey_Vulture/id]. However, this demands that the original sighting of the bird must have included a flight pattern in which the bird not only &amp;quot;flew past the tower&amp;quot; as stated, but also flew towards the tower... even cooler!&lt;br /&gt;
&lt;br /&gt;
The title text goes on with the same absurd behavior: the crew restarts the countdown to launch the rocket, but only to follow the bird and get a closer look at it. The original space mission the rocket was designed for is completely ignored. This is even more absurd than the initial interest in the bird, given that a rocket designed to enter outer space is ill equipped to try to follow a bird and maneuver at the low elevation and at the relatively slow speed of a bird.&lt;br /&gt;
&lt;br /&gt;
This could also be a joke in the well known fanaticism of ''serious'' bird watchers, who think nothing of spur of the moment day long road trips (or flights!) in order to get to view an unusual bird.&lt;br /&gt;
&lt;br /&gt;
The vehicle pictured is not clearly identified, and it could also be totally fictional. It looks very much like the {{w|Atlas V}} launch vehicle. It also has some similarity with the {{w|Falcon_Heavy|SpaceX Falcon 9 Heavy}} launch vehicle (albeit with stubbier strap-on boosters), named after the {{w|Falcon}}, another bird of prey. This would increase the absurdity of the situation.&lt;br /&gt;
&lt;br /&gt;
The bird being referred to by the launch-crew features as a mere mark on the comic-strip, consistent with scale against the rocket, but they are obviously trying to start to identify the rough species or group it belongs to from the {{w|Bird_flight#Wing_shape_and_flight|wing geometry}}, the effortlessly soaring carrion-seeking vulture and the hawk that often uses a swooping attack upon its prey typically having very different wing configurations as matches their evolved lifestyle.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A rocket is about to launch. A small object is near the top of the rocket.]&lt;br /&gt;
:Countdown: ''T-Minus 2 minutes''&lt;br /&gt;
:Offscreen Voice 1: Tank and booster are go for launch.&lt;br /&gt;
:Offscreen Voice 2: Safety console?&lt;br /&gt;
:Offscreen Voice 3: Check. Safety-&lt;br /&gt;
:Offscreen Voice 4: Wait.&lt;br /&gt;
&lt;br /&gt;
:[The small object moves to further to the right.]&lt;br /&gt;
:Offscreen Voice 1: What is it?&lt;br /&gt;
:Offscreen Voice 2: On the live feed- a cool bird just flew past the tower!&lt;br /&gt;
&lt;br /&gt;
:[The launch scene now a background silhouette, the small object of everyone's attention is no longer on-panel.]&lt;br /&gt;
:Offscreen Voice 1: Whoa, what kind?&lt;br /&gt;
:Offscreen Voice 2: Like a hawk, maybe!&lt;br /&gt;
:Offscreen Voice 1: Could it be a vulture?&lt;br /&gt;
:Offscreen Voice 2: I doubt it. The wings were flat, not in a &amp;quot;V&amp;quot;.&lt;br /&gt;
:Offscreen Voice 3: It could be an eagle!&lt;br /&gt;
:Offscreen Voice 2: Ooh!&lt;br /&gt;
&lt;br /&gt;
:[The scene is returns to full contrast, with at least a token attention being paid to it, once more.]&lt;br /&gt;
:Offscreen Voice 1: This is launch control. We have a possible sighting of a cool bird. Halt the countdown.&lt;br /&gt;
:Offscreen Voice 2: Someone get some binoculars up here!&lt;br /&gt;
:Offscreen Voice 3: I want to see!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Animals]]&lt;/div&gt;</summary>
		<author><name>Jojonete</name></author>	</entry>

	</feed>