<?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=Odysseus654</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=Odysseus654"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/Odysseus654"/>
		<updated>2026-04-09T20:21:47Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155819</id>
		<title>Talk:1980: Turkish Delight</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155819"/>
				<updated>2018-04-13T21:26:55Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: Yay bad guess as to link syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
whomever[[Special:Contributions/172.68.26.71|172.68.26.71]] 15:42, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Randall is a known Animorphs fan, and Cinnabon is portrayed in the books as being foremost among the favourite foods of Andalites when in human morph.  Possibly the title text is meant to introduce the narrator as one?  It wouldn't be the [[769:_War|first time]] that mousing over has revealed the identity of a character in the strip. [[User:D5xtgr|D5xtgr]] ([[User talk:D5xtgr|talk]]) 17:57, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Would it be useful to include an explanation of what Turkish Delights are and what they’re made from? It could help to explain why he might be let down. [[Special:Contributions/172.68.211.82|172.68.211.82]] 19:41, 13 April 2018 (UTC)&lt;br /&gt;
*This might be helpful for background [http://www.slate.com/articles/life/food/2005/12/the_lion_the_witch_and_the_really_foul_candy.html The Lion, the Witch, and the Really Foul Candy] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 21:22, 13 April 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155818</id>
		<title>Talk:1980: Turkish Delight</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155818"/>
				<updated>2018-04-13T21:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: added link title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
whomever[[Special:Contributions/172.68.26.71|172.68.26.71]] 15:42, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Randall is a known Animorphs fan, and Cinnabon is portrayed in the books as being foremost among the favourite foods of Andalites when in human morph.  Possibly the title text is meant to introduce the narrator as one?  It wouldn't be the [[769:_War|first time]] that mousing over has revealed the identity of a character in the strip. [[User:D5xtgr|D5xtgr]] ([[User talk:D5xtgr|talk]]) 17:57, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Would it be useful to include an explanation of what Turkish Delights are and what they’re made from? It could help to explain why he might be let down. [[Special:Contributions/172.68.211.82|172.68.211.82]] 19:41, 13 April 2018 (UTC)&lt;br /&gt;
*This might be helpful for background [http://www.slate.com/articles/life/food/2005/12/the_lion_the_witch_and_the_really_foul_candy.html|| The Lion, the Witch, and the Really Foul Candy] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 21:22, 13 April 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155817</id>
		<title>Talk:1980: Turkish Delight</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1980:_Turkish_Delight&amp;diff=155817"/>
				<updated>2018-04-13T21:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: Added link to old slate article about Turkish Delights&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
whomever[[Special:Contributions/172.68.26.71|172.68.26.71]] 15:42, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Randall is a known Animorphs fan, and Cinnabon is portrayed in the books as being foremost among the favourite foods of Andalites when in human morph.  Possibly the title text is meant to introduce the narrator as one?  It wouldn't be the [[769:_War|first time]] that mousing over has revealed the identity of a character in the strip. [[User:D5xtgr|D5xtgr]] ([[User talk:D5xtgr|talk]]) 17:57, 13 April 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Would it be useful to include an explanation of what Turkish Delights are and what they’re made from? It could help to explain why he might be let down. [[Special:Contributions/172.68.211.82|172.68.211.82]] 19:41, 13 April 2018 (UTC)&lt;br /&gt;
*This might be helpful for background [http://www.slate.com/articles/life/food/2005/12/the_lion_the_witch_and_the_really_foul_candy.html] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 21:22, 13 April 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1957:_2018_CVE_List&amp;diff=152802</id>
		<title>Talk:1957: 2018 CVE List</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1957:_2018_CVE_List&amp;diff=152802"/>
				<updated>2018-02-19T22:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
[[First]] post!!!!!!!!!!!!!!!!!!!!!!!!!!! Anyway, the explanation looks like a train wreck, and I'm not sure if a rearranging it into a table or just adding bullet points to everything is better. I'm guessing that a table would be better, but I don't know how I can rearrange it. Can somebody help? [[User:Herobrine|Herobrine]] ([[User talk:Herobrine|talk]]) 06:35, 19 February 2018 (UTC)&lt;br /&gt;
: Added a table layout to the sandbox. Might be of some use to another editor. [[Special:Contributions/162.158.74.45|162.158.74.45]] 07:32, 19 February 2018 (UTC)&lt;br /&gt;
: ''Edit: Looks like it's been adapted in; I've cleared the sandbox for future use.'' [[Special:Contributions/162.158.74.45|162.158.74.45]] 11:53, 19 February 2018 (UTC)&lt;br /&gt;
:: Thanks, I think a table is a good way to go. I'm adding it to the article as a place to start. Rather than format the original explanation into the table, I'm leaving the cells blank. The original poorly formatted text can be a starting point, but isn't directly adaptable. --[[User:Quantum7|Quantum7]] ([[User talk:Quantum7|talk]]) 09:55, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Never ever have I heard anyone pronounce SQL as &amp;quot;sequel&amp;quot; - Is that a reqional dialect? [[Special:Contributions/162.158.93.15|162.158.93.15]] 07:41, 19 February 2018 (UTC)&lt;br /&gt;
: I heard it's common among MS-SQL users.--[[Special:Contributions/162.158.91.137|162.158.91.137]] 08:02, 19 February 2018 (UTC)&lt;br /&gt;
:: Oh BTW, look at our IPs. Are you an easybell customer? :-) --[[Special:Contributions/162.158.91.137|162.158.91.137]] 08:09, 19 February 2018 (UTC)&lt;br /&gt;
::: I somewhat doubt we are using easybell, from the looks of it it's not suited for the size of our company. But I can neither verify nor deny that claim as I am not responsible for the WAN connection at our company. [[Special:Contributions/162.158.93.9|162.158.93.9]] 15:09, 19 February 2018 (UTC)&lt;br /&gt;
: Some people pronounce it that way, yes. Don't know if it is &amp;quot;common among MS-SQL users&amp;quot;, though. The only person I encountered saying &amp;quot;sequel&amp;quot; never used MS-SQL. [[User:LordHorst|LordHorst]] ([[User talk:LordHorst|talk]]) 09:54, 19 February 2018 (UTC)&lt;br /&gt;
: Not sure if it's regional or not.  I personally say &amp;quot;sequel&amp;quot; and I'd say anecdotally that it's about 50/50 among people that I've worked with.  I went to school and work in the Midwest US. [[Special:Contributions/108.162.216.94|108.162.216.94]] 15:40, 19 February 2018 (UTC)&lt;br /&gt;
: I've also seen references to Oracle users saying &amp;quot;sequel&amp;quot; rather than S-Q-L.  That would make sense as it's the DB I'm primarily working with. http://patorjk.com/blog/2012/01/26/pronouncing-sql-s-q-l-or-sequel/ [[Special:Contributions/108.162.216.94|108.162.216.94]] 15:43, 19 February 2018 (UTC)&lt;br /&gt;
: When I was in college a couple decades back I have memory of the professor that taught SQL saying that pronouncing it &amp;quot;sequel&amp;quot; had been registered as a trademark of Micosoft.  He instructed us to avoid that pronunciation whenever possible because of this. I have not fact-checked this statement. [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 22:00, 19 February 2018 (UTC)&lt;br /&gt;
I want to take a moment to congratulate the dedication of whomever wrote the original explanation.  Second languages are hard, bro.  [[Special:Contributions/108.162.215.10|108.162.215.10]] 07:48, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Has someone tried contacting Randall about &amp;quot;extploit&amp;quot;? If not, what would be the best way? [[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 08:22, 19 February 2018 (UTC)&lt;br /&gt;
:Hack his computer to display a message demanding he fix it if he wants his hard drive decrypted.[[Special:Contributions/162.158.155.26|162.158.155.26]] 09:24, 19 February 2018 (UTC)&lt;br /&gt;
::Thanks, will do.&lt;br /&gt;
&lt;br /&gt;
::how to hack complooter&lt;br /&gt;
::why does google not work&lt;br /&gt;
::how to delete text&lt;br /&gt;
::[[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 09:44, 19 February 2018 (UTC)&lt;br /&gt;
:If anyone is getting this changed to correct silly errors, removing the full stop in “…&amp;lt;tt&amp;gt;one. Computer&amp;lt;/tt&amp;gt;…” would be nice. [[Special:Contributions/141.101.99.197|141.101.99.197]] 15:22, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Regarding &amp;quot;Factor a prime&amp;quot;: Factoring a prime is easy: The prime itself is the only factor, so it's sufficient to use [https://en.wikipedia.org/wiki/AKS_primality_test AKS] or whatever to check that. Public-key encryption relies on how hard it is to factor the product of two primes, which is a much harder problem. Maybe this is a typo in the comic? {{unsigned|Comment Police}}&lt;br /&gt;
: I don't think it is a typo. It's exactly the type of &amp;quot;inside-joke&amp;quot; I would expect from XKCD. :) --[[Special:Contributions/162.158.134.214|162.158.134.214]] 10:09, 19 February 2018 (UTC)&lt;br /&gt;
:: AFAIK, there aren't any primality tests known to run in O(log n). For instance, AKS runs in O(log n ^ 7.5). So for numpy to actually achieve factoring as stated would require assuming the input is prime and just returning (1,n). --[[User:Quantum7|Quantum7]] ([[User talk:Quantum7|talk]]) 12:45, 19 February 2018 (UTC)&lt;br /&gt;
:::Doesn't testing for primality (just) require a list of all primes up to sqrt(n)? So the best possible time is sqrt(however fast you can calculate primes up to a number). That time can at most be square (divide every number by every other number below it), so a primality test only needs O(n) time. Or do I understand something wrong? [[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 13:46, 19 February 2018 (UTC)&lt;br /&gt;
::::Oh yes, I missed that log(n) is less than n. Nevermind then. [[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 13:50, 19 February 2018 (UTC)&lt;br /&gt;
:On the other hand, consider the following phrases that describe a process using the end result of the process as their direct object: &amp;quot;cook scrambled eggs&amp;quot;, &amp;quot;bake a cake&amp;quot;, &amp;quot;chop firewood&amp;quot;, &amp;quot;encode an MP3&amp;quot;, and &amp;quot;factor primes&amp;quot;. One would &amp;quot;factor primes&amp;quot; out of the semiprime associated with an RSA key. --[[User:Tepples|Tepples]] ([[User talk:Tepples|talk]]) 15:58, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can I edit some spelling errors? There seems to be some spelling errors here and there.Boeing-787lover 10:19, 19 February 2018 (UTC)&lt;br /&gt;
:Of course, that's what a Wiki is for. [[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 12:10, 19 February 2018 (UTC)&lt;br /&gt;
I think the explanation of the one about injecting arbitrary text onto a page with the comments box is overthinking the joke. I think it really is just about the fact that you can write whatever you like in a comment. Look, I just hacked this page to display the word &amp;quot;penguin&amp;quot;. [[User:Jeremyp|Jeremyp]] ([[User talk:Jeremyp|talk]]) 10:26, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Since when is Bruce Schneier not real? [[Special:Contributions/162.158.93.75|162.158.93.75]] 13:05, 19 February 2018 (UTC)&lt;br /&gt;
: He never was - it's a cleverly executed art project. [[Special:Contributions/141.101.99.209|141.101.99.209]] 14:20, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've added some clarification to the &amp;quot;CRITICAL&amp;quot; item. I know there are several xkcd comics referencing similar problems but I unfortunately don't have the time to look them up, can someone do that and link them appropriately in the table? [[User:Domino|Domino]] ([[User talk:Domino|talk]]) 13:11, 19 February 2018 (UTC)domino&lt;br /&gt;
:Isn't the joke really in the hilarious severity assessment? The vulnerability is supposedly CRITICAL!!!!11!1!!one!, while description shows both a ridiculously small vulnerable population and ridiculously low impact. Population: a single, very old kernel version on a rare, outdated architecture, in one timezone only - and WHICH timezone! UTC+14 means just a couple of islands in the Pacific (Tonga, Kiribati...) - the probability of even one vulnerable system actually existing seems almost zero. Impact: the only possible consequence is switching from 12h to 24h (only in this direction)? This whole entry is very creative - just TRY to come up with a possible vulnerability (yes, it would classify as an actual vulnerability, why not?) that would have a LOWER severity than that...--[[Special:Contributions/162.158.91.89|162.158.91.89]] 13:41, 19 February 2018 (UTC)&lt;br /&gt;
::Agree [[User:Elektrizikekswerk|Elektrizikekswerk]] ([[User talk:Elektrizikekswerk|talk]]) 15:45, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the article should start with an explanation of what is the CVE. From https://cve.mitre.org/&lt;br /&gt;
 &amp;quot;CVE® is a list of entries—each containing an identification number, a description, and at least one public reference—for publicly known cybersecurity vulnerabilities.&lt;br /&gt;
 CVE Entries are used in numerous cybersecurity products and services from around the world, including the U.S. National Vulnerability Database (NVD).&amp;quot;&lt;br /&gt;
-{{unsigned|Comment Police}}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MySQL server 55.45&amp;quot; it is 5.5.45 if you zoom in a bit. [[Special:Contributions/162.158.91.161|162.158.91.161]] 13:41, 19 February 2018 (UTC)Blocki&lt;br /&gt;
&lt;br /&gt;
&amp;quot;An attacker can execute malicious code on their own machine and no one can stop them&amp;quot; might be a jab at the trend toward more closed systems, where even the owner of a device is limited in what they can do on it. &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;quot;A flaw in Mitre's CVE database allows arbitrary code insertion&amp;quot; could be meant as an explanation for the whole comic, i.e. those joke vulnerabilities were added to the CVE database using this flaw. [[Special:Contributions/141.101.69.225|141.101.69.225]] 13:52, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
Monty (BDFL for MySQL) always pronounces it as &amp;quot;My ess cue ell&amp;quot;. [[User:RandalSchwartz|RandalSchwartz]] ([[User talk:RandalSchwartz|talk]]) 18:22, 19 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's my first comment here, so I may be wrong. I see the &amp;quot;CRITICAL&amp;quot; as a &amp;quot;differential” joke exhibiting that the requirement standards may be very different from a constructor to another. In fact, it seems that the apple’s bugs described here (crash, fire, remote access granted) are the mosst critical ones. The only two concerning Linux are the one labeled as critical and the one about bribery. I don’t know what to think about the almost complete absence of windows though. Feriaman.&lt;br /&gt;
&lt;br /&gt;
Could we get an ''Air Bud'' category? It seems to be a recurring theme in his comics. [[Special:Contributions/162.158.246.88|162.158.246.88]] 18:50, 19 February 2018 (UTC)&lt;br /&gt;
:List of direct mentions of &amp;quot;air bud&amp;quot; in the explanations: [[115:_Meerkat]], [[1439:_Rack_Unit]], [[1506:_xkcloud/Table_of_Permalinks]], [[1552:_Rulebook]], [[1819:_Sweet_16]], [[1957:_2018_CVE_List]]&lt;br /&gt;
:List of direct mentions of &amp;quot;air bud&amp;quot; in the transcripts: [None]&lt;br /&gt;
:Beep, boop, I'm not a bot. [[User:Fabian42|Fabian42]] ([[User talk:Fabian42|talk]]) 20:41, 19 February 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1948:_Campaign_Fundraising_Emails&amp;diff=151664</id>
		<title>Talk:1948: Campaign Fundraising Emails</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1948:_Campaign_Fundraising_Emails&amp;diff=151664"/>
				<updated>2018-01-29T21:13:52Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: added comment on possible source of $35.57&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
can someone make a table with all the emails and an explanation column? I'm shit at formatting. [[User:DPS2004|DPS2004&amp;amp;#39;); DROP TABLE users;--]] ([[User talk:DPS2004|talk]]) 16:38, 29 January 2018 (UTC)&lt;br /&gt;
: Relevant username? [[Special:Contributions/172.68.58.83|172.68.58.83]] 17:42, 29 January 2018 (UTC)&lt;br /&gt;
ActBlue is a political action committee aimed at helping people on the internet raise money for the Democratic party - there is no Jennifer ActBlue Heir to the ActBlue fortune. [[Special:Contributions/172.68.174.40|172.68.174.40]] 17:14, 29 January 2018 (UTC)Daniel Macintyre&lt;br /&gt;
*That's what Jennifer wants you to think.[[Special:Contributions/162.158.122.12|162.158.122.12]] 17:23, 29 January 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's interesting to note that for three of the emails, the subject isn't bolded, indicating that those emails were read.  All three refer to female candidates [[User:JamesCurran|JamesCurran]] ([[User talk:JamesCurran|talk]]) 17:20, 29 January 2018 (UTC)&lt;br /&gt;
: Are we sure those are subject lines? I don't usually write or get emails where the subject line flows seamlessly into the contents like this. (Not sure what else they could be, of course.) Also, the lack of bold text could indicate an email without a subject line. [[Special:Contributions/162.158.78.220|162.158.78.220]] 18:54, 29 January 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm guessing the $35.57 may have been related to a recent Jimquisition episode focusing on this ad: https://youtu.be/Tu3rwf27VRE [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 21:13, 29 January 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1888:_Still_in_Use&amp;diff=145241</id>
		<title>Talk:1888: Still in Use</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1888:_Still_in_Use&amp;diff=145241"/>
				<updated>2017-09-11T18:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
Just for all writers: The {{w|Garbage collection (computer science)|Garbage collection}} prominently belongs to {{w|Java (programming language)|Java}}. Microsoft had adopted this only in C# and it's NOT used in file systems.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 14:47, 11 September 2017 (UTC)&lt;br /&gt;
Note: Java adopted garbage collection over 30 years after it had been used in Lisp. I would question the use of 'prominently belongs'. Any user of Gnu Emacs will be aware of what happens when garbage collection hits unexpectedly... [[Special:Contributions/141.101.98.112|141.101.98.112]] 16:13, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
Seams like a pretty clear reference to not being able to empty the computers Trash because files are in use.  Normally files in the Trash can't be opened, and files can't be moved to the Trash if opened but weird things can happen.  The real rub here is that the computer does know '''exactly''' what process has each file open and is intentionally designed and told not to tell you the user the remedy that it already knows nor to show an option to remedy the problem itself leaving you in the lurch. [[Special:Contributions/172.68.206.58|172.68.206.58]] 15:37, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
It could be that another user is the one that used the paper towel last. I was actually running into an issue where I couldn't delete a file from a network share that I had used last. The dialog would tell me what program was still using it (Source Tree, which had unceremoniously crashed and didn't close out properly) but my coworker simply got the &amp;quot;Is in use by another program&amp;quot; message. [[User:Bpendragon|Bpendragon]] ([[User talk:Bpendragon|talk]]) 15:43, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've also come across the issue where the process using the file is the file manager utility itself; I opened the trash to see what was in there, it started trying to make preview images of all the items, and of course when you close the window it doesn't release whatever filehandle it was currently trying to make a preview for. -- [[User:Angel|Angel]] ([[User talk:Angel|talk]]) 16:12, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
You could always power the house down and restart it! [[Special:Contributions/162.158.78.28|162.158.78.28]] 16:37, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
Part of the joke is how unhelpful windows tend(ed/s) to be in helping you identify the application that is still hanging onto the file.--[[User:Henke37|Henke37]] ([[User talk:Henke37|talk]]) 17:08, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is problem only on MS Windows, where most file-access is '''blocking'''; Linux allows deleting file even if some process is accessing it - said process would see old version of the file, while all other would see it deleted.  This has its own problems (you delete files, but you don't recover free space), but I think it is less annoying. --[[User:JakubNarebski|JakubNarebski]] ([[User talk:JakubNarebski|talk]]) 18:03, 11 September 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
*More specific, Windows tracks open files through their pathname, linux tracks open files through their numeric ID.  This means that you could create file A, open it, delete the file, create another file B with the same filename, open it, delete the file, create another file C with the same filename, open it, delete the file.  Those three files would still be present on the disk, each of the apps that has the file open would see different contents (which they could write to and change), but you would never see any of the files through a directory listing (but it would take up disk space until the files were closed).  I believe linux viruses delete themselves to make them more difficult to discover, this also explains why linux system updates don't require rebooting the computer afterwards (although if you just changed the system kernel it's likely recommended)[[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 18:26, 11 September 2017 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1699:_Local_News&amp;diff=122437</id>
		<title>1699: Local News</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1699:_Local_News&amp;diff=122437"/>
				<updated>2016-06-27T16:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ Tachyons always go faster than light, we always go slower than light.  That makes them theoretical, we can never detect or produce them&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1699&lt;br /&gt;
| date      = June 27, 2016&lt;br /&gt;
| title     = Local News&lt;br /&gt;
| image     = local_news.png&lt;br /&gt;
| titletext = Will there ever be a physics term greater than 'tachyonic antitelephone?' According to this message from the future, the answer is 'no.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|More detail on quantum mechanics needed.}}&lt;br /&gt;
Typical news broadcasts are divided into local, national, and global news segments. The broadcast in this comic has been broken into local and nonlocal instead. However, rather than focusing on national or global news, the nonlocal segment deals with news of a [[wikipedia:Quantum nonlocality|nonlocality]] nature; more likely dealing with causal nonlocality.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;tachyon&amp;quot; is a theoretical or thought-experiment particle which travels faster than the speed of light. It has many strange properties, including being able to go back in time. This is how the newscaster is able to send a beam back in time to kill her past self. The comic does not explain the paradox of how someone who died in the past could still be alive.&lt;br /&gt;
&lt;br /&gt;
A {{w|Tachyonic antitelephone}} is a theoretical device which would allow messages to be sent to the past. The title text implies that a message from the future tells us that such a device will be the greatest achievement in all of physics (past, present, and future).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
[Newscaster sitting at her desk]&lt;br /&gt;
&lt;br /&gt;
Newscaster: In local news, city council elections were held today.&lt;br /&gt;
&lt;br /&gt;
Newscaster: In nonlocal news, I killed my past self with a tachyon beam.&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120546</id>
		<title>Talk:1683: Digital Data</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120546"/>
				<updated>2016-05-20T17:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~--&amp;gt;&lt;br /&gt;
Ewww, Verizon? **** them [[User:International Space Station|International Space Station]] ([[User talk:International Space Station|talk]]) 04:58, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ironically, the title text on explainxkcd is different from the one on xkcd.com, demonstrating the reinterpretation of text encoded in UTF-8 as if it were encoded in ISO 8859-1. [[Special:Contributions/162.158.85.231|162.158.85.231]] 05:45, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
-Exactly; this nicely proves Randall's point. On my computer, different characters appear in different browsers, but of course in one browser the characters are reproducible.--[[User:Jkrstrt|Jkrstrt]] ([[User talk:Jkrstrt|talk]]) 07:26, 20 May 2016 (UTC) &lt;br /&gt;
&lt;br /&gt;
Here is the decoded title text:&lt;br /&gt;
    “If you can read this, congratulations–the archive youʼre you're using still knows about the mouseover text”!&lt;br /&gt;
&lt;br /&gt;
:Grungy details:&lt;br /&gt;
:*â€œ -&amp;gt; ''convert to hex'' -&amp;gt; E2-80-9C -&amp;gt; ''UTF8 decode'' -&amp;gt; 0010-000000-011100 -&amp;gt; [http://www.fileformat.info/info/unicode/char/201C/index.htm U-201C &amp;quot;LEFT DOUBLE QUOTATION MARK&amp;quot;]&lt;br /&gt;
:*â€” -&amp;gt; ''convert to hex'' -&amp;gt; E2-80-94 -&amp;gt; ''UTF8 decode'' -&amp;gt; 0010-000000-010100 -&amp;gt; [http://www.fileformat.info/info/unicode/char/2014/index.htm U-2014 &amp;quot;EM DASH&amp;quot;]&lt;br /&gt;
:*â€™ -&amp;gt; ''convert to hex'' -&amp;gt; E2-80-99 -&amp;gt; ''UTF8 decode'' -&amp;gt; 0010-000000-011001 -&amp;gt; [http://www.fileformat.info/info/unicode/char/2019/index.htm U-2019 &amp;quot;RIGHT SINGLE QUOTATION MARK&amp;quot;]&lt;br /&gt;
:*â€! -&amp;gt; ''convert to hex'' -&amp;gt; E2-80-9D -&amp;gt; ''UTF8 decode'' -&amp;gt; 0010-000000-011101 -&amp;gt; [http://www.fileformat.info/info/unicode/char/201d/index.htm U-201D &amp;quot;RIGHT DOUBLE QUOTATION MARK&amp;quot;]&lt;br /&gt;
:[[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 17:31, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
He's written you're twice, but one is with a curly apostrophe, often favoured by americans (and maybe brits?), possible because of their keyboard. The simple apostrophe is “just” html-formatted, whereas the curly one has been molested by a UTF-8 / ISO-8859-1 misreading.&lt;br /&gt;
--[[Special:Contributions/108.162.229.16|108.162.229.16]] 07:51, 20 May 2016 (UTC)&lt;br /&gt;
: I'm British, and I don't have the curly apostrophe anywhere on my keyboard. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 11:01, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm American, and I also don't have the curly apostrophe anywhere on my keyboard, but word processing programs (like MS-Word) are configured by default to automatically replace an ASCII apostrophe in a conjunction with the fancy right-single-quote mark. Also when using quotation marks around text those programs automatically replace the repeated single ASCII quotation marks with the fancy left and right quotation marks (single if using single quotes, double if using double quotes). Most people don't care enough to disable that &amp;quot;feature&amp;quot;... [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is a phenomenon that has always both fascinated me and frustrated me. I find it fascinating how, even today, data degrades as more and more people copy it (remember the old days when people used to copy VHS tapes, and the further you were from the original tape the more copying artefacts your copy had in it?). It also frustrates me, though, when I'm trying to find an original, undegraded image or video and it seems impossible to find. It's also annoying because it's actually pretty easy to copy something without causing any quality loss, yet practically every copied image on the internet has been degraded in some way or another. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:08, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If you haven't yet, you should check out this guy who ripped and reuploaded his own Youtube video 1000 times: https://www.youtube.com/watch?v=jEIzS_27Vt0 [[Special:Contributions/162.158.222.150|162.158.222.150]] 08:28, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
::...and after 100 iterations https://www.youtube.com/watch?v=k6GMvihskBQ ...and the summary of all of them https://www.youtube.com/watch?v=icruGcSsPp0 [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:50, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It can be frustrating to try to convince new people drawing schematics on the computer to not use 4-way junctions because they don't expect digital images to degrade over multiple generations of copying. This xkcd demonstrates the way multiple generations can degrade even digital images, potentially making it difficult to differentiate two crossing (but electrically separate) signal lines from a 4-way junction on a schematic. Sorry, I'll get off my soap box now. ;-) [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's also funny because just a few moments ago I was trying to compress some video to send to someone. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:12, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://fotoforensics.com/analysis.php?id=274fcf46426f2da31b057f1652ae5269cfdbd70a.190103 this page highlights the encoding blocks so that the degration of quality can be seen better. [[Special:Contributions/141.101.91.205|141.101.91.205]] 09:42, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
The phenomenon that Randall is making fun of in this comic is actually called a &amp;quot;shitpic&amp;quot; http://www.theawl.com/2014/12/the-triumphant-rise-of-the-shitpic The explanation should probably make reference to that. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 10:57, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the watermarks on the last frame are from an unregistered screenshot tool, not &amp;quot;9gag&amp;quot; or similar. The references to shit pics are interesting, but aren't you over interpreting the whole thing? {{unsigned ip|162.158.83.174}}&lt;br /&gt;
&lt;br /&gt;
There's a 9gag thing in the image, clean your glasses and look again. --[[Special:Contributions/173.245.54.46|173.245.54.46]] 12:15, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Both screenshots from iOS definitely. Safari browser and… anybody knows?  Some kind of other web browser? Maybe Chrome or Opera? &amp;lt;Need to finally create account&amp;gt; [[Special:Contributions/162.158.202.152|162.158.202.152]] 15:32, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Apparently Russians have been getting this a lot, as they (up to the point of the existence of UNICODE) have had to deal a lot with people using bad codepages.  Example of their post office dealing with a physical package addressed with a bad codepage: http://worldlanguages.wikia.com/wiki/Mojibake?file=Letter_to_Russia_with_krokozyabry.jpg [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:54, 20 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120545</id>
		<title>Talk:1683: Digital Data</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120545"/>
				<updated>2016-05-20T16:54:04Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~--&amp;gt;&lt;br /&gt;
Ewww, Verizon? **** them [[User:International Space Station|International Space Station]] ([[User talk:International Space Station|talk]]) 04:58, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ironically, the title text on explainxkcd is different from the one on xkcd.com, demonstrating the reinterpretation of text encoded in UTF-8 as if it were encoded in ISO 8859-1. [[Special:Contributions/162.158.85.231|162.158.85.231]] 05:45, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
-Exactly; this nicely proves Randall's point. On my computer, different characters appear in different browsers, but of course in one browser the characters are reproducible.--[[User:Jkrstrt|Jkrstrt]] ([[User talk:Jkrstrt|talk]]) 07:26, 20 May 2016 (UTC) &lt;br /&gt;
&lt;br /&gt;
Here is the decoded title text:&lt;br /&gt;
    “If you can read this, congratulations–the archive youʼre you're using still knows about the mouseover text”!&lt;br /&gt;
&lt;br /&gt;
He's written you're twice, but one is with a curly apostrophe, often favoured by americans (and maybe brits?), possible because of their keyboard. The simple apostrophe is “just” html-formatted, whereas the curly one has been molested by a UTF-8 / ISO-8859-1 misreading.&lt;br /&gt;
--[[Special:Contributions/108.162.229.16|108.162.229.16]] 07:51, 20 May 2016 (UTC)&lt;br /&gt;
: I'm British, and I don't have the curly apostrophe anywhere on my keyboard. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 11:01, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm American, and I also don't have the curly apostrophe anywhere on my keyboard, but word processing programs (like MS-Word) are configured by default to automatically replace an ASCII apostrophe in a conjunction with the fancy right-single-quote mark. Also when using quotation marks around text those programs automatically replace the repeated single ASCII quotation marks with the fancy left and right quotation marks (single if using single quotes, double if using double quotes). Most people don't care enough to disable that &amp;quot;feature&amp;quot;... [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is a phenomenon that has always both fascinated me and frustrated me. I find it fascinating how, even today, data degrades as more and more people copy it (remember the old days when people used to copy VHS tapes, and the further you were from the original tape the more copying artefacts your copy had in it?). It also frustrates me, though, when I'm trying to find an original, undegraded image or video and it seems impossible to find. It's also annoying because it's actually pretty easy to copy something without causing any quality loss, yet practically every copied image on the internet has been degraded in some way or another. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:08, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If you haven't yet, you should check out this guy who ripped and reuploaded his own Youtube video 1000 times: https://www.youtube.com/watch?v=jEIzS_27Vt0 [[Special:Contributions/162.158.222.150|162.158.222.150]] 08:28, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
::...and after 100 iterations https://www.youtube.com/watch?v=k6GMvihskBQ ...and the summary of all of them https://www.youtube.com/watch?v=icruGcSsPp0 [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:50, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It can be frustrating to try to convince new people drawing schematics on the computer to not use 4-way junctions because they don't expect digital images to degrade over multiple generations of copying. This xkcd demonstrates the way multiple generations can degrade even digital images, potentially making it difficult to differentiate two crossing (but electrically separate) signal lines from a 4-way junction on a schematic. Sorry, I'll get off my soap box now. ;-) [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's also funny because just a few moments ago I was trying to compress some video to send to someone. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:12, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://fotoforensics.com/analysis.php?id=274fcf46426f2da31b057f1652ae5269cfdbd70a.190103 this page highlights the encoding blocks so that the degration of quality can be seen better. [[Special:Contributions/141.101.91.205|141.101.91.205]] 09:42, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
The phenomenon that Randall is making fun of in this comic is actually called a &amp;quot;shitpic&amp;quot; http://www.theawl.com/2014/12/the-triumphant-rise-of-the-shitpic The explanation should probably make reference to that. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 10:57, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the watermarks on the last frame are from an unregistered screenshot tool, not &amp;quot;9gag&amp;quot; or similar. The references to shit pics are interesting, but aren't you over interpreting the whole thing? {{unsigned ip|162.158.83.174}}&lt;br /&gt;
&lt;br /&gt;
There's a 9gag thing in the image, clean your glasses and look again. --[[Special:Contributions/173.245.54.46|173.245.54.46]] 12:15, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Both screenshots from iOS definitely. Safari browser and… anybody knows?  Some kind of other web browser? Maybe Chrome or Opera? &amp;lt;Need to finally create account&amp;gt; [[Special:Contributions/162.158.202.152|162.158.202.152]] 15:32, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Apparently Russians have been getting this a lot, as they (up to the point of the existence of UNICODE) have had to deal a lot with people using bad codepages.  Example of their post office dealing with a physical package addressed with a bad codepage: http://worldlanguages.wikia.com/wiki/Mojibake?file=Letter_to_Russia_with_krokozyabry.jpg [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:54, 20 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120544</id>
		<title>Talk:1683: Digital Data</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120544"/>
				<updated>2016-05-20T16:50:21Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~--&amp;gt;&lt;br /&gt;
Ewww, Verizon? **** them [[User:International Space Station|International Space Station]] ([[User talk:International Space Station|talk]]) 04:58, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ironically, the title text on explainxkcd is different from the one on xkcd.com, demonstrating the reinterpretation of text encoded in UTF-8 as if it were encoded in ISO 8859-1. [[Special:Contributions/162.158.85.231|162.158.85.231]] 05:45, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
-Exactly; this nicely proves Randall's point. On my computer, different characters appear in different browsers, but of course in one browser the characters are reproducible.--[[User:Jkrstrt|Jkrstrt]] ([[User talk:Jkrstrt|talk]]) 07:26, 20 May 2016 (UTC) &lt;br /&gt;
&lt;br /&gt;
Here is the decoded title text:&lt;br /&gt;
    “If you can read this, congratulations–the archive youʼre you're using still knows about the mouseover text”!&lt;br /&gt;
&lt;br /&gt;
He's written you're twice, but one is with a curly apostrophe, often favoured by americans (and maybe brits?), possible because of their keyboard. The simple apostrophe is “just” html-formatted, whereas the curly one has been molested by a UTF-8 / ISO-8859-1 misreading.&lt;br /&gt;
--[[Special:Contributions/108.162.229.16|108.162.229.16]] 07:51, 20 May 2016 (UTC)&lt;br /&gt;
: I'm British, and I don't have the curly apostrophe anywhere on my keyboard. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 11:01, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm American, and I also don't have the curly apostrophe anywhere on my keyboard, but word processing programs (like MS-Word) are configured by default to automatically replace an ASCII apostrophe in a conjunction with the fancy right-single-quote mark. Also when using quotation marks around text those programs automatically replace the repeated single ASCII quotation marks with the fancy left and right quotation marks (single if using single quotes, double if using double quotes). Most people don't care enough to disable that &amp;quot;feature&amp;quot;... [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is a phenomenon that has always both fascinated me and frustrated me. I find it fascinating how, even today, data degrades as more and more people copy it (remember the old days when people used to copy VHS tapes, and the further you were from the original tape the more copying artefacts your copy had in it?). It also frustrates me, though, when I'm trying to find an original, undegraded image or video and it seems impossible to find. It's also annoying because it's actually pretty easy to copy something without causing any quality loss, yet practically every copied image on the internet has been degraded in some way or another. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:08, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If you haven't yet, you should check out this guy who ripped and reuploaded his own Youtube video 1000 times: https://www.youtube.com/watch?v=jEIzS_27Vt0 [[Special:Contributions/162.158.222.150|162.158.222.150]] 08:28, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
::...and after 100 iterations https://www.youtube.com/watch?v=k6GMvihskBQ ...and the summary of all of them https://www.youtube.com/watch?v=icruGcSsPp0 [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:50, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It can be frustrating to try to convince new people drawing schematics on the computer to not use 4-way junctions because they don't expect digital images to degrade over multiple generations of copying. This xkcd demonstrates the way multiple generations can degrade even digital images, potentially making it difficult to differentiate two crossing (but electrically separate) signal lines from a 4-way junction on a schematic. Sorry, I'll get off my soap box now. ;-) [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's also funny because just a few moments ago I was trying to compress some video to send to someone. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:12, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://fotoforensics.com/analysis.php?id=274fcf46426f2da31b057f1652ae5269cfdbd70a.190103 this page highlights the encoding blocks so that the degration of quality can be seen better. [[Special:Contributions/141.101.91.205|141.101.91.205]] 09:42, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
The phenomenon that Randall is making fun of in this comic is actually called a &amp;quot;shitpic&amp;quot; http://www.theawl.com/2014/12/the-triumphant-rise-of-the-shitpic The explanation should probably make reference to that. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 10:57, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the watermarks on the last frame are from an unregistered screenshot tool, not &amp;quot;9gag&amp;quot; or similar. The references to shit pics are interesting, but aren't you over interpreting the whole thing? {{unsigned ip|162.158.83.174}}&lt;br /&gt;
&lt;br /&gt;
There's a 9gag thing in the image, clean your glasses and look again. --[[Special:Contributions/173.245.54.46|173.245.54.46]] 12:15, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Both screenshots from iOS definitely. Safari browser and… anybody knows?  Some kind of other web browser? Maybe Chrome or Opera? &amp;lt;Need to finally create account&amp;gt; [[Special:Contributions/162.158.202.152|162.158.202.152]] 15:32, 20 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120543</id>
		<title>Talk:1683: Digital Data</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1683:_Digital_Data&amp;diff=120543"/>
				<updated>2016-05-20T16:47:17Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~--&amp;gt;&lt;br /&gt;
Ewww, Verizon? **** them [[User:International Space Station|International Space Station]] ([[User talk:International Space Station|talk]]) 04:58, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ironically, the title text on explainxkcd is different from the one on xkcd.com, demonstrating the reinterpretation of text encoded in UTF-8 as if it were encoded in ISO 8859-1. [[Special:Contributions/162.158.85.231|162.158.85.231]] 05:45, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
-Exactly; this nicely proves Randall's point. On my computer, different characters appear in different browsers, but of course in one browser the characters are reproducible.--[[User:Jkrstrt|Jkrstrt]] ([[User talk:Jkrstrt|talk]]) 07:26, 20 May 2016 (UTC) &lt;br /&gt;
&lt;br /&gt;
Here is the decoded title text:&lt;br /&gt;
    “If you can read this, congratulations–the archive youʼre you're using still knows about the mouseover text”!&lt;br /&gt;
&lt;br /&gt;
He's written you're twice, but one is with a curly apostrophe, often favoured by americans (and maybe brits?), possible because of their keyboard. The simple apostrophe is “just” html-formatted, whereas the curly one has been molested by a UTF-8 / ISO-8859-1 misreading.&lt;br /&gt;
--[[Special:Contributions/108.162.229.16|108.162.229.16]] 07:51, 20 May 2016 (UTC)&lt;br /&gt;
: I'm British, and I don't have the curly apostrophe anywhere on my keyboard. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 11:01, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm American, and I also don't have the curly apostrophe anywhere on my keyboard, but word processing programs (like MS-Word) are configured by default to automatically replace an ASCII apostrophe in a conjunction with the fancy right-single-quote mark. Also when using quotation marks around text those programs automatically replace the repeated single ASCII quotation marks with the fancy left and right quotation marks (single if using single quotes, double if using double quotes). Most people don't care enough to disable that &amp;quot;feature&amp;quot;... [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is a phenomenon that has always both fascinated me and frustrated me. I find it fascinating how, even today, data degrades as more and more people copy it (remember the old days when people used to copy VHS tapes, and the further you were from the original tape the more copying artefacts your copy had in it?). It also frustrates me, though, when I'm trying to find an original, undegraded image or video and it seems impossible to find. It's also annoying because it's actually pretty easy to copy something without causing any quality loss, yet practically every copied image on the internet has been degraded in some way or another. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:08, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If you haven't yet, you should check out this guy who ripped and reuploaded his own Youtube video 1000 times: https://www.youtube.com/watch?v=jEIzS_27Vt0 [[Special:Contributions/162.158.222.150|162.158.222.150]] 08:28, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
::...and after 100 iterations https://www.youtube.com/watch?v=k6GMvihskBQ [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:47, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It can be frustrating to try to convince new people drawing schematics on the computer to not use 4-way junctions because they don't expect digital images to degrade over multiple generations of copying. This xkcd demonstrates the way multiple generations can degrade even digital images, potentially making it difficult to differentiate two crossing (but electrically separate) signal lines from a 4-way junction on a schematic. Sorry, I'll get off my soap box now. ;-) [[Special:Contributions/162.158.252.143|162.158.252.143]] 15:13, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's also funny because just a few moments ago I was trying to compress some video to send to someone. [[Special:Contributions/141.101.98.130|141.101.98.130]] 07:12, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://fotoforensics.com/analysis.php?id=274fcf46426f2da31b057f1652ae5269cfdbd70a.190103 this page highlights the encoding blocks so that the degration of quality can be seen better. [[Special:Contributions/141.101.91.205|141.101.91.205]] 09:42, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
The phenomenon that Randall is making fun of in this comic is actually called a &amp;quot;shitpic&amp;quot; http://www.theawl.com/2014/12/the-triumphant-rise-of-the-shitpic The explanation should probably make reference to that. [[User:Enchantedsleeper|Enchantedsleeper]] ([[User talk:Enchantedsleeper|talk]]) 10:57, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the watermarks on the last frame are from an unregistered screenshot tool, not &amp;quot;9gag&amp;quot; or similar. The references to shit pics are interesting, but aren't you over interpreting the whole thing? {{unsigned ip|162.158.83.174}}&lt;br /&gt;
&lt;br /&gt;
There's a 9gag thing in the image, clean your glasses and look again. --[[Special:Contributions/173.245.54.46|173.245.54.46]] 12:15, 20 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Both screenshots from iOS definitely. Safari browser and… anybody knows?  Some kind of other web browser? Maybe Chrome or Opera? &amp;lt;Need to finally create account&amp;gt; [[Special:Contributions/162.158.202.152|162.158.202.152]] 15:32, 20 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1671:_Arcane_Bullshit&amp;diff=118518</id>
		<title>1671: Arcane Bullshit</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1671:_Arcane_Bullshit&amp;diff=118518"/>
				<updated>2016-04-22T18:47:33Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ minor clarification -- &amp;quot;adjusting&amp;quot; isn't a small operation when not originally designed to be adjusted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1671&lt;br /&gt;
| date      = April 22, 2016&lt;br /&gt;
| title     = Arcane Bullshit&lt;br /&gt;
| image     = arcane_bullshit.png&lt;br /&gt;
| titletext = Learning arcane bullshit from the 80s can break your computer, but if you're willing to wade through arcane bullshit from programmers in the 90s and 2000s, you can break everyone else's computers, too.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|First draft. Please go over it and try to fix any mistakes.}}&lt;br /&gt;
In the '80s, computer sciences in general were far out of the public eye and rapidly advancing for the niche group who did work with it. As such, programming became complex very quickly, leading to its current state of being &amp;quot;arcane bullshit&amp;quot; (understood by few; mysterious or secret). &lt;br /&gt;
&lt;br /&gt;
This comic could also be a reference to changes in programing methodologies. As the first computer programs were written in the 40's and 50's they were prone to becoming &amp;quot;spaghetti code&amp;quot;, where the flow of execution would jump from one part of the program to another using the JUMP which gives no state information. While this method of programing can work very quickly, it makes it difficult to predict program flow and can create interdependencies that are not obvious. In the BASIC language JUMP was called GOTO and the courses for new programmers argued that using GOTO in all but trivial cases was a very bad idea.&lt;br /&gt;
&lt;br /&gt;
To combat the problem computer scientists have relied on increasing the levels of abstraction and encapsulation, by developing Structured Programing, Procedural programing, and OOP (Object Oriented Programming).  &lt;br /&gt;
&lt;br /&gt;
In structured programing you break your program into well defined blocks of code with specified entry points. Using the stack (a portion of memory dedicated to storing information / program state) it is possible to call a block of code and then have that block of code return control to the point that called it after it has done what was requested. &lt;br /&gt;
&lt;br /&gt;
Very quickly it was decided to mark these blocks of code out as functions or procedures, making it a lot easier to know how to call them blocks and edit them. Languages that made this a focus include Pascal, Modula, and C.&lt;br /&gt;
&lt;br /&gt;
Structured / Procedural programing were well entrenched in the 80's. Most systems programing was done in mid or low level languages, which to improve performance don't do much to control access to the data structures in the programs. Because they are low level the code requires many steps to do seemingly easy things like draw a box on a screen. Making it hard for a non experienced programmer to understand what is happening.&lt;br /&gt;
&lt;br /&gt;
Although the idea of OOP was around as early as the 1950's, it was not implemented in a widespread fashion until the 1990's.  OOP encapsulates the data structures inside of functions, so rather than manipulate the variable directly you call the data structure and tell it to do something. This additional level of abstraction can make it a lot easier to work on varied data. It also can protect the program data from unexpected changes by other sections of the program. &lt;br /&gt;
&lt;br /&gt;
Because code in the 80's was typically done at a much lower level, it can be hard for programmers used to having the language and libraries do more work for them. It also meant that programmers would often hard code expectations into their source code such as the number of files that can be opened at once, or size of the operating system disk buffers, rather than make them configurable while the program is running, or even while it was being loaded. This means if you need the program to handle a larger file, you might need to recompile it after finding and changing all the places in the code that assume the smaller max file size.&lt;br /&gt;
&lt;br /&gt;
As such, few people are willing to try to surpass the massive barrier to learning. This group is on the left. To the right are people who have gotten used to the tools and conventions of the 80's that they spend all of their time adjusting and recompiling the kernel of their computers to match their current needs, instead of actually creating new programs.&lt;br /&gt;
&lt;br /&gt;
In the center is Cueball, presumably representing Randall, who has learned enough to try and fix code, but not enough for his fixes to actually work.&lt;br /&gt;
&lt;br /&gt;
As programs age, they often lose support from the initial project head and die out, no longer supported on new computers. So, as the title text says, learning more coding from the '90s and after is necessary for also breaking everyone else's computers.&lt;br /&gt;
&lt;br /&gt;
This could also be a comment on hacking and the advent of the internet and the technologies behind that (TCP/IP, HTML, CSS, PHP...) being 90s/2000s.  Computers in the 80s were typically stand alone so what you are learning can only be applied to your machine.  To break everyone else's you need to understand networking.&lt;br /&gt;
&lt;br /&gt;
The title text might be a reference to various recently discovered {{w|security vulnerabilities}} in {{w|open-source software}}.  In some cases, underskilled programmers have provided flawed code for critical infrastructure with very little review, resulting in global computer security disasters.  Randall described one of these in [[1353: Heartbleed]] and [[1354: Heartbleed Explanation]].  Other recent examples include {{w|Shellshock (software bug)|Shellshock}} and vulnerabilities in the {{w|Linux kernel}} involving the [http://timetobleed.com/a-closer-look-at-a-recent-privilege-escalation-bug-in-linux-cve-2013-2094/ perf] and [http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/ keyrings] subsystems.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A horizontal graph with arrows pointing left and right with labels. The line has  three ticks one towards each end and one in the middle above which Cueball is drawn. Below each tick there is a caption. There is a caption at the top of the panel:]&lt;br /&gt;
: Willingness to wade through some 80's programmer's arcane bullshit:&lt;br /&gt;
:[Left end:] Low &lt;br /&gt;
:[Left tick:] Never learn to program&lt;br /&gt;
:[Above Cueball:] Me&lt;br /&gt;
:[Center tick:] Learn enough to break everything but not enough to fix it&lt;br /&gt;
:[Right end:] High&lt;br /&gt;
:[Right tick:] Spend all your time compiling kernels and never make anything&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Charts]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1646:_Twitter_Bot&amp;diff=113145</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=113145"/>
				<updated>2016-02-22T18:51:06Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ possibly better link for &amp;quot;cloud hosting on Amazon&amp;quot; ?&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;
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 the stereotypical scenario where an unassuming idea results in the accidental creation of malevolent {{w|AI}}, Which then attempts to destroy humanity.&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 Web Services|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 hellscape&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 might have been enough to prevent the &amp;quot;killbot hellscape&amp;quot; scenario, like the rule is depicted doing in the top panel of [[1613: The Three Laws of Robotics]]. It won't cause the bot to stop being in control, however, but if the bot is following the rules strictly it would not be allowed to even make Cueball uncomfortable, which he already becomes when it changes his password!&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>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1532:_New_Horizons&amp;diff=94668</id>
		<title>Talk:1532: New Horizons</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1532:_New_Horizons&amp;diff=94668"/>
				<updated>2015-06-01T17:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anyone know why the text on the comic was heavily aliased (pixelated edges), although it's since been fixed on the xkcd website? [[User:Keavon|Keavon]] ([[User talk:Keavon|talk]]) 07:45, 1 June 2015 (UTC)&lt;br /&gt;
:Probably a bad setting on the PNG compression by Randall when saving.  Maybe he's trying to optimize file size (although in this case, the quality suffered). --BigMal // [[Special:Contributions/108.162.238.192|108.162.238.192]] 11:53, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
According to Wikipedia, &amp;quot;in August 2014, astronomers made high-precision measurements of Pluto's location and orbit around the Sun using the Atacama Large Millimeter/submillimeter Array to help NASA's New Horizons spacecraft accurately home in on Pluto.&amp;quot; Was Steve involved in these measurements too? (And any of the numerous ways by which it can be determined how far away NH is and which way it is travelling!)--[[User:Laverock|Laverock]] ([[User talk:Laverock|talk]]) 12:43, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
This joke appears to be aimed at the implausibility of the Horizon Mission’s concept art, which looks suspiciously like earth. The image shows deserts, mountains and oceans which appear to be “riffs off” of a satellite image of the Horn of Africa, western Asia, and the Indian Ocean. &lt;br /&gt;
Examples:  &lt;br /&gt;
	Artist's conception of New Horizons at Pluto. Image Credit: NASA&lt;br /&gt;
		http://www.nasa.gov/sites/default/files/15-011a.jpg&lt;br /&gt;
	Image usage:&lt;br /&gt;
	http://www.spaceflightinsider.com/missions/solar-system/new-horizons-starts-first-phase-pluto-encounter/&lt;br /&gt;
&lt;br /&gt;
I do not know if the image is concept art for the New Horizon mission from back in 2006; or if it is a more generic space exploration art work.  It is hard to imagine that it is specific to the New Horizon’s Mission.&lt;br /&gt;
One should ask New Horizons mission members to comment. There must be an interesting inside story.    [[User:Dfh42|Dfh42]] ([[User talk:Dfh42|talk]]) 15:49, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
This earlier mission art is probably closer to what Randall would consider plausible:&lt;br /&gt;
	http://www.nasa.gov/multimedia/imagegallery/image_feature_267.html     [[User:Dfh42|Dfh42]] ([[User talk:Dfh42|talk]]) 16:29, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Waitasec, wouldn't the people on the ground know pretty much the exact position of this probe at all times?  If nothing else they know its direction and distance from earth just by monitoring their communications with it. [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 17:45, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Slingshot maneuver&lt;br /&gt;
&lt;br /&gt;
It uses the gravity of a planet to alter the path and speed of a spacecraft. [http://en.wikipedia.org/wiki/Gravity_assist Reference] I guess Steve miscalculated the maneuver. --[[User:Arturotena|Arturotena]] ([[User talk:Arturotena|talk]]) 06:41, 1 June 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
= References&lt;br /&gt;
&lt;br /&gt;
# Related tweet: [https://twitter.com/NASANewHorizons/status/603652798622920704 As @NASANewHorizons gets closer, our view of #Pluto gets better and better!].&lt;br /&gt;
# Related link: [http://www.nasa.gov/feature/nasa-s-new-horizons-sees-more-detail-as-it-draws-closer-to-pluto NASA’s New Horizons Sees More Detail as It Draws Closer to Pluto].&lt;br /&gt;
# [http://dawn.jpl.nasa.gov/team/ NASA Dawn Team]&lt;br /&gt;
--[[User:Arturotena|Arturotena]] ([[User talk:Arturotena|talk]]) 06:34, 1 June 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94496</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94496"/>
				<updated>2015-05-29T09:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Transcript */ SCIENCE!!!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
BDLPSWDKS is an acronym for &lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often incorrectly used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hovering on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. If we assume the firetruck is red, this suggests that the driver shouting '''&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RED&amp;lt;/span&amp;gt;''' would get a faster response than the driver shouting '''&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GREEN&amp;lt;/span&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Ponytail stands next to a screen displaying a firetruck hurtling toward Cueball on what appears to be a layer of gas.&lt;br /&gt;
&lt;br /&gt;
:Ponytail: The Bernoulli-Doppler-Leidenfrost-Peltzman-Sapir-Whorf-Dunning-Kruger-Stroop Effect states that if a speeding fire truck lifts off and hurtles towards you on a layer of superheated gas, you'll dive out of the way faster if the driver screams ''&amp;quot;RED!&amp;quot;'' in a '''''non'''''-tonal language that '''''has''''' a word for &amp;quot;firefighter&amp;quot; than if they scream ''&amp;quot;GREEN!&amp;quot;'' in a '''''tonal''''' language with '''''no''''' word for &amp;quot;firefighter&amp;quot; which you '''''think''''' you're fluent in but '''''aren't'''''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Science]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1531:_The_BDLPSWDKS_Effect&amp;diff=94495</id>
		<title>Talk:1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1531:_The_BDLPSWDKS_Effect&amp;diff=94495"/>
				<updated>2015-05-29T09:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Doesn't the reference to the &amp;quot;Doppler&amp;quot; effect refer to the fact that the Doppler effect may distort the meaning of words in a tonal language, thus making it harder to perceive the word being shouted out of the firetruck?  [[User:A-jay|A-jay]] ([[User talk:A-jay|talk]]) 07:52, 29 May 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think it is a bit more complex than effect mentioned having an individual referent. It becomes complex because the language level, for example, interacts with the physics level. (I think this is the joke, that such random effects from different fields can actually interrelate in some bizarre scenario) A tonal language would be much more susceptible loss of meaning due to blue shift from the doppler effect than a nontonal language. Shouting red is also probably a reference to the 'red-shift' in the doppler effect, which, depending on the speed of the truck may distort the sound the shout or make it unintelligible. At sufficient speed, this would also distort the actual color of the firetruck, which is a topic Randall discussed in one of the What-If's about traffic lights and should probably be linked here. --[[User:MareCrisium|MareCrisium]] ([[User talk:MareCrisium|talk]]) 08:15, 29 May 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought of the red being a redshift as well, but what the heck is &amp;quot;GREEN&amp;quot; then (rather than &amp;quot;BLUE&amp;quot;)? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 09:05, 29 May 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
I wonder if the reference to whether the language has a word for &amp;quot;firetruck&amp;quot; is a Sapir Whorf reference?  If there's no word for firetruck, the listener (victim?) is likely to be more confused by the situation than a listener who can at least recognize what kind of vehicle is about to kill him/her (Curses! There's no sexless personal pronoun in this language!)  So the reaction time of the first person is likely to be longer than that of the second person.&lt;br /&gt;
&lt;br /&gt;
There's a whole class of psychology experiments (with both human and animal subjects) that uses reaction-time as a measure of degree of understanding in various situations.  Is this effect named after a famous experimental psychologist?  If so, Randall may have to issue an update to this cartoon... (End Unsigned Comment)&lt;br /&gt;
&lt;br /&gt;
If you think English has no sexless personal pronoun you *clearly* haven't read comic 145. Ahem... --[[User:MareCrisium|MareCrisium]] ([[User talk:MareCrisium|talk]]) 08:49, 29 May 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94494</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94494"/>
				<updated>2015-05-29T09:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ more interpretation of the stroop effect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
BDLPSWDKS is an acronym for &lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often incorrectly used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hovering on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. If we assume the firetruck is red, this suggests that the driver shouting '''&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RED&amp;lt;/span&amp;gt;''' would get a faster response than the driver shouting '''&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GREEN&amp;lt;/span&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Ponytail stands next to a screen displaying a firetruck hurtling toward Cueball on what appears to be a layer of gas.&lt;br /&gt;
&lt;br /&gt;
:Ponytail: The Bernoulli-Doppler-Leidenfrost-Peltzman-Sapir-Whorf-Dunning-Kruger-Stroop Effect states that if a speeding fire truck lifts off and hurtles towards you on a layer of superheated gas, you'll dive out of the way faster if the driver screams ''&amp;quot;RED!&amp;quot;'' in a '''''non'''''-tonal language that '''''has''''' a word for &amp;quot;firefighter&amp;quot; than if they scream ''&amp;quot;GREEN!&amp;quot;'' in a '''''tonal''''' language with '''''no''''' word for &amp;quot;firefighter&amp;quot; which you '''''think''''' you're fluent in but '''''aren't'''''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94481</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94481"/>
				<updated>2015-05-29T06:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ is the firetruck red?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
BDLPSWDKS is an acronym for &lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hover on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. This is referenced by the driver shouting the names of different colors.  This makes more sense if we assume the firetruck is colored red.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
:Ponytail: The Bernoulli-Doppler-Leidenfrost-Peltzman-Sapir-Whorf-Dunning-Kruger-Stroop Effect states that if a speeding fire truck lifts off and hurtles towards you on a layer of superheated gas, you'll dive out of the way faster if the driver screams ''&amp;quot;RED!&amp;quot;'' in a '''''non'''''-tonal language that '''''has''''' a word for &amp;quot;firefighter&amp;quot; than if they scream ''&amp;quot;GREEN!&amp;quot;'' in a '''''tonal''''' language with '''''no''''' word for &amp;quot;firefighter&amp;quot; which you '''''think''''' you're fluent in but '''''aren't'''''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94480</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94480"/>
				<updated>2015-05-29T06:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Transcript */ added ponytail category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
BDLPSWDKS is an acronym for &lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hover on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. This is referenced by the driver shouting the names of different colors.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
:Ponytail: The Bernoulli-Doppler-Leidenfrost-Peltzman-Sapir-Whorf-Dunning-Kruger-Stroop Effect states that if a speeding fire truck lifts off and hurtles towards you on a layer of superheated gas, you'll dive out of the way faster if the driver screams ''&amp;quot;RED!&amp;quot;'' in a '''''non'''''-tonal language that '''''has''''' a word for &amp;quot;firefighter&amp;quot; than if they scream ''&amp;quot;GREEN!&amp;quot;'' in a '''''tonal''''' language with '''''no''''' word for &amp;quot;firefighter&amp;quot; which you '''''think''''' you're fluent in but '''''aren't'''''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94479</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94479"/>
				<updated>2015-05-29T06:37:27Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Transcript */ initial transcript&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
BDLPSWDKS is an acronym for &lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hover on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. This is referenced by the driver shouting the names of different colors.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
:Ponytail: The Bernoulli-Doppler-Leidenfrost-Peltzman-Sapir-Whorf-Dunning-Kruger-Stroop Effect states that if a speeding fire truck lifts off and hurtles towards you on a layer of superheated gas, you'll dive out of the way faster if the driver screams ''&amp;quot;RED!&amp;quot;'' in a '''''non'''''-tonal language that '''''has''''' a word for &amp;quot;firefighter&amp;quot; than if they scream ''&amp;quot;GREEN!&amp;quot;'' in a '''''tonal''''' language with '''''no''''' word for &amp;quot;firefighter&amp;quot; which you '''''think''''' you're fluent in but '''''aren't'''''.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94477</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94477"/>
				<updated>2015-05-29T06:29:04Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ added wikilink for [tone]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hover on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the {{w|Tone (linguistics)|tonality}} of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. This is referenced by the driver shouting the names of different colors.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94476</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94476"/>
				<updated>2015-05-29T06:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ more-correct principle name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
&lt;br /&gt;
The effect mentioned appears to be a mashup of seven scientific principles from different scientific fields, with elements from each principle appearing in the resulting description of the effect:&lt;br /&gt;
&lt;br /&gt;
{{w|Bernoulli's principle}} in fluid dynamics (also mentioned in [[803: Airfoil]]) states that an increase in the speed of a fluid with certain properties occurs simultaneously with a decrease in pressure or a decrease in the fluid's potential energy, often used to explain how an airplane lifts off the ground. This is referenced by the firetruck lifting off.&lt;br /&gt;
&lt;br /&gt;
The {{w|Doppler effect}} in physics refers to the change in a wave's frequency for an observer moving relative to its source. The effect can be observed from the siren sounding in an approaching vehicle. This is referenced by the firetruck moving towards the observer and making noise.&lt;br /&gt;
&lt;br /&gt;
The {{w|Leidenfrost effect}} refers to how liquid will produce an insulating vapor layer when in near contact with an extremely hot surface, causing it to hover over said surface. This is referenced by the firetruck hover on a layer of superheated gas.&lt;br /&gt;
&lt;br /&gt;
The {{w|Peltzman effect}} refers to how regulations intended to increase safety are ineffective or counterproductive. This is likely referenced by the observer responding to a dangerous situation after being warned.&lt;br /&gt;
&lt;br /&gt;
The {{w|Sapir–Whorf hypothesis}} states that a person's world view and cognitive processes are affected by the structure of the language the person speaks. This is referenced by how the observer reacts differently depending on the tonality of the language in which the warning is uttered and whether or not the language contains the word &amp;quot;firefighter.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The {{w|Dunning–Kruger effect}} refers to unskilled people mistakenly perceive themselves as more skilled than they really are, while skilled people underestimate their own abilities. This is referenced by how observers react differently when they erroneously perceive themselves to be fluent in a language.&lt;br /&gt;
&lt;br /&gt;
The {{w|Stroop effect}} refers to the phenomenon in which it is easier to name the color of the ink in which a word is written when the word refers to the same color as the ink than when the word refers to a different color. This is referenced by the driver shouting the names of different colors.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94465</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94465"/>
				<updated>2015-05-29T05:52:09Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ better fix for table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Principle&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Bernoulli's principle}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Doppler effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Leidenfrost effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Peltzman effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Sapir Whorf Hypothesis}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Dunning–Kruger effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Stroop effect}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94464</id>
		<title>1531: The BDLPSWDKS Effect</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1531:_The_BDLPSWDKS_Effect&amp;diff=94464"/>
				<updated>2015-05-29T05:50:38Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ initial list of the components of the effect (from quick wikipedia searches)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1531&lt;br /&gt;
| date      = May 29, 2015&lt;br /&gt;
| title     = The BDLPSWDKS Effect&lt;br /&gt;
| image     = the bdlpswdks effect.png&lt;br /&gt;
| titletext = This well-known effect has of course been replicated in countless experiments.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|New page}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Principle&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Bernoulli's principle}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Doppler effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Leidenfrost effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Peltzman effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Sapir Whorf Hypothesis}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Dunning–Kruger effect}}&lt;br /&gt;
|-&lt;br /&gt;
|{{w|Stroop effect}}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1479:_Troubleshooting&amp;diff=83666</id>
		<title>Talk:1479: Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1479:_Troubleshooting&amp;diff=83666"/>
				<updated>2015-01-28T17:50:04Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You could also move the off-scrren window back in view by Alt+Space, M to initiate window move, then press any arrow key and your mouse will then be able to move the window back into view. {{unsigned ip|108.162.249.223}}&lt;br /&gt;
:That's a solution that also relies on obscure knowledge (that modal dialogs have a Move command and the hotkey necessary to access it), so it isn't any better than the solution provided in the strip.  '''AND''' it requires that the user know where offscreen the dialog is located.  Mistakenly believing it is, for example, to the right of the visible screen and therefore moving it left will only make the problem worse it the unseen window is in actuality to the left already. Given the 75% or better odds that the user will guess wrong where the dialog lies, using the Move command would be a notably worse choice then changing screen resolution.- Equinox [[Special:Contributions/199.27.128.120|199.27.128.120]] 16:25, 28 January 2015 (UTC)&lt;br /&gt;
::Actually this does work for all Windows machines and something I've done repeatedly (it's a lot faster than waiting for your video card to repeatedly reconfigure the screen).  Once you hit Alt-Space M followed by ANY arrow key, the window will actually be stuck to your mouse pointer; you click it to &amp;quot;drop&amp;quot; the window back onto the page.  And yes, the idea that a keyboard arrow key will cause it to be mouse-driven makes no sense [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 17:50, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
As a matter of fact this is a common problem if you often use a dual screen setup with a laptop when you use it on the move without the second screen. If you just want to close the windows, a Esc on a alert windows or alt+F4 (or your system equivalent)will usually solve this problem. For resizeable windows, Windows offers the Win+left/right combination to move a window to specific parts of the screen. I don7t think you really need to  change the resolution for this all the time, it's clearly overkill. [[User:Meneldal|Meneldal]] ([[User talk:Meneldal|talk]]) 06:40, 28 January 2015 (UTC)meneldal&lt;br /&gt;
&lt;br /&gt;
:On a dual screen setup you can use 'Win key + Shift + Left/Right key' to shift the window left or right between monitors. --[[User:Pudder|Pudder]] ([[User talk:Pudder|talk]]) 09:37, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Note that the Win-left/right and Win-Shift-left/right key combinations are only supported in Windows 7 or later versions. [[Special:Contributions/173.245.55.27|173.245.55.27]] 13:17, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, I'm also familiar with this kind of thing (the strip, I mean, not specifically the last comment).  The general form is that a casual (or even expert!) user expects something from the interface but some historic programmer (of UI or application) has caused the 'obvious' continuity to fail, either by ommission (e.g. checking the placement bounds of a popover window) or by being ''too'' clever in some manner.  The 'stupid knowledge expert' has encountered the problem enough times to: a) find a common root to the issues, and b) stumble upon a solution. (Like the &amp;quot;unstick the Windows-key flag&amp;quot; solution to suddenly getting Run dialogues, Explorer windows and sudden minimising-all to Desktop, seemingly randomly.) [[Special:Contributions/141.101.99.120|141.101.99.120]] 08:29, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
It amazes me how many people assume Microsoft Windows.  If you aren't using MS-Windows, the key combinations suggested in the discussion so far are useless.  If you are using the X Window System, you might also be seeing a system modal dialog instead of an application modal dialog, in which case, you won't be able anything but talk to that window.  (System modal dialogs are usually used for very transient things like popup menus.)  Using X, the &amp;quot;cleanup&amp;quot; behavior also depends on the window manager, and neither X or the window manager are part of the operating system (that abomination is now pretty much just an MS-Windows thing).  --[[User:Divad27182|Divad27182]] ([[User talk:Divad27182|talk]]) 10:39, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
: People tend to assume Windows because in the majority of cases that assumption is correct. In the minority of cases where the user isn't on Windows, those asking the question nearly always mention the fact in their question, or direct their question at an OS-specific topic/forum/website. --[[User:Pudder|Pudder]] ([[User talk:Pudder|talk]]) 11:21, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Mac OS X also uses a baked-in window manager. There are a bunch of apps on OS X that brand themselves as `alternative WMs', but they're usually just a contrived way of tiling windows across the screen somehow (using the built-in WM). Wanting to use a proper tiling WM was what originally drove me to GNU/Linux, long live i3wm! Anyway, this comic could possibly be construed as being related to xkcd.com/934/, which complains about browsers implementing internal WMs in the alt-text. [[Special:Contributions/141.101.99.103|141.101.99.103]] 11:45, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think the first option (ALT-SPACE to access the window menu, M for the move option, arrow key, mouse movement) has a near-equivalent in pretty much any OS. [[Special:Contributions/173.245.55.27|173.245.55.27]] 13:21, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Someone competent in web programming, please write an explanation of the title text [[User:Nyq|Nyq]] ([[User talk:Nyq|talk]]) 13:58, 28 January 2015 (UTC)&lt;br /&gt;
:If I'm not mistaken (and I'm not an expert), a Chrome App is some sort of program (eg Flash based) that runs in the normal &amp;quot;browser space&amp;quot; - the area where you normally see web pages, and which can use Chrome features and controls. A Chrome Extension is a a program which runs in the background and can act on the browser space or the browser itself (eg open your downloads folder in a new tab with one click of a button). Extensions can also use Chrome features and controls. Sound about right? [[User:Jarod997|Jarod997]] ([[User talk:Jarod997|talk]]) 14:34, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Most likely he is on a laptop with an NVidia gpu which in recent driver versions often believe something is connected to the VGA port when this is not the case. The desktop will then think this area is valid, and allow windows to be opened there, in fact it is likely to be opened there because that part of the desktop is clean for windows and looks optimal for placing a new one. At least that is what has been happening to me for the last few months until I forced the VGA port off rather than wait for NVidia to fix their drivers or rolling them back to versions that would misrender recent games (both Windows and Linux drivers did this).[[Special:Contributions/108.162.254.98|108.162.254.98]] 15:41, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Goddamned this sort of thing happens on my dual monitor setup all the time. The external will be at 1366x768, and stuff will be cut off. I change it to something else, and then revert the changes and it's perfect. I keep a shortcut to the Display settings on my desktop just because of this now. And in other, similarly stupid Windows-issue related news, it's 2009+6 and [http://superuser.com/questions/61833/windows-7-taskbar-icon-highlight-sticks this crap] still isn't fixed. [[User:Schiffy|&amp;lt;font color=&amp;quot;000999&amp;quot;&amp;gt;Schiffy&amp;lt;/font&amp;gt;]] ([[User_talk:Schiffy|&amp;lt;font color=&amp;quot;FF6600&amp;quot;&amp;gt;Speak to me&amp;lt;/font&amp;gt;]]|[[Special:Contributions/Schiffy|&amp;lt;font color=&amp;quot;FF0000&amp;quot;&amp;gt;What I've done&amp;lt;/font&amp;gt;]]) 16:22, 28 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
The Chrome developer site [https://developer.chrome.com/webstore/apps_vs_extensions] gives a breakdown on how Chrome apps and extensions are different. Apparently, you can have a Chrome app and a Chrome extension that do similar things, but the extension lacks the user interface, etc., and some of the more interactive features of the app. [[User:Aquarello7|Aquarello7]] ([[User talk:Aquarello7|talk]]) 16:54, 28 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1360:_Old_Files&amp;diff=66163</id>
		<title>1360: Old Files</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1360:_Old_Files&amp;diff=66163"/>
				<updated>2014-04-25T22:40:04Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ wikilink zip disk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1360&lt;br /&gt;
| date      = April 25, 2014&lt;br /&gt;
| title     = Old Files&lt;br /&gt;
| image     = old_files.png&lt;br /&gt;
| titletext = Wow, ANIMORPHS-NOVEL.RTF? Just gonna, uh, go through and delete that from all my archives real quick.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Missing explanations for most of the various files.}}&lt;br /&gt;
Cueball is digging through a pile of old files, which the comic represents as literally digging into the depths of his filesystem.  The files are in concentric layers because each directory contains files moved over from an older system, so his &amp;quot;Documents&amp;quot; folder contains an &amp;quot;Old Desktop&amp;quot; folder from an older computer, the &amp;quot;Old Desktop&amp;quot; contains files recovered from the drive crash of the system before that, which had its own &amp;quot;My Documents&amp;quot; folder, which contained files saved from a [[wikipedia:Zip Disk|Zip Disk]] in high school. The result is that files from all the way back in high school have survived to his present-day machine. He discovers several files he is embarrassed about, including a poetry file that surprises him, since he does not remember writing poetry, and an &amp;quot;[[wikipedia:Animorphs|Animorphs]] Novel&amp;quot; mentioned in the title text, most likely a fan fiction of the Animorphs series, although possibly a copy of one of the original books.&lt;br /&gt;
&lt;br /&gt;
This comic came out the day after [http://news.sky.com/story/1248397/andy-warhol-originals-found-on-floppy-disk Sky News published the story] of original {{w|Andy Warhol}} artwork, created in 1985 on an {{w|Amiga 1000}}, was recovered from recently found floppy disks.&lt;br /&gt;
&lt;br /&gt;
#{{1360/info|{{{type}}}|'''Documents''' (47 GB)|[[wikipedia:My_Documents|Documents]] is the special folder on Windows Vista and newer Microsoft operating systems that holds user files. Notice how the folders get smaller when they are from older systems (with less storage).}}&lt;br /&gt;
##{{1360/info|{{{type}}}|misc.txt}}&lt;br /&gt;
##{{1360/info|{{{type}}}|'''Old desktop''' (12 GB)}}&lt;br /&gt;
###{{1360/info|{{{type}}}|Facebook pics}}&lt;br /&gt;
###{{1360/info|{{{type}}}|Misc PDFs}}&lt;br /&gt;
###{{1360/info|{{{type}}}|MP3}}&lt;br /&gt;
###{{1360/info|{{{type}}}|Pics from other camera}}&lt;br /&gt;
###{{1360/info|{{{type}}}|'''Recovered from drive crash''' (4 GB)}}&lt;br /&gt;
####{{1360/info|{{{type}}}|Audiobooks}}&lt;br /&gt;
####{{1360/info|{{{type}}}|'''My Documents''' (570 MB)|[[wikipedia:My_Documents|My Documents]] is the special folder on Windows XP and older Microsoft operating systems that holds user files.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|4chan}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|AIM Direct Connect files|[[wikipedia:AOL_Instant_Messenger|AIM]] is an instant messenger that allows sending binary data (images etc.) using a direct connection.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|Angband|[[wikipedia:Angband_(video_game)|Angband]] is a rogue-like computer game.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|AYB|[[wikipedia:All_your_base_are_belong_to_us|AYB]] is an acronym for &amp;quot;All your base are belong to us&amp;quot;, a badly translated phrase from video game Zero Wing. This could be a copy of this game or of the popular video that was created to make fun of the bad translation in this game.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|Downloads}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|Elasto Mania|[[wikipedia:Elasto_Mania|Elasto Mania]] is a 2D motorbike computer game}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|EV Override|[[wikipedia:Escape_Velocity_Override|EV Override]] is a video game originally written for the Apple Macintosh.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|FIGHT CLUB.wmv|A Windows Media encode of [[wikipedia:Fight_Club|Fight club (1999)]].}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|GIFs|[[wikipedia:Graphics_Interchange_Format|GIF]] is an image format that is still used for storing lossless images, but before the rise of JPG compression widely accepted for storing all images.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|'''High school Zip disk''' (94 MB)|[[wikipedia:Zip drive|Zip disks]] were a popular storage medium in the late 90's before being replaced by rewritable CD's and later USB thumbdrives.}}&lt;br /&gt;
######{{1360/info|{{{type}}}|'''AAAFILES''' (9.4 MB)}}&lt;br /&gt;
#######{{1360/info|{{{type}}}|'''TXT''' (850 K)}}&lt;br /&gt;
######{{1360/info|{{{type}}}|AOL}}&lt;br /&gt;
#######{{1360/info|{{{type}}}|Citadel}}&lt;br /&gt;
######{{1360/info|{{{type}}}|dream.txt}}&lt;br /&gt;
######{{1360/info|{{{type}}}|Gorilla.bas|[[wikipedia:Gorillas (video game)|Gorilla.bas]] is one of the games that came with QBasic.}}&lt;br /&gt;
######{{1360/info|{{{type}}}|James.txt}}&lt;br /&gt;
######{{1360/info|{{{type}}}|jokes.txt}}&lt;br /&gt;
######{{1360/info|{{{type}}}|Korn MIDI|{{w|MIDI}} is format for music used in times before MP3. {{w|Korn}} might be the rock band.}}&lt;br /&gt;
######{{1360/info|{{{type}}}|lovenote.txt}}&lt;br /&gt;
######{{1360/info|{{{type}}}|NYET|NYET is a Tetris clone written for MS-DOS in 1988.}}&lt;br /&gt;
######{{1360/info|{{{type}}}|Photos3}}&lt;br /&gt;
#######{{1360/info|{{{type}}}|Prom}}&lt;br /&gt;
######{{1360/info|{{{type}}}|QBasic|[[wikipedia:QBasic|QBasic]] is an IDE and intepreter for a dialect of the BASIC programming language, originally bundled with MS-DOS 5.0 and newer.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|ICQ logs|[[wikipedia:ICQ|ICQ]] is an early (1996) instant messenger client.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|Kazaa shared|[[wikipedia:Kazaa|Kazaa]] is an Internet file sharing service.}}&lt;br /&gt;
#####{{1360/info|{{{type}}}|''(four unnamed directories)''}}&lt;br /&gt;
####{{1360/info|{{{type}}}|Temp}}&lt;br /&gt;
####{{1360/info|{{{type}}}|Work misc}}&lt;br /&gt;
###{{1360/info|{{{type}}}|Temp}}&lt;br /&gt;
###{{1360/info|{{{type}}}|''(one unnamed directory)''}}&lt;br /&gt;
##{{1360/info|{{{type}}}|Video projects}}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:Megan (on top of stack of files): You OK down there?&lt;br /&gt;
&lt;br /&gt;
:'''Documents''' (47 GB)&lt;br /&gt;
::misc.txt&lt;br /&gt;
:No header&lt;br /&gt;
::Video projects&lt;br /&gt;
:'''Old desktop''' (12 GB)&lt;br /&gt;
::Facebook pics&lt;br /&gt;
:No header&lt;br /&gt;
::Pics from other camera&lt;br /&gt;
::Temp&lt;br /&gt;
::Misc PDFs&lt;br /&gt;
::MP3&lt;br /&gt;
:'''Recovered from drive crash''' (4 GB)&lt;br /&gt;
::Temp&lt;br /&gt;
:No header&lt;br /&gt;
::Work misc&lt;br /&gt;
::Audio books&lt;br /&gt;
:'''My Documents''' (570 MB)&lt;br /&gt;
::Downloads&lt;br /&gt;
::Kazaa shared&lt;br /&gt;
::AYB|&lt;br /&gt;
::EV Override&lt;br /&gt;
::Angband&lt;br /&gt;
::GIFs&lt;br /&gt;
:No header&lt;br /&gt;
::FIGHT CLUB.wmv&lt;br /&gt;
::Elasto Mania&lt;br /&gt;
::AIM Direct Connect files&lt;br /&gt;
::4chan&lt;br /&gt;
::ICQ loss&lt;br /&gt;
:'''High school Zip disk''' (94 MB)&lt;br /&gt;
::Korn MIDI&lt;br /&gt;
::Photos3 (Prom)&lt;br /&gt;
::lovenote.txt&lt;br /&gt;
::Gorilla.bas&lt;br /&gt;
::Dream.txt&lt;br /&gt;
::James.txt&lt;br /&gt;
::AOL (Citadel)&lt;br /&gt;
::QBasic&lt;br /&gt;
::NYET&lt;br /&gt;
::Jokes.txt&lt;br /&gt;
:Cueball deep inside&lt;br /&gt;
::AAAFILES''' (9.4 MB)&lt;br /&gt;
::'''TXT''' (850 K)&lt;br /&gt;
&lt;br /&gt;
:Cueball (deep inside): Oh my god. I wrote '''POETRY'''.&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1249:_Meteor_Showers&amp;diff=46207</id>
		<title>Talk:1249: Meteor Showers</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1249:_Meteor_Showers&amp;diff=46207"/>
				<updated>2013-08-10T00:12:28Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The dates are not in order {{unsigned ip|‎99.108.140.97}}&lt;br /&gt;
&lt;br /&gt;
Maybe the tennis reference is to Bob and Mike Bryan, they are twins. [[Special:Contributions/83.227.33.35|83.227.33.35]] 09:36, 9 August 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The date for Dromaeosaurids was originally June 12, but on the page displayed at 9:44 ET, is now July 22.&lt;br /&gt;
&lt;br /&gt;
Lyrids: Scream because of the similarity to &amp;quot;Lyrics&amp;quot;? [[Special:Contributions/74.125.57.36|74.125.57.36]] 15:08, 9 August 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't know if it's relevant, but pyramidal cells are needed in complex object recognition and in vision-guided motor function. By closing your eyes, you're basically not using much of your pyramidal cells' capabilities. They're also one of the largest neurones, but I doubt that's relevant. [[Special:Contributions/83.173.97.36|83.173.97.36]] 15:28, 9 August 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
When it comes to the Leonids, John Lennon (I know it's a stretch), made his &amp;quot;bigger than Jesus&amp;quot; comment in '66&lt;br /&gt;
&lt;br /&gt;
For Draconids, are there any movies with dragons that would fit the given description? --[[User:Irino.|Irino.]] ([[User talk:Irino.|talk]]) 18:56, 9 August 2013 (UTC)&lt;br /&gt;
:{{w|Reign_of_Fire_(film)|Reign Of Fire}} first came to mind as far as dragons are concerned, but unlike the Jurassic Park T-Rex (which ''might'' be an influence, given their co-billing alongside the 'Raptor threat) I don't ''think'' they were blind to the motionless (just had bad vision at sunset?) and neither were they were notably slow (far from it!).  Various zombies (non-Rage ones) are slow but surprisingly good at catching people who trip, but I don't see any obvious connection there either.  Maybe there's another Monster Movie which has the same sort of thing with dragons?  I had also considered Komodo Dragons, which are often filmed lumbering about, although they've got a turn of speed on them when attacking so...   Anyway, my thoughts, FWIW. [[Special:Contributions/178.104.103.140|178.104.103.140]] 23:00, 9 August 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
With regard to &amp;quot;daytime&amp;quot; meteor showers being a NASA hoax, would anyone be able to see a meteor shower during the daytime? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 00:12, 10 August 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45864</id>
		<title>1247: The Mother of All Suspicious Files</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45864"/>
				<updated>2013-08-05T15:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ possible explanation as to why to switch from http to https&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1247&lt;br /&gt;
| date      = August 5, 2013&lt;br /&gt;
| title     = The Mother of All Suspicious Files&lt;br /&gt;
| image     = the_mother_of_all_suspicious_files.png&lt;br /&gt;
| titletext = Better change the URL to 'https' before downloading.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The save dialogues shows a download from [http://www.utrace.de/?query=65.222.202.53 65.222.202.53] with a very long file title. Many of the extensions used inside there indicate executable code. You also see common download syntax for a pirated movie, Hackers, likely included to appear malicious to anyone skimming but is actually a movie about hackers, making it a benign reference rather than malicious. The &amp;quot;.LNK&amp;quot; extension is the windows extension for a shortcut (the extension is normally hidden to the user), whereas &amp;quot;.LNK.ZDA.GNN&amp;quot; extensions are references to Link, Zelda, and Ganon, important characters from the Legend of Zelda video game franchise.&lt;br /&gt;
&lt;br /&gt;
The file seems to be an executable, but other file types referenced include:&lt;br /&gt;
* AUTOEXEC.BAT - which is automatically run during startup on Windows/DOS operating systems.&lt;br /&gt;
* MY%20OSX%20DOCUMENTS - referencing the OSX operating system (%20 is a representation of a space in a URL, i.e. it reads as &amp;quot;MY OSX DOCUMENTS&amp;quot;).&lt;br /&gt;
* INSTALL.EXE - a typical installer&lt;br /&gt;
* RAR - a compressed archive file type&lt;br /&gt;
* INI - a settings file type&lt;br /&gt;
* TAR - a file archive popular in UNIX and UNIX-like operating systems&lt;br /&gt;
* DOÇX - looks like a Microsoft Word file type, but isn't&lt;br /&gt;
* PHPHPHP - a play on PHP files, a kind of server-based web page file type&lt;br /&gt;
* XHTML - another web page file type&lt;br /&gt;
* TML - stands for Transducer Markup Language, an XML based markup language that specifies how to capture, time-tag and describe sensor data&lt;br /&gt;
* XTL - another play on XHTML?&lt;br /&gt;
* TXXT - a play on TXT file types&lt;br /&gt;
* 0DAY - a reference to a zero-day exploit&lt;br /&gt;
* HACK.ERS_(1995)_BLURAY_CAM-XVID - a reference to the 1995 Hackers movie, but pirated movies would either be a BlurayRIP/DVDRIP or CAM, but not both at the same time unless you used a camera to recored the Blueray movie as it played?&lt;br /&gt;
* EXE - an executable file type&lt;br /&gt;
* [SCR] - a Windows screensaver (a popular way to get malware onto somebody's Windows machine)&lt;br /&gt;
* LISP - the programming language [https://en.wikipedia.org/wiki/Lisp_(programming_language)]&lt;br /&gt;
* MSI - an installer file type&lt;br /&gt;
* WRBT OBJ - A reference to the line of code Dennis Nedry used in Jurassic Park to shut down key systems&lt;br /&gt;
* O - The extension for a linker file, an intermediary created when compiling C code.&lt;br /&gt;
* H - The file extension of a header file in C code.&lt;br /&gt;
* SWF - Shockwave Flash file type&lt;br /&gt;
* DPKG - Debian package file type&lt;br /&gt;
* APP - an application on Mac OS X operating system&lt;br /&gt;
* ZIP - compressed archive file type&lt;br /&gt;
* CO.GZ - looks like a [http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains top-level domain] for an unknown country, but it is a compressed file using GNU zip.&lt;br /&gt;
* A.OUT - Default filename when creating an executable on Linux or other UNIX-like operating systems if none was specified for the compiler.&lt;br /&gt;
&lt;br /&gt;
The title text suggests changing from http to https, as if encrypting a suspicious file before downloading it is somehow better than downloading it unencrypted.  http (Hyper Text Transfer Protocol) and https (Hyper Text Transfer Protocol - Secure) are the two common protocols for getting web pages and web downloads. http is the simple download, whereas https adds an SSL encryption layer so the item being downloaded cannot be viewed unencrypted by anyone except the end recipient. Changing &amp;quot;http&amp;quot; to &amp;quot;https&amp;quot; is a common suggestion to improve security when browsing the web from an insecure network (such as a public wifi hotspot) to avoid surveillance or hijacking to a malicious website; Google automatically switches to https for all mail accounts and is starting to do so with searches. The end recipient will still get whatever nasties were in the original, however - encrypting it doesn't change the content at all.&lt;br /&gt;
&lt;br /&gt;
The IP address referenced in the comic, 65.222.202.53, is currently being used by the shellcode of a Javascript 0-day exploit for the Tor Browser Bundle being run by the FBI to phone home over the clearnet and de-anonymize visitors to websites on Freedom Hosting that are serving child pornography. [http://www.reddit.com/r/onions/comments/1jmrta/founder_of_the_freedom_hosting_arrested_held/]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A save dialogue popup with an alert sign.]&lt;br /&gt;
:Warning!&lt;br /&gt;
:This type of file can harm your computer! Are your sure you want to download: &amp;lt;nowiki&amp;gt;http://65.222.202.53/~TILDE/PUB/CIA-BIN/ETC/INIT.DLL?FILE=--AUTOEXEX.BAT.MY%20OSX%20DOCUMENTS-INSTANLL.EXE.RAR.INI.TAR.DOCX.PHPHPHP.XHTML.TML.XTL.TXXT.0DAY.HACK.ERS_(1995)_BLURAY-CAM_XVID.EXE.TAR.[SCR].LISTP.MSI.LNK.ZDA.GNN.WRBT.OBJ.O.SWF.DPKG.APP.ZIP.TAR.CO.GZ.OUT.EXE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Two buttons:]&lt;br /&gt;
:Cancel Save&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45846</id>
		<title>1247: The Mother of All Suspicious Files</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45846"/>
				<updated>2013-08-05T14:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ another explanation for .LNK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1247&lt;br /&gt;
| date      = August 5, 2013&lt;br /&gt;
| title     = The Mother of All Suspicious Files&lt;br /&gt;
| image     = the_mother_of_all_suspicious_files.png&lt;br /&gt;
| titletext = Better change the URL to 'https' before downloading.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The save dialogues shows a download from [http://www.utrace.de/?query=65.222.202.53 65.222.202.53] with a very long file title. Many of the extensions used inside there indicate executable code. You also see common download syntax for a pirated movie, Hackers, likely included to appear malicious to anyone skimming but is actually a movie about hackers, making it a benign reference rather than malicious. The &amp;quot;.LNK&amp;quot; extension is the windows extension for a shortcut (the extension is normally hidden to the user), whereas &amp;quot;.LNK.ZDA.GNN&amp;quot; extensions are references to Link, Zelda, and Ganon, important characters from the Legend of Zelda video game franchise.&lt;br /&gt;
&lt;br /&gt;
The file seems to be an executable, but other file types referenced include:&lt;br /&gt;
* AUTOEXEC.BAT - which is automatically run during startup on Windows/DOS operating systems.&lt;br /&gt;
* MY%20OSX%20DOCUMENTS - referencing the OSX operating system (%20 is a representation of a space in a URL, i.e. it reads as &amp;quot;MY OSX DOCUMENTS&amp;quot;).&lt;br /&gt;
* INSTALL.EXE - a typical installer&lt;br /&gt;
* RAR - a compressed archive file type&lt;br /&gt;
* INI - a settings file type&lt;br /&gt;
* TAR - a concatenated file type&lt;br /&gt;
* DOÇX - looks like a Microsoft Word file type, but isn't&lt;br /&gt;
* PHPHPHP - a play on PHP files, a kind of web page file type&lt;br /&gt;
* XHTML - another web page file type&lt;br /&gt;
* TML - possibly a compromise between xhtml, html, shtml, etc?&lt;br /&gt;
* XTL - another play on XHTML?&lt;br /&gt;
* TXXT - a play on TXT file types&lt;br /&gt;
* 0DAY - a reference to a zero-day exploit&lt;br /&gt;
* HACK.ERS_(1995)_BLURAY_CAM-XVID - a reference to the 1995 Hackers movie, but pirated movies would either be a BlurayRIP/DVDRIP or CAM, but not both at the same time unless you used a camera to recored the Blueray movie as it played?&lt;br /&gt;
* EXE - an executable file type&lt;br /&gt;
* [SRC] - a source file&lt;br /&gt;
* LISP - the programming language&lt;br /&gt;
* MSI - an installer file type&lt;br /&gt;
* WRBT - ???&lt;br /&gt;
* OBJ - a universal 3D modeling file format&lt;br /&gt;
* .O - The extension for a linker file, an intermediary created when compiling C code.&lt;br /&gt;
* .H - The file extension of a header file in C code.&lt;br /&gt;
* SWF - Shockwave Flash file type&lt;br /&gt;
* DPKG - Debian package file type&lt;br /&gt;
* APP - generic application file type?&lt;br /&gt;
* ZIP - compressed archive file type&lt;br /&gt;
* CO.GZ - looks like a [[http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains top-level domain]] for an unknown country but isn't&lt;br /&gt;
* A.OUT - Default filename when creating an executable on linux with gcc [http://www.cprogramming.com/gcc.html]&lt;br /&gt;
&lt;br /&gt;
The title text suggests changing from http to https, as if encrypting a suspicious file before downloading it is somehow better than downloading it unencrypted.  http (Hyper Text Transfer Protocol) and https (Hyper Text Transfer Protocol - Secure) are the two common protocols for getting web pages and web downloads. http is the simple download, whereas https adds an SSL encryption layer so the item being downloaded cannot be viewed unencrypted by anyone except the end recipient. The end recipient will still get whatever nasties were in the original, however - encrypting it doesn't change the content at all.&lt;br /&gt;
&lt;br /&gt;
The IP address referenced in the comic, 65.222.202.53, is currently being used by the shellcode of a Javascript 0-day exploit for the Tor Browser Bundle being run by the FBI to phone home over the clearnet and de-anonymize visitors to websites on Freedom Hosting that are serving child pornography. [http://www.reddit.com/r/onions/comments/1jmrta/founder_of_the_freedom_hosting_arrested_held/]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A save dialogue popup with an alert sign.]&lt;br /&gt;
:Warning!&lt;br /&gt;
:This type of file can harm your computer! Are your sure you want to download: &amp;lt;nowiki&amp;gt;http://65.222.202.53/~TILDE/PUB/CIA-BIN/ETC/INIT.DLL?FILE=--AUTOEXEX.BAT.MY%20OSX%20DOCUMENTS-INSTANLL.EXE.RAR.INI.TAR.DOCX.PHPHPHP.XHTML.TML.XTL.TXXT.0DAY.HACK.ERS-(1995)-BLURAY-CAM_XVID.EXE.TAR.[SCR].LISTP.MSI.LNK.ZDA.GNN.WRBT.OBJ.O.SWF.DPKG.APP.ZIP.TAR.CO.GZ.OUT.EXE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Two buttons:]&lt;br /&gt;
:Cancel Save&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45837</id>
		<title>1247: The Mother of All Suspicious Files</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45837"/>
				<updated>2013-08-05T14:47:59Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ tweaking phrasing on &amp;quot;a.out&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1247&lt;br /&gt;
| date      = August 5, 2013&lt;br /&gt;
| title     = The Mother of All Suspicious Files&lt;br /&gt;
| image     = the_mother_of_all_suspicious_files.png&lt;br /&gt;
| titletext = Better change the URL to 'https' before downloading.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The save dialogues shows a download from [http://www.utrace.de/?query=65.222.202.53 65.222.202.53] with a very long file title. Many of the extensions used inside there indicate executable code. You also see common download syntax for a pirated movie, Hackers, likely included to appear malicious to anyone skimming but is actually a movie about hackers, making it a benign reference rather than malicious. The &amp;quot;.LNK.ZDA.GNN&amp;quot; extensions are references to Link, Zelda, and Ganon, important characters from the Legend of Zelda video game franchise.&lt;br /&gt;
&lt;br /&gt;
The file seems to be an executable, but other file types referenced include:&lt;br /&gt;
* AUTOEXEC.BAT - which is automatically run during startup on Windows/DOS operating systems.&lt;br /&gt;
* MY%20OSX%20DOCUMENTES - referencing the OSX operating system.&lt;br /&gt;
* INSTALL.EXE - a typical installer&lt;br /&gt;
* RAR - a compressed archive file type&lt;br /&gt;
* INI - a settings file type&lt;br /&gt;
* TAR - a concatenated file type&lt;br /&gt;
* DOÇX - looks like a Microsoft Word file type, but isn't&lt;br /&gt;
* PHPHPHP - a play on PHP files, a kind of web page file type&lt;br /&gt;
* XHTML - another web page file type&lt;br /&gt;
* TML - possibly a compromise between xhtml, html, shtml, etc?&lt;br /&gt;
* XTL - another play on XHTML?&lt;br /&gt;
* TXXT - a play on TXT file types&lt;br /&gt;
* 0DAY - a reference to a zero-day exploit&lt;br /&gt;
* HACK.ERS_(1995)_BLURAY_CAM-XVID - a reference to the 1995 Hackers movie, but pirated movies would either be a BlurayRIP/DVDRIP or CAM, but not both at the same time unless you used a camera to recored the Blueray movie as it played?&lt;br /&gt;
* EXE - an executable file type&lt;br /&gt;
* [SRC] - a source file&lt;br /&gt;
* LISP - the programming language&lt;br /&gt;
* MSI - an installer file type&lt;br /&gt;
* WRBT.OBJ.O.H - ???&lt;br /&gt;
* SWF - Shockwave Flash file type&lt;br /&gt;
* DPKG - Debian package file type&lt;br /&gt;
* APP - generic application file type?&lt;br /&gt;
* ZIP - compressed archive file type&lt;br /&gt;
* CO.GZ - looks like a [[http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains top-level domain]] for an unknown country but isn't&lt;br /&gt;
* A.OUT - Default filename when creating an executable on linux with gcc [http://www.cprogramming.com/gcc.html]&lt;br /&gt;
&lt;br /&gt;
The title text suggests changing from http to https, as if encrypting a suspicious file before downloading it is somehow better than downloading it unencrypted.  http (Hyper Text Transfer Protocol) and https (Hyper Text Transfer Protocol - Secure) are the two common protocols for getting web pages and web downloads. http is the simple download, whereas https adds an SSL encryption layer so the item being downloaded cannot be viewed unencrypted by anyone except the end recipient. The end recipient will still get whatever nasties were in the original, however - encrypting it doesn't change the content at all.&lt;br /&gt;
&lt;br /&gt;
The IP address referenced in the comic, 65.222.202.53, is currently being used by the shellcode of a Javascript 0-day exploit for the Tor Browser Bundle being run by the FBI to phone home over the clearnet and de-anonymize visitors to websites on Freedom Hosting that are serving child pornography. [http://www.reddit.com/r/onions/comments/1jmrta/founder_of_the_freedom_hosting_arrested_held/]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A save dialogue popup with an alert sign.]&lt;br /&gt;
:Warning!&lt;br /&gt;
:This type of file can harm your computer! Are your sure you want to download: &amp;lt;nowiki&amp;gt;http://65.222.202.53/~TILDE/PUB/CIA-BIN/ETC/INIT.DLL?FILE=--AUTOEXEX.BAT.MY%20OSX%20DOCUMENTS-INSTANLL.EXE.RAR.INI.TAR.DOCX.PHPHPHP.XHTML.TML.XTL.TXXT.0DAY.HACK.ERS-(1995)-BLURAY-CAM_XVID.EXE.TAR.[SCR].LISTP.MSI.LNK.ZDA.GNN.WRBT.OBJ.O.SWF.DPKG.APP.ZIP.TAR.CO.GZ.OUT.EXE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Two buttons:]&lt;br /&gt;
:Cancel Save&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45836</id>
		<title>1247: The Mother of All Suspicious Files</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1247:_The_Mother_of_All_Suspicious_Files&amp;diff=45836"/>
				<updated>2013-08-05T14:45:33Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ a.out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1247&lt;br /&gt;
| date      = August 5, 2013&lt;br /&gt;
| title     = The Mother of All Suspicious Files&lt;br /&gt;
| image     = the_mother_of_all_suspicious_files.png&lt;br /&gt;
| titletext = Better change the URL to 'https' before downloading.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The save dialogues shows a download from [http://www.utrace.de/?query=65.222.202.53 65.222.202.53] with a very long file title. Many of the extensions used inside there indicate executable code. You also see common download syntax for a pirated movie, Hackers, likely included to appear malicious to anyone skimming but is actually a movie about hackers, making it a benign reference rather than malicious. The &amp;quot;.LNK.ZDA.GNN&amp;quot; extensions are references to Link, Zelda, and Ganon, important characters from the Legend of Zelda video game franchise.&lt;br /&gt;
&lt;br /&gt;
The file seems to be an executable, but other file types referenced include:&lt;br /&gt;
* AUTOEXEC.BAT - which is automatically run during startup on Windows/DOS operating systems.&lt;br /&gt;
* MY%20OSX%20DOCUMENTES - referencing the OSX operating system.&lt;br /&gt;
* INSTALL.EXE - a typical installer&lt;br /&gt;
* RAR - a compressed archive file type&lt;br /&gt;
* INI - a settings file type&lt;br /&gt;
* TAR - a concatenated file type&lt;br /&gt;
* DOÇX - looks like a Microsoft Word file type, but isn't&lt;br /&gt;
* PHPHPHP - a play on PHP files, a kind of web page file type&lt;br /&gt;
* XHTML - another web page file type&lt;br /&gt;
* TML - possibly a compromise between xhtml, html, shtml, etc?&lt;br /&gt;
* XTL - another play on XHTML?&lt;br /&gt;
* TXXT - a play on TXT file types&lt;br /&gt;
* 0DAY - a reference to a zero-day exploit&lt;br /&gt;
* HACK.ERS_(1995)_BLURAY_CAM-XVID - a reference to the 1995 Hackers movie, but pirated movies would either be a BlurayRIP/DVDRIP or CAM, but not both at the same time unless you used a camera to recored the Blueray movie as it played?&lt;br /&gt;
* EXE - an executable file type&lt;br /&gt;
* [SRC] - a source file&lt;br /&gt;
* LISP - the programming language&lt;br /&gt;
* MSI - an installer file type&lt;br /&gt;
* WRBT.OBJ.O.H - ???&lt;br /&gt;
* SWF - Shockwave Flash file type&lt;br /&gt;
* DPKG - Debian package file type&lt;br /&gt;
* APP - generic application file type?&lt;br /&gt;
* ZIP - compressed archive file type&lt;br /&gt;
* CO.GZ - looks like a [[http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains top-level domain]] for an unknown country but isn't&lt;br /&gt;
* A.OUT - Default filename created when creating an executable on linux with gcc [http://www.cprogramming.com/gcc.html]&lt;br /&gt;
&lt;br /&gt;
The title text suggests changing from http to https, as if encrypting a suspicious file before downloading it is somehow better than downloading it unencrypted.  http (Hyper Text Transfer Protocol) and https (Hyper Text Transfer Protocol - Secure) are the two common protocols for getting web pages and web downloads. http is the simple download, whereas https adds an SSL encryption layer so the item being downloaded cannot be viewed unencrypted by anyone except the end recipient. The end recipient will still get whatever nasties were in the original, however - encrypting it doesn't change the content at all.&lt;br /&gt;
&lt;br /&gt;
The IP address referenced in the comic, 65.222.202.53, is currently being used by the shellcode of a Javascript 0-day exploit for the Tor Browser Bundle being run by the FBI to phone home over the clearnet and de-anonymize visitors to websites on Freedom Hosting that are serving child pornography. [http://www.reddit.com/r/onions/comments/1jmrta/founder_of_the_freedom_hosting_arrested_held/]&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A save dialogue popup with an alert sign.]&lt;br /&gt;
:Warning!&lt;br /&gt;
:This type of file can harm your computer! Are your sure you want to download: &amp;lt;nowiki&amp;gt;http://65.222.202.53/~TILDE/PUB/CIA-BIN/ETC/INIT.DLL?FILE=--AUTOEXEX.BAT.MY%20OSX%20DOCUMENTS-INSTANLL.EXE.RAR.INI.TAR.DOCX.PHPHPHP.XHTML.TML.XTL.TXXT.0DAY.HACK.ERS-(1995)-BLURAY-CAM_XVID.EXE.TAR.[SCR].LISTP.MSI.LNK.ZDA.GNN.WRBT.OBJ.O.SWF.DPKG.APP.ZIP.TAR.CO.GZ.OUT.EXE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[Two buttons:]&lt;br /&gt;
:Cancel Save&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Computers]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45562</id>
		<title>Talk:1245: 10-Day Forecast</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45562"/>
				<updated>2013-08-01T03:19:24Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any possible significance of people seeming having longer legs that usuall on &amp;quot;monday&amp;quot; frame? Also, why should that &amp;quot;tuesday&amp;quot; figure be {{w|antichrist}}? Looks more like {{w|Loki_(comics)|Loki}} to me (although if it SHOULD be Loki he would probably look even more similar). And &amp;quot;sunday&amp;quot; frame looks more like {{w|Bee}}s that {{w|Locust}}, but it's true I never heard of plague of bees :-). (On the other hand, if {{w|Plagues of Egypt|Plague of locusts}} would be referenced, one would expect the other plagues as well.) Also note that if that should reference {{w|Book of Revelation|Christian Apocalypse}}, it should include more horses. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:16, 31 July 2013 (UTC)&lt;br /&gt;
:I think the &amp;quot;legs&amp;quot; thing is indicating they're floating up due to the {{w|Rapture}}. --[[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 10:26, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also, WHY negative zip codes? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:53, 31 July 2013 (UTC)&lt;br /&gt;
:It may be a reference to [http://tvtropes.org/pmwiki/pmwiki.php/Main/MinusWorld Minus Worlds], implying that the ZIP codes are levels in a video game and the negative ones are glitches, although that's a stretch. [[Special:Contributions/38.108.195.69|38.108.195.69]] 13:41, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The person in the tuesday picture reminded me of the Rabbit &amp;quot;Frank&amp;quot; from Donnie Darko / S. Darko. --[[Special:Contributions/95.33.125.63|95.33.125.63]] 10:33, 31 July 2013 (UTC)&lt;br /&gt;
:If he is, it may mean that negative zip codes are located in a [http://www.donniedarko.org.uk/explanation/ Tangent Universe] --[[User:Danroa|Danroa]] ([[User talk:Danroa|talk]]) 11:02, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that it's actually Megan that says the title text, and not Cueball, mainly because the title text is agreeing with what Cueball said (&amp;quot;Oh, definitely not&amp;quot;). If Cueball were to confirm his own sentence, it wouldn't make sense. {{User:Grep/signature|11:20, 31 July 2013}}&lt;br /&gt;
&lt;br /&gt;
Isn't Sunday a plague of flies? And, judging by the curvature of the earth (I assume) on Tuesday One, wouldn't the character be the size of Galactus? With horns like Galactus? I think it makes sense that it's Galactus. And Monday is just a weird day, just like in my zip code. [[Special:Contributions/67.60.145.86|67.60.145.86]] 13:36, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I assume he's just standing on a hill.[[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What's a zip code? [[Special:Contributions/80.2.179.200|80.2.179.200]] 14:15, 31 July 2013 (UTC)&lt;br /&gt;
: Seriously? See {{w|ZIP code}}. [[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
:: Not so off-the-wall.  The zip code is an American-only thing.  Might be worth a mention for non-American readers. [[User:Vyzen|Vyzen]] ([[User talk:Vyzen|talk]]) 16:21, 31 July 2013 (UTC)&lt;br /&gt;
:::Strongly disagree with that statement. I live in Israel and we have and use zip codes. [[Special:Contributions/95.35.56.169|95.35.56.169]] 17:42, 31 July 2013 (UTC)&lt;br /&gt;
::::Well, here in the UK we use {{w|Postcodes_in_the_United_Kingdom|Postcodes}} that are alphanumeric in nature but pretty much have the same purpose behind them.  Although thanks to US imports on TV/films I think most people know that the US call theirs ZIP Codes, even if not that it's a simple number (like I believe most of European postcodes are).  However, it doesn't harm to give the link referencing it (as has been done) for anyone who really doesn't know or just appreciates a push towards a bit of [[214|Wikicreep]]. (Which I've just self-inflicted on myself by reading down the Postcode article... Forsooth!  Hoist by my own {{w|petard}}!) [[Special:Contributions/178.98.215.19|178.98.215.19]] 19:19, 31 July 2013 (UTC)&lt;br /&gt;
:::::Uhhh, your Postcodes are a horror for programmers, just because the length vary. The first official implementation for this was during {{w|WWII}} in Germany, the UK did implement this in the range of 1959-1974, and the US did start this system in 1963. But there are still many countries not using this system (like Ireland), which is just a double horror for programmers.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 20:18, 31 July 2013 (UTC)&lt;br /&gt;
:Something like &amp;quot;YKK&amp;quot;. [[Special:Contributions/121.72.110.10|121.72.110.10]] 23:30, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Doesn't the Monday guy sort of look like ''{{w|The Scream}}''? &lt;br /&gt;
[[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Did anyone else try to put in a negative zipcode because of this?  I think Google should use this as one of the easter eggs they're so fond of. [[Special:Contributions/138.162.8.57|138.162.8.57]] 16:14, 31 July 2013 (UTC)&lt;br /&gt;
: at weather.com a negative ZIP code gets you a &amp;quot;can't find&amp;quot; type result with Cancun, Mazatlan and Amsterdam offered as suggestions for where you were interested in.  (I tried ZIPs from 10012 to 98072, same result for all I tried).  Google Maps just ignores the negative and gives correct results. [[Special:Contributions/67.51.59.66|67.51.59.66]] 17:48, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Does anyone agree that Randall is playing with the fact that 10day forecast are very inaccurate. We can trust 3, max 4 days of accuracy. After that, is pretty meaningless since the divergence of the models is a likely scenario. No?[[User:Claudionico|cinico]] ([[User talk:Claudionico|talk]])&lt;br /&gt;
: Agree [[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
: I often say that the &amp;quot;five day forecast&amp;quot; is fiction after two days. --[[User:Mr. I|Mr. I]] ([[User talk:Mr. I|talk]]) 19:17, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The forecast shows much more than expected from a normal &amp;quot;weather forecast&amp;quot;. I like that. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:34, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What happens to time, when the world ends? It is a 10-day-forecast. That coincides with 10 image frames. We have the days of the week at the bottom of the frames, which are an independent scale, because there is more than one frame for Tuesday. Interpretation/Assumption: 10 days (the forecast) is subjective for the people being in each location (here: ZIP code). Days of week and generally dates are a global reference time. So in these hells time locally stretches for eternity and this day will never end. But from an outside view time goes on normally.&lt;br /&gt;
Megan says they are all like that. That does not sound like it would be a special occasion to be there, when the world ends, or having found a ZIP number, where the world ends some days from now. Possible solution: Like a function with several poles the world could end at every location with negative ZIP about every week. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:49, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What about negative people, or negative areas where everyone is negative. Doom and Gloom, end of the world type of deal. Seems like a lot of negative people are always talking about the end of the world, and that negative zip code and what's occurring sounds exactly like how the end of the world is pictured. She says all negative zip codes are like that.&lt;br /&gt;
&lt;br /&gt;
Do certain zip codes not have Amazon Prime? [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 01:45, 1 August 2013 (UTC)&lt;br /&gt;
: From the [http://www.amazon.com/gp/help/customer/display.html/?nodeId=201118050 website]: Nearly all addresses in the continental U.S. are eligible.  Explicitly excluded are Alaska, Hawaii, Puerto Rico, P.O. Boxes, APO/FPO addresses. [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 03:19, 1 August 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45561</id>
		<title>Talk:1245: 10-Day Forecast</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45561"/>
				<updated>2013-08-01T03:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any possible significance of people seeming having longer legs that usuall on &amp;quot;monday&amp;quot; frame? Also, why should that &amp;quot;tuesday&amp;quot; figure be {{w|antichrist}}? Looks more like {{w|Loki_(comics)|Loki}} to me (although if it SHOULD be Loki he would probably look even more similar). And &amp;quot;sunday&amp;quot; frame looks more like {{w|Bee}}s that {{w|Locust}}, but it's true I never heard of plague of bees :-). (On the other hand, if {{w|Plagues of Egypt|Plague of locusts}} would be referenced, one would expect the other plagues as well.) Also note that if that should reference {{w|Book of Revelation|Christian Apocalypse}}, it should include more horses. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:16, 31 July 2013 (UTC)&lt;br /&gt;
:I think the &amp;quot;legs&amp;quot; thing is indicating they're floating up due to the {{w|Rapture}}. --[[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 10:26, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also, WHY negative zip codes? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:53, 31 July 2013 (UTC)&lt;br /&gt;
:It may be a reference to [http://tvtropes.org/pmwiki/pmwiki.php/Main/MinusWorld Minus Worlds], implying that the ZIP codes are levels in a video game and the negative ones are glitches, although that's a stretch. [[Special:Contributions/38.108.195.69|38.108.195.69]] 13:41, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The person in the tuesday picture reminded me of the Rabbit &amp;quot;Frank&amp;quot; from Donnie Darko / S. Darko. --[[Special:Contributions/95.33.125.63|95.33.125.63]] 10:33, 31 July 2013 (UTC)&lt;br /&gt;
:If he is, it may mean that negative zip codes are located in a [http://www.donniedarko.org.uk/explanation/ Tangent Universe] --[[User:Danroa|Danroa]] ([[User talk:Danroa|talk]]) 11:02, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that it's actually Megan that says the title text, and not Cueball, mainly because the title text is agreeing with what Cueball said (&amp;quot;Oh, definitely not&amp;quot;). If Cueball were to confirm his own sentence, it wouldn't make sense. {{User:Grep/signature|11:20, 31 July 2013}}&lt;br /&gt;
&lt;br /&gt;
Isn't Sunday a plague of flies? And, judging by the curvature of the earth (I assume) on Tuesday One, wouldn't the character be the size of Galactus? With horns like Galactus? I think it makes sense that it's Galactus. And Monday is just a weird day, just like in my zip code. [[Special:Contributions/67.60.145.86|67.60.145.86]] 13:36, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I assume he's just standing on a hill.[[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What's a zip code? [[Special:Contributions/80.2.179.200|80.2.179.200]] 14:15, 31 July 2013 (UTC)&lt;br /&gt;
: Seriously? See {{w|ZIP code}}. [[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
:: Not so off-the-wall.  The zip code is an American-only thing.  Might be worth a mention for non-American readers. [[User:Vyzen|Vyzen]] ([[User talk:Vyzen|talk]]) 16:21, 31 July 2013 (UTC)&lt;br /&gt;
:::Strongly disagree with that statement. I live in Israel and we have and use zip codes. [[Special:Contributions/95.35.56.169|95.35.56.169]] 17:42, 31 July 2013 (UTC)&lt;br /&gt;
::::Well, here in the UK we use {{w|Postcodes_in_the_United_Kingdom|Postcodes}} that are alphanumeric in nature but pretty much have the same purpose behind them.  Although thanks to US imports on TV/films I think most people know that the US call theirs ZIP Codes, even if not that it's a simple number (like I believe most of European postcodes are).  However, it doesn't harm to give the link referencing it (as has been done) for anyone who really doesn't know or just appreciates a push towards a bit of [[214|Wikicreep]]. (Which I've just self-inflicted on myself by reading down the Postcode article... Forsooth!  Hoist by my own {{w|petard}}!) [[Special:Contributions/178.98.215.19|178.98.215.19]] 19:19, 31 July 2013 (UTC)&lt;br /&gt;
:::::Uhhh, your Postcodes are a horror for programmers, just because the length vary. The first official implementation for this was during {{w|WWII}} in Germany, the UK did implement this in the range of 1959-1974, and the US did start this system in 1963. But there are still many countries not using this system (like Ireland), which is just a double horror for programmers.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 20:18, 31 July 2013 (UTC)&lt;br /&gt;
:Something like &amp;quot;YKK&amp;quot;. [[Special:Contributions/121.72.110.10|121.72.110.10]] 23:30, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Doesn't the Monday guy sort of look like ''{{w|The Scream}}''? &lt;br /&gt;
[[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Did anyone else try to put in a negative zipcode because of this?  I think Google should use this as one of the easter eggs they're so fond of. [[Special:Contributions/138.162.8.57|138.162.8.57]] 16:14, 31 July 2013 (UTC)&lt;br /&gt;
: at weather.com a negative ZIP code gets you a &amp;quot;can't find&amp;quot; type result with Cancun, Mazatlan and Amsterdam offered as suggestions for where you were interested in.  (I tried ZIPs from 10012 to 98072, same result for all I tried).  Google Maps just ignores the negative and gives correct results. [[Special:Contributions/67.51.59.66|67.51.59.66]] 17:48, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Does anyone agree that Randall is playing with the fact that 10day forecast are very inaccurate. We can trust 3, max 4 days of accuracy. After that, is pretty meaningless since the divergence of the models is a likely scenario. No?[[User:Claudionico|cinico]] ([[User talk:Claudionico|talk]])&lt;br /&gt;
: Agree [[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
: I often say that the &amp;quot;five day forecast&amp;quot; is fiction after two days. --[[User:Mr. I|Mr. I]] ([[User talk:Mr. I|talk]]) 19:17, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The forecast shows much more than expected from a normal &amp;quot;weather forecast&amp;quot;. I like that. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:34, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What happens to time, when the world ends? It is a 10-day-forecast. That coincides with 10 image frames. We have the days of the week at the bottom of the frames, which are an independent scale, because there is more than one frame for Tuesday. Interpretation/Assumption: 10 days (the forecast) is subjective for the people being in each location (here: ZIP code). Days of week and generally dates are a global reference time. So in these hells time locally stretches for eternity and this day will never end. But from an outside view time goes on normally.&lt;br /&gt;
Megan says they are all like that. That does not sound like it would be a special occasion to be there, when the world ends, or having found a ZIP number, where the world ends some days from now. Possible solution: Like a function with several poles the world could end at every location with negative ZIP about every week. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:49, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What about negative people, or negative areas where everyone is negative. Doom and Gloom, end of the world type of deal. Seems like a lot of negative people are always talking about the end of the world, and that negative zip code and what's occurring sounds exactly like how the end of the world is pictured. She says all negative zip codes are like that.&lt;br /&gt;
&lt;br /&gt;
Do certain zip codes not have Amazon Prime? [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 01:45, 1 August 2013 (UTC)&lt;br /&gt;
: From the [http://www.amazon.com/gp/help/customer/display.html/?nodeId=201118050 website]: Nearly all addresses in the continental U.S. are eligible.  Explicitly excluded are Alaska, Hawaii, Puerto Rico, P.O. Boxes, APO/FPO addresses.&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45560</id>
		<title>Talk:1245: 10-Day Forecast</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1245:_10-Day_Forecast&amp;diff=45560"/>
				<updated>2013-08-01T03:17:55Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: amazon prime eligibility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any possible significance of people seeming having longer legs that usuall on &amp;quot;monday&amp;quot; frame? Also, why should that &amp;quot;tuesday&amp;quot; figure be {{w|antichrist}}? Looks more like {{w|Loki_(comics)|Loki}} to me (although if it SHOULD be Loki he would probably look even more similar). And &amp;quot;sunday&amp;quot; frame looks more like {{w|Bee}}s that {{w|Locust}}, but it's true I never heard of plague of bees :-). (On the other hand, if {{w|Plagues of Egypt|Plague of locusts}} would be referenced, one would expect the other plagues as well.) Also note that if that should reference {{w|Book of Revelation|Christian Apocalypse}}, it should include more horses. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:16, 31 July 2013 (UTC)&lt;br /&gt;
:I think the &amp;quot;legs&amp;quot; thing is indicating they're floating up due to the {{w|Rapture}}. --[[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 10:26, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also, WHY negative zip codes? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:53, 31 July 2013 (UTC)&lt;br /&gt;
:It may be a reference to [http://tvtropes.org/pmwiki/pmwiki.php/Main/MinusWorld Minus Worlds], implying that the ZIP codes are levels in a video game and the negative ones are glitches, although that's a stretch. [[Special:Contributions/38.108.195.69|38.108.195.69]] 13:41, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The person in the tuesday picture reminded me of the Rabbit &amp;quot;Frank&amp;quot; from Donnie Darko / S. Darko. --[[Special:Contributions/95.33.125.63|95.33.125.63]] 10:33, 31 July 2013 (UTC)&lt;br /&gt;
:If he is, it may mean that negative zip codes are located in a [http://www.donniedarko.org.uk/explanation/ Tangent Universe] --[[User:Danroa|Danroa]] ([[User talk:Danroa|talk]]) 11:02, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that it's actually Megan that says the title text, and not Cueball, mainly because the title text is agreeing with what Cueball said (&amp;quot;Oh, definitely not&amp;quot;). If Cueball were to confirm his own sentence, it wouldn't make sense. {{User:Grep/signature|11:20, 31 July 2013}}&lt;br /&gt;
&lt;br /&gt;
Isn't Sunday a plague of flies? And, judging by the curvature of the earth (I assume) on Tuesday One, wouldn't the character be the size of Galactus? With horns like Galactus? I think it makes sense that it's Galactus. And Monday is just a weird day, just like in my zip code. [[Special:Contributions/67.60.145.86|67.60.145.86]] 13:36, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I assume he's just standing on a hill.[[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What's a zip code? [[Special:Contributions/80.2.179.200|80.2.179.200]] 14:15, 31 July 2013 (UTC)&lt;br /&gt;
: Seriously? See {{w|ZIP code}}. [[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
:: Not so off-the-wall.  The zip code is an American-only thing.  Might be worth a mention for non-American readers. [[User:Vyzen|Vyzen]] ([[User talk:Vyzen|talk]]) 16:21, 31 July 2013 (UTC)&lt;br /&gt;
:::Strongly disagree with that statement. I live in Israel and we have and use zip codes. [[Special:Contributions/95.35.56.169|95.35.56.169]] 17:42, 31 July 2013 (UTC)&lt;br /&gt;
::::Well, here in the UK we use {{w|Postcodes_in_the_United_Kingdom|Postcodes}} that are alphanumeric in nature but pretty much have the same purpose behind them.  Although thanks to US imports on TV/films I think most people know that the US call theirs ZIP Codes, even if not that it's a simple number (like I believe most of European postcodes are).  However, it doesn't harm to give the link referencing it (as has been done) for anyone who really doesn't know or just appreciates a push towards a bit of [[214|Wikicreep]]. (Which I've just self-inflicted on myself by reading down the Postcode article... Forsooth!  Hoist by my own {{w|petard}}!) [[Special:Contributions/178.98.215.19|178.98.215.19]] 19:19, 31 July 2013 (UTC)&lt;br /&gt;
:::::Uhhh, your Postcodes are a horror for programmers, just because the length vary. The first official implementation for this was during {{w|WWII}} in Germany, the UK did implement this in the range of 1959-1974, and the US did start this system in 1963. But there are still many countries not using this system (like Ireland), which is just a double horror for programmers.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 20:18, 31 July 2013 (UTC)&lt;br /&gt;
:Something like &amp;quot;YKK&amp;quot;. [[Special:Contributions/121.72.110.10|121.72.110.10]] 23:30, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Doesn't the Monday guy sort of look like ''{{w|The Scream}}''? &lt;br /&gt;
[[User:Wwoods|Wwoods]] ([[User talk:Wwoods|talk]]) 15:09, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Did anyone else try to put in a negative zipcode because of this?  I think Google should use this as one of the easter eggs they're so fond of. [[Special:Contributions/138.162.8.57|138.162.8.57]] 16:14, 31 July 2013 (UTC)&lt;br /&gt;
: at weather.com a negative ZIP code gets you a &amp;quot;can't find&amp;quot; type result with Cancun, Mazatlan and Amsterdam offered as suggestions for where you were interested in.  (I tried ZIPs from 10012 to 98072, same result for all I tried).  Google Maps just ignores the negative and gives correct results. [[Special:Contributions/67.51.59.66|67.51.59.66]] 17:48, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Does anyone agree that Randall is playing with the fact that 10day forecast are very inaccurate. We can trust 3, max 4 days of accuracy. After that, is pretty meaningless since the divergence of the models is a likely scenario. No?[[User:Claudionico|cinico]] ([[User talk:Claudionico|talk]])&lt;br /&gt;
: Agree [[Special:Contributions/153.31.113.20|153.31.113.20]] 18:53, 31 July 2013 (UTC)&lt;br /&gt;
: I often say that the &amp;quot;five day forecast&amp;quot; is fiction after two days. --[[User:Mr. I|Mr. I]] ([[User talk:Mr. I|talk]]) 19:17, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The forecast shows much more than expected from a normal &amp;quot;weather forecast&amp;quot;. I like that. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:34, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What happens to time, when the world ends? It is a 10-day-forecast. That coincides with 10 image frames. We have the days of the week at the bottom of the frames, which are an independent scale, because there is more than one frame for Tuesday. Interpretation/Assumption: 10 days (the forecast) is subjective for the people being in each location (here: ZIP code). Days of week and generally dates are a global reference time. So in these hells time locally stretches for eternity and this day will never end. But from an outside view time goes on normally.&lt;br /&gt;
Megan says they are all like that. That does not sound like it would be a special occasion to be there, when the world ends, or having found a ZIP number, where the world ends some days from now. Possible solution: Like a function with several poles the world could end at every location with negative ZIP about every week. Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 19:49, 31 July 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What about negative people, or negative areas where everyone is negative. Doom and Gloom, end of the world type of deal. Seems like a lot of negative people are always talking about the end of the world, and that negative zip code and what's occurring sounds exactly like how the end of the world is pictured. She says all negative zip codes are like that.&lt;br /&gt;
&lt;br /&gt;
Do certain zip codes not have Amazon Prime? [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 01:45, 1 August 2013 (UTC)&lt;br /&gt;
: From the [http://www.amazon.com/gp/help/customer/display.html/?nodeId=201118050 website]: Nearly all addresses in the continental U.S. are eligible, except Alaska, Hawaii, Puerto Rico, P.O. Boxes, APO/FPO addresses.&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1225:_Ice_Sheets&amp;diff=40712</id>
		<title>Talk:1225: Ice Sheets</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1225:_Ice_Sheets&amp;diff=40712"/>
				<updated>2013-06-14T16:34:54Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: added rotten tomatoes reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original paper [https://notendur.hi.is//~oi/AG-326%202006%20readings/Canadian%20Arctic/Dyke_QSR2002.pdf] Sebastian --[[Special:Contributions/178.26.118.249|178.26.118.249]] 07:38, 14 June 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It is commonly stated that EVERY sequel is worse that the original film (exceptions are few and often disputed). And very few producents are able to stop filming sequels sooner that they produce sequel worse that all previous. If you see a series with every film better that the previous, then producent is already preparing next one ... or died. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:20, 14 June 2013 (UTC)&lt;br /&gt;
*However, going to the bottom of the Wikipedia page for [http://en.wikipedia.org/wiki/Ice_Age_(film_series)#Critical_reaction Ice Age] shows that Rotten Tomatoes strongly agrees that the sequels were not better [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 16:34, 14 June 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
For those of us who do not live in one of these four cities, does anyone have a more comprehensive set of data for the rest of the continent? Or specifically NYC? ;)&lt;br /&gt;
&lt;br /&gt;
Striations on the rocks in Central Park are evidence that a glacier did reach as far south as New York City and in the referenced article on page 21, Figure 4 shows a map of the extent of the glacier just reaching NYC and Long Island and is labeled as somewhere between 0 and 600 meters thick. This page on the City of New York Parks and Recreation site [http://www.nycgovparks.org/about/history/geology] says the glacier in NYC was about 1000 feet thick which is about 300 meters. I should add that the Freedom Tower being built on the WTC site will be 1776 feet high (counting the broadcast antenna) and the Empire State building is 1454 feet high, so some of the current buildings would have poked out of the ice.&lt;br /&gt;
&lt;br /&gt;
Was just curious, is this a jab at &amp;quot;Global Warming&amp;quot; and the fact that Glaciers have always been melting and getting thinner?--[[Special:Contributions/65.215.93.238|65.215.93.238]] 13:36, 14 June 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1213:_Combination_Vision_Test&amp;diff=37784</id>
		<title>Talk:1213: Combination Vision Test</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1213:_Combination_Vision_Test&amp;diff=37784"/>
				<updated>2013-05-17T20:10:33Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Number is &amp;quot;42&amp;quot;.&lt;br /&gt;
The 4 is composed of 2's and 3's and 7's.&lt;br /&gt;
The 2 is composed of 3's and 7's and 9's.&lt;br /&gt;
--[[User:RainbowDash|RainbowDash]] ([[User talk:RainbowDash|talk]]) 05:16, 17 May 2013 (UTC)&lt;br /&gt;
:What about 7s? --[[Special:Contributions/81.23.24.34|81.23.24.34]] 06:13, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also both have 5's. I'm not very good at this counting thing. That link below is way better, anyhow. --[[User:RainbowDash|RainbowDash]] ([[User talk:RainbowDash|talk]]) 05:28, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://i.imgur.com/BLIQR6w.png&lt;br /&gt;
&lt;br /&gt;
Credit: http://www.reddit.com/user/silly-moose&lt;br /&gt;
&lt;br /&gt;
: Thanks --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:06, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm not confident enough about this to write up an explanation, but given that synesthesia is a sensory experience where the senses blend into each other (hearing colors, tasting sounds, etc...) that a round shape or black and white (why is it not in color? that would help the joke imho) give the sense of a number to the synesthete.  The alt text at least makes sense, seeing two big numbers fits with diplopia (double vision) and the squinting covers myopia (nearsightedness) so it is consistent with the main joke, but I feel like I'm really missing something in the main joke. [[User:Chexwarrior|Chexwarrior]] ([[User talk:Chexwarrior|talk]]) 06:43, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the original b&amp;amp;w image, I keep seeing an 8 on the right and a vague 0, 9, or 4 on the left. I'm not certain if the b&amp;amp;w actually has a definite &amp;quot;answer&amp;quot; or specific number(s) one is supposed to be seeing. I seem to recall an xkcd with an Ishihara test before (but can't find it so it may just be a confabulation), in which case this one may be a reference to that and actually have a referential &amp;quot;answer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I'm not an optometrist, but Chexwarrior,'s explanation of the alt text seems correct to me. [[User:Plazma|Plazma]] ([[User talk:Plazma|talk]]) 07:00, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the left half, the number 9 is missing. Similarly, on the right the number 2 is missing. This makes the number 92 or 29 (any ideas?). There is a floating 2 in the bottom center, the origin is unknown but it does look like a decimal point but that yould defeat the purpose of the number 42 (any ideas?) --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:06, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I was thinking the explanation of the descriptive text (not alt-text) is as follows: the synesthesia is seeing numbers and associating colors with them. So when you look at the numbers in the image, you see certain colors, so the large numbers stand out because they are different colors from the background. But if you're colorblind, (hypothetically) then some of those number-colors might look the same and so the numbers (not sure why only one) would not be visible. [[User:Bplimley|Bplimley]] ([[User talk:Bplimley|talk]]) 07:18, 17 May 2013 (UTC)&lt;br /&gt;
:Maybe if the synesthesia is as follows: Even numbers get one color and odd numbers get another color. I was actually able to see the 2 because of this effect, while I was in photoshop, zoomed in, and coloring the 3's. I know from myself that I have number to color synesthesia, but (in my case) that doesn't apply to a bunch of randomly placed digits like here, but only to complete numbers like &amp;quot;144&amp;quot; looks yellow, red, and white (in no particular order), while &amp;quot;38&amp;quot; looks grayish dark blue.  --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:22, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I seriously doubt ANYONE have so &amp;quot;hard&amp;quot; case of number to color synesthesia it can &amp;quot;color&amp;quot; a bunch of randomly placed digits like this. Like ... if your number-recognizing neurons are working on the small numbers, how can they work on the big numbers in the same time? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:01, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Good catch! I'm not sure how exactly how synesthesia works, but even if the perceived number (due to a perceived colour) further incites a perceived colour, you can still have a combined diagnostic. You just have to make sure that the big number is made up of little ones of the same number; or, atleast made of other numbers which are of the same colour as the desired big number. The latter requires that you assume synesthesia is one way only (for instance - perceiving number triggers colour, but not vice versa) [[Special:Contributions/220.224.246.97|220.224.246.97]] 11:00, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Nitpicking&amp;gt; The alt text is slightly off the mark isn't it? Wouldn't a diplopic(?) person see two images of the diagnostic rather than two numbers in the same diagnostic? Also, you needn't be colour blind to fulfill the condition of perceiving only one digit. Your synesthesia might have a colour blindness, while your optical system does not. &amp;lt;/Nitpicking&amp;gt; [[Special:Contributions/220.224.246.97|220.224.246.97]] 11:07, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that as no two... synaesthetes? ...have exactly the same 'conversion routine' in place that one can't assume the colour dominance of either digit, under an (actual, or synaesthetic) colour-blindness condition.  Also, I wouldn't be surprised to hear &amp;quot;Well, the left hand side smells a bit like a 4, but the right ''sounds'' like a 2...&amp;quot; ;) [[Special:Contributions/178.98.207.61|178.98.207.61]] 12:54, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I will take some LSD and look at this and report back later! [[Special:Contributions/46.166.163.150|46.166.163.150]] 16:22, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think myopia actually makes sense, unless you're reading the comic on a large screen 30 or 40 feet away. The comic is most probably near you, if you're near-sighted you should see it in focus without squinting. [[Special:Contributions/64.223.217.58|64.223.217.58]] 17:19, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I see a big zero!&lt;br /&gt;
&lt;br /&gt;
In the end this test couldn't work, colorblindness is due to a physical effect in the eyeball where synesthesia works in the brain, if someone had both synesthesia and colorblindness then the two numbers in the circle above would be the _only_ color they could see (although being colorblind they may not understand it to be a color at that point) [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 19:37, 17 May 2013 (UTC)&lt;br /&gt;
:It's a JOKE. Sure it does not work for many more reasons. But the combining of all this things is hard to understand and it did last a couple of hours until the first people did understand. In my opinion this is one of the BEST jokes Randall ever did.--[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 19:47, 17 May 2013 (UTC)&lt;br /&gt;
::Yah, I laughed pretty hard when I saw it last night.  Still worth explaining all the intracacies, like people wondering what's wrong with &amp;quot;Locate City&amp;quot; nukes [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 20:10, 17 May 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1213:_Combination_Vision_Test&amp;diff=37779</id>
		<title>Talk:1213: Combination Vision Test</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1213:_Combination_Vision_Test&amp;diff=37779"/>
				<updated>2013-05-17T19:37:06Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Number is &amp;quot;42&amp;quot;.&lt;br /&gt;
The 4 is composed of 2's and 3's and 7's.&lt;br /&gt;
The 2 is composed of 3's and 7's and 9's.&lt;br /&gt;
--[[User:RainbowDash|RainbowDash]] ([[User talk:RainbowDash|talk]]) 05:16, 17 May 2013 (UTC)&lt;br /&gt;
:What about 7s? --[[Special:Contributions/81.23.24.34|81.23.24.34]] 06:13, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also both have 5's. I'm not very good at this counting thing. That link below is way better, anyhow. --[[User:RainbowDash|RainbowDash]] ([[User talk:RainbowDash|talk]]) 05:28, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://i.imgur.com/BLIQR6w.png&lt;br /&gt;
&lt;br /&gt;
Credit: http://www.reddit.com/user/silly-moose&lt;br /&gt;
&lt;br /&gt;
: Thanks --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:06, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm not confident enough about this to write up an explanation, but given that synesthesia is a sensory experience where the senses blend into each other (hearing colors, tasting sounds, etc...) that a round shape or black and white (why is it not in color? that would help the joke imho) give the sense of a number to the synesthete.  The alt text at least makes sense, seeing two big numbers fits with diplopia (double vision) and the squinting covers myopia (nearsightedness) so it is consistent with the main joke, but I feel like I'm really missing something in the main joke. [[User:Chexwarrior|Chexwarrior]] ([[User talk:Chexwarrior|talk]]) 06:43, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the original b&amp;amp;w image, I keep seeing an 8 on the right and a vague 0, 9, or 4 on the left. I'm not certain if the b&amp;amp;w actually has a definite &amp;quot;answer&amp;quot; or specific number(s) one is supposed to be seeing. I seem to recall an xkcd with an Ishihara test before (but can't find it so it may just be a confabulation), in which case this one may be a reference to that and actually have a referential &amp;quot;answer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I'm not an optometrist, but Chexwarrior,'s explanation of the alt text seems correct to me. [[User:Plazma|Plazma]] ([[User talk:Plazma|talk]]) 07:00, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the left half, the number 9 is missing. Similarly, on the right the number 2 is missing. This makes the number 92 or 29 (any ideas?). There is a floating 2 in the bottom center, the origin is unknown but it does look like a decimal point but that yould defeat the purpose of the number 42 (any ideas?) --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:06, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I was thinking the explanation of the descriptive text (not alt-text) is as follows: the synesthesia is seeing numbers and associating colors with them. So when you look at the numbers in the image, you see certain colors, so the large numbers stand out because they are different colors from the background. But if you're colorblind, (hypothetically) then some of those number-colors might look the same and so the numbers (not sure why only one) would not be visible. [[User:Bplimley|Bplimley]] ([[User talk:Bplimley|talk]]) 07:18, 17 May 2013 (UTC)&lt;br /&gt;
:Maybe if the synesthesia is as follows: Even numbers get one color and odd numbers get another color. I was actually able to see the 2 because of this effect, while I was in photoshop, zoomed in, and coloring the 3's. I know from myself that I have number to color synesthesia, but (in my case) that doesn't apply to a bunch of randomly placed digits like here, but only to complete numbers like &amp;quot;144&amp;quot; looks yellow, red, and white (in no particular order), while &amp;quot;38&amp;quot; looks grayish dark blue.  --[[User:Zom-B|Zom-B]] ([[User talk:Zom-B|talk]]) 07:22, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I seriously doubt ANYONE have so &amp;quot;hard&amp;quot; case of number to color synesthesia it can &amp;quot;color&amp;quot; a bunch of randomly placed digits like this. Like ... if your number-recognizing neurons are working on the small numbers, how can they work on the big numbers in the same time? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:01, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Good catch! I'm not sure how exactly how synesthesia works, but even if the perceived number (due to a perceived colour) further incites a perceived colour, you can still have a combined diagnostic. You just have to make sure that the big number is made up of little ones of the same number; or, atleast made of other numbers which are of the same colour as the desired big number. The latter requires that you assume synesthesia is one way only (for instance - perceiving number triggers colour, but not vice versa) [[Special:Contributions/220.224.246.97|220.224.246.97]] 11:00, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Nitpicking&amp;gt; The alt text is slightly off the mark isn't it? Wouldn't a diplopic(?) person see two images of the diagnostic rather than two numbers in the same diagnostic? Also, you needn't be colour blind to fulfill the condition of perceiving only one digit. Your synesthesia might have a colour blindness, while your optical system does not. &amp;lt;/Nitpicking&amp;gt; [[Special:Contributions/220.224.246.97|220.224.246.97]] 11:07, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think that as no two... synaesthetes? ...have exactly the same 'conversion routine' in place that one can't assume the colour dominance of either digit, under an (actual, or synaesthetic) colour-blindness condition.  Also, I wouldn't be surprised to hear &amp;quot;Well, the left hand side smells a bit like a 4, but the right ''sounds'' like a 2...&amp;quot; ;) [[Special:Contributions/178.98.207.61|178.98.207.61]] 12:54, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I will take some LSD and look at this and report back later! [[Special:Contributions/46.166.163.150|46.166.163.150]] 16:22, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think myopia actually makes sense, unless you're reading the comic on a large screen 30 or 40 feet away. The comic is most probably near you, if you're near-sighted you should see it in focus without squinting. [[Special:Contributions/64.223.217.58|64.223.217.58]] 17:19, 17 May 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I see a big zero!&lt;br /&gt;
&lt;br /&gt;
In the end this test couldn't work, colorblindness is due to a physical effect in the eyeball where synesthesia works in the brain, if someone had both synesthesia and colorblindness then the two numbers in the circle above would be the _only_ color they could see (although being colorblind they may not understand it to be a color at that point) [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 19:37, 17 May 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36633</id>
		<title>1209: Encoding</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36633"/>
				<updated>2013-05-08T06:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ wikilink for &amp;quot;diacritic&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1209&lt;br /&gt;
| date      = May 8, 2013&lt;br /&gt;
| title     = Encoding&lt;br /&gt;
| image     = encoding.png&lt;br /&gt;
| titletext = I don't see how; the C0 block is right there at the beginning.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
Cueball and Meagan hired a skywriter to write a text provided in Unicode. Skywriting is using a airplane to write words in the sky with controlled releases of smoke. Unicode is a standard for encoding text which supports an incredible variety of characters and modifiers. An [http://www.fileformat.info/info/unicode/char/203d/index.htm interrobang] is a combination question mark and exclamation mark. A [[wikipedia:diacritic|diacritic]] is any symbol added to a character, usually an accent mark being added to a letter.&lt;br /&gt;
&lt;br /&gt;
Apparently the skywriter got so confused about their instructions that he not just rendered the text incorrectly, but lost control of the plane.&lt;br /&gt;
&lt;br /&gt;
The tooltip refers to the [[wikipedia:C0_and_C1_control_codes|C0 Block]], the name for the first 32 character codes in either the ASCII or UNICODE encodings, traditionally called &amp;quot;control characters&amp;quot;.  It is likely that Cueball is wondering how the plane could have lost control when the control characters are easily found.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:Cueball and Meagan are holding two-way radios.&lt;br /&gt;
:Cueball talking into radio: &amp;quot;No, the combining diacritics go ''over'' the interrobang!&lt;br /&gt;
:Meagan, with radio lowered: &amp;quot;Oh jeez, I think he's lost control.&amp;quot;&lt;br /&gt;
:The skywriter we hired has terrible Unicode support.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[category:Comics featuring Cueball]]&lt;br /&gt;
[[category:Comics featuring Megan]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36630</id>
		<title>1209: Encoding</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36630"/>
				<updated>2013-05-08T06:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ Added reference to &amp;quot;C0 block&amp;quot; (the phrasing feels a bit dodgy though&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1209&lt;br /&gt;
| date      = May 8, 2013&lt;br /&gt;
| title     = Encoding&lt;br /&gt;
| image     = encoding.png&lt;br /&gt;
| titletext = I don't see how; the C0 block is right there at the beginning.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
Cueball and Meagan hired a skywriter to write a text provided in Unicode. Skywriting is using a airplane to write words in the sky with controlled releases of smoke. Unicode is a standard for encoding text which supports an incredible variety of characters and modifiers. An [http://www.fileformat.info/info/unicode/char/203d/index.htm interrobang] is a combination question mark and exclamation mark. A diacritic is any symbol added to a character, usually an accent mark being added to a letter.&lt;br /&gt;
&lt;br /&gt;
Apparently the skywriter got so confused about their instructions that he not just rendered the text incorrectly, but lost control of the plane.&lt;br /&gt;
&lt;br /&gt;
The tooltip refers to the [[wikipedia:C0_and_C1_control_codes|C0 Block]], the name for the first 32 character codes in either the ASCII or UNICODE encodings, traditionally called &amp;quot;control characters&amp;quot;.  It is likely that Cueball is wondering how the plane could have lost control when the control characters are easily found.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:Cueball and Meagan are holding two-way radios.&lt;br /&gt;
:Cueball talking into radio: &amp;quot;No, the combining diacritics go ''over'' the interrobang!&lt;br /&gt;
:Meagan, with radio lowered: &amp;quot;Oh jeez, I think he's lost control.&amp;quot;&lt;br /&gt;
:The skywriter we hired has terrible Unicode support.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[category:Comics featuring Cueball]]&lt;br /&gt;
[[category:Comics featuring Megan]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36629</id>
		<title>1209: Encoding</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1209:_Encoding&amp;diff=36629"/>
				<updated>2013-05-08T05:50:00Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ added link to unicode &amp;quot;interrobang&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1209&lt;br /&gt;
| date      = May 8, 2013&lt;br /&gt;
| title     = Encoding&lt;br /&gt;
| image     = encoding.png&lt;br /&gt;
| titletext = I don't see how; the C0 block is right there at the beginning.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
Cueball and Meagan hired a skywriter to write a text provided in Unicode. Skywriting is using a airplane to write words in the sky with controlled releases of smoke. Unicode is a standard for encoding text which supports an incredible variety of characters and modifiers. An [http://www.fileformat.info/info/unicode/char/203d/index.htm interrobang] is a combination question mark and exclamation mark. A diacritic is any symbol added to a character, usually an accent mark being added to a letter.&lt;br /&gt;
&lt;br /&gt;
Apparently the skywriter got so confused about their instructions that he not just rendered the text incorrectly, but lost control of the plane.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:Cueball and Meagan are holding two-way radios.&lt;br /&gt;
:Cueball talking into radio: &amp;quot;No, the combining diacritics go ''over'' the interrobang!&lt;br /&gt;
:Meagan, with radio lowered: &amp;quot;Oh jeez, I think he's lost control.&amp;quot;&lt;br /&gt;
:The skywriter we hired has terrible Unicode support.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[category:Comics featuring Cueball]]&lt;br /&gt;
[[category:Comics featuring Megan]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31609</id>
		<title>1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31609"/>
				<updated>2013-03-29T04:26:38Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Transcript */ +91:00&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1190&lt;br /&gt;
| date      = March 25, 2013&lt;br /&gt;
| title     = Time&lt;br /&gt;
| image     = time-animated.gif&lt;br /&gt;
| titletext = Wait for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
This comic is a (still ongoing) series of pictures, updating every 30 minutes. The updating is done server-side, with the server redirecting the image link (time.png) to a different image every 30 minutes. It is impossible to load future images (except for one image that was revealed during a glitch), so readers have to wait for the story to unfold in real time. On the XKCD site itself, one cannot see the past either, only the current image. Past images are available from XKCD if you have the direct link for each image. Multiple fan sites, including this one, have stored past images as well as the links to the originals.&lt;br /&gt;
&lt;br /&gt;
As of this writing, it is still updated after more than 72 hours - even after [[1191|a new, different comic]] was posted on the front page.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] and [[Megan]] are presumably by the seaside - Cueball dips his foot in the water at 07:30, and further on (Megan starts at 11:30) they start making a sandcastle. Cueball leaves with a &amp;quot;Later!&amp;quot; at 25:30 and returns without a word at 37:00, continuing in the effort to build the grand sandcastle. Megan leaves without a word at 43:30.&lt;br /&gt;
&lt;br /&gt;
At 51:00 Cueball accidentally demolishes the original &amp;quot;turret&amp;quot; Megan and he completed at 17:00 while descending from the top of the castle. In the next frame he realizes what he broke and in the following frame he's in dismay about it. Cueball then repairs the damage. &lt;br /&gt;
&lt;br /&gt;
Cueball leaves at 61:30, repairing is done. Since then the scene has started to &amp;quot;zoom out&amp;quot;, the first time there has been a change in the &amp;quot;background&amp;quot;.  It is starting to reveal another sand castle to the left. At 72:30, Megan is revealed by this &amp;quot;zoom out,&amp;quot; working on the larger castle to the left.&lt;br /&gt;
&lt;br /&gt;
At 84:30 Megan asks &amp;quot;Wanna Swim&amp;quot; and Cueball says &amp;quot;Yeah&amp;quot;. This is the second frame which has dialogue in it.&lt;br /&gt;
&lt;br /&gt;
At 86:00 a slight wave appears and between 89:00 and 90:30, the sea level rises very very slightly.&lt;br /&gt;
&lt;br /&gt;
At 87:00 they return from the swim, Megan is coughing and Cueball asks if she's okay. Megan answers that she's fine, she just got some (presumed) water in her mouth.  This is the third frame with dialog.&lt;br /&gt;
&lt;br /&gt;
A faster, navigable version of the comic is available at [http://xkcd.aubronwood.com xkcd.aubronwood.com] or an animated gif at [http://primis.org/time/output.gif primis.org]. There is also a wiki dedicated to this comic and the related forum thread, at [http://xkcd-time.wikia.com/]&lt;br /&gt;
&lt;br /&gt;
==Frame by Frame Breakdown==&lt;br /&gt;
Below is the list of all the frames of the comic, in the order that they were revealed. The given times denote the time since the comic was initially released.&lt;br /&gt;
&lt;br /&gt;
:[[Media:time.png|00:00]]&lt;br /&gt;
:[[Media:time2.png|00:30]] - 8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
:[[Media:time3.png|01:00]] - 1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
:[[Media:time4.png|01:30]] - e25be2dd49fe9f33c3543cdf640b67e0f2146cc576db5da007a135a278e524ee.png&lt;br /&gt;
:[[Media:time5.png|02:00]] - 5614c47bc2f28b730a360f796cc2993ba04e1f09db0aa3f325e476338777a9c4.png&lt;br /&gt;
:[[Media:time6.png|02:30]] - 69715ed9abc8deac4fa1edfd49a7fde6970b1c8621a381b1fca2c0854b29c0dd.png&lt;br /&gt;
:[[Media:time7.png|03:00]] - 752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
:[[Media:time8.png|03:30]] - 6e162ade96f5a05b3223df0bcc6fd2ca3c76447a8d6095cee7ff56b2816c959c.png&lt;br /&gt;
:[[Media:time9.png|04:00]] - cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:[[Media:time10.png|04:30]] - 49b69c39cdd429cdf367e215a878f536dc566862ae00b91814adfbd264753d89.png&lt;br /&gt;
:[[Media:time11.png|05:00]] - 9a047f93c3da13dea6f46816cb32a7e45d4a8318205cdd9233102f42efe3ada9.png&lt;br /&gt;
:[[Media:time12.png|05:30]] - 109fc96e2c07e50da5c4d0ec77b0722241aa32c494791e7627c52e8f9f773329.png&lt;br /&gt;
:[[Media:time13.png|06:00]] - fb0cabb8215b77a9d2fbdb44511eccdf9b921125bff5060dc511c9a49e97aa81.png&lt;br /&gt;
:[[Media:time14.png|06:30]] - 426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
:[[Media:time15.png|07:00]] - 007fae5ead14f798ec94f3a3ff6eea56c551d13068a2900e5d50d658ccb2be10.png&lt;br /&gt;
:[[Media:time16.png|07:30]] - 90a46673c29fabb6a1eca1d3d0c5f52103c8e48b246e328dc2aed93b32e48ecb.png&lt;br /&gt;
:[[Media:time17.png|08:00]] - 53732f97cd437d7148faeecaaacbe492ec03ae42f0747933ed3068248f74a25f.png&lt;br /&gt;
:[[Media:time18.png|08:30]] - a901246fd70dcd0054429bf55ced123ecead832300d73dedd78857d91eaff2df.png&lt;br /&gt;
:[[Media:time19.png|09:00]] - 4b1dd11cb21b5631ee8c36f157076fd6185c62a90a580b41357901fcbb7f2190.png&lt;br /&gt;
:[[Media:time20.png|09:30]] - 407f7e8766a75cc25389b7852cd9be4f3f29994eeb5c35f0f7d5656e186d4331.png&lt;br /&gt;
:[[Media:time21.png|10:00]] - 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&lt;br /&gt;
:[[Media:time22.png|10:30]] - 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&lt;br /&gt;
:[[Media:time23.png|11:00]] - d10e0b58110b9182b3dac096bb9f95b299bf7245df8af147428e9070bbbddb1d.png&lt;br /&gt;
:[[Media:time24.png|11:30]] - 4e786f10bc85e1a188f557dad89b4938a3f6baae50200d15924ca238d1e6273c.png&lt;br /&gt;
:[[Media:time25.png|12:00]] - a3aa116efca3c01d8a64c0c7e79158dc8a62241aba767064e3a6c724cc5ade93.png&lt;br /&gt;
:[[Media:time26.png|12:30]] - fce427e9442e1b4bea98fa5ddae9d32d7c1cb0219de663196ee160a0e04cd4f8.png&lt;br /&gt;
:[[Media:time27.png|13:00]] - 470d6f2b03fd4b08d4a3f40c1a969ce84ce7b87fefd441a561908f2f5700dc88.png&lt;br /&gt;
:[[Media:time28.png|13:30]] - c2e1cc28a59b7184d3c3306a655d048669963412c0cf19f164afdc283ffdaf94.png&lt;br /&gt;
:[[Media:time29.png|14:00]] - b2c52fd7587a8b429a27c0b94aaaec7dda657baa71f8651458440912d6de9049.png&lt;br /&gt;
:[[Media:time30.png|14:30]] - 4ec08b20b0be913f7f0f9faf77b30f4bf2d683d224cc9b87479fd8706ad0aa75.png&lt;br /&gt;
:[[Media:time31.png|15:00]] - fc4a27fd780fbba0e88ffc6c4552093f082acbdfeeedbcd38319cb5793a07e32.png&lt;br /&gt;
:[[Media:time32.png|15:30]] - d8a70a1ca8aa3a3f9933169fead2d6f0784863f4563f83345bfafcb42a9dcafa.png&lt;br /&gt;
:[[Media:time33.png|16:00]] - 7725087f3a098133ddd849f7e6ab7660a916acef3315e80244bd849ec491ccb5.png&lt;br /&gt;
:[[Media:time34.png|16:30]] - bfe8bc08b7cf436df87ed9c4c49a8bfb4be2f09b6e28aa1a54ceedc41cb1ff5a.png&lt;br /&gt;
:[[Media:time35.png|17:00]] - 5295b1eeffffdac0385c84511f7d6258136bd390b7215027bc18f845b189095c.png&lt;br /&gt;
:[[Media:time36.png|17:30]] - f00822bdd210187c867b3408180ba93f715ca23a178758d12a0e4bddcbee0679.png&lt;br /&gt;
:[[Media:time37.png|18:00]] - 40c463ee4cd0797979ec9ced3fe4705f4f71050d8ade084cc6ce82ba414784c1.png&lt;br /&gt;
:[[Media:time38.png|18:30]] - f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png&lt;br /&gt;
:[[Media:time39.png|19:00]] - 88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png&lt;br /&gt;
:[[Media:time40.png|19:30]] - c18731de1f786d812d41800e7c86a6b05b537c1e86519776fbaed6a90db7d432.png&lt;br /&gt;
:[[Media:time41.png|20:00]] - 1d51d7be045fe97dc2359c27dd9f9eba8e9f2dc18cc5bea5796ea1e7ebcccf66.png&lt;br /&gt;
:[[Media:time42.png|20:30]] - 121d97f2b78cd18e2f6de40882f13b8759b865581d12edf665e66566edb2e333.png&lt;br /&gt;
:[[Media:time43.png|21:00]] - 13bed763cccb9909272f00e1a1fe92e8360c58a6dfcd322054491bb2d53bd084.png&lt;br /&gt;
:[[Media:time44.png|21:30]] - 6187b994ac8a43b71203733c7d28d384f47480b115524e41a30bfaf3ae77a405.png&lt;br /&gt;
:[[Media:time45.png|22:00]] - b842e5ecde53fb92406dd1de1d8a07571e67a265a458e57e79c77c2e932f989e.png&lt;br /&gt;
:[[Media:time46.png|22:30]] - 6482bafdc122a24f837eb45ac530c7f7f3f54adfb3f309061520c394f895b184.png&lt;br /&gt;
:[[Media:time47.png|23:00]] - 2545500fe415f155cde884403f48520d64cae3ae7bc2aaf0cdd66a1b3a5ac1e9.png&lt;br /&gt;
:[[Media:time48.png|23:30]] - 1da3859627430022485c53ad90e88e8771b2bec2d60e910b59ef332325bba29f.png&lt;br /&gt;
:[[Media:time49.png|24:00]] - 7db653f7045aa6781ec3c7db54279b56f39ec3ef24807cf02bf58a62492579df.png&lt;br /&gt;
:[[Media:time50.png|24:30]] - 14fc092adc9f3aeeb7b066fb54ead77b56cfb58eed5f4b736ff94f0207959169.png&lt;br /&gt;
:[[Media:time51.png|25:00]] - 50adf5715b4cb9a2a23f87ff0df5f618560fb1fa771afc6d5d38295c6effb40d.png&lt;br /&gt;
:[[Media:time52.png|25:30]] - a790d74849afdba2bc7f1781ea6fca9fb62b57d46912b14c40d777843d493f1f.png&lt;br /&gt;
:[[Media:time53.png|26:00]] - 427f9bc8bd184356928562515d420ad9e96a1189043c812c4ba8e1bbb6080ffa.png&lt;br /&gt;
:[[Media:time54.png|26:30]] - 6e13d39f86a04ff2770cafdccff6fd953ed0222a69cb322a68ec595b877db391.png&lt;br /&gt;
:[[Media:time55.png|27:00]] - 305b4d99ba0014a0704b7454939205888f404ffb860d1acadc0d79b84cca88d5.png&lt;br /&gt;
:[[Media:time56.png|27:30]] - f44b9ada26d0fcb9223e51030d4cd8e0384bfa616e850f04f863077c86e06461.png&lt;br /&gt;
:[[Media:time57.png|28:00]] - 201b34b87eafe69f97b131ddc6169bb688749596c19712df5f410ce9bee20f14.png&lt;br /&gt;
:[[Media:time58.png|28:30]] - 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png&lt;br /&gt;
:[[Media:time59.png|29:00]] - 55f56bff8868cb2dd75035a69140df58bf1ed2b21bb7739fcb28dd12960d0bb8.png&lt;br /&gt;
:[[Media:time60.png|29:30]] - f5412e1dbb9bcc3f82bb373156266de1a3f841a6720f650a73980b563850f2d7.png&lt;br /&gt;
:[[Media:time61.png|30:00]] - 9363661d4da84ab7cfe2901830663d255696196e54d4c1207874cb6b561adae9.png&lt;br /&gt;
:[[Media:time62.png|30:30]] - 6893da69231d1d44413073c635f1162c12d95068a22a8ac16c39c941b3e47bce.png&lt;br /&gt;
:[[Media:time63.png|31:00]] - ff12649ab08e48655885fa89536cc034155a9bd4ac9af77775a31565ee232461.png&lt;br /&gt;
:[[Media:time64.png|31:30]] - 297347fd8b2fd37f4df96388ce5f9ead1a89571887b721c087132ba1007cbb7d.png&lt;br /&gt;
:[[Media:time65.png|32:00]] - 5fdcd88b53fc5e7bcb67ca78d3e426f0d4d55bd322a93570ce3485cf6fe95852.png&lt;br /&gt;
:[[Media:time66.png|32:30]] - a97951338dba988c7362713b946b90b9375fe947500a4a76ba1da7205491b55f.png&lt;br /&gt;
:[[Media:time67.png|33:00]] - 261a4c70a112b18d15211cad535fcd3c6c3f16f58a50e99b6ff30dfbf79bd24d.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time72.png|35:30]] - 805819c16bb562698b72871b8e494d4ef2905fb32dca4b12910d744efe31f9f6.png&lt;br /&gt;
:[[Media:time73.png|36:00]] - 600bbcb1f0dbeb19d343ded7c7c8c6e63cecefd29849e1da68684ed53c384bb3.png&lt;br /&gt;
:[[Media:time74.png|36:30]] - fdbd747655fc15d13f161e3e9f8d33d7a482d36395293b26f00a598069857d9c.png&lt;br /&gt;
:[[Media:time75.png|37:00]] - b73990c62d82380282dfdee6dd612d6a1afaa570e1be1d5300bc7da04ced684a.png&lt;br /&gt;
:[[Media:time76.png|37:30]] - b69578076ee90a852d5d672bd5863eb890f466f835fad1a340ea48b4c10221cc.png&lt;br /&gt;
:[[Media:time77.png|38:00]] - 090f22722547c275aa66a413ef76f824c0e9aabfb7053407cb64ecfb68e44807.png&lt;br /&gt;
:[[Media:time78.png|38:30]] - 0fcc1a8ab0c7b8626da1d9cc214ca8aa21860d439743027b7585a8cd433c2c95.png&lt;br /&gt;
:[[Media:time79.png|39:00]] - 92acbd596029cedb5396ebaa8c6438ee68b30a3076a5968c00194873ea2ad76b.png&lt;br /&gt;
:[[Media:time80.png|39:30]] - e87184da8a81517fb389a74ce34de3b2f6e4b3c2b55d6de9cc505023d89566e9.png&lt;br /&gt;
:[[Media:time81.png|40:00]] - b356030ec86a14ae7224ee50d4af063d18cbd48e6a3395a1b6bd0c9e04f6ce70.png&lt;br /&gt;
:[[Media:time82.png|40:30]] - de86486235c332c24539586f6118e44e3a5ef0655637c42a8ce8aeeeddd7418a.png&lt;br /&gt;
:[[Media:time83.png|41:00]] - d4674f445c468c3c90c3f8866b05a682fc296190c95ccce771a42eee53543649.png&lt;br /&gt;
:[[Media:time84.png|41:30]] - d5d760b5528c5276d42e7864ed4189e9f03b68cb2addbb0992e6cfee7af1b6c1.png&lt;br /&gt;
:[[Media:time85.png|42:00]] - 9b440f0dd9a67f61cc38262f1dd93dd8a77c60c23fb09670961748779d88680c.png&lt;br /&gt;
:[[Media:time86.png|42:30]] - 560372e93e497f223f00fb9196494fbf2bc8e06fe01fd12548600d475ef058f6.png&lt;br /&gt;
:[[Media:time87.png|43:00]] - 775f6a4e70b978e69787d57de0cc4df349fe439cc34cb560f11ecf87d2065c1e.png&lt;br /&gt;
:[[Media:time88.png|43:30]] - caa0f012b4706ebcaaad92356896d91610629e7a064ee179dc1810d72e981a2b.png&lt;br /&gt;
:[[Media:time89.png|44:00]] - ebb0517f6246f36900e34c511379cabdbdb46a632de0b794e614a66981bbfa2b.png&lt;br /&gt;
:[[Media:time90.png|44:30]] - fec3db94a8ad6abe44048ad458570346f5f350d7cbf2c6050eff8d62106a019a.png&lt;br /&gt;
:[[Media:time91.png|45:00]] - 75e88091d88984485b51ec90272162112ed280a92a29970f60bc7fcfd6214570.png&lt;br /&gt;
:[[Media:time92.png|45:30]] - 293f68d990c4aeb9a9d3b90b74749c1ef605d743cf8a226d254c589c22b839fc.png&lt;br /&gt;
:[[Media:time93.png|46:00]] - f7dbd7d72c8fb8f487433ebb33c7e365e17da48dc79a1c3457232e72f475f0a1.png&lt;br /&gt;
:[[Media:time94.png|46:30]] - bf8927f9779cdcdeb7fe7697b1110596663c12ab1e2e4fe5aff4e54ffa484217.png&lt;br /&gt;
:[[Media:time95.png|47:00]] - de3d109294d00f7ebb54514a8b3f9b0297c06419c9e297c45e5770f1406ab7ae.png&lt;br /&gt;
:[[Media:time96.png|47:30]] - e594b36574fe7bd54609058b25e3be58ca355bb85cd01d4b9016c1c7a100ab30.png&lt;br /&gt;
:[[Media:time97.png|48:00]] - 3eac1b3e675661ba327350b49f05d45d40d232b20bf74eb44bbb1c0d6860c9d2.png&lt;br /&gt;
:[[Media:time98.png|48:30]] - a228595caf108b46e53f4fe276ebac8fa1545928b650742b0812298d5dfde441.png&lt;br /&gt;
:[[Media:time99.png|49:00]] - b8fcc150729d40bf3f3e07c30091a48691cda3ea9b8b0108d06d62bfc1e49b24.png&lt;br /&gt;
:[[Media:time100.png|49:30]] - fd441796100d891d67e0fc2cb6489534d7ec7f245415a753bb1097dc9f680e76.png&lt;br /&gt;
:[[Media:time101.png|50:00]] - 1e81542c8e2449e1914b12771105ff4e4ec406bdebd8484febcf273f05dce171.png&lt;br /&gt;
:[[Media:time102.png|50:30]] - e74239a37b32a8b073a4cf0a837fc074ff70471116f5ce1ac9b5cdf529cd93bf.png&lt;br /&gt;
:[[Media:time103.png|51:00]] - 9c8b0e5c90dd5b110ad625410c2e84cc4c676065dff14540e326f04e0685d958.png&lt;br /&gt;
:[[Media:time104.png|51:30]] - c07bccb54068e923c0207b512a5b320acfb09e78955cc5ebc02cb3905e6a993f.png&lt;br /&gt;
:[[Media:time105.png|52:00]] - 31680693a02591e2915444e89daf81d953bf3e31ccbeabe42bec249c0eb65fac.png&lt;br /&gt;
:[[Media:time106.png|52:30]] - 81efa7c4509ac7a329407d9da25d12ec0a3baec50e06588586961575e2d65c2c.png&lt;br /&gt;
:[[Media:time107.png|53:00]] - 5450bd39ee84a394467fabcaf92f1a5711c2a4eca24c8bd8a8cec829496e3dd7.png&lt;br /&gt;
:[[Media:time108.png|53:30]] - c2ea85f1ab92f2f80e9c4655c47f5c7effc0a7da01c8a88493864845855b3be8.png&lt;br /&gt;
:[[Media:time109.png|54:00]] - a6adae53099480f255efedbc9016fa8d7a35b7585df857eb862c899ea61e8e48.png&lt;br /&gt;
:[[Media:time110.png|54:30]] - ec55b55b7975789bb4027014f70c83e4d9531af3b4002011c89ebe21da650757.png&lt;br /&gt;
:[[Media:time111.png|55:00]] - 7bef63e1f585b0f3533aa3bd74f5a6acb5165a3cd2dd733bb55684ef637824bd.png&lt;br /&gt;
:[[Media:time112.png|55:30]] - 36ae35d270bffc4d2f361136bcdd0f77339e70d6d2e671d552cbc019e2d65991.png&lt;br /&gt;
:[[Media:time113.png|56:00]] - dee195fbda954e00f088392b150c75cfbe33126d76f9fb910c0ffb51d5630d94.png&lt;br /&gt;
:[[Media:time114.png|56:30]] - be5c157cb9d932684f0f8076d0695a428eab022c734bbe448ea42ac2955e4402.png&lt;br /&gt;
:[[Media:time115.png|57:00]] - d40f6d35639642db88ea44f3983cc1bba646f71f7221357df6b2b8161c5e67cf.png&lt;br /&gt;
:[[Media:time116.png|57:30]] - 936c86c4ecc817ada8b6e601df8a1e65850882ca80edf78dd98a37e7ffb18893.png&lt;br /&gt;
:[[Media:time117.png|58:00]] - 3c3566958f0430bb674416ecbd57bf611da92cfefc2e50e44a49cc00f9299036.png&lt;br /&gt;
:[[Media:time118.png|58:30]] - 244b0f188398cefff270856d4c0ee9af0c2db8134fa70943add99edb27b7cdd9.png&lt;br /&gt;
:[[Media:time119.png|59:00]] - e27f5926edcf05b2e2b41910c389b74344235785e012da24df115c7ad3e7f002.png&lt;br /&gt;
:[[Media:time120.png|59:30]] - 124dad543960a6f296094cf15c9ec360facb64fbd1a6bc8505bac3e850ce6ad5.png&lt;br /&gt;
:[[Media:time121.png|60:00]] - 08f2865464505d371e3af50cf8d0f0e69fdb199ff0fabf52da6c45a67e9c49d5.png&lt;br /&gt;
:[[Media:time122.png|60:30]] - 3b977e96932637237697e2a7feef9d59f3b1bd03e49df1a0c8c7e73643df65db.png&lt;br /&gt;
:[[Media:time123.png|61:00]] - df86194e09adf979ff256993be5d6c0391161a4cdf7eaedb0f030c7e706a74f5.png&lt;br /&gt;
:[[Media:time124.png|61:30]] - 6489605b6f6755c712c8aaaefe668066e36eccaffa0cc9a6f5b3859e43a4ec99.png&lt;br /&gt;
:[[Media:time125.png|62:00]] - c918850ed18afe2c3f3acbeef9c799aba5b10a8efeb45a2f026565383f0a72bc.png&lt;br /&gt;
:[[Media:time126.png|62:30]] - 48283abb3b3bea7632a09ebf4494cb3023f5fbe1c564d4f27ba162ccc92dd2f3.png&lt;br /&gt;
:[[Media:time127.png|63:00]] - a2f77a4b339f71bc78bfeafb550318de6a31cfd5cccc4be8ef9cc1ab7cbc4c7b.png&lt;br /&gt;
:[[Media:time128.png|63:30]] - f8d6d86e39ba397db5f00ee5459508ca2b2cb06a531134ea295a8c7a8c540c2c.png&lt;br /&gt;
:[[Media:time129.png|64:00]] - 96a5aee8f9cafb0382b95c05de69fa1e255eb3d734db4ffe643fa03445b275d2.png&lt;br /&gt;
:[[Media:time130.png|64:30]] - f86996436f7fdc5d2889cf2ed6695522ccd8bacaba17be9654ba9b5675e596bf.png&lt;br /&gt;
:[[Media:time131.png|65:00]] - 16012cbe4d2465a1d5b33188821cfc60d4b27663d50709933d2633fa1c66fb26.png&lt;br /&gt;
:[[Media:time132.png|65:30]] - f376229646427451223a2595083b0e7eb8f2af63e17b6b9243e379fb10bbbdfa.png&lt;br /&gt;
:[[Media:time133.png|66:00]] - b9617babd84de8b63250587724ee364668cf5e4ba62561b91b1cd17d32c92a00.png&lt;br /&gt;
:[[Media:time134.png|66:30]] - 2ad7854603527373dd550f3e065fed7964d3734f06aa366c89b24ae6b96039b2.png&lt;br /&gt;
:[[Media:time135.png|67:00]] - 5be48ef973e98abad7379439d178c501235d8c39597615dcd89eb189ff6d7969.png&lt;br /&gt;
:[[Media:time136.png|67:30]] - df31189e5b219e9003a31b64d37b3670697e8cabf34a6a4a680b95e0792bcd7d.png&lt;br /&gt;
:[[Media:time137.png|68:00]] - 7de21d7786688b2ada78fd8ce6a367f43b70f5cc1146a03c9b01921586e54d64.png&lt;br /&gt;
:[[Media:time138.png|68:30]] - d1926493facc13410b142000f4c46e1cf96d3863b2d120a9a5d155a8e84528fc.png&lt;br /&gt;
:[[Media:time139.png|69:00]] - 457a12ac738a7f88c0f6f35837882514fdf06ed25c4f549627508aa50de1d34d.png&lt;br /&gt;
:[[Media:time140.png|69:30]] - 72898115d43cea1451aad2d204597ae9ba53d3820efe22b7ede0532497641d2f.png&lt;br /&gt;
:[[Media:time141.png|70:00]] - a545e388ebf0177d92bc5104e9a7eec231c1b499cba3b55baa3c8316a8005068.png&lt;br /&gt;
:[[Media:time142.png|70:30]] - 723d460e7c0a3bd93c8d158be8127865bc7fa9456d4df331cc93fda73e0f8889.png&lt;br /&gt;
:[[Media:time143.png|71:00]] - 4c92727698b704ee1d02fbd37c94c220d16be4ad3ff6fc03a3fb77ea6d96434f.png&lt;br /&gt;
:[[Media:time144.png|71:30]] - 6ff7e6fd1af6ec66eab68c8bad6a2d2205a38ba742e2887d568f569fa5289963.png&lt;br /&gt;
:[[Media:time145.png|72:00]] - 05457c91f50c216f6071ae194b4d1822770e1792b0c73eb0fba3cbbdeb616ec2.png&lt;br /&gt;
:[[Media:time146.png|72:30]] - 86f07ecad6c1873963da80b9bd0a1568dac1bec84bf5a675bdafdee076de20f8.png&lt;br /&gt;
:[[Media:time147.png|73:00]] - 71a02d54537aa7c26b5136628e9a2cf1bd7584a152b76f72d648c6da5dcaa792.png&lt;br /&gt;
:[[Media:time148.png|73:30]] - 353741527bcc681667b7d26fce0e5855e03e6acbceb5c627e5606d6a67cbc7c3.png&lt;br /&gt;
:[[Media:time149.png|74:00]] - 4cfb1c2824a5e51e161f3ec1c5d2199b0058b60872ef3f26df928bbcd140a7b9.png&lt;br /&gt;
:[[Media:time150.png|74:30]] - aff5b3e6c82a9711fb69fa639392bd0eb4987bc016ef6e8f742badca1c3b67d3.png&lt;br /&gt;
:[[Media:time151.png|75:00]] - 6b9a4c7c19d902ad81633e1d7b9df4041a2f744ce365e34648f756cf3401b019.png&lt;br /&gt;
:[[Media:time152.png|75:30]] - 0dc7bdfef2b3b9594fbd4ec80b8fb3d835d4ff4002f6d5fe61227fdd7384f9b4.png&lt;br /&gt;
:[[Media:time153.png|76:00]] - 88217a315d96eb39535f8b1564f3827d0b84fb0f031ced232136a773f27189de.png&lt;br /&gt;
:[[Media:time154.png|76:30]] - dcbe928012a06ae5118d4cd3850a4f1bcc0a7e4e86b2c04751fe79370cbb35bc.png&lt;br /&gt;
:[[Media:time155.png|77:00]] - 1c9e30c1ea206fd46ef2bdfb192cf89e83b48b8d9718cdf5accec49afe6058cd.png&lt;br /&gt;
:[[Media:time156.png|77:30]] - 1e0e30840f50bf42f9c3970703d9274afabb4fe8ac3998b623a1111a7aed9320.png&lt;br /&gt;
:[[Media:time157.png|78:00]] - d318e77ea28ef148af0f0b7ee275810e5d30f287be1faa493e7eb2163083a4ac.png&lt;br /&gt;
:[[Media:time158.png|78:30]] - 7a9ad04ca9ab488bc7673dfafbd69d384300d2265339020ce2a86befe814b14c.png&lt;br /&gt;
:[[Media:time159.png|79:00]] - ff7305f8c90cbc9e37825f15b1f199076a270d1fc8365082c0bebd3fcafbceee.png&lt;br /&gt;
:[[Media:time160.png|79:30]] - 8b2d052e799618ffd31c769e528b7dfd3046011cb3973cafcc4610e1dbc0f90c.png&lt;br /&gt;
:[[Media:time161.png|80:00]] - fdd2953ddeef587809f67b1ee0d7f26241c4007b842a5cff42f52fbf47847e77.png&lt;br /&gt;
:[[Media:time162.png|80:30]] - 778828ccd64092f3fd5bd355c56ac200cbf1bbb7d194073b47dd31440f541987.png&lt;br /&gt;
:[[Media:time163.png|81:00]] - a11ef76a620cef2817167f7942294610d47bda6e1eef001a83a2408e41d8383c.png&lt;br /&gt;
:[[Media:time164.png|81:30]] - 23114b4d82663a01a3644bc45280f4f85686557f6f96429f72fb56a30fd5af32.png&lt;br /&gt;
:[[Media:time165.png|82:00]] - 40f1d3ba22b0180fd01403f8bc2f285fc9fbb6cec44ce354dfa5a3a79cf8dd6e.png&lt;br /&gt;
:[[Media:time166.png|82:30]] - 111d01029afc7b55c1bb7c85aa96ca9cc5cade53b4a5ab4770723051771f010c.png&lt;br /&gt;
:[[Media:time167.png|83:00]] - 38c86d07370946b20d4cfdffa3bccebc3c482eccedd6e0dbd749f986bd88ad06.png&lt;br /&gt;
:[[Media:time168.png|83:30]] - fec33645ab92d72764140c657f7d095228e914df7be54b6fdf794c498ed878bb.png&lt;br /&gt;
:[[Media:time169.png|84:00]] - 932c13f387a0d346dde14e3ddd7d598db79e420fdc3ca93c109715377018b86a.png&lt;br /&gt;
:[[Media:time170.png|84:30]] - 0a17cbccb6644aeba7896c8ed20857941e2a0fdd6e21d58cdf6ea1074de81a2d.png&lt;br /&gt;
:[[Media:time171.png|85:00]] - 74684c8be1c329cff776759ab29a3e614834d107ca99626805ce318268e74471.png&lt;br /&gt;
:[[Media:time172.png|85:30]] - 9996f99ec0e08c63b8f50c9900c73ba37417fdeef2a17888748cc0c078370b82.png&lt;br /&gt;
:[[Media:time173.png|86:00]] - 61be4c0049c0e179be0430bc42a65e429ab5c2ebfd3266eb7715d471cef4c5ac.png&lt;br /&gt;
:[[Media:time174.png|86:30]] - dc04c4f093f993d3dcadd13b2f68953c2326c4f1e06d5bfe3bcdb5351fdacf85.png&lt;br /&gt;
:[[Media:time175.png|87:00]] - 0c13b40fb2d866d6d00a267bbb71f844731d97ed9982f97f1ddc0eaa1a054cb5.png&lt;br /&gt;
:[[Media:time176.png|87:30]] - 7d8d0f7cd3295fef29ee92973b1f4fe9f71caf396599376e01e5a2f203d517d6.png&lt;br /&gt;
:[[Media:time177.png|88:00]] - 8f30c75832821619584d49c74a41ace49b28502bd8cad34920060065dabe4760.png&lt;br /&gt;
:[[Media:time178.png|88:30]] - 3dc97e7c04106693b7857ee9c826b8f967248906ad2542cae843149f3d9de11d.png&lt;br /&gt;
:[[Media:time179.png|89:00]] - 15364ef2ba8609090bdd77af61eb97c2c81e2f4297d344c196b2373b5704158f.png&lt;br /&gt;
:[[Media:time180.png|89:30]] - c1ede6b96909180ccccd3069bc6c705b9f5192b3efce2cefab1ead3d6f9e6210.png&lt;br /&gt;
:[[Media:time181.png|90:00]] - 0734c09a321730ddd8b56e7e4a0c77b4c66f01854d71af2d082396b4e679bb97.png&lt;br /&gt;
:[[Media:time182.png|90:30]] - 902212c46f09f94e94dbe6e01dfda56368c3cb44c6dc37492b6c3a7d691779ac.png&lt;br /&gt;
:[[Media:time183.png|91:00]] - 74e77717fac78d11fd43085d5d276e4effb653d3f57867f398218fc28c259797.png&lt;br /&gt;
:[[Media:time184.png|91:30]] - 7c052dff32f89bce9a1b8561f1ff88e3f32adf44be3324e0e1e15529d8bfbd5f.png&lt;br /&gt;
:[[Media:time185.png|92:00]] - d5c4fbc90763b88f1bc39a3483b1f4ff54c0d1401638291e323f2d05665e0254.png&lt;br /&gt;
:[[Media:time186.png|92:30]] - dd80419285db208bb20b5e5f38b4f18514324e450f9441ea75694551d00ba4c8.png&lt;br /&gt;
:[[Media:time187.png|93:00]] - 96fc73424d680b37f414c9a9c1668a9cb46219c908822b198e1c2d2a46f9e304.png&lt;br /&gt;
:[[Media:time188.png|93:30]] - e8826d5232471207d9acdda7e861e1b11df7250c138077934d972dbec7e6c713.png&lt;br /&gt;
:[[Media:time189.png|94:00]] - 0583ddbcae4d6554c7ff30db0b41215bd5a987729fc5df3c9478d6945080cf01.png&lt;br /&gt;
:[[Media:time190.png|94:30]] - d388c7488c115f2aa9b83716d710ad8deefc204788b5b78d12cb3b1e4c13feb0.png&lt;br /&gt;
:[[Media:time191.png|95:00]] - 0a0871fcf81b2d5cf0b38423da70479160bbf76b58e7147bbd92af18b7f2fa02.png&lt;br /&gt;
:[[Media:time192.png|95:30]] - 7a0fb337ec7cfded3864660876fceb71e4ee33271a3fee35a27e2490522f88e1.png&lt;br /&gt;
:[[Media:time193.png|96:00]]&lt;br /&gt;
:[[Media:time194.png|96:30]]&lt;br /&gt;
:[[Media:time195.png|97:00]]&lt;br /&gt;
:[[Media:time196.png|97:30]]&lt;br /&gt;
:[[Media:time197.png|98:00]]&lt;br /&gt;
:[[Media:time198.png|98:30]]&lt;br /&gt;
:[[Media:time199.png|99:00]]&lt;br /&gt;
:[[Media:time200.png|100:00]]&lt;br /&gt;
:[[Media:time201.png|100:30]]&lt;br /&gt;
:[[Media:time202.png|101:00]]&lt;br /&gt;
:[[Media:time203.png|101:30]]&lt;br /&gt;
:[[Media:time204.png|102:00]]&lt;br /&gt;
:[[Media:time205.png|102:30]]&lt;br /&gt;
:[[Media:time206.png|103:00]]&lt;br /&gt;
:[[Media:time207.png|103:30]]&lt;br /&gt;
:[[Media:time208.png|104:00]]&lt;br /&gt;
:[[Media:time209.png|104:30]]&lt;br /&gt;
:[[Media:time210.png|105:00]]&lt;br /&gt;
:[[Media:time211.png|105:30]]&lt;br /&gt;
:[[Media:time212.png|106:00]]&lt;br /&gt;
:[[Media:time213.png|106:30]]&lt;br /&gt;
:[[Media:time214.png|107:00]]&lt;br /&gt;
:[[Media:time215.png|107:30]]&lt;br /&gt;
:[[Media:time216.png|108:00]]&lt;br /&gt;
:[[Media:time217.png|108:30]]&lt;br /&gt;
:[[Media:time218.png|109:00]]&lt;br /&gt;
:[[Media:time219.png|109:30]]&lt;br /&gt;
:[[Media:time220.png|110:00]]&lt;br /&gt;
:[[Media:time221.png|110:30]]&lt;br /&gt;
:[[Media:time222.png|111:00]]&lt;br /&gt;
:[[Media:time223.png|111:30]]&lt;br /&gt;
:[[Media:time224.png|112:00]]&lt;br /&gt;
:[[Media:time225.png|112:30]]&lt;br /&gt;
:[[Media:time226.png|113:00]]&lt;br /&gt;
:[[Media:time227.png|113:30]]&lt;br /&gt;
:[[Media:time228.png|114:00]]&lt;br /&gt;
:[[Media:time229.png|114:30]]&lt;br /&gt;
:[[Media:time230.png|115:00]]&lt;br /&gt;
:[[Media:time231.png|115:30]]&lt;br /&gt;
:[[Media:time232.png|116:00]]&lt;br /&gt;
:[[Media:time233.png|116:30]]&lt;br /&gt;
:[[Media:time234.png|117:00]]&lt;br /&gt;
:[[Media:time235.png|117:30]]&lt;br /&gt;
:[[Media:time236.png|118:00]]&lt;br /&gt;
:[[Media:time237.png|118:30]]&lt;br /&gt;
:[[Media:time238.png|119:00]]&lt;br /&gt;
:[[Media:time239.png|119:30]]&lt;br /&gt;
:[[Media:time240.png|120:00]]&lt;br /&gt;
:[[Media:time241.png|120:30]]&lt;br /&gt;
:[[Media:time242.png|121:00]]&lt;br /&gt;
:[[Media:time243.png|121:30]]&lt;br /&gt;
:[[Media:time244.png|122:00]]&lt;br /&gt;
:[[Media:time245.png|122:30]]&lt;br /&gt;
:[[Media:time246.png|123:00]]&lt;br /&gt;
:[[Media:time247.png|123:30]]&lt;br /&gt;
:[[Media:time248.png|124:00]]&lt;br /&gt;
:[[Media:time249.png|124:30]]&lt;br /&gt;
:[[Media:time250.png|125:00]]&lt;br /&gt;
:[[Media:time251.png|125:30]]&lt;br /&gt;
:[[Media:time252.png|126:00]]&lt;br /&gt;
:[[Media:time253.png|126:30]]&lt;br /&gt;
:[[Media:time254.png|127:00]]&lt;br /&gt;
:[[Media:time255.png|127:30]]&lt;br /&gt;
:[[Media:time256.png|128:00]]&lt;br /&gt;
:[[Media:time257.png|128:30]]&lt;br /&gt;
:[[Media:time258.png|129:00]]&lt;br /&gt;
:[[Media:time259.png|129:30]]&lt;br /&gt;
:[[Media:time260.png|130:00]]&lt;br /&gt;
:[[Media:time261.png|130:30]]&lt;br /&gt;
:[[Media:time262.png|131:00]]&lt;br /&gt;
:[[Media:time263.png|131:30]]&lt;br /&gt;
:[[Media:time264.png|132:00]]&lt;br /&gt;
:[[Media:time265.png|132:30]]&lt;br /&gt;
:[[Media:time266.png|133:00]]&lt;br /&gt;
:[[Media:time267.png|133:30]]&lt;br /&gt;
:[[Media:time268.png|134:00]]&lt;br /&gt;
:[[Media:time269.png|134:30]]&lt;br /&gt;
:[[Media:time270.png|135:00]]&lt;br /&gt;
:[[Media:time271.png|135:30]]&lt;br /&gt;
:[[Media:time272.png|136:00]]&lt;br /&gt;
:[[Media:time273.png|136:30]]&lt;br /&gt;
:[[Media:time274.png|137:00]]&lt;br /&gt;
:[[Media:time275.png|137:30]]&lt;br /&gt;
:[[Media:time276.png|138:00]]&lt;br /&gt;
:[[Media:time277.png|138:30]]&lt;br /&gt;
:[[Media:time278.png|139:00]]&lt;br /&gt;
:[[Media:time279.png|139:30]]&lt;br /&gt;
:[[Media:time280.png|140:00]]&lt;br /&gt;
:[[Media:time281.png|140:30]]&lt;br /&gt;
:[[Media:time282.png|141:00]]&lt;br /&gt;
:[[Media:time283.png|141:30]]&lt;br /&gt;
:[[Media:time284.png|142:00]]&lt;br /&gt;
:[[Media:time285.png|142:30]]&lt;br /&gt;
:[[Media:time286.png|143:00]]&lt;br /&gt;
:[[Media:time287.png|143:30]]&lt;br /&gt;
:[[Media:time288.png|144:00]]&lt;br /&gt;
:[[Media:time289.png|144:30]]&lt;br /&gt;
:[[Media:time290.png|145:00]]&lt;br /&gt;
:[[Media:time291.png|145:30]]&lt;br /&gt;
:[[Media:time292.png|146:00]]&lt;br /&gt;
:[[Media:time293.png|146:30]]&lt;br /&gt;
:[[Media:time294.png|147:00]]&lt;br /&gt;
:[[Media:time295.png|147:30]]&lt;br /&gt;
:[[Media:time296.png|148:00]]&lt;br /&gt;
:[[Media:time297.png|148:30]]&lt;br /&gt;
:[[Media:time298.png|149:00]]&lt;br /&gt;
:[[Media:time299.png|149:30]]&lt;br /&gt;
:[[Media:time300.png|150:00]]&lt;br /&gt;
&amp;lt;!-- We'll aggregate all these images into one big image when we're sure that we've collected every frame of the comic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:+00:00 [Megan and Cueball sitting on a sandy beach near a body of water]&lt;br /&gt;
:+12:00 [Megan and Cueball start to build a sandcastle.]&lt;br /&gt;
:+25:30&lt;br /&gt;
::Cueball : Later&lt;br /&gt;
::Megan : Bye&lt;br /&gt;
:[Cueball leaves, Megan continues to build the sandcastle]&lt;br /&gt;
:+37:00 [Cueball returns and both continue to build]&lt;br /&gt;
:+43:30 [Megan leaves, Cueball continues to build]&lt;br /&gt;
:+51:00 [Cueball accidentally falls and destroy part of the castle]&lt;br /&gt;
:+61:30 [Cueball completes the sandcastle and leaves]&lt;br /&gt;
:+73:00 [Cartoon zooms out, showing more construction has been taking place off-screen to the left]&lt;br /&gt;
:+81:00 [Megan plants flags on original sandcastle]&lt;br /&gt;
:+83:00 [Megan sits down at the beach]&lt;br /&gt;
:+83:30 [Cueball finished sandcastle on the left and moves to Megan at the beach]&lt;br /&gt;
:+84:30&lt;br /&gt;
::Megan : Wanna swim?&lt;br /&gt;
::Cueball : Yeah.&lt;br /&gt;
::[They both enter the water and exit the picture]&lt;br /&gt;
:+86:00 [Castle at far left begins to crumble]&lt;br /&gt;
:+87:00 [Megan back on the beach, Cueball off screen]&lt;br /&gt;
::Megan : Pffthh&lt;br /&gt;
::Megan : *cough*&lt;br /&gt;
::Cueball : You OK?&lt;br /&gt;
::Megan : Just got some in my mouth.&lt;br /&gt;
:+91:00 [Cueball takes down two flags and makes the two sandcastles into one large sandcastle]&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:Dynamic comics]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31547</id>
		<title>1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31547"/>
				<updated>2013-03-28T21:10:49Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Explanation */ clarified that past images are still available from XKCD, just not accessible from the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1190&lt;br /&gt;
| date      = March 25, 2013&lt;br /&gt;
| title     = Time&lt;br /&gt;
| image     = time-animated.gif&lt;br /&gt;
| titletext = Wait for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
This comic is a (still ongoing) series of pictures, updating every 30 minutes. The updating is done server-side, with the server redirecting the image link (time.png) to a different image every 30 minutes. It is impossible to load future images (except for one image that was revealed during a glitch), so readers have to wait for the story to unfold in real time. On the XKCD site itself, one cannot see the past either, only the current image. Past images are available from XKCD if you have the direct link for each image. Multiple fan sites, including this one, have stored past images as well as the links to the originals.&lt;br /&gt;
&lt;br /&gt;
As of this writing, it is still updated after more than 72 hours - even after [[1191|a new, different comic]] was posted on the front page.&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] and [[Megan]] are presumably by the seaside - Cueball dips his foot in the water at 07:30, and further on (Megan starts at 11:30) they start making a sandcastle. Cueball leaves with a &amp;quot;Later!&amp;quot; at 25:30 and returns without a word at 37:00, continuing in the effort to build the grand sandcastle. Megan leaves without a word at 43:30.&lt;br /&gt;
&lt;br /&gt;
At 51:00 Cueball accidentally demolishes the original &amp;quot;turret&amp;quot; Megan and he completed at 17:00 while descending from the top of the castle. In the next frame he realizes what he broke and in the following frame he's in dismay about it. Cueball then repairs the damage. &lt;br /&gt;
&lt;br /&gt;
Cueball leaves at 61:30, repairing is done. Since then the scene has started to &amp;quot;zoom out&amp;quot;, the first time there has been a change in the &amp;quot;background&amp;quot;.  It is starting to reveal another sand castle to the left. At 72:30, Megan is revealed by this &amp;quot;zoom out,&amp;quot; working on the larger castle to the left.&lt;br /&gt;
&lt;br /&gt;
At 84:30 Megan asks &amp;quot;Wanna Swim&amp;quot; and Cueball says &amp;quot;Yeah&amp;quot;. This is the second frame which has dialogue in it.&lt;br /&gt;
&lt;br /&gt;
AT 87:00 they return from the swim, and Cueball says &amp;quot;you okay?&amp;quot; and Megan says &amp;quot;Yeah, got some in my mouth.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A faster, navigable version of the comic is available at [http://xkcd.aubronwood.com xkcd.aubronwood.com] or an animated gif at [http://primis.org/time/output.gif primis.org]&lt;br /&gt;
&lt;br /&gt;
==Frame by Frame Breakdown==&lt;br /&gt;
Below is the list of all the frames of the comic, in the order that they were revealed. The given times denote the time since the comic was initially released.&lt;br /&gt;
&lt;br /&gt;
:[[Media:time.png|00:00]]&lt;br /&gt;
:[[Media:time2.png|00:30]] - 8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
:[[Media:time3.png|01:00]] - 1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
:[[Media:time4.png|01:30]] - e25be2dd49fe9f33c3543cdf640b67e0f2146cc576db5da007a135a278e524ee.png&lt;br /&gt;
:[[Media:time5.png|02:00]] - 5614c47bc2f28b730a360f796cc2993ba04e1f09db0aa3f325e476338777a9c4.png&lt;br /&gt;
:[[Media:time6.png|02:30]] - 69715ed9abc8deac4fa1edfd49a7fde6970b1c8621a381b1fca2c0854b29c0dd.png&lt;br /&gt;
:[[Media:time7.png|03:00]] - 752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
:[[Media:time8.png|03:30]] - 6e162ade96f5a05b3223df0bcc6fd2ca3c76447a8d6095cee7ff56b2816c959c.png&lt;br /&gt;
:[[Media:time9.png|04:00]] - cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:[[Media:time10.png|04:30]] - 49b69c39cdd429cdf367e215a878f536dc566862ae00b91814adfbd264753d89.png&lt;br /&gt;
:[[Media:time11.png|05:00]] - 9a047f93c3da13dea6f46816cb32a7e45d4a8318205cdd9233102f42efe3ada9.png&lt;br /&gt;
:[[Media:time12.png|05:30]] - 109fc96e2c07e50da5c4d0ec77b0722241aa32c494791e7627c52e8f9f773329.png&lt;br /&gt;
:[[Media:time13.png|06:00]] - fb0cabb8215b77a9d2fbdb44511eccdf9b921125bff5060dc511c9a49e97aa81.png&lt;br /&gt;
:[[Media:time14.png|06:30]] - 426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
:[[Media:time15.png|07:00]] - 007fae5ead14f798ec94f3a3ff6eea56c551d13068a2900e5d50d658ccb2be10.png&lt;br /&gt;
:[[Media:time16.png|07:30]] - 90a46673c29fabb6a1eca1d3d0c5f52103c8e48b246e328dc2aed93b32e48ecb.png&lt;br /&gt;
:[[Media:time17.png|08:00]] - 53732f97cd437d7148faeecaaacbe492ec03ae42f0747933ed3068248f74a25f.png&lt;br /&gt;
:[[Media:time18.png|08:30]] - a901246fd70dcd0054429bf55ced123ecead832300d73dedd78857d91eaff2df.png&lt;br /&gt;
:[[Media:time19.png|09:00]] - 4b1dd11cb21b5631ee8c36f157076fd6185c62a90a580b41357901fcbb7f2190.png&lt;br /&gt;
:[[Media:time20.png|09:30]] - 407f7e8766a75cc25389b7852cd9be4f3f29994eeb5c35f0f7d5656e186d4331.png&lt;br /&gt;
:[[Media:time21.png|10:00]] - 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&lt;br /&gt;
:[[Media:time22.png|10:30]] - 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&lt;br /&gt;
:[[Media:time23.png|11:00]] - d10e0b58110b9182b3dac096bb9f95b299bf7245df8af147428e9070bbbddb1d.png&lt;br /&gt;
:[[Media:time24.png|11:30]] - 4e786f10bc85e1a188f557dad89b4938a3f6baae50200d15924ca238d1e6273c.png&lt;br /&gt;
:[[Media:time25.png|12:00]] - a3aa116efca3c01d8a64c0c7e79158dc8a62241aba767064e3a6c724cc5ade93.png&lt;br /&gt;
:[[Media:time26.png|12:30]] - fce427e9442e1b4bea98fa5ddae9d32d7c1cb0219de663196ee160a0e04cd4f8.png&lt;br /&gt;
:[[Media:time27.png|13:00]] - 470d6f2b03fd4b08d4a3f40c1a969ce84ce7b87fefd441a561908f2f5700dc88.png&lt;br /&gt;
:[[Media:time28.png|13:30]] - c2e1cc28a59b7184d3c3306a655d048669963412c0cf19f164afdc283ffdaf94.png&lt;br /&gt;
:[[Media:time29.png|14:00]] - b2c52fd7587a8b429a27c0b94aaaec7dda657baa71f8651458440912d6de9049.png&lt;br /&gt;
:[[Media:time30.png|14:30]] - 4ec08b20b0be913f7f0f9faf77b30f4bf2d683d224cc9b87479fd8706ad0aa75.png&lt;br /&gt;
:[[Media:time31.png|15:00]] - fc4a27fd780fbba0e88ffc6c4552093f082acbdfeeedbcd38319cb5793a07e32.png&lt;br /&gt;
:[[Media:time32.png|15:30]] - d8a70a1ca8aa3a3f9933169fead2d6f0784863f4563f83345bfafcb42a9dcafa.png&lt;br /&gt;
:[[Media:time33.png|16:00]] - 7725087f3a098133ddd849f7e6ab7660a916acef3315e80244bd849ec491ccb5.png&lt;br /&gt;
:[[Media:time34.png|16:30]] - bfe8bc08b7cf436df87ed9c4c49a8bfb4be2f09b6e28aa1a54ceedc41cb1ff5a.png&lt;br /&gt;
:[[Media:time35.png|17:00]] - 5295b1eeffffdac0385c84511f7d6258136bd390b7215027bc18f845b189095c.png&lt;br /&gt;
:[[Media:time36.png|17:30]] - f00822bdd210187c867b3408180ba93f715ca23a178758d12a0e4bddcbee0679.png&lt;br /&gt;
:[[Media:time37.png|18:00]] - 40c463ee4cd0797979ec9ced3fe4705f4f71050d8ade084cc6ce82ba414784c1.png&lt;br /&gt;
:[[Media:time38.png|18:30]] - f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png&lt;br /&gt;
:[[Media:time39.png|19:00]] - 88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png&lt;br /&gt;
:[[Media:time40.png|19:30]] - c18731de1f786d812d41800e7c86a6b05b537c1e86519776fbaed6a90db7d432.png&lt;br /&gt;
:[[Media:time41.png|20:00]] - 1d51d7be045fe97dc2359c27dd9f9eba8e9f2dc18cc5bea5796ea1e7ebcccf66.png&lt;br /&gt;
:[[Media:time42.png|20:30]] - 121d97f2b78cd18e2f6de40882f13b8759b865581d12edf665e66566edb2e333.png&lt;br /&gt;
:[[Media:time43.png|21:00]] - 13bed763cccb9909272f00e1a1fe92e8360c58a6dfcd322054491bb2d53bd084.png&lt;br /&gt;
:[[Media:time44.png|21:30]] - 6187b994ac8a43b71203733c7d28d384f47480b115524e41a30bfaf3ae77a405.png&lt;br /&gt;
:[[Media:time45.png|22:00]] - b842e5ecde53fb92406dd1de1d8a07571e67a265a458e57e79c77c2e932f989e.png&lt;br /&gt;
:[[Media:time46.png|22:30]] - 6482bafdc122a24f837eb45ac530c7f7f3f54adfb3f309061520c394f895b184.png&lt;br /&gt;
:[[Media:time47.png|23:00]] - 2545500fe415f155cde884403f48520d64cae3ae7bc2aaf0cdd66a1b3a5ac1e9.png&lt;br /&gt;
:[[Media:time48.png|23:30]] - 1da3859627430022485c53ad90e88e8771b2bec2d60e910b59ef332325bba29f.png&lt;br /&gt;
:[[Media:time49.png|24:00]] - 7db653f7045aa6781ec3c7db54279b56f39ec3ef24807cf02bf58a62492579df.png&lt;br /&gt;
:[[Media:time50.png|24:30]] - 14fc092adc9f3aeeb7b066fb54ead77b56cfb58eed5f4b736ff94f0207959169.png&lt;br /&gt;
:[[Media:time51.png|25:00]] - 50adf5715b4cb9a2a23f87ff0df5f618560fb1fa771afc6d5d38295c6effb40d.png&lt;br /&gt;
:[[Media:time52.png|25:30]] - a790d74849afdba2bc7f1781ea6fca9fb62b57d46912b14c40d777843d493f1f.png&lt;br /&gt;
:[[Media:time53.png|26:00]] - 427f9bc8bd184356928562515d420ad9e96a1189043c812c4ba8e1bbb6080ffa.png&lt;br /&gt;
:[[Media:time54.png|26:30]] - 6e13d39f86a04ff2770cafdccff6fd953ed0222a69cb322a68ec595b877db391.png&lt;br /&gt;
:[[Media:time55.png|27:00]] - 305b4d99ba0014a0704b7454939205888f404ffb860d1acadc0d79b84cca88d5.png&lt;br /&gt;
:[[Media:time56.png|27:30]] - f44b9ada26d0fcb9223e51030d4cd8e0384bfa616e850f04f863077c86e06461.png&lt;br /&gt;
:[[Media:time57.png|28:00]] - 201b34b87eafe69f97b131ddc6169bb688749596c19712df5f410ce9bee20f14.png&lt;br /&gt;
:[[Media:time58.png|28:30]] - 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png&lt;br /&gt;
:[[Media:time59.png|29:00]] - 55f56bff8868cb2dd75035a69140df58bf1ed2b21bb7739fcb28dd12960d0bb8.png&lt;br /&gt;
:[[Media:time60.png|29:30]] - f5412e1dbb9bcc3f82bb373156266de1a3f841a6720f650a73980b563850f2d7.png&lt;br /&gt;
:[[Media:time61.png|30:00]] - 9363661d4da84ab7cfe2901830663d255696196e54d4c1207874cb6b561adae9.png&lt;br /&gt;
:[[Media:time62.png|30:30]] - 6893da69231d1d44413073c635f1162c12d95068a22a8ac16c39c941b3e47bce.png&lt;br /&gt;
:[[Media:time63.png|31:00]] - ff12649ab08e48655885fa89536cc034155a9bd4ac9af77775a31565ee232461.png&lt;br /&gt;
:[[Media:time64.png|31:30]] - 297347fd8b2fd37f4df96388ce5f9ead1a89571887b721c087132ba1007cbb7d.png&lt;br /&gt;
:[[Media:time65.png|32:00]] - 5fdcd88b53fc5e7bcb67ca78d3e426f0d4d55bd322a93570ce3485cf6fe95852.png&lt;br /&gt;
:[[Media:time66.png|32:30]] - a97951338dba988c7362713b946b90b9375fe947500a4a76ba1da7205491b55f.png&lt;br /&gt;
:[[Media:time67.png|33:00]] - 261a4c70a112b18d15211cad535fcd3c6c3f16f58a50e99b6ff30dfbf79bd24d.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time72.png|35:30]] - 805819c16bb562698b72871b8e494d4ef2905fb32dca4b12910d744efe31f9f6.png&lt;br /&gt;
:[[Media:time73.png|36:00]] - 600bbcb1f0dbeb19d343ded7c7c8c6e63cecefd29849e1da68684ed53c384bb3.png&lt;br /&gt;
:[[Media:time74.png|36:30]] - fdbd747655fc15d13f161e3e9f8d33d7a482d36395293b26f00a598069857d9c.png&lt;br /&gt;
:[[Media:time75.png|37:00]] - b73990c62d82380282dfdee6dd612d6a1afaa570e1be1d5300bc7da04ced684a.png&lt;br /&gt;
:[[Media:time76.png|37:30]] - b69578076ee90a852d5d672bd5863eb890f466f835fad1a340ea48b4c10221cc.png&lt;br /&gt;
:[[Media:time77.png|38:00]] - 090f22722547c275aa66a413ef76f824c0e9aabfb7053407cb64ecfb68e44807.png&lt;br /&gt;
:[[Media:time78.png|38:30]] - 0fcc1a8ab0c7b8626da1d9cc214ca8aa21860d439743027b7585a8cd433c2c95.png&lt;br /&gt;
:[[Media:time79.png|39:00]] - 92acbd596029cedb5396ebaa8c6438ee68b30a3076a5968c00194873ea2ad76b.png&lt;br /&gt;
:[[Media:time80.png|39:30]] - e87184da8a81517fb389a74ce34de3b2f6e4b3c2b55d6de9cc505023d89566e9.png&lt;br /&gt;
:[[Media:time81.png|40:00]] - b356030ec86a14ae7224ee50d4af063d18cbd48e6a3395a1b6bd0c9e04f6ce70.png&lt;br /&gt;
:[[Media:time82.png|40:30]] - de86486235c332c24539586f6118e44e3a5ef0655637c42a8ce8aeeeddd7418a.png&lt;br /&gt;
:[[Media:time83.png|41:00]] - d4674f445c468c3c90c3f8866b05a682fc296190c95ccce771a42eee53543649.png&lt;br /&gt;
:[[Media:time84.png|41:30]] - d5d760b5528c5276d42e7864ed4189e9f03b68cb2addbb0992e6cfee7af1b6c1.png&lt;br /&gt;
:[[Media:time85.png|42:00]] - 9b440f0dd9a67f61cc38262f1dd93dd8a77c60c23fb09670961748779d88680c.png&lt;br /&gt;
:[[Media:time86.png|42:30]] - 560372e93e497f223f00fb9196494fbf2bc8e06fe01fd12548600d475ef058f6.png&lt;br /&gt;
:[[Media:time87.png|43:00]] - 775f6a4e70b978e69787d57de0cc4df349fe439cc34cb560f11ecf87d2065c1e.png&lt;br /&gt;
:[[Media:time88.png|43:30]] - caa0f012b4706ebcaaad92356896d91610629e7a064ee179dc1810d72e981a2b.png&lt;br /&gt;
:[[Media:time89.png|44:00]] - ebb0517f6246f36900e34c511379cabdbdb46a632de0b794e614a66981bbfa2b.png&lt;br /&gt;
:[[Media:time90.png|44:30]] - fec3db94a8ad6abe44048ad458570346f5f350d7cbf2c6050eff8d62106a019a.png&lt;br /&gt;
:[[Media:time91.png|45:00]] - 75e88091d88984485b51ec90272162112ed280a92a29970f60bc7fcfd6214570.png&lt;br /&gt;
:[[Media:time92.png|45:30]] - 293f68d990c4aeb9a9d3b90b74749c1ef605d743cf8a226d254c589c22b839fc.png&lt;br /&gt;
:[[Media:time93.png|46:00]] - f7dbd7d72c8fb8f487433ebb33c7e365e17da48dc79a1c3457232e72f475f0a1.png&lt;br /&gt;
:[[Media:time94.png|46:30]] - bf8927f9779cdcdeb7fe7697b1110596663c12ab1e2e4fe5aff4e54ffa484217.png&lt;br /&gt;
:[[Media:time95.png|47:00]] - de3d109294d00f7ebb54514a8b3f9b0297c06419c9e297c45e5770f1406ab7ae.png&lt;br /&gt;
:[[Media:time96.png|47:30]] - e594b36574fe7bd54609058b25e3be58ca355bb85cd01d4b9016c1c7a100ab30.png&lt;br /&gt;
:[[Media:time97.png|48:00]] - 3eac1b3e675661ba327350b49f05d45d40d232b20bf74eb44bbb1c0d6860c9d2.png&lt;br /&gt;
:[[Media:time98.png|48:30]] - a228595caf108b46e53f4fe276ebac8fa1545928b650742b0812298d5dfde441.png&lt;br /&gt;
:[[Media:time99.png|49:00]] - b8fcc150729d40bf3f3e07c30091a48691cda3ea9b8b0108d06d62bfc1e49b24.png&lt;br /&gt;
:[[Media:time100.png|49:30]] - fd441796100d891d67e0fc2cb6489534d7ec7f245415a753bb1097dc9f680e76.png&lt;br /&gt;
:[[Media:time101.png|50:00]] - 1e81542c8e2449e1914b12771105ff4e4ec406bdebd8484febcf273f05dce171.png&lt;br /&gt;
:[[Media:time102.png|50:30]] - e74239a37b32a8b073a4cf0a837fc074ff70471116f5ce1ac9b5cdf529cd93bf.png&lt;br /&gt;
:[[Media:time103.png|51:00]] - 9c8b0e5c90dd5b110ad625410c2e84cc4c676065dff14540e326f04e0685d958.png&lt;br /&gt;
:[[Media:time104.png|51:30]] - c07bccb54068e923c0207b512a5b320acfb09e78955cc5ebc02cb3905e6a993f.png&lt;br /&gt;
:[[Media:time105.png|52:00]] - 31680693a02591e2915444e89daf81d953bf3e31ccbeabe42bec249c0eb65fac.png&lt;br /&gt;
:[[Media:time106.png|52:30]] - 81efa7c4509ac7a329407d9da25d12ec0a3baec50e06588586961575e2d65c2c.png&lt;br /&gt;
:[[Media:time107.png|53:00]] - 5450bd39ee84a394467fabcaf92f1a5711c2a4eca24c8bd8a8cec829496e3dd7.png&lt;br /&gt;
:[[Media:time108.png|53:30]] - c2ea85f1ab92f2f80e9c4655c47f5c7effc0a7da01c8a88493864845855b3be8.png&lt;br /&gt;
:[[Media:time109.png|54:00]] - a6adae53099480f255efedbc9016fa8d7a35b7585df857eb862c899ea61e8e48.png&lt;br /&gt;
:[[Media:time110.png|54:30]] - ec55b55b7975789bb4027014f70c83e4d9531af3b4002011c89ebe21da650757.png&lt;br /&gt;
:[[Media:time111.png|55:00]] - 7bef63e1f585b0f3533aa3bd74f5a6acb5165a3cd2dd733bb55684ef637824bd.png&lt;br /&gt;
:[[Media:time112.png|55:30]] - 36ae35d270bffc4d2f361136bcdd0f77339e70d6d2e671d552cbc019e2d65991.png&lt;br /&gt;
:[[Media:time113.png|56:00]] - dee195fbda954e00f088392b150c75cfbe33126d76f9fb910c0ffb51d5630d94.png&lt;br /&gt;
:[[Media:time114.png|56:30]] - be5c157cb9d932684f0f8076d0695a428eab022c734bbe448ea42ac2955e4402.png&lt;br /&gt;
:[[Media:time115.png|57:00]] - d40f6d35639642db88ea44f3983cc1bba646f71f7221357df6b2b8161c5e67cf.png&lt;br /&gt;
:[[Media:time116.png|57:30]] - 936c86c4ecc817ada8b6e601df8a1e65850882ca80edf78dd98a37e7ffb18893.png&lt;br /&gt;
:[[Media:time117.png|58:00]] - 3c3566958f0430bb674416ecbd57bf611da92cfefc2e50e44a49cc00f9299036.png&lt;br /&gt;
:[[Media:time118.png|58:30]] - 244b0f188398cefff270856d4c0ee9af0c2db8134fa70943add99edb27b7cdd9.png&lt;br /&gt;
:[[Media:time119.png|59:00]] - e27f5926edcf05b2e2b41910c389b74344235785e012da24df115c7ad3e7f002.png&lt;br /&gt;
:[[Media:time120.png|59:30]] - 124dad543960a6f296094cf15c9ec360facb64fbd1a6bc8505bac3e850ce6ad5.png&lt;br /&gt;
:[[Media:time121.png|60:00]] - 08f2865464505d371e3af50cf8d0f0e69fdb199ff0fabf52da6c45a67e9c49d5.png&lt;br /&gt;
:[[Media:time122.png|60:30]] - 3b977e96932637237697e2a7feef9d59f3b1bd03e49df1a0c8c7e73643df65db.png&lt;br /&gt;
:[[Media:time123.png|61:00]] - df86194e09adf979ff256993be5d6c0391161a4cdf7eaedb0f030c7e706a74f5.png&lt;br /&gt;
:[[Media:time124.png|61:30]] - 6489605b6f6755c712c8aaaefe668066e36eccaffa0cc9a6f5b3859e43a4ec99.png&lt;br /&gt;
:[[Media:time125.png|62:00]] - c918850ed18afe2c3f3acbeef9c799aba5b10a8efeb45a2f026565383f0a72bc.png&lt;br /&gt;
:[[Media:time126.png|62:30]] - 48283abb3b3bea7632a09ebf4494cb3023f5fbe1c564d4f27ba162ccc92dd2f3.png&lt;br /&gt;
:[[Media:time127.png|63:00]] - a2f77a4b339f71bc78bfeafb550318de6a31cfd5cccc4be8ef9cc1ab7cbc4c7b.png&lt;br /&gt;
:[[Media:time128.png|63:30]] - f8d6d86e39ba397db5f00ee5459508ca2b2cb06a531134ea295a8c7a8c540c2c.png&lt;br /&gt;
:[[Media:time129.png|64:00]] - 96a5aee8f9cafb0382b95c05de69fa1e255eb3d734db4ffe643fa03445b275d2.png&lt;br /&gt;
:[[Media:time130.png|64:30]] - f86996436f7fdc5d2889cf2ed6695522ccd8bacaba17be9654ba9b5675e596bf.png&lt;br /&gt;
:[[Media:time131.png|65:00]] - 16012cbe4d2465a1d5b33188821cfc60d4b27663d50709933d2633fa1c66fb26.png&lt;br /&gt;
:[[Media:time132.png|65:30]] - f376229646427451223a2595083b0e7eb8f2af63e17b6b9243e379fb10bbbdfa.png&lt;br /&gt;
:[[Media:time133.png|66:00]] - b9617babd84de8b63250587724ee364668cf5e4ba62561b91b1cd17d32c92a00.png&lt;br /&gt;
:[[Media:time134.png|66:30]] - 2ad7854603527373dd550f3e065fed7964d3734f06aa366c89b24ae6b96039b2.png&lt;br /&gt;
:[[Media:time135.png|67:00]] - 5be48ef973e98abad7379439d178c501235d8c39597615dcd89eb189ff6d7969.png&lt;br /&gt;
:[[Media:time136.png|67:30]] - df31189e5b219e9003a31b64d37b3670697e8cabf34a6a4a680b95e0792bcd7d.png&lt;br /&gt;
:[[Media:time137.png|68:00]] - 7de21d7786688b2ada78fd8ce6a367f43b70f5cc1146a03c9b01921586e54d64.png&lt;br /&gt;
:[[Media:time138.png|68:30]] - d1926493facc13410b142000f4c46e1cf96d3863b2d120a9a5d155a8e84528fc.png&lt;br /&gt;
:[[Media:time139.png|69:00]] - 457a12ac738a7f88c0f6f35837882514fdf06ed25c4f549627508aa50de1d34d.png&lt;br /&gt;
:[[Media:time140.png|69:30]] - 72898115d43cea1451aad2d204597ae9ba53d3820efe22b7ede0532497641d2f.png&lt;br /&gt;
:[[Media:time141.png|70:00]] - a545e388ebf0177d92bc5104e9a7eec231c1b499cba3b55baa3c8316a8005068.png&lt;br /&gt;
:[[Media:time142.png|70:30]] - 723d460e7c0a3bd93c8d158be8127865bc7fa9456d4df331cc93fda73e0f8889.png&lt;br /&gt;
:[[Media:time143.png|71:00]] - 4c92727698b704ee1d02fbd37c94c220d16be4ad3ff6fc03a3fb77ea6d96434f.png&lt;br /&gt;
:[[Media:time144.png|71:30]] - 6ff7e6fd1af6ec66eab68c8bad6a2d2205a38ba742e2887d568f569fa5289963.png&lt;br /&gt;
:[[Media:time145.png|72:00]] - 05457c91f50c216f6071ae194b4d1822770e1792b0c73eb0fba3cbbdeb616ec2.png&lt;br /&gt;
:[[Media:time146.png|72:30]] - 86f07ecad6c1873963da80b9bd0a1568dac1bec84bf5a675bdafdee076de20f8.png&lt;br /&gt;
:[[Media:time147.png|73:00]] - 71a02d54537aa7c26b5136628e9a2cf1bd7584a152b76f72d648c6da5dcaa792.png&lt;br /&gt;
:[[Media:time148.png|73:30]] - 353741527bcc681667b7d26fce0e5855e03e6acbceb5c627e5606d6a67cbc7c3.png&lt;br /&gt;
:[[Media:time149.png|74:00]] - 4cfb1c2824a5e51e161f3ec1c5d2199b0058b60872ef3f26df928bbcd140a7b9.png&lt;br /&gt;
:[[Media:time150.png|74:30]] - aff5b3e6c82a9711fb69fa639392bd0eb4987bc016ef6e8f742badca1c3b67d3.png&lt;br /&gt;
:[[Media:time151.png|75:00]] - 6b9a4c7c19d902ad81633e1d7b9df4041a2f744ce365e34648f756cf3401b019.png&lt;br /&gt;
:[[Media:time152.png|75:30]] - 0dc7bdfef2b3b9594fbd4ec80b8fb3d835d4ff4002f6d5fe61227fdd7384f9b4.png&lt;br /&gt;
:[[Media:time153.png|76:00]] - 88217a315d96eb39535f8b1564f3827d0b84fb0f031ced232136a773f27189de.png&lt;br /&gt;
:[[Media:time154.png|76:30]] - dcbe928012a06ae5118d4cd3850a4f1bcc0a7e4e86b2c04751fe79370cbb35bc.png&lt;br /&gt;
:[[Media:time155.png|77:00]] - 1c9e30c1ea206fd46ef2bdfb192cf89e83b48b8d9718cdf5accec49afe6058cd.png&lt;br /&gt;
:[[Media:time156.png|77:30]] - 1e0e30840f50bf42f9c3970703d9274afabb4fe8ac3998b623a1111a7aed9320.png&lt;br /&gt;
:[[Media:time157.png|78:00]] - d318e77ea28ef148af0f0b7ee275810e5d30f287be1faa493e7eb2163083a4ac.png&lt;br /&gt;
:[[Media:time158.png|78:30]] - 7a9ad04ca9ab488bc7673dfafbd69d384300d2265339020ce2a86befe814b14c.png&lt;br /&gt;
:[[Media:time159.png|79:00]] - ff7305f8c90cbc9e37825f15b1f199076a270d1fc8365082c0bebd3fcafbceee.png&lt;br /&gt;
:[[Media:time160.png|79:30]] - 8b2d052e799618ffd31c769e528b7dfd3046011cb3973cafcc4610e1dbc0f90c.png&lt;br /&gt;
:[[Media:time161.png|80:00]] - fdd2953ddeef587809f67b1ee0d7f26241c4007b842a5cff42f52fbf47847e77.png&lt;br /&gt;
:[[Media:time162.png|80:30]] - 778828ccd64092f3fd5bd355c56ac200cbf1bbb7d194073b47dd31440f541987.png&lt;br /&gt;
:[[Media:time163.png|81:00]] - a11ef76a620cef2817167f7942294610d47bda6e1eef001a83a2408e41d8383c.png&lt;br /&gt;
:[[Media:time164.png|81:30]] - 23114b4d82663a01a3644bc45280f4f85686557f6f96429f72fb56a30fd5af32.png&lt;br /&gt;
:[[Media:time165.png|82:00]] - 40f1d3ba22b0180fd01403f8bc2f285fc9fbb6cec44ce354dfa5a3a79cf8dd6e.png&lt;br /&gt;
:[[Media:time166.png|82:30]] - 111d01029afc7b55c1bb7c85aa96ca9cc5cade53b4a5ab4770723051771f010c.png&lt;br /&gt;
:[[Media:time167.png|83:00]] - 38c86d07370946b20d4cfdffa3bccebc3c482eccedd6e0dbd749f986bd88ad06.png&lt;br /&gt;
:[[Media:time168.png|83:30]] - fec33645ab92d72764140c657f7d095228e914df7be54b6fdf794c498ed878bb.png&lt;br /&gt;
:[[Media:time169.png|84:00]] - 932c13f387a0d346dde14e3ddd7d598db79e420fdc3ca93c109715377018b86a.png&lt;br /&gt;
:[[Media:time170.png|84:30]] - 0a17cbccb6644aeba7896c8ed20857941e2a0fdd6e21d58cdf6ea1074de81a2d.png&lt;br /&gt;
:[[Media:time171.png|85:00]] - 74684c8be1c329cff776759ab29a3e614834d107ca99626805ce318268e74471.png&lt;br /&gt;
:[[Media:time172.png|85:30]] - 9996f99ec0e08c63b8f50c9900c73ba37417fdeef2a17888748cc0c078370b82.png&lt;br /&gt;
:[[Media:time173.png|86:00]] - 61be4c0049c0e179be0430bc42a65e429ab5c2ebfd3266eb7715d471cef4c5ac.png&lt;br /&gt;
:[[Media:time174.png|86:30]] - dc04c4f093f993d3dcadd13b2f68953c2326c4f1e06d5bfe3bcdb5351fdacf85.png&lt;br /&gt;
:[[Media:time175.png|87:00]] - 0c13b40fb2d866d6d00a267bbb71f844731d97ed9982f97f1ddc0eaa1a054cb5.png&lt;br /&gt;
:[[Media:time176.png|87:30]] - 7d8d0f7cd3295fef29ee92973b1f4fe9f71caf396599376e01e5a2f203d517d6.png&lt;br /&gt;
:[[Media:time177.png|88:00]] - 8f30c75832821619584d49c74a41ace49b28502bd8cad34920060065dabe4760.png&lt;br /&gt;
:[[Media:time178.png|88:30]]&lt;br /&gt;
:[[Media:time179.png|89:00]]&lt;br /&gt;
:[[Media:time180.png|89:30]]&lt;br /&gt;
:[[Media:time181.png|90:00]]&lt;br /&gt;
:[[Media:time182.png|90:30]]&lt;br /&gt;
:[[Media:time183.png|91:00]]&lt;br /&gt;
:[[Media:time184.png|91:30]]&lt;br /&gt;
:[[Media:time185.png|92:00]]&lt;br /&gt;
:[[Media:time186.png|92:30]]&lt;br /&gt;
:[[Media:time187.png|93:00]]&lt;br /&gt;
:[[Media:time188.png|93:30]]&lt;br /&gt;
:[[Media:time189.png|94:00]]&lt;br /&gt;
:[[Media:time190.png|94:30]]&lt;br /&gt;
:[[Media:time191.png|95:00]]&lt;br /&gt;
:[[Media:time192.png|95:30]]&lt;br /&gt;
:[[Media:time193.png|96:00]]&lt;br /&gt;
:[[Media:time194.png|96:30]]&lt;br /&gt;
:[[Media:time195.png|97:00]]&lt;br /&gt;
:[[Media:time196.png|97:30]]&lt;br /&gt;
:[[Media:time197.png|98:00]]&lt;br /&gt;
:[[Media:time198.png|98:30]]&lt;br /&gt;
:[[Media:time199.png|99:00]]&lt;br /&gt;
:[[Media:time200.png|100:00]]&lt;br /&gt;
&amp;lt;!-- We'll aggregate all these images into one big image when we're sure that we've collected every frame of the comic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:+00:00 [Megan and Cueball sitting on a sandy beach near a body of water]&lt;br /&gt;
:+12:00 [Megan and Cueball start to build a sandcastle.]&lt;br /&gt;
:+25:30&lt;br /&gt;
::Cueball : Later&lt;br /&gt;
::Megan : Bye&lt;br /&gt;
:[Cueball leaves, Megan continues to build the sandcastle]&lt;br /&gt;
:+37:00 [Cueball returns and both continue to build]&lt;br /&gt;
:+43:30 [Megan leaves, Cueball continues to build]&lt;br /&gt;
:+51:00 [Cueball accidentally falls and destroy part of the castle]&lt;br /&gt;
:+61:30 [Cueball completes the sandcastle and leaves]&lt;br /&gt;
:+73:00 [Cartoon zooms out, showing more construction has been taking place off-screen to the left]&lt;br /&gt;
:+81:00 [Megan plants flags on original sandcastle]&lt;br /&gt;
:+83:00 [Megan sits down at the beach]&lt;br /&gt;
:+83:30 [Cueball finished sandcastle on the left and moves to Megan at the beach]&lt;br /&gt;
:+84:30&lt;br /&gt;
::Megan : Wanna swim?&lt;br /&gt;
::Cueball : Yeah.&lt;br /&gt;
::[They both enter the water and exit the picture]&lt;br /&gt;
:+86:00 [Castle at far left begins to crumble]&lt;br /&gt;
:+87:00 [Megan back on the beach, Cueball off screen]&lt;br /&gt;
::Megan : Pffthh&lt;br /&gt;
::Megan : *cough*&lt;br /&gt;
::Cueball : You OK?&lt;br /&gt;
::Megan : Just got some in my mouth.&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:Dynamic comics]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31240</id>
		<title>1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31240"/>
				<updated>2013-03-27T05:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: Switched main image to gif of first 48 hours&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1190&lt;br /&gt;
| date      = March 25, 2013&lt;br /&gt;
| title     = Time&lt;br /&gt;
| image     = time-animated.gif&lt;br /&gt;
| titletext = Wait for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
[[Cueball]] and [[Megan]] are presumably by the seaside - Cueball dips his foot in the water at 07:30, and further on they make a sandcastle. Not much is known at the moment, but this comic appears to change as the day progresses. It seems that the comic changes every half an hour.&lt;br /&gt;
&lt;br /&gt;
==Frame by Frame Breakdown==&lt;br /&gt;
Below is the list of all the frames of the comic, in the order that they were revealed.&lt;br /&gt;
&lt;br /&gt;
:[[Media:time.png|00:00]]&lt;br /&gt;
:[[Media:time2.png|00:30]] - 8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
:[[Media:time3.png|01:00]] - 1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
:[[Media:time4.png|01:30]] - e25be2dd49fe9f33c3543cdf640b67e0f2146cc576db5da007a135a278e524ee.png&lt;br /&gt;
:[[Media:time5.png|02:00]] - 5614c47bc2f28b730a360f796cc2993ba04e1f09db0aa3f325e476338777a9c4.png&lt;br /&gt;
:[[Media:time6.png|02:30]] - 69715ed9abc8deac4fa1edfd49a7fde6970b1c8621a381b1fca2c0854b29c0dd.png&lt;br /&gt;
:[[Media:time7.png|03:00]] - 752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
:[[Media:time8.png|03:30]] - 6e162ade96f5a05b3223df0bcc6fd2ca3c76447a8d6095cee7ff56b2816c959c.png&lt;br /&gt;
:[[Media:time9.png|04:00]] - cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:[[Media:time10.png|04:30]] - 49b69c39cdd429cdf367e215a878f536dc566862ae00b91814adfbd264753d89.png&lt;br /&gt;
:[[Media:time11.png|05:00]] - 9a047f93c3da13dea6f46816cb32a7e45d4a8318205cdd9233102f42efe3ada9.png&lt;br /&gt;
:[[Media:time12.png|05:30]] - 109fc96e2c07e50da5c4d0ec77b0722241aa32c494791e7627c52e8f9f773329.png&lt;br /&gt;
:[[Media:time13.png|06:00]] - fb0cabb8215b77a9d2fbdb44511eccdf9b921125bff5060dc511c9a49e97aa81.png&lt;br /&gt;
:[[Media:time14.png|06:30]] - 426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
:[[Media:time15.png|07:00]] - 007fae5ead14f798ec94f3a3ff6eea56c551d13068a2900e5d50d658ccb2be10.png&lt;br /&gt;
:[[Media:time16.png|07:30]] - 90a46673c29fabb6a1eca1d3d0c5f52103c8e48b246e328dc2aed93b32e48ecb.png&lt;br /&gt;
:[[Media:time17.png|08:00]] - 53732f97cd437d7148faeecaaacbe492ec03ae42f0747933ed3068248f74a25f.png&lt;br /&gt;
:[[Media:time18.png|08:30]] - a901246fd70dcd0054429bf55ced123ecead832300d73dedd78857d91eaff2df.png&lt;br /&gt;
:[[Media:time19.png|09:00]] - 4b1dd11cb21b5631ee8c36f157076fd6185c62a90a580b41357901fcbb7f2190.png&lt;br /&gt;
:[[Media:time20.png|09:30]] - 407f7e8766a75cc25389b7852cd9be4f3f29994eeb5c35f0f7d5656e186d4331.png&lt;br /&gt;
:[[Media:time21.png|10:00]] - 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&lt;br /&gt;
:[[Media:time22.png|10:30]] - 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&lt;br /&gt;
:[[Media:time23.png|11:00]] - d10e0b58110b9182b3dac096bb9f95b299bf7245df8af147428e9070bbbddb1d.png&lt;br /&gt;
:[[Media:time24.png|11:30]] - 4e786f10bc85e1a188f557dad89b4938a3f6baae50200d15924ca238d1e6273c.png&lt;br /&gt;
:[[Media:time25.png|12:00]] - a3aa116efca3c01d8a64c0c7e79158dc8a62241aba767064e3a6c724cc5ade93.png&lt;br /&gt;
:[[Media:time26.png|12:30]] - fce427e9442e1b4bea98fa5ddae9d32d7c1cb0219de663196ee160a0e04cd4f8.png&lt;br /&gt;
:[[Media:time27.png|13:00]] - 470d6f2b03fd4b08d4a3f40c1a969ce84ce7b87fefd441a561908f2f5700dc88.png&lt;br /&gt;
:[[Media:time28.png|13:30]] - c2e1cc28a59b7184d3c3306a655d048669963412c0cf19f164afdc283ffdaf94.png&lt;br /&gt;
:[[Media:time29.png|14:00]] - b2c52fd7587a8b429a27c0b94aaaec7dda657baa71f8651458440912d6de9049.png&lt;br /&gt;
:[[Media:time30.png|14:30]] - 4ec08b20b0be913f7f0f9faf77b30f4bf2d683d224cc9b87479fd8706ad0aa75.png&lt;br /&gt;
:[[Media:time31.png|15:00]] - fc4a27fd780fbba0e88ffc6c4552093f082acbdfeeedbcd38319cb5793a07e32.png&lt;br /&gt;
:[[Media:time32.png|15:30]] - d8a70a1ca8aa3a3f9933169fead2d6f0784863f4563f83345bfafcb42a9dcafa.png&lt;br /&gt;
:[[Media:time33.png|16:00]] - 7725087f3a098133ddd849f7e6ab7660a916acef3315e80244bd849ec491ccb5.png&lt;br /&gt;
:[[Media:time34.png|16:30]] - bfe8bc08b7cf436df87ed9c4c49a8bfb4be2f09b6e28aa1a54ceedc41cb1ff5a.png&lt;br /&gt;
:[[Media:time35.png|17:00]] - 5295b1eeffffdac0385c84511f7d6258136bd390b7215027bc18f845b189095c.png&lt;br /&gt;
:[[Media:time36.png|17:30]] - f00822bdd210187c867b3408180ba93f715ca23a178758d12a0e4bddcbee0679.png&lt;br /&gt;
:[[Media:time37.png|18:00]] - 40c463ee4cd0797979ec9ced3fe4705f4f71050d8ade084cc6ce82ba414784c1.png&lt;br /&gt;
:[[Media:time38.png|18:30]] - f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png&lt;br /&gt;
:[[Media:time39.png|19:00]] - 88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png&lt;br /&gt;
:[[Media:time40.png|19:30]] - c18731de1f786d812d41800e7c86a6b05b537c1e86519776fbaed6a90db7d432.png&lt;br /&gt;
:[[Media:time41.png|20:00]] - 1d51d7be045fe97dc2359c27dd9f9eba8e9f2dc18cc5bea5796ea1e7ebcccf66.png&lt;br /&gt;
:[[Media:time42.png|20:30]] - 121d97f2b78cd18e2f6de40882f13b8759b865581d12edf665e66566edb2e333.png&lt;br /&gt;
:[[Media:time43.png|21:00]] - 13bed763cccb9909272f00e1a1fe92e8360c58a6dfcd322054491bb2d53bd084.png&lt;br /&gt;
:[[Media:time44.png|21:30]] - 6187b994ac8a43b71203733c7d28d384f47480b115524e41a30bfaf3ae77a405.png&lt;br /&gt;
:[[Media:time45.png|22:00]] - b842e5ecde53fb92406dd1de1d8a07571e67a265a458e57e79c77c2e932f989e.png&lt;br /&gt;
:[[Media:time46.png|22:30]] - 6482bafdc122a24f837eb45ac530c7f7f3f54adfb3f309061520c394f895b184.png&lt;br /&gt;
:[[Media:time47.png|23:00]] - 2545500fe415f155cde884403f48520d64cae3ae7bc2aaf0cdd66a1b3a5ac1e9.png&lt;br /&gt;
:[[Media:time48.png|23:30]] - 1da3859627430022485c53ad90e88e8771b2bec2d60e910b59ef332325bba29f.png&lt;br /&gt;
:[[Media:time49.png|24:00]] - 7db653f7045aa6781ec3c7db54279b56f39ec3ef24807cf02bf58a62492579df.png&lt;br /&gt;
:[[Media:time50.png|24:30]] - 14fc092adc9f3aeeb7b066fb54ead77b56cfb58eed5f4b736ff94f0207959169.png&lt;br /&gt;
:[[Media:time51.png|25:00]] - 50adf5715b4cb9a2a23f87ff0df5f618560fb1fa771afc6d5d38295c6effb40d.png&lt;br /&gt;
:[[Media:time52.png|25:30]] - a790d74849afdba2bc7f1781ea6fca9fb62b57d46912b14c40d777843d493f1f.png&lt;br /&gt;
:[[Media:time53.png|26:00]] - 427f9bc8bd184356928562515d420ad9e96a1189043c812c4ba8e1bbb6080ffa.png&lt;br /&gt;
:[[Media:time54.png|26:30]] - 6e13d39f86a04ff2770cafdccff6fd953ed0222a69cb322a68ec595b877db391.png&lt;br /&gt;
:[[Media:time55.png|27:00]] - 305b4d99ba0014a0704b7454939205888f404ffb860d1acadc0d79b84cca88d5.png&lt;br /&gt;
:[[Media:time56.png|27:30]] - f44b9ada26d0fcb9223e51030d4cd8e0384bfa616e850f04f863077c86e06461.png&lt;br /&gt;
:[[Media:time57.png|28:00]] - 201b34b87eafe69f97b131ddc6169bb688749596c19712df5f410ce9bee20f14.png&lt;br /&gt;
:[[Media:time58.png|28:30]] - 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png&lt;br /&gt;
:[[Media:time59.png|29:00]] - 55f56bff8868cb2dd75035a69140df58bf1ed2b21bb7739fcb28dd12960d0bb8.png&lt;br /&gt;
:[[Media:time60.png|29:30]] - f5412e1dbb9bcc3f82bb373156266de1a3f841a6720f650a73980b563850f2d7.png&lt;br /&gt;
:[[Media:time61.png|30:00]] - 9363661d4da84ab7cfe2901830663d255696196e54d4c1207874cb6b561adae9.png&lt;br /&gt;
:[[Media:time62.png|30:30]] - 6893da69231d1d44413073c635f1162c12d95068a22a8ac16c39c941b3e47bce.png&lt;br /&gt;
:[[Media:time63.png|31:00]] - ff12649ab08e48655885fa89536cc034155a9bd4ac9af77775a31565ee232461.png&lt;br /&gt;
:[[Media:time64.png|31:30]] - 297347fd8b2fd37f4df96388ce5f9ead1a89571887b721c087132ba1007cbb7d.png&lt;br /&gt;
:[[Media:time65.png|32:00]] - 5fdcd88b53fc5e7bcb67ca78d3e426f0d4d55bd322a93570ce3485cf6fe95852.png&lt;br /&gt;
:[[Media:time66.png|32:30]] - a97951338dba988c7362713b946b90b9375fe947500a4a76ba1da7205491b55f.png&lt;br /&gt;
:[[Media:time67.png|33:00]] - 261a4c70a112b18d15211cad535fcd3c6c3f16f58a50e99b6ff30dfbf79bd24d.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time72.png|35:30]] - 805819c16bb562698b72871b8e494d4ef2905fb32dca4b12910d744efe31f9f6.png&lt;br /&gt;
:[[Media:time73.png|36:00]] - 600bbcb1f0dbeb19d343ded7c7c8c6e63cecefd29849e1da68684ed53c384bb3.png&lt;br /&gt;
:[[Media:time74.png|36:30]] - fdbd747655fc15d13f161e3e9f8d33d7a482d36395293b26f00a598069857d9c.png&lt;br /&gt;
:[[Media:time75.png|37:00]] - b73990c62d82380282dfdee6dd612d6a1afaa570e1be1d5300bc7da04ced684a.png&lt;br /&gt;
:[[Media:time76.png|37:30]] - b69578076ee90a852d5d672bd5863eb890f466f835fad1a340ea48b4c10221cc.png&lt;br /&gt;
:[[Media:time77.png|38:00]] - 090f22722547c275aa66a413ef76f824c0e9aabfb7053407cb64ecfb68e44807.png&lt;br /&gt;
:[[Media:time78.png|38:30]] - 0fcc1a8ab0c7b8626da1d9cc214ca8aa21860d439743027b7585a8cd433c2c95.png&lt;br /&gt;
:[[Media:time79.png|39:00]] - 92acbd596029cedb5396ebaa8c6438ee68b30a3076a5968c00194873ea2ad76b.png&lt;br /&gt;
:[[Media:time80.png|39:30]] - e87184da8a81517fb389a74ce34de3b2f6e4b3c2b55d6de9cc505023d89566e9.png&lt;br /&gt;
:[[Media:time81.png|40:00]] - b356030ec86a14ae7224ee50d4af063d18cbd48e6a3395a1b6bd0c9e04f6ce70.png&lt;br /&gt;
:[[Media:time82.png|40:30]] - de86486235c332c24539586f6118e44e3a5ef0655637c42a8ce8aeeeddd7418a.png&lt;br /&gt;
:[[Media:time83.png|41:00]] - d4674f445c468c3c90c3f8866b05a682fc296190c95ccce771a42eee53543649.png&lt;br /&gt;
:[[Media:time84.png|41:30]] - d5d760b5528c5276d42e7864ed4189e9f03b68cb2addbb0992e6cfee7af1b6c1.png&lt;br /&gt;
:[[Media:time85.png|42:00]] - 9b440f0dd9a67f61cc38262f1dd93dd8a77c60c23fb09670961748779d88680c.png&lt;br /&gt;
:[[Media:time86.png|42:30]] - 560372e93e497f223f00fb9196494fbf2bc8e06fe01fd12548600d475ef058f6.png&lt;br /&gt;
:[[Media:time87.png|43:00]] - 775f6a4e70b978e69787d57de0cc4df349fe439cc34cb560f11ecf87d2065c1e.png&lt;br /&gt;
:[[Media:time88.png|43:30]] - caa0f012b4706ebcaaad92356896d91610629e7a064ee179dc1810d72e981a2b.png&lt;br /&gt;
:[[Media:time89.png|44:00]] - ebb0517f6246f36900e34c511379cabdbdb46a632de0b794e614a66981bbfa2b.png&lt;br /&gt;
:[[Media:time90.png|44:30]] - fec3db94a8ad6abe44048ad458570346f5f350d7cbf2c6050eff8d62106a019a.png&lt;br /&gt;
:[[Media:time91.png|45:00]] - 75e88091d88984485b51ec90272162112ed280a92a29970f60bc7fcfd6214570.png&lt;br /&gt;
:[[Media:time92.png|45:30]] - 293f68d990c4aeb9a9d3b90b74749c1ef605d743cf8a226d254c589c22b839fc.png&lt;br /&gt;
:[[Media:time93.png|46:00]] - f7dbd7d72c8fb8f487433ebb33c7e365e17da48dc79a1c3457232e72f475f0a1.png&lt;br /&gt;
:[[Media:time94.png|46:30]] - bf8927f9779cdcdeb7fe7697b1110596663c12ab1e2e4fe5aff4e54ffa484217.png&lt;br /&gt;
:[[Media:time95.png|47:00]] - de3d109294d00f7ebb54514a8b3f9b0297c06419c9e297c45e5770f1406ab7ae.png&lt;br /&gt;
:[[Media:time96.png|47:30]] - e594b36574fe7bd54609058b25e3be58ca355bb85cd01d4b9016c1c7a100ab30.png&lt;br /&gt;
:[[Media:time97.png|48:00]] - 3eac1b3e675661ba327350b49f05d45d40d232b20bf74eb44bbb1c0d6860c9d2.png&lt;br /&gt;
:[[Media:time98.png|48:30]] - a228595caf108b46e53f4fe276ebac8fa1545928b650742b0812298d5dfde441.png&lt;br /&gt;
:[[Media:time99.png|49:00]] - b8fcc150729d40bf3f3e07c30091a48691cda3ea9b8b0108d06d62bfc1e49b24.png&lt;br /&gt;
:[[Media:time100.png|49:30]] - fd441796100d891d67e0fc2cb6489534d7ec7f245415a753bb1097dc9f680e76.png&lt;br /&gt;
:[[Media:time101.png|50:00]]&lt;br /&gt;
:[[Media:time102.png|50:30]]&lt;br /&gt;
:[[Media:time103.png|51:00]]&lt;br /&gt;
:[[Media:time104.png|51:30]]&lt;br /&gt;
:[[Media:time105.png|52:00]]&lt;br /&gt;
:[[Media:time106.png|52:30]]&lt;br /&gt;
:[[Media:time107.png|53:00]]&lt;br /&gt;
:[[Media:time108.png|53:30]]&lt;br /&gt;
:[[Media:time109.png|54:00]]&lt;br /&gt;
:[[Media:time110.png|54:30]]&lt;br /&gt;
:[[Media:time111.png|55:00]]&lt;br /&gt;
:[[Media:time112.png|55:30]]&lt;br /&gt;
:[[Media:time113.png|56:00]]&lt;br /&gt;
:[[Media:time114.png|56:30]]&lt;br /&gt;
:[[Media:time115.png|57:00]]&lt;br /&gt;
:[[Media:time116.png|57:30]]&lt;br /&gt;
:[[Media:time117.png|58:00]]&lt;br /&gt;
:[[Media:time118.png|58:30]]&lt;br /&gt;
:[[Media:time119.png|59:00]]&lt;br /&gt;
:[[Media:time120.png|59:30]]&lt;br /&gt;
:[[Media:time121.png|60:00]]&lt;br /&gt;
:[[Media:time122.png|60:30]]&lt;br /&gt;
:[[Media:time123.png|61:00]]&lt;br /&gt;
:[[Media:time124.png|61:30]]&lt;br /&gt;
:[[Media:time125.png|62:00]]&lt;br /&gt;
:[[Media:time126.png|62:30]]&lt;br /&gt;
:[[Media:time127.png|63:00]]&lt;br /&gt;
:[[Media:time128.png|63:30]]&lt;br /&gt;
:[[Media:time129.png|64:00]]&lt;br /&gt;
&amp;lt;!-- We'll aggregate all these images into one big image when we're sure that we've collected every frame of the comic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan and Cueball sitting in a landscape.]&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:Dynamic comics]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31223</id>
		<title>Talk:1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31223"/>
				<updated>2013-03-27T04:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* ... so that's it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pretty sure we're just getting trolled with this one [[Special:Contributions/99.108.190.136|99.108.190.136]] 04:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can't tell if this is emo xkcd or trolling xkcd. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:53, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something seems a little fishy because the image url is different than normal. [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 04:55, 25 March 2013 (UTC)&lt;br /&gt;
:Maybe the comic slowly changes throughout the day. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:56, 25 March 2013 (UTC)&lt;br /&gt;
::Oh god, it does. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:57, 25 March 2013 (UTC)&lt;br /&gt;
:::When uploading different versions of the image, use the naming convention time[iterationNumber].png. We'll compile all the images into one and display them as per [[Traffic Lights]]. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:05, 25 March 2013 (UTC)&lt;br /&gt;
::::Alright, so the comic appears to be switching between two states here: between [[media:time2.png|this]] and [[media:time3.png|this]]. If nothing new happens, I'll get to clipping the comics together. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:28, 25 March 2013 (UTC)&lt;br /&gt;
:::::Whoop, nope, [[media:time4.png|this]] just came up. Is there more to come? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:34, 25 March 2013 (UTC)&lt;br /&gt;
::::::Alright, so a new one is posted every half-hour. Whoopee. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 06:06, 25 March 2013 (UTC)&lt;br /&gt;
:::::::And there's a new one! Megan leaning back and looking up...&lt;br /&gt;
::::::::Well, the image changed, who has the time to make a script to catch the new images and compile them into a gif? https://dl.dropbox.com/u/932170/time.png [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)It could be a reference to the old proverb &amp;quot; time and tide wait for none&amp;quot; Cueball and the girl could be waiting for the tide in the beach! (Just a guess)[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The picture does chance with time. The URL includes a changing timestamp that I can't decipher. Compare these two URLS (which have slightly different images:&lt;br /&gt;
http://imgs.xkcd.com/comics/time/8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
&lt;br /&gt;
Perhaps there is a way to hack the URL to view future images. [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:29, 25 March 2013 (UTC)&lt;br /&gt;
: I would also like to add that knowing randall, these are not the only images. For all we know, the image will still be changing in 5 years while a tree grows in front of them. My point is: Are the URLs hackable, or did he encrypt them? [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:33, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Likely there is a way to hack the URLs; they look like some sort of hash, probably a hashed timestamp. Of course, he could easily have added some salt to the hash, making it significantly *harder* to hack. But they're strings of a specific length, so it should be pretty easy to bruteforce it, fetch all the images, and then (maybe) reverse-engineer the sequence. *That* all depends on how many of them there are. [[Special:Contributions/76.90.249.178|76.90.249.178]] 05:44, 25 March 2013 (UTC)&lt;br /&gt;
:Good god, do you see how many digits are *in* that hash? The sun'll have burned out by the time we've tested every possible combination of digits. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:47, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It seems that the image is updated every 1/2 hour. [[Special:Contributions/152.23.97.150|152.23.97.150]] 06:17, 25 March 2013 (UTC)&lt;br /&gt;
: Given that the images switch back and forth between other images already seen, and that the comic should be viewable in the future, it seems unlikely that it's any thing like a simple sha256 of part of the timestamp.  I think it's more likely a function of half-hours and minutes (assuming we continue to get a new possible image every half-hour). [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: The images do cycle, yes. But for some reason I have never seen the img where Megan is looking behind her. Also wouldn't it be difficult to show a sequential story (like the rising tide) if the previous images keep cycling ?&lt;br /&gt;
&lt;br /&gt;
Hash appears to be SHA-256. I tried some obvious hashes (&amp;quot;1&amp;quot;, &amp;quot;11901&amp;quot;, &amp;quot;1190_1&amp;quot;, &amp;quot;1190.1&amp;quot;) to no avail. Maybe this is HMAC-SHA256? Also, I would suggest trying Unix timestamps. [[Special:Contributions/131.156.236.149|131.156.236.149]] 06:19, 25 March 2013 (UTC)&lt;br /&gt;
: I've been trying to make educated guesses as to what's being hashed here: http://www.xorbin.com/tools/sha256-hash-calculator ... he could also be using hash(hash2(value)) which would be virtually impossible to crack. [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's entirely possible that the &amp;quot;hash&amp;quot; is actually randomly generated. Just a thought. [[Special:Contributions/129.21.119.153|129.21.119.153]] 07:03, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Alright, this is probably not going to work, but I'm trying to exploit Randall's awesomeness here. Maybe he decided to take the time-stamps from the user? I don't know if that's even possible... That would then allow people in different time zones to obtain different images simultaneously. (What's the corollary of Godwin's law for a bunch of math-and-science nerds and relativity? Is there one?) Clicking the img src url on the comic's html page, give me this: http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png : Never mind.. apparently others see the same image too.&lt;br /&gt;
&lt;br /&gt;
Could he be doing this live? Monitoring the discussion on the net? Collaborative, crowdsourced comic-ing? Reminds me of those you-decide-what-the-character-does-next-and-flip-to-appropriate-page parallel plot novels.&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/220.224.246.97|220.224.246.97]] 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Let's just compare the two pictures and see how the bottom right changes, which I believe is water and they are indeed waiting for the tide. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:19, 25 March 2013 (UTC)&lt;br /&gt;
:I'm adding urls to pictures bellow, edit freely.&lt;br /&gt;
::They change every 5 minutes, will try to keep track.&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/f/f8/time.png &lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
http://dl.dropbox.com/u/932170/timeasdf.png &lt;br /&gt;
http://dl.dropbox.com/u/932170/time6.png&lt;br /&gt;
&lt;br /&gt;
:I have uploaded all the different images onto the wiki, in the order that they were revealed. To avoid needless duplication of effort, I'll put them up in the explanation page. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:44, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It just went back to the second image... [[Special:Contributions/220.224.246.97|220.224.246.97]] 07:59, 25 March 2013 (UTC)&lt;br /&gt;
: And now changed to something new.  http://imgs.xkcd.com/comics/time/cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:: The images do look alike, but they're all different. Thanks David. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 08:04, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: No..I checked the random string. They're exactly the same. In fact, now it's gone back to the second image. Again. [[Special:Contributions/220.224.246.97|220.224.246.97]] 08:07, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just found this JavaScript code embedded in the comic HTML source (Update: Reformatted to prevent eye-bleeding): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(function (e) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function t() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function n() {&lt;br /&gt;
        this.listeners = new t&lt;br /&gt;
    }&lt;br /&gt;
    function r(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function i(e) {&lt;br /&gt;
        this.type = e&lt;br /&gt;
    }&lt;br /&gt;
    function s(e, t) {&lt;br /&gt;
        i.call(this, e), this.data = t.data, this.lastEventId = t.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function g(e, t) {&lt;br /&gt;
        var n = Number(e);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || t&lt;br /&gt;
    }&lt;br /&gt;
    function y(e, t, n) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof e[t] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; e[t](n)&lt;br /&gt;
        } catch (i) {&lt;br /&gt;
            r(i)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function b(t, r) {&lt;br /&gt;
        function B() {&lt;br /&gt;
            L = d, N !== null &amp;amp;&amp;amp; (N.abort(), N = null), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), S.readyState = d&lt;br /&gt;
        }&lt;br /&gt;
        function j(e) {&lt;br /&gt;
            var t = L === p || L === h ? N.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                n = null;&lt;br /&gt;
            if (L === h) {&lt;br /&gt;
                var r = f ? t !== &amp;quot;&amp;quot; ? N.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : N.contentType;&lt;br /&gt;
                if (r &amp;amp;&amp;amp; v.test(r)) {&lt;br /&gt;
                    L = p, T = !0, x = u, S.readyState = p, n = new i(&amp;quot;open&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onopen&amp;quot;, n);&lt;br /&gt;
                    if (L === d) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (L === p) {&lt;br /&gt;
                t.length &amp;gt; k &amp;amp;&amp;amp; (H = !0, T = !0);&lt;br /&gt;
                var o = 0,&lt;br /&gt;
                    a = t.indexOf(&amp;quot;\r&amp;quot;, k),&lt;br /&gt;
                    l = t.indexOf(&amp;quot;\n&amp;quot;, k);&lt;br /&gt;
                while (a !== -1 || l !== -1) {&lt;br /&gt;
                    a === -1 || l !== -1 &amp;amp;&amp;amp; l &amp;lt; a ? (o = l, l = t.indexOf(&amp;quot;\n&amp;quot;, o + 1)) : (o = a, a = t.indexOf(&amp;quot;\r&amp;quot;, o + 1));&lt;br /&gt;
                    var m = t.slice(k, o),&lt;br /&gt;
                        B = D;&lt;br /&gt;
                    D = t.slice(o, o + 1) === &amp;quot;\r&amp;quot;, k = o + 1;&lt;br /&gt;
                    if (!B || m.length !== 0 || D) {&lt;br /&gt;
                        _.push(m);&lt;br /&gt;
                        var j = _.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        _.length = 0;&lt;br /&gt;
                        if (j !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var I = &amp;quot;&amp;quot;,&lt;br /&gt;
                                q = j.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            q !== -1 &amp;amp;&amp;amp; (I = j.slice(q + (j.slice(q + 1, q + 2) === &amp;quot; &amp;quot; ? 2 : 1)), j = j.slice(0, q)), j === &amp;quot;data&amp;quot; ? A.push(I) : j === &amp;quot;id&amp;quot; ? O = I : j === &amp;quot;event&amp;quot; ? M = I : j === &amp;quot;retry&amp;quot; ? (u = g(I, u), x = u, b &amp;lt; u &amp;amp;&amp;amp; (b = u)) : j === &amp;quot;retryLimit&amp;quot; ? b = g(I, b) : j === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (w = g(I, w), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = setTimeout(R, w)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (A.length !== 0) {&lt;br /&gt;
                                E = O;&lt;br /&gt;
                                var U = M || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                n = new s(U, {&lt;br /&gt;
                                    data: A.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: O&lt;br /&gt;
                                }), S.dispatchEvent(n), U === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; y(S, &amp;quot;onmessage&amp;quot;, n);&lt;br /&gt;
                                if (L === d) return&lt;br /&gt;
                            }&lt;br /&gt;
                            A.length = 0, M = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                k !== t.length &amp;amp;&amp;amp; (_.push(t.slice(k)), k = t.length)&lt;br /&gt;
            }&lt;br /&gt;
            H &amp;amp;&amp;amp; P === 0 &amp;amp;&amp;amp; (H = !1, P = setTimeout(F, 80)), L !== p &amp;amp;&amp;amp; L !== h || !(e || k &amp;gt; 1048576 || C === 0 &amp;amp;&amp;amp; !T) ? C === 0 &amp;amp;&amp;amp; (T = !1, C = setTimeout(R, w)) : (L = c, N.abort(), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), x &amp;gt; b &amp;amp;&amp;amp; (x = b), C = setTimeout(R, x), x = x * 2 + 1, S.readyState = h, n = new i(&amp;quot;error&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onerror&amp;quot;, n))&lt;br /&gt;
        }&lt;br /&gt;
        function F() {&lt;br /&gt;
            P = 0, j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function I() {&lt;br /&gt;
            j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function q() {&lt;br /&gt;
            j(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function R() {&lt;br /&gt;
            C = 0;&lt;br /&gt;
            if (L !== c) {&lt;br /&gt;
                j(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                C = setTimeout(R, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (m &amp;amp;&amp;amp; e.document &amp;amp;&amp;amp; (e.document.readyState === &amp;quot;loading&amp;quot; || e.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                C = setTimeout(R, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            N.onload = N.onerror = q, N.mozAnon === undefined ? N.onprogress = I : N.onreadystatechange = I, T = !1, C = setTimeout(R, w), k = 0, L = h, A.length = 0, M = &amp;quot;&amp;quot;, O = E, _.length = 0, D = !1, N.open(&amp;quot;GET&amp;quot;, t + ((t.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(E) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), N.withCredentials = o, N.responseType = &amp;quot;text&amp;quot;, f &amp;amp;&amp;amp; N.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), N.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        t = String(t);&lt;br /&gt;
        var o = Boolean(a &amp;amp;&amp;amp; r &amp;amp;&amp;amp; r.withCredentials),&lt;br /&gt;
            u = g(r ? r.retry : NaN, 1e3),&lt;br /&gt;
            b = g(r ? r.retryLimit : NaN, 3e5),&lt;br /&gt;
            w = g(r ? r.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            E = r &amp;amp;&amp;amp; r.lastEventId &amp;amp;&amp;amp; String(r.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            S = this,&lt;br /&gt;
            x = u,&lt;br /&gt;
            T = !1,&lt;br /&gt;
            N = new l,&lt;br /&gt;
            C = 0,&lt;br /&gt;
            k = 0,&lt;br /&gt;
            L = c,&lt;br /&gt;
            A = [],&lt;br /&gt;
            O = &amp;quot;&amp;quot;,&lt;br /&gt;
            M = &amp;quot;&amp;quot;,&lt;br /&gt;
            _ = [],&lt;br /&gt;
            D = !1,&lt;br /&gt;
            P = 0,&lt;br /&gt;
            H = !1;&lt;br /&gt;
        r = null, n.call(this), this.close = B, this.url = t, this.readyState = h, this.withCredentials = o, R()&lt;br /&gt;
    }&lt;br /&gt;
    function w() {&lt;br /&gt;
        this.CONNECTING = h, this.OPEN = p, this.CLOSED = d&lt;br /&gt;
    }&lt;br /&gt;
    t.prototype = {&lt;br /&gt;
        get: function (e) {&lt;br /&gt;
            return this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (e, t) {&lt;br /&gt;
            this.data[e + &amp;quot;~&amp;quot;] = t&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (e) {&lt;br /&gt;
            delete this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, n.prototype = {&lt;br /&gt;
        dispatchEvent: function (e) {&lt;br /&gt;
            var t = String(e.type),&lt;br /&gt;
                n = this.listeners,&lt;br /&gt;
                i = n.get(t);&lt;br /&gt;
            if (!i) return;&lt;br /&gt;
            var s = i.length,&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; s) {&lt;br /&gt;
                var u = i[o];&lt;br /&gt;
                try {&lt;br /&gt;
                    u.call(this, e)&lt;br /&gt;
                } catch (a) {&lt;br /&gt;
                    r(a)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            r || n.set(e, r = []);&lt;br /&gt;
            var i = r.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (r[i] === t) return;&lt;br /&gt;
            r.push(t)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            if (!r) return;&lt;br /&gt;
            var i = r.length,&lt;br /&gt;
                s = [],&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; i) r[o] !== t &amp;amp;&amp;amp; s.push(r[o]);&lt;br /&gt;
            s.length === 0 ? n[&amp;quot;delete&amp;quot;](e) : n.set(e, s)&lt;br /&gt;
        }&lt;br /&gt;
    }, s.prototype = i.prototype;&lt;br /&gt;
    var o = e.XMLHttpRequest,&lt;br /&gt;
        u = e.XDomainRequest,&lt;br /&gt;
        a = Boolean(o &amp;amp;&amp;amp; (new o).withCredentials !== undefined),&lt;br /&gt;
        f = a,&lt;br /&gt;
        l = a ? o : u,&lt;br /&gt;
        c = -1,&lt;br /&gt;
        h = 0,&lt;br /&gt;
        p = 1,&lt;br /&gt;
        d = 2,&lt;br /&gt;
        v = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        m = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    w.prototype = n.prototype, b.prototype = new w, w.call(b), l &amp;amp;&amp;amp; (e.EventSource = b)&lt;br /&gt;
})(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function e(e) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + e&lt;br /&gt;
    }&lt;br /&gt;
    function t() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var n = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            r = new EventSource(n);&lt;br /&gt;
        t(&amp;quot;connecting to event source:&amp;quot;, n), r.addEventListener(&amp;quot;open&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;error&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;loadtest&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, function (e) {&lt;br /&gt;
            var n = JSON.parse(e.data),&lt;br /&gt;
                r = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                i = Math.round(Math.random() * n.spread);&lt;br /&gt;
            t(&amp;quot;waiting&amp;quot;, i, &amp;quot;seconds before displaying comic&amp;quot;, n.image), setTimeout(function () {&lt;br /&gt;
                r.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + n.image&lt;br /&gt;
            }, i * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (i) {&lt;br /&gt;
        e(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm no programmer but this looks important to me...&lt;br /&gt;
&lt;br /&gt;
:Doesn't really help. The script basically changes the image when something happens (probably some time passes, although it's possible there is more hidden there). WHAT image then appears is not directed by the script, but by the site. Specifically, the image displayed as first is taken from [http://c0.xkcd.com/redirect/comic/time http://c0.xkcd.com/redirect/comic/time], while the script asks for [http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber) http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber)] ... which is, if you get correct &amp;quot;r&amp;quot;, probably some json containing the image url. So, even if you hack the script, you will not get all possible urls. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:17, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: ... actually, given that the script part doesn't seem to do anything just now, it's even possible it's for later (ie, starts producing images when the correct time come). Or maybe there is a bug somewhere in the code :-). -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:27, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thanks for explaining. Why hasn't anyone posted this before? Could &amp;quot;location.hash&amp;quot; possibly have anything to do with the method used to generate the image hash key? Also, why is this code so difficult to follow (Obfuscation?)? So many questions... Sorry if this is just a huge waste of ''Time''.&lt;br /&gt;
&lt;br /&gt;
:::: &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is the URI of the page. &amp;lt;code&amp;gt;location.hash&amp;lt;/code&amp;gt; is the part of the uri after the ''#'' character. If you go to [https://xkcd.com/1190/#verbose https://xkcd.com/1190/#verbose], you'll see some debugging output in your browser's debugging console (Firefox: Web Console or Firebug, Chrome: Development Tools). But nothing to decode the algorithm... :-( --[[Special:Contributions/83.243.48.2|83.243.48.2]] 10:01, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Well, I don't know what's doing it, but there's definitely some script (probably this script) that's refreshing the image automatically.  I left the comic open for an hour or so and noticed the image had changed. I refreshed with #verbose in Chrome right before the 30 minute mark and got the following in the console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connecting to event source: http://c0.xkcd.com/stream/comic/time?method=EventSource time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;e2992bf0-9557-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 0 seconds before displaying comic 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_start&amp;quot;. time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;79580fe8-9558-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 4 seconds before displaying comic 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png time07.min.js:1&lt;br /&gt;
connection error i {type: &amp;quot;error&amp;quot;} time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_error&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::::: The script seems to poll the server every minute or two. It's different from before, where the image server itself redirected to the correct image. The auto refresh was probably always intended, but not quite ready when the comic went live. It may have turned out to be necessary too, so the image server doesn't have to do all the work. [[Special:Contributions/129.21.119.153|129.21.119.153]] 14:45, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Before obfuscation... ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(function (global) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function Map() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function EventTarget() {&lt;br /&gt;
        this.listeners = new Map&lt;br /&gt;
    }&lt;br /&gt;
    function throwError(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function Event(type) {&lt;br /&gt;
        this.type = type&lt;br /&gt;
    }&lt;br /&gt;
    function MessageEvent(type, options) {&lt;br /&gt;
        Event.call(this, type), this.data = options.data, this.lastEventId = options.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function getDuration(value, def) {&lt;br /&gt;
        var n = Number(value);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || def&lt;br /&gt;
    }&lt;br /&gt;
    function fire(that, property, event) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof that[property] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; that[property](event)&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            throwError(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function EventSource(url, options) {&lt;br /&gt;
        function close() {&lt;br /&gt;
            currentState = CLOSED, xhr !== null &amp;amp;&amp;amp; (xhr.abort(), xhr = null), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), that.readyState = CLOSED&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress(isLoadEnd) {&lt;br /&gt;
            var responseText = currentState === OPEN || currentState === CONNECTING ? xhr.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                event = null;&lt;br /&gt;
            if (currentState === CONNECTING) {&lt;br /&gt;
                var contentType = isXHR ? responseText !== &amp;quot;&amp;quot; ? xhr.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : xhr.contentType;&lt;br /&gt;
                if (contentType &amp;amp;&amp;amp; contentTypeRegExp.test(contentType)) {&lt;br /&gt;
                    currentState = OPEN, wasActivity = !0, retry = initialRetry, that.readyState = OPEN, event = new Event(&amp;quot;open&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onopen&amp;quot;, event);&lt;br /&gt;
                    if (currentState === CLOSED) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (currentState === OPEN) {&lt;br /&gt;
                responseText.length &amp;gt; charOffset &amp;amp;&amp;amp; (wasAct = !0, wasActivity = !0);&lt;br /&gt;
                var i = 0,&lt;br /&gt;
                    i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, charOffset),&lt;br /&gt;
                    i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, charOffset);&lt;br /&gt;
                while (i1 !== -1 || i2 !== -1) {&lt;br /&gt;
                    i1 === -1 || i2 !== -1 &amp;amp;&amp;amp; i2 &amp;lt; i1 ? (i = i2, i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, i + 1)) : (i = i1, i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, i + 1));&lt;br /&gt;
                    var line = responseText.slice(charOffset, i),&lt;br /&gt;
                        oldWasCR = wasCR;&lt;br /&gt;
                    wasCR = responseText.slice(i, i + 1) === &amp;quot;\r&amp;quot;, charOffset = i + 1;&lt;br /&gt;
                    if (!oldWasCR || line.length !== 0 || wasCR) {&lt;br /&gt;
                        responseBuffer.push(line);&lt;br /&gt;
                        var field = responseBuffer.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        responseBuffer.length = 0;&lt;br /&gt;
                        if (field !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var value = &amp;quot;&amp;quot;,&lt;br /&gt;
                                j = field.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            j !== -1 &amp;amp;&amp;amp; (value = field.slice(j + (field.slice(j + 1, j + 2) === &amp;quot; &amp;quot; ? 2 : 1)), field = field.slice(0, j)), field === &amp;quot;data&amp;quot; ? dataBuffer.push(value) : field === &amp;quot;id&amp;quot; ? lastEventIdBuffer = value : field === &amp;quot;event&amp;quot; ? eventTypeBuffer = value : field === &amp;quot;retry&amp;quot; ? (initialRetry = getDuration(value, initialRetry), retry = initialRetry, retryLimit &amp;lt; initialRetry &amp;amp;&amp;amp; (retryLimit = initialRetry)) : field === &amp;quot;retryLimit&amp;quot; ? retryLimit = getDuration(value, retryLimit) : field === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (heartbeatTimeout = getDuration(value, heartbeatTimeout), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = setTimeout(onTimeout, heartbeatTimeout)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (dataBuffer.length !== 0) {&lt;br /&gt;
                                lastEventId = lastEventIdBuffer;&lt;br /&gt;
                                var type = eventTypeBuffer || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                event = new MessageEvent(type, {&lt;br /&gt;
                                    data: dataBuffer.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: lastEventIdBuffer&lt;br /&gt;
                                }), that.dispatchEvent(event), type === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; fire(that, &amp;quot;onmessage&amp;quot;, event);&lt;br /&gt;
                                if (currentState === CLOSED) return&lt;br /&gt;
                            }&lt;br /&gt;
                            dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                charOffset !== responseText.length &amp;amp;&amp;amp; (responseBuffer.push(responseText.slice(charOffset)), charOffset = responseText.length)&lt;br /&gt;
            }&lt;br /&gt;
            wasAct &amp;amp;&amp;amp; progressTimeout === 0 &amp;amp;&amp;amp; (wasAct = !1, progressTimeout = setTimeout(p, 80)), currentState !== OPEN &amp;amp;&amp;amp; currentState !== CONNECTING || !(isLoadEnd || charOffset &amp;gt; 1048576 || timeout === 0 &amp;amp;&amp;amp; !wasActivity) ? timeout === 0 &amp;amp;&amp;amp; (wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout)) : (currentState = WAITING, xhr.abort(), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), retry &amp;gt; retryLimit &amp;amp;&amp;amp; (retry = retryLimit), timeout = setTimeout(onTimeout, retry), retry = retry * 2 + 1, that.readyState = CONNECTING, event = new Event(&amp;quot;error&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onerror&amp;quot;, event))&lt;br /&gt;
        }&lt;br /&gt;
        function p() {&lt;br /&gt;
            progressTimeout = 0, onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress2() {&lt;br /&gt;
            onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onLoadEnd() {&lt;br /&gt;
            onProgress(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function onTimeout() {&lt;br /&gt;
            timeout = 0;&lt;br /&gt;
            if (currentState !== WAITING) {&lt;br /&gt;
                onProgress(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (webkitBefore535 &amp;amp;&amp;amp; global.document &amp;amp;&amp;amp; (global.document.readyState === &amp;quot;loading&amp;quot; || global.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            xhr.onload = xhr.onerror = onLoadEnd, xhr.mozAnon === undefined ? xhr.onprogress = onProgress2 : xhr.onreadystatechange = onProgress2, wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout), charOffset = 0, currentState = CONNECTING, dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;, lastEventIdBuffer = lastEventId, responseBuffer.length = 0, wasCR = !1, xhr.open(&amp;quot;GET&amp;quot;, url + ((url.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(lastEventId) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), xhr.withCredentials = withCredentials, xhr.responseType = &amp;quot;text&amp;quot;, isXHR &amp;amp;&amp;amp; xhr.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), xhr.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        url = String(url);&lt;br /&gt;
        var withCredentials = Boolean(xhr2 &amp;amp;&amp;amp; options &amp;amp;&amp;amp; options.withCredentials),&lt;br /&gt;
            initialRetry = getDuration(options ? options.retry : NaN, 1e3),&lt;br /&gt;
            retryLimit = getDuration(options ? options.retryLimit : NaN, 3e5),&lt;br /&gt;
            heartbeatTimeout = getDuration(options ? options.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            lastEventId = options &amp;amp;&amp;amp; options.lastEventId &amp;amp;&amp;amp; String(options.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            that = this,&lt;br /&gt;
            retry = initialRetry,&lt;br /&gt;
            wasActivity = !1,&lt;br /&gt;
            xhr = new Transport,&lt;br /&gt;
            timeout = 0,&lt;br /&gt;
            charOffset = 0,&lt;br /&gt;
            currentState = WAITING,&lt;br /&gt;
            dataBuffer = [],&lt;br /&gt;
            lastEventIdBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            eventTypeBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            responseBuffer = [],&lt;br /&gt;
            wasCR = !1,&lt;br /&gt;
            progressTimeout = 0,&lt;br /&gt;
            wasAct = !1;&lt;br /&gt;
        options = null, EventTarget.call(this), this.close = close, this.url = url, this.readyState = CONNECTING, this.withCredentials = withCredentials, onTimeout()&lt;br /&gt;
    }&lt;br /&gt;
    function F() {&lt;br /&gt;
        this.CONNECTING = CONNECTING, this.OPEN = OPEN, this.CLOSED = CLOSED&lt;br /&gt;
    }&lt;br /&gt;
    Map.prototype = {&lt;br /&gt;
        get: function (key) {&lt;br /&gt;
            return this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (key, value) {&lt;br /&gt;
            this.data[key + &amp;quot;~&amp;quot;] = value&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (key) {&lt;br /&gt;
            delete this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, EventTarget.prototype = {&lt;br /&gt;
        dispatchEvent: function (event) {&lt;br /&gt;
            var type = String(event.type),&lt;br /&gt;
                listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) {&lt;br /&gt;
                var listener = typeListeners[i];&lt;br /&gt;
                try {&lt;br /&gt;
                    listener.call(this, event)&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    throwError(e)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            typeListeners || listeners.set(type, typeListeners = []);&lt;br /&gt;
            var i = typeListeners.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (typeListeners[i] === callback) return;&lt;br /&gt;
            typeListeners.push(callback)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                filtered = [],&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) typeListeners[i] !== callback &amp;amp;&amp;amp; filtered.push(typeListeners[i]);&lt;br /&gt;
            filtered.length === 0 ? listeners[&amp;quot;delete&amp;quot;](type) : listeners.set(type, filtered)&lt;br /&gt;
        }&lt;br /&gt;
    }, MessageEvent.prototype = Event.prototype;&lt;br /&gt;
    var XHR = global.XMLHttpRequest,&lt;br /&gt;
        XDR = global.XDomainRequest,&lt;br /&gt;
        xhr2 = Boolean(XHR &amp;amp;&amp;amp; (new XHR).withCredentials !== undefined),&lt;br /&gt;
        isXHR = xhr2,&lt;br /&gt;
        Transport = xhr2 ? XHR : XDR,&lt;br /&gt;
        WAITING = -1,&lt;br /&gt;
        CONNECTING = 0,&lt;br /&gt;
        OPEN = 1,&lt;br /&gt;
        CLOSED = 2,&lt;br /&gt;
        contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        webkitBefore535 = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    F.prototype = EventTarget.prototype, EventSource.prototype = new F, F.call(EventSource), Transport &amp;amp;&amp;amp; (global.EventSource = EventSource)&lt;br /&gt;
 })(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function record(name) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + name&lt;br /&gt;
    }&lt;br /&gt;
    function log() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var esURL = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            source = new EventSource(esURL);&lt;br /&gt;
        log(&amp;quot;connecting to event source:&amp;quot;, esURL), source.addEventListener(&amp;quot;open&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;error&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;loadtest&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, function (ev) {&lt;br /&gt;
            var data = JSON.parse(ev.data),&lt;br /&gt;
                img = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                delay = Math.round(Math.random() * data.spread);&lt;br /&gt;
            log(&amp;quot;waiting&amp;quot;, delay, &amp;quot;seconds before displaying comic&amp;quot;, data.image), setTimeout(function () {&lt;br /&gt;
                img.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + data.image&lt;br /&gt;
            }, delay * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
        record(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 09:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://imgs.xkcd.com/comics/time/426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/1/1e/f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 22:51, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/b/b0/88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 23:10, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is it just me or or did Randall manage to make all of us perform a Denial of Service on xkcd.com, and explainxkcd.com ? xkcd.com seems much slower, and I keep getting &amp;quot;500 Internal server error&amp;quot; when accessing this site (explainxkcd.com). I guess that's the effect of having everybody hit F5 every few minutes :) [[Special:Contributions/193.239.192.194|193.239.192.194]] 11:57, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Earlier today, the server handled all the image redirections. The script you see above went through several mutations (currently at #8), with each mutation it seems that Randall is adding more servers and trying to split the load between them. This is basically how a bot-net works - we all run code written by some evil genius, and he's changing the code as time passes to serve some hidden purpose.&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 15:44, 25 March 2013 (UTC)&lt;br /&gt;
    If he is using us as a botnet, then maybe the next comic will be something alluding to that.&lt;br /&gt;
    Probably like this: http://xkcd.com/350/&lt;br /&gt;
&lt;br /&gt;
When I saw this comic last night and that there was no explanation up, I thought to myself &amp;quot;How zen.&amp;quot;  I figured that Randall was going through a calm streak before throwing us the utterly ridiculous April 1st comic.  Did it come early, or does he have something even bigger planned for us? [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:05, 26 March 2013 (UTC)&lt;br /&gt;
:Sorry, did you miss the bit where this comic updates every 30 minutes and all the server error messages being caused by the massive traffic to both the wiki and the main xkcd website? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:08, 26 March 2013 (UTC)&lt;br /&gt;
::Well, when I said &amp;quot;last night&amp;quot; and &amp;quot;no explanation&amp;quot;, I implied that I wasn't aware of that at the time, which is why I thought what I did.  Of course, it is now &amp;quot;now&amp;quot; and there &amp;lt;i&amp;gt;is&amp;lt;/i&amp;gt; an explanation, so that should answer your question.  Also, since it's not April 1st, and Randall has consistently released something major on that day, the jury is still out, leaving my question quite open (though I was really only asking for opinions). [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:20, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wanted to add an image to the list above, but didn't know at what timestamp to add it, got 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png at 2013-03-26 09:47 CET (UTC+0100)&lt;br /&gt;
 /Puggan&lt;br /&gt;
:The hours denote the time since the initial release of the comic. The page is still a work in progress, we're going to bring that all into one image file soon. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 09:13, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
This site should seriously consider cloudflare, it's perfect at times like this and takes minutes to set up.  I run all my sites through it and it saves a lot of page huts and bandwidth.&lt;br /&gt;
[[Special:Contributions/123.3.136.228|123.3.136.228]]Evan Pyle&lt;br /&gt;
:Or at least make the main page a static page that refreshes every so often.  I'm guessing that most of the traffic is going to the front page with not as much traffic to the actual comic page [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some of the images on the wiki (looks like time38.png through time48.png) are slightly different than what is on the main site.  The lines are slightly thicker, as though someone did them based on screen captures.&lt;br /&gt;
[[User:Royce|Royce]] ([[User talk:Royce|talk]]) 14:37, 26 March 2013 (UTC)&lt;br /&gt;
:Well, at least we have the hashes so they can be re-retrieved, so nothing is really lost, right?  Should we add links to the original? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I uploaded two of the &amp;quot;thicker&amp;quot; images and one of the &amp;quot;regular&amp;quot; ones, and I did the same thing for all of them: right-click-&amp;gt;save-as. Given that the &amp;quot;thick&amp;quot; ones are all clustered together, I think the files on the xkcd site changed. [[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 18:21, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Story so far: [http://static.odysseus.anderson.name/1190.gif linky] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 19:30, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I guess we shall find out in ~10 minutes if Randall is trolling us. [[Special:Contributions/129.138.30.95|129.138.30.95]] 04:20, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ... so that's it? ==&lt;br /&gt;
&lt;br /&gt;
Did I just miss something or we've all been epically trolled for 48 hours? [[Special:Contributions/189.59.175.92|189.59.175.92]] 04:22, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What makes you think he's done? [[Special:Contributions/129.138.30.95|129.138.30.95]] 04:25, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm still waiting for the water level to drop precipitously... and then for red spiders to run over everything [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 04:28, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, strip 1191 is up so I assumed it was over. I guess it's not. Until April's Fools maybe? [[Special:Contributions/189.59.175.92|189.59.175.92]] 04:32, 27 March 2013 (UTC)&lt;br /&gt;
: It is not over -- the image is still updating, at least it did for me [[User:Spongebog|Spongebog]] ([[User talk:Spongebog|talk]])&lt;br /&gt;
&lt;br /&gt;
Considering the common theme with &amp;quot;today's&amp;quot; strip, anyone wanna guess that he's sending us a hex-encoded file over a really slow modem link, slated to complete April 1? Anyone wanna run &amp;quot;magic&amp;quot; over the hashes and see if they come up with a compression codec or something? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 04:45, 27 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31217</id>
		<title>Talk:1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31217"/>
				<updated>2013-03-27T04:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* ... so that's it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pretty sure we're just getting trolled with this one [[Special:Contributions/99.108.190.136|99.108.190.136]] 04:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can't tell if this is emo xkcd or trolling xkcd. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:53, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something seems a little fishy because the image url is different than normal. [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 04:55, 25 March 2013 (UTC)&lt;br /&gt;
:Maybe the comic slowly changes throughout the day. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:56, 25 March 2013 (UTC)&lt;br /&gt;
::Oh god, it does. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:57, 25 March 2013 (UTC)&lt;br /&gt;
:::When uploading different versions of the image, use the naming convention time[iterationNumber].png. We'll compile all the images into one and display them as per [[Traffic Lights]]. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:05, 25 March 2013 (UTC)&lt;br /&gt;
::::Alright, so the comic appears to be switching between two states here: between [[media:time2.png|this]] and [[media:time3.png|this]]. If nothing new happens, I'll get to clipping the comics together. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:28, 25 March 2013 (UTC)&lt;br /&gt;
:::::Whoop, nope, [[media:time4.png|this]] just came up. Is there more to come? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:34, 25 March 2013 (UTC)&lt;br /&gt;
::::::Alright, so a new one is posted every half-hour. Whoopee. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 06:06, 25 March 2013 (UTC)&lt;br /&gt;
:::::::And there's a new one! Megan leaning back and looking up...&lt;br /&gt;
::::::::Well, the image changed, who has the time to make a script to catch the new images and compile them into a gif? https://dl.dropbox.com/u/932170/time.png [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)It could be a reference to the old proverb &amp;quot; time and tide wait for none&amp;quot; Cueball and the girl could be waiting for the tide in the beach! (Just a guess)[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The picture does chance with time. The URL includes a changing timestamp that I can't decipher. Compare these two URLS (which have slightly different images:&lt;br /&gt;
http://imgs.xkcd.com/comics/time/8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
&lt;br /&gt;
Perhaps there is a way to hack the URL to view future images. [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:29, 25 March 2013 (UTC)&lt;br /&gt;
: I would also like to add that knowing randall, these are not the only images. For all we know, the image will still be changing in 5 years while a tree grows in front of them. My point is: Are the URLs hackable, or did he encrypt them? [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:33, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Likely there is a way to hack the URLs; they look like some sort of hash, probably a hashed timestamp. Of course, he could easily have added some salt to the hash, making it significantly *harder* to hack. But they're strings of a specific length, so it should be pretty easy to bruteforce it, fetch all the images, and then (maybe) reverse-engineer the sequence. *That* all depends on how many of them there are. [[Special:Contributions/76.90.249.178|76.90.249.178]] 05:44, 25 March 2013 (UTC)&lt;br /&gt;
:Good god, do you see how many digits are *in* that hash? The sun'll have burned out by the time we've tested every possible combination of digits. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:47, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It seems that the image is updated every 1/2 hour. [[Special:Contributions/152.23.97.150|152.23.97.150]] 06:17, 25 March 2013 (UTC)&lt;br /&gt;
: Given that the images switch back and forth between other images already seen, and that the comic should be viewable in the future, it seems unlikely that it's any thing like a simple sha256 of part of the timestamp.  I think it's more likely a function of half-hours and minutes (assuming we continue to get a new possible image every half-hour). [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: The images do cycle, yes. But for some reason I have never seen the img where Megan is looking behind her. Also wouldn't it be difficult to show a sequential story (like the rising tide) if the previous images keep cycling ?&lt;br /&gt;
&lt;br /&gt;
Hash appears to be SHA-256. I tried some obvious hashes (&amp;quot;1&amp;quot;, &amp;quot;11901&amp;quot;, &amp;quot;1190_1&amp;quot;, &amp;quot;1190.1&amp;quot;) to no avail. Maybe this is HMAC-SHA256? Also, I would suggest trying Unix timestamps. [[Special:Contributions/131.156.236.149|131.156.236.149]] 06:19, 25 March 2013 (UTC)&lt;br /&gt;
: I've been trying to make educated guesses as to what's being hashed here: http://www.xorbin.com/tools/sha256-hash-calculator ... he could also be using hash(hash2(value)) which would be virtually impossible to crack. [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's entirely possible that the &amp;quot;hash&amp;quot; is actually randomly generated. Just a thought. [[Special:Contributions/129.21.119.153|129.21.119.153]] 07:03, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Alright, this is probably not going to work, but I'm trying to exploit Randall's awesomeness here. Maybe he decided to take the time-stamps from the user? I don't know if that's even possible... That would then allow people in different time zones to obtain different images simultaneously. (What's the corollary of Godwin's law for a bunch of math-and-science nerds and relativity? Is there one?) Clicking the img src url on the comic's html page, give me this: http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png : Never mind.. apparently others see the same image too.&lt;br /&gt;
&lt;br /&gt;
Could he be doing this live? Monitoring the discussion on the net? Collaborative, crowdsourced comic-ing? Reminds me of those you-decide-what-the-character-does-next-and-flip-to-appropriate-page parallel plot novels.&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/220.224.246.97|220.224.246.97]] 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Let's just compare the two pictures and see how the bottom right changes, which I believe is water and they are indeed waiting for the tide. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:19, 25 March 2013 (UTC)&lt;br /&gt;
:I'm adding urls to pictures bellow, edit freely.&lt;br /&gt;
::They change every 5 minutes, will try to keep track.&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/f/f8/time.png &lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
http://dl.dropbox.com/u/932170/timeasdf.png &lt;br /&gt;
http://dl.dropbox.com/u/932170/time6.png&lt;br /&gt;
&lt;br /&gt;
:I have uploaded all the different images onto the wiki, in the order that they were revealed. To avoid needless duplication of effort, I'll put them up in the explanation page. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:44, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It just went back to the second image... [[Special:Contributions/220.224.246.97|220.224.246.97]] 07:59, 25 March 2013 (UTC)&lt;br /&gt;
: And now changed to something new.  http://imgs.xkcd.com/comics/time/cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:: The images do look alike, but they're all different. Thanks David. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 08:04, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: No..I checked the random string. They're exactly the same. In fact, now it's gone back to the second image. Again. [[Special:Contributions/220.224.246.97|220.224.246.97]] 08:07, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just found this JavaScript code embedded in the comic HTML source (Update: Reformatted to prevent eye-bleeding): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(function (e) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function t() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function n() {&lt;br /&gt;
        this.listeners = new t&lt;br /&gt;
    }&lt;br /&gt;
    function r(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function i(e) {&lt;br /&gt;
        this.type = e&lt;br /&gt;
    }&lt;br /&gt;
    function s(e, t) {&lt;br /&gt;
        i.call(this, e), this.data = t.data, this.lastEventId = t.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function g(e, t) {&lt;br /&gt;
        var n = Number(e);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || t&lt;br /&gt;
    }&lt;br /&gt;
    function y(e, t, n) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof e[t] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; e[t](n)&lt;br /&gt;
        } catch (i) {&lt;br /&gt;
            r(i)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function b(t, r) {&lt;br /&gt;
        function B() {&lt;br /&gt;
            L = d, N !== null &amp;amp;&amp;amp; (N.abort(), N = null), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), S.readyState = d&lt;br /&gt;
        }&lt;br /&gt;
        function j(e) {&lt;br /&gt;
            var t = L === p || L === h ? N.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                n = null;&lt;br /&gt;
            if (L === h) {&lt;br /&gt;
                var r = f ? t !== &amp;quot;&amp;quot; ? N.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : N.contentType;&lt;br /&gt;
                if (r &amp;amp;&amp;amp; v.test(r)) {&lt;br /&gt;
                    L = p, T = !0, x = u, S.readyState = p, n = new i(&amp;quot;open&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onopen&amp;quot;, n);&lt;br /&gt;
                    if (L === d) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (L === p) {&lt;br /&gt;
                t.length &amp;gt; k &amp;amp;&amp;amp; (H = !0, T = !0);&lt;br /&gt;
                var o = 0,&lt;br /&gt;
                    a = t.indexOf(&amp;quot;\r&amp;quot;, k),&lt;br /&gt;
                    l = t.indexOf(&amp;quot;\n&amp;quot;, k);&lt;br /&gt;
                while (a !== -1 || l !== -1) {&lt;br /&gt;
                    a === -1 || l !== -1 &amp;amp;&amp;amp; l &amp;lt; a ? (o = l, l = t.indexOf(&amp;quot;\n&amp;quot;, o + 1)) : (o = a, a = t.indexOf(&amp;quot;\r&amp;quot;, o + 1));&lt;br /&gt;
                    var m = t.slice(k, o),&lt;br /&gt;
                        B = D;&lt;br /&gt;
                    D = t.slice(o, o + 1) === &amp;quot;\r&amp;quot;, k = o + 1;&lt;br /&gt;
                    if (!B || m.length !== 0 || D) {&lt;br /&gt;
                        _.push(m);&lt;br /&gt;
                        var j = _.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        _.length = 0;&lt;br /&gt;
                        if (j !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var I = &amp;quot;&amp;quot;,&lt;br /&gt;
                                q = j.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            q !== -1 &amp;amp;&amp;amp; (I = j.slice(q + (j.slice(q + 1, q + 2) === &amp;quot; &amp;quot; ? 2 : 1)), j = j.slice(0, q)), j === &amp;quot;data&amp;quot; ? A.push(I) : j === &amp;quot;id&amp;quot; ? O = I : j === &amp;quot;event&amp;quot; ? M = I : j === &amp;quot;retry&amp;quot; ? (u = g(I, u), x = u, b &amp;lt; u &amp;amp;&amp;amp; (b = u)) : j === &amp;quot;retryLimit&amp;quot; ? b = g(I, b) : j === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (w = g(I, w), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = setTimeout(R, w)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (A.length !== 0) {&lt;br /&gt;
                                E = O;&lt;br /&gt;
                                var U = M || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                n = new s(U, {&lt;br /&gt;
                                    data: A.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: O&lt;br /&gt;
                                }), S.dispatchEvent(n), U === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; y(S, &amp;quot;onmessage&amp;quot;, n);&lt;br /&gt;
                                if (L === d) return&lt;br /&gt;
                            }&lt;br /&gt;
                            A.length = 0, M = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                k !== t.length &amp;amp;&amp;amp; (_.push(t.slice(k)), k = t.length)&lt;br /&gt;
            }&lt;br /&gt;
            H &amp;amp;&amp;amp; P === 0 &amp;amp;&amp;amp; (H = !1, P = setTimeout(F, 80)), L !== p &amp;amp;&amp;amp; L !== h || !(e || k &amp;gt; 1048576 || C === 0 &amp;amp;&amp;amp; !T) ? C === 0 &amp;amp;&amp;amp; (T = !1, C = setTimeout(R, w)) : (L = c, N.abort(), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), x &amp;gt; b &amp;amp;&amp;amp; (x = b), C = setTimeout(R, x), x = x * 2 + 1, S.readyState = h, n = new i(&amp;quot;error&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onerror&amp;quot;, n))&lt;br /&gt;
        }&lt;br /&gt;
        function F() {&lt;br /&gt;
            P = 0, j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function I() {&lt;br /&gt;
            j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function q() {&lt;br /&gt;
            j(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function R() {&lt;br /&gt;
            C = 0;&lt;br /&gt;
            if (L !== c) {&lt;br /&gt;
                j(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                C = setTimeout(R, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (m &amp;amp;&amp;amp; e.document &amp;amp;&amp;amp; (e.document.readyState === &amp;quot;loading&amp;quot; || e.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                C = setTimeout(R, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            N.onload = N.onerror = q, N.mozAnon === undefined ? N.onprogress = I : N.onreadystatechange = I, T = !1, C = setTimeout(R, w), k = 0, L = h, A.length = 0, M = &amp;quot;&amp;quot;, O = E, _.length = 0, D = !1, N.open(&amp;quot;GET&amp;quot;, t + ((t.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(E) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), N.withCredentials = o, N.responseType = &amp;quot;text&amp;quot;, f &amp;amp;&amp;amp; N.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), N.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        t = String(t);&lt;br /&gt;
        var o = Boolean(a &amp;amp;&amp;amp; r &amp;amp;&amp;amp; r.withCredentials),&lt;br /&gt;
            u = g(r ? r.retry : NaN, 1e3),&lt;br /&gt;
            b = g(r ? r.retryLimit : NaN, 3e5),&lt;br /&gt;
            w = g(r ? r.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            E = r &amp;amp;&amp;amp; r.lastEventId &amp;amp;&amp;amp; String(r.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            S = this,&lt;br /&gt;
            x = u,&lt;br /&gt;
            T = !1,&lt;br /&gt;
            N = new l,&lt;br /&gt;
            C = 0,&lt;br /&gt;
            k = 0,&lt;br /&gt;
            L = c,&lt;br /&gt;
            A = [],&lt;br /&gt;
            O = &amp;quot;&amp;quot;,&lt;br /&gt;
            M = &amp;quot;&amp;quot;,&lt;br /&gt;
            _ = [],&lt;br /&gt;
            D = !1,&lt;br /&gt;
            P = 0,&lt;br /&gt;
            H = !1;&lt;br /&gt;
        r = null, n.call(this), this.close = B, this.url = t, this.readyState = h, this.withCredentials = o, R()&lt;br /&gt;
    }&lt;br /&gt;
    function w() {&lt;br /&gt;
        this.CONNECTING = h, this.OPEN = p, this.CLOSED = d&lt;br /&gt;
    }&lt;br /&gt;
    t.prototype = {&lt;br /&gt;
        get: function (e) {&lt;br /&gt;
            return this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (e, t) {&lt;br /&gt;
            this.data[e + &amp;quot;~&amp;quot;] = t&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (e) {&lt;br /&gt;
            delete this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, n.prototype = {&lt;br /&gt;
        dispatchEvent: function (e) {&lt;br /&gt;
            var t = String(e.type),&lt;br /&gt;
                n = this.listeners,&lt;br /&gt;
                i = n.get(t);&lt;br /&gt;
            if (!i) return;&lt;br /&gt;
            var s = i.length,&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; s) {&lt;br /&gt;
                var u = i[o];&lt;br /&gt;
                try {&lt;br /&gt;
                    u.call(this, e)&lt;br /&gt;
                } catch (a) {&lt;br /&gt;
                    r(a)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            r || n.set(e, r = []);&lt;br /&gt;
            var i = r.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (r[i] === t) return;&lt;br /&gt;
            r.push(t)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            if (!r) return;&lt;br /&gt;
            var i = r.length,&lt;br /&gt;
                s = [],&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; i) r[o] !== t &amp;amp;&amp;amp; s.push(r[o]);&lt;br /&gt;
            s.length === 0 ? n[&amp;quot;delete&amp;quot;](e) : n.set(e, s)&lt;br /&gt;
        }&lt;br /&gt;
    }, s.prototype = i.prototype;&lt;br /&gt;
    var o = e.XMLHttpRequest,&lt;br /&gt;
        u = e.XDomainRequest,&lt;br /&gt;
        a = Boolean(o &amp;amp;&amp;amp; (new o).withCredentials !== undefined),&lt;br /&gt;
        f = a,&lt;br /&gt;
        l = a ? o : u,&lt;br /&gt;
        c = -1,&lt;br /&gt;
        h = 0,&lt;br /&gt;
        p = 1,&lt;br /&gt;
        d = 2,&lt;br /&gt;
        v = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        m = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    w.prototype = n.prototype, b.prototype = new w, w.call(b), l &amp;amp;&amp;amp; (e.EventSource = b)&lt;br /&gt;
})(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function e(e) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + e&lt;br /&gt;
    }&lt;br /&gt;
    function t() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var n = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            r = new EventSource(n);&lt;br /&gt;
        t(&amp;quot;connecting to event source:&amp;quot;, n), r.addEventListener(&amp;quot;open&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;error&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;loadtest&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, function (e) {&lt;br /&gt;
            var n = JSON.parse(e.data),&lt;br /&gt;
                r = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                i = Math.round(Math.random() * n.spread);&lt;br /&gt;
            t(&amp;quot;waiting&amp;quot;, i, &amp;quot;seconds before displaying comic&amp;quot;, n.image), setTimeout(function () {&lt;br /&gt;
                r.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + n.image&lt;br /&gt;
            }, i * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (i) {&lt;br /&gt;
        e(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm no programmer but this looks important to me...&lt;br /&gt;
&lt;br /&gt;
:Doesn't really help. The script basically changes the image when something happens (probably some time passes, although it's possible there is more hidden there). WHAT image then appears is not directed by the script, but by the site. Specifically, the image displayed as first is taken from [http://c0.xkcd.com/redirect/comic/time http://c0.xkcd.com/redirect/comic/time], while the script asks for [http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber) http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber)] ... which is, if you get correct &amp;quot;r&amp;quot;, probably some json containing the image url. So, even if you hack the script, you will not get all possible urls. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:17, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: ... actually, given that the script part doesn't seem to do anything just now, it's even possible it's for later (ie, starts producing images when the correct time come). Or maybe there is a bug somewhere in the code :-). -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:27, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thanks for explaining. Why hasn't anyone posted this before? Could &amp;quot;location.hash&amp;quot; possibly have anything to do with the method used to generate the image hash key? Also, why is this code so difficult to follow (Obfuscation?)? So many questions... Sorry if this is just a huge waste of ''Time''.&lt;br /&gt;
&lt;br /&gt;
:::: &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is the URI of the page. &amp;lt;code&amp;gt;location.hash&amp;lt;/code&amp;gt; is the part of the uri after the ''#'' character. If you go to [https://xkcd.com/1190/#verbose https://xkcd.com/1190/#verbose], you'll see some debugging output in your browser's debugging console (Firefox: Web Console or Firebug, Chrome: Development Tools). But nothing to decode the algorithm... :-( --[[Special:Contributions/83.243.48.2|83.243.48.2]] 10:01, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Well, I don't know what's doing it, but there's definitely some script (probably this script) that's refreshing the image automatically.  I left the comic open for an hour or so and noticed the image had changed. I refreshed with #verbose in Chrome right before the 30 minute mark and got the following in the console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connecting to event source: http://c0.xkcd.com/stream/comic/time?method=EventSource time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;e2992bf0-9557-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 0 seconds before displaying comic 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_start&amp;quot;. time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;79580fe8-9558-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 4 seconds before displaying comic 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png time07.min.js:1&lt;br /&gt;
connection error i {type: &amp;quot;error&amp;quot;} time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_error&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::::: The script seems to poll the server every minute or two. It's different from before, where the image server itself redirected to the correct image. The auto refresh was probably always intended, but not quite ready when the comic went live. It may have turned out to be necessary too, so the image server doesn't have to do all the work. [[Special:Contributions/129.21.119.153|129.21.119.153]] 14:45, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Before obfuscation... ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(function (global) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function Map() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function EventTarget() {&lt;br /&gt;
        this.listeners = new Map&lt;br /&gt;
    }&lt;br /&gt;
    function throwError(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function Event(type) {&lt;br /&gt;
        this.type = type&lt;br /&gt;
    }&lt;br /&gt;
    function MessageEvent(type, options) {&lt;br /&gt;
        Event.call(this, type), this.data = options.data, this.lastEventId = options.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function getDuration(value, def) {&lt;br /&gt;
        var n = Number(value);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || def&lt;br /&gt;
    }&lt;br /&gt;
    function fire(that, property, event) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof that[property] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; that[property](event)&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            throwError(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function EventSource(url, options) {&lt;br /&gt;
        function close() {&lt;br /&gt;
            currentState = CLOSED, xhr !== null &amp;amp;&amp;amp; (xhr.abort(), xhr = null), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), that.readyState = CLOSED&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress(isLoadEnd) {&lt;br /&gt;
            var responseText = currentState === OPEN || currentState === CONNECTING ? xhr.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                event = null;&lt;br /&gt;
            if (currentState === CONNECTING) {&lt;br /&gt;
                var contentType = isXHR ? responseText !== &amp;quot;&amp;quot; ? xhr.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : xhr.contentType;&lt;br /&gt;
                if (contentType &amp;amp;&amp;amp; contentTypeRegExp.test(contentType)) {&lt;br /&gt;
                    currentState = OPEN, wasActivity = !0, retry = initialRetry, that.readyState = OPEN, event = new Event(&amp;quot;open&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onopen&amp;quot;, event);&lt;br /&gt;
                    if (currentState === CLOSED) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (currentState === OPEN) {&lt;br /&gt;
                responseText.length &amp;gt; charOffset &amp;amp;&amp;amp; (wasAct = !0, wasActivity = !0);&lt;br /&gt;
                var i = 0,&lt;br /&gt;
                    i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, charOffset),&lt;br /&gt;
                    i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, charOffset);&lt;br /&gt;
                while (i1 !== -1 || i2 !== -1) {&lt;br /&gt;
                    i1 === -1 || i2 !== -1 &amp;amp;&amp;amp; i2 &amp;lt; i1 ? (i = i2, i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, i + 1)) : (i = i1, i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, i + 1));&lt;br /&gt;
                    var line = responseText.slice(charOffset, i),&lt;br /&gt;
                        oldWasCR = wasCR;&lt;br /&gt;
                    wasCR = responseText.slice(i, i + 1) === &amp;quot;\r&amp;quot;, charOffset = i + 1;&lt;br /&gt;
                    if (!oldWasCR || line.length !== 0 || wasCR) {&lt;br /&gt;
                        responseBuffer.push(line);&lt;br /&gt;
                        var field = responseBuffer.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        responseBuffer.length = 0;&lt;br /&gt;
                        if (field !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var value = &amp;quot;&amp;quot;,&lt;br /&gt;
                                j = field.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            j !== -1 &amp;amp;&amp;amp; (value = field.slice(j + (field.slice(j + 1, j + 2) === &amp;quot; &amp;quot; ? 2 : 1)), field = field.slice(0, j)), field === &amp;quot;data&amp;quot; ? dataBuffer.push(value) : field === &amp;quot;id&amp;quot; ? lastEventIdBuffer = value : field === &amp;quot;event&amp;quot; ? eventTypeBuffer = value : field === &amp;quot;retry&amp;quot; ? (initialRetry = getDuration(value, initialRetry), retry = initialRetry, retryLimit &amp;lt; initialRetry &amp;amp;&amp;amp; (retryLimit = initialRetry)) : field === &amp;quot;retryLimit&amp;quot; ? retryLimit = getDuration(value, retryLimit) : field === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (heartbeatTimeout = getDuration(value, heartbeatTimeout), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = setTimeout(onTimeout, heartbeatTimeout)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (dataBuffer.length !== 0) {&lt;br /&gt;
                                lastEventId = lastEventIdBuffer;&lt;br /&gt;
                                var type = eventTypeBuffer || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                event = new MessageEvent(type, {&lt;br /&gt;
                                    data: dataBuffer.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: lastEventIdBuffer&lt;br /&gt;
                                }), that.dispatchEvent(event), type === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; fire(that, &amp;quot;onmessage&amp;quot;, event);&lt;br /&gt;
                                if (currentState === CLOSED) return&lt;br /&gt;
                            }&lt;br /&gt;
                            dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                charOffset !== responseText.length &amp;amp;&amp;amp; (responseBuffer.push(responseText.slice(charOffset)), charOffset = responseText.length)&lt;br /&gt;
            }&lt;br /&gt;
            wasAct &amp;amp;&amp;amp; progressTimeout === 0 &amp;amp;&amp;amp; (wasAct = !1, progressTimeout = setTimeout(p, 80)), currentState !== OPEN &amp;amp;&amp;amp; currentState !== CONNECTING || !(isLoadEnd || charOffset &amp;gt; 1048576 || timeout === 0 &amp;amp;&amp;amp; !wasActivity) ? timeout === 0 &amp;amp;&amp;amp; (wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout)) : (currentState = WAITING, xhr.abort(), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), retry &amp;gt; retryLimit &amp;amp;&amp;amp; (retry = retryLimit), timeout = setTimeout(onTimeout, retry), retry = retry * 2 + 1, that.readyState = CONNECTING, event = new Event(&amp;quot;error&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onerror&amp;quot;, event))&lt;br /&gt;
        }&lt;br /&gt;
        function p() {&lt;br /&gt;
            progressTimeout = 0, onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress2() {&lt;br /&gt;
            onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onLoadEnd() {&lt;br /&gt;
            onProgress(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function onTimeout() {&lt;br /&gt;
            timeout = 0;&lt;br /&gt;
            if (currentState !== WAITING) {&lt;br /&gt;
                onProgress(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (webkitBefore535 &amp;amp;&amp;amp; global.document &amp;amp;&amp;amp; (global.document.readyState === &amp;quot;loading&amp;quot; || global.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            xhr.onload = xhr.onerror = onLoadEnd, xhr.mozAnon === undefined ? xhr.onprogress = onProgress2 : xhr.onreadystatechange = onProgress2, wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout), charOffset = 0, currentState = CONNECTING, dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;, lastEventIdBuffer = lastEventId, responseBuffer.length = 0, wasCR = !1, xhr.open(&amp;quot;GET&amp;quot;, url + ((url.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(lastEventId) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), xhr.withCredentials = withCredentials, xhr.responseType = &amp;quot;text&amp;quot;, isXHR &amp;amp;&amp;amp; xhr.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), xhr.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        url = String(url);&lt;br /&gt;
        var withCredentials = Boolean(xhr2 &amp;amp;&amp;amp; options &amp;amp;&amp;amp; options.withCredentials),&lt;br /&gt;
            initialRetry = getDuration(options ? options.retry : NaN, 1e3),&lt;br /&gt;
            retryLimit = getDuration(options ? options.retryLimit : NaN, 3e5),&lt;br /&gt;
            heartbeatTimeout = getDuration(options ? options.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            lastEventId = options &amp;amp;&amp;amp; options.lastEventId &amp;amp;&amp;amp; String(options.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            that = this,&lt;br /&gt;
            retry = initialRetry,&lt;br /&gt;
            wasActivity = !1,&lt;br /&gt;
            xhr = new Transport,&lt;br /&gt;
            timeout = 0,&lt;br /&gt;
            charOffset = 0,&lt;br /&gt;
            currentState = WAITING,&lt;br /&gt;
            dataBuffer = [],&lt;br /&gt;
            lastEventIdBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            eventTypeBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            responseBuffer = [],&lt;br /&gt;
            wasCR = !1,&lt;br /&gt;
            progressTimeout = 0,&lt;br /&gt;
            wasAct = !1;&lt;br /&gt;
        options = null, EventTarget.call(this), this.close = close, this.url = url, this.readyState = CONNECTING, this.withCredentials = withCredentials, onTimeout()&lt;br /&gt;
    }&lt;br /&gt;
    function F() {&lt;br /&gt;
        this.CONNECTING = CONNECTING, this.OPEN = OPEN, this.CLOSED = CLOSED&lt;br /&gt;
    }&lt;br /&gt;
    Map.prototype = {&lt;br /&gt;
        get: function (key) {&lt;br /&gt;
            return this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (key, value) {&lt;br /&gt;
            this.data[key + &amp;quot;~&amp;quot;] = value&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (key) {&lt;br /&gt;
            delete this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, EventTarget.prototype = {&lt;br /&gt;
        dispatchEvent: function (event) {&lt;br /&gt;
            var type = String(event.type),&lt;br /&gt;
                listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) {&lt;br /&gt;
                var listener = typeListeners[i];&lt;br /&gt;
                try {&lt;br /&gt;
                    listener.call(this, event)&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    throwError(e)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            typeListeners || listeners.set(type, typeListeners = []);&lt;br /&gt;
            var i = typeListeners.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (typeListeners[i] === callback) return;&lt;br /&gt;
            typeListeners.push(callback)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                filtered = [],&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) typeListeners[i] !== callback &amp;amp;&amp;amp; filtered.push(typeListeners[i]);&lt;br /&gt;
            filtered.length === 0 ? listeners[&amp;quot;delete&amp;quot;](type) : listeners.set(type, filtered)&lt;br /&gt;
        }&lt;br /&gt;
    }, MessageEvent.prototype = Event.prototype;&lt;br /&gt;
    var XHR = global.XMLHttpRequest,&lt;br /&gt;
        XDR = global.XDomainRequest,&lt;br /&gt;
        xhr2 = Boolean(XHR &amp;amp;&amp;amp; (new XHR).withCredentials !== undefined),&lt;br /&gt;
        isXHR = xhr2,&lt;br /&gt;
        Transport = xhr2 ? XHR : XDR,&lt;br /&gt;
        WAITING = -1,&lt;br /&gt;
        CONNECTING = 0,&lt;br /&gt;
        OPEN = 1,&lt;br /&gt;
        CLOSED = 2,&lt;br /&gt;
        contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        webkitBefore535 = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    F.prototype = EventTarget.prototype, EventSource.prototype = new F, F.call(EventSource), Transport &amp;amp;&amp;amp; (global.EventSource = EventSource)&lt;br /&gt;
 })(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function record(name) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + name&lt;br /&gt;
    }&lt;br /&gt;
    function log() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var esURL = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            source = new EventSource(esURL);&lt;br /&gt;
        log(&amp;quot;connecting to event source:&amp;quot;, esURL), source.addEventListener(&amp;quot;open&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;error&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;loadtest&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, function (ev) {&lt;br /&gt;
            var data = JSON.parse(ev.data),&lt;br /&gt;
                img = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                delay = Math.round(Math.random() * data.spread);&lt;br /&gt;
            log(&amp;quot;waiting&amp;quot;, delay, &amp;quot;seconds before displaying comic&amp;quot;, data.image), setTimeout(function () {&lt;br /&gt;
                img.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + data.image&lt;br /&gt;
            }, delay * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
        record(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 09:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://imgs.xkcd.com/comics/time/426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/1/1e/f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 22:51, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/b/b0/88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 23:10, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is it just me or or did Randall manage to make all of us perform a Denial of Service on xkcd.com, and explainxkcd.com ? xkcd.com seems much slower, and I keep getting &amp;quot;500 Internal server error&amp;quot; when accessing this site (explainxkcd.com). I guess that's the effect of having everybody hit F5 every few minutes :) [[Special:Contributions/193.239.192.194|193.239.192.194]] 11:57, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Earlier today, the server handled all the image redirections. The script you see above went through several mutations (currently at #8), with each mutation it seems that Randall is adding more servers and trying to split the load between them. This is basically how a bot-net works - we all run code written by some evil genius, and he's changing the code as time passes to serve some hidden purpose.&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 15:44, 25 March 2013 (UTC)&lt;br /&gt;
    If he is using us as a botnet, then maybe the next comic will be something alluding to that.&lt;br /&gt;
    Probably like this: http://xkcd.com/350/&lt;br /&gt;
&lt;br /&gt;
When I saw this comic last night and that there was no explanation up, I thought to myself &amp;quot;How zen.&amp;quot;  I figured that Randall was going through a calm streak before throwing us the utterly ridiculous April 1st comic.  Did it come early, or does he have something even bigger planned for us? [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:05, 26 March 2013 (UTC)&lt;br /&gt;
:Sorry, did you miss the bit where this comic updates every 30 minutes and all the server error messages being caused by the massive traffic to both the wiki and the main xkcd website? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:08, 26 March 2013 (UTC)&lt;br /&gt;
::Well, when I said &amp;quot;last night&amp;quot; and &amp;quot;no explanation&amp;quot;, I implied that I wasn't aware of that at the time, which is why I thought what I did.  Of course, it is now &amp;quot;now&amp;quot; and there &amp;lt;i&amp;gt;is&amp;lt;/i&amp;gt; an explanation, so that should answer your question.  Also, since it's not April 1st, and Randall has consistently released something major on that day, the jury is still out, leaving my question quite open (though I was really only asking for opinions). [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:20, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wanted to add an image to the list above, but didn't know at what timestamp to add it, got 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png at 2013-03-26 09:47 CET (UTC+0100)&lt;br /&gt;
 /Puggan&lt;br /&gt;
:The hours denote the time since the initial release of the comic. The page is still a work in progress, we're going to bring that all into one image file soon. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 09:13, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
This site should seriously consider cloudflare, it's perfect at times like this and takes minutes to set up.  I run all my sites through it and it saves a lot of page huts and bandwidth.&lt;br /&gt;
[[Special:Contributions/123.3.136.228|123.3.136.228]]Evan Pyle&lt;br /&gt;
:Or at least make the main page a static page that refreshes every so often.  I'm guessing that most of the traffic is going to the front page with not as much traffic to the actual comic page [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some of the images on the wiki (looks like time38.png through time48.png) are slightly different than what is on the main site.  The lines are slightly thicker, as though someone did them based on screen captures.&lt;br /&gt;
[[User:Royce|Royce]] ([[User talk:Royce|talk]]) 14:37, 26 March 2013 (UTC)&lt;br /&gt;
:Well, at least we have the hashes so they can be re-retrieved, so nothing is really lost, right?  Should we add links to the original? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I uploaded two of the &amp;quot;thicker&amp;quot; images and one of the &amp;quot;regular&amp;quot; ones, and I did the same thing for all of them: right-click-&amp;gt;save-as. Given that the &amp;quot;thick&amp;quot; ones are all clustered together, I think the files on the xkcd site changed. [[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 18:21, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Story so far: [http://static.odysseus.anderson.name/1190.gif linky] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 19:30, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I guess we shall find out in ~10 minutes if Randall is trolling us. [[Special:Contributions/129.138.30.95|129.138.30.95]] 04:20, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ... so that's it? ==&lt;br /&gt;
&lt;br /&gt;
Did I just miss something or we've all been epically trolled for 48 hours? [[Special:Contributions/189.59.175.92|189.59.175.92]] 04:22, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
What makes you think he's done? [[Special:Contributions/129.138.30.95|129.138.30.95]] 04:25, 27 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm still waiting for the water level to drop precipitously... and then for red spiders to run over everything [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 04:28, 27 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31195</id>
		<title>1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31195"/>
				<updated>2013-03-27T01:31:09Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Frame by Frame Breakdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1190&lt;br /&gt;
| date      = March 25, 2013&lt;br /&gt;
| title     = Time&lt;br /&gt;
| image     = time.png&lt;br /&gt;
| titletext = Wait for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
[[Cueball]] and [[Megan]] are presumably by the seaside - Cueball dips his foot in the water at 07:30, and further on they make a sandcastle. Not much is known at the moment, but this comic appears to change as the day progresses. It seems that the comic changes every half an hour.&lt;br /&gt;
&lt;br /&gt;
==Frame by Frame Breakdown==&lt;br /&gt;
Below is the list of all the frames of the comic, in the order that they were revealed.&lt;br /&gt;
&lt;br /&gt;
:[[Media:time.png|00:00]]&lt;br /&gt;
:[[Media:time2.png|00:30]] - 8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
:[[Media:time3.png|01:00]] - 1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
:[[Media:time4.png|01:30]] - e25be2dd49fe9f33c3543cdf640b67e0f2146cc576db5da007a135a278e524ee.png&lt;br /&gt;
:[[Media:time5.png|02:00]] - 5614c47bc2f28b730a360f796cc2993ba04e1f09db0aa3f325e476338777a9c4.png&lt;br /&gt;
:[[Media:time6.png|02:30]] - 69715ed9abc8deac4fa1edfd49a7fde6970b1c8621a381b1fca2c0854b29c0dd.png&lt;br /&gt;
:[[Media:time7.png|03:00]] - 752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
:[[Media:time8.png|03:30]] - 6e162ade96f5a05b3223df0bcc6fd2ca3c76447a8d6095cee7ff56b2816c959c.png&lt;br /&gt;
:[[Media:time9.png|04:00]] - cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:[[Media:time10.png|04:30]] - 49b69c39cdd429cdf367e215a878f536dc566862ae00b91814adfbd264753d89.png&lt;br /&gt;
:[[Media:time11.png|05:00]] - 9a047f93c3da13dea6f46816cb32a7e45d4a8318205cdd9233102f42efe3ada9.png&lt;br /&gt;
:[[Media:time12.png|05:30]] - 109fc96e2c07e50da5c4d0ec77b0722241aa32c494791e7627c52e8f9f773329.png&lt;br /&gt;
:[[Media:time13.png|06:00]] - fb0cabb8215b77a9d2fbdb44511eccdf9b921125bff5060dc511c9a49e97aa81.png&lt;br /&gt;
:[[Media:time14.png|06:30]] - 426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
:[[Media:time15.png|07:00]] - 007fae5ead14f798ec94f3a3ff6eea56c551d13068a2900e5d50d658ccb2be10.png&lt;br /&gt;
:[[Media:time16.png|07:30]] - 90a46673c29fabb6a1eca1d3d0c5f52103c8e48b246e328dc2aed93b32e48ecb.png&lt;br /&gt;
:[[Media:time17.png|08:00]] - 53732f97cd437d7148faeecaaacbe492ec03ae42f0747933ed3068248f74a25f.png&lt;br /&gt;
:[[Media:time18.png|08:30]] - a901246fd70dcd0054429bf55ced123ecead832300d73dedd78857d91eaff2df.png&lt;br /&gt;
:[[Media:time19.png|09:00]] - 4b1dd11cb21b5631ee8c36f157076fd6185c62a90a580b41357901fcbb7f2190.png&lt;br /&gt;
:[[Media:time20.png|09:30]] - 407f7e8766a75cc25389b7852cd9be4f3f29994eeb5c35f0f7d5656e186d4331.png&lt;br /&gt;
:[[Media:time21.png|10:00]] - 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&lt;br /&gt;
:[[Media:time22.png|10:30]] - 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&lt;br /&gt;
:[[Media:time23.png|11:00]] - d10e0b58110b9182b3dac096bb9f95b299bf7245df8af147428e9070bbbddb1d.png&lt;br /&gt;
:[[Media:time24.png|11:30]] - 4e786f10bc85e1a188f557dad89b4938a3f6baae50200d15924ca238d1e6273c.png&lt;br /&gt;
:[[Media:time25.png|12:00]] - a3aa116efca3c01d8a64c0c7e79158dc8a62241aba767064e3a6c724cc5ade93.png&lt;br /&gt;
:[[Media:time26.png|12:30]] - fce427e9442e1b4bea98fa5ddae9d32d7c1cb0219de663196ee160a0e04cd4f8.png&lt;br /&gt;
:[[Media:time27.png|13:00]] - 470d6f2b03fd4b08d4a3f40c1a969ce84ce7b87fefd441a561908f2f5700dc88.png&lt;br /&gt;
:[[Media:time28.png|13:30]] - c2e1cc28a59b7184d3c3306a655d048669963412c0cf19f164afdc283ffdaf94.png&lt;br /&gt;
:[[Media:time29.png|14:00]] - b2c52fd7587a8b429a27c0b94aaaec7dda657baa71f8651458440912d6de9049.png&lt;br /&gt;
:[[Media:time30.png|14:30]] - 4ec08b20b0be913f7f0f9faf77b30f4bf2d683d224cc9b87479fd8706ad0aa75.png&lt;br /&gt;
:[[Media:time31.png|15:00]] - fc4a27fd780fbba0e88ffc6c4552093f082acbdfeeedbcd38319cb5793a07e32.png&lt;br /&gt;
:[[Media:time32.png|15:30]] - d8a70a1ca8aa3a3f9933169fead2d6f0784863f4563f83345bfafcb42a9dcafa.png&lt;br /&gt;
:[[Media:time33.png|16:00]] - 7725087f3a098133ddd849f7e6ab7660a916acef3315e80244bd849ec491ccb5.png&lt;br /&gt;
:[[Media:time34.png|16:30]] - bfe8bc08b7cf436df87ed9c4c49a8bfb4be2f09b6e28aa1a54ceedc41cb1ff5a.png&lt;br /&gt;
:[[Media:time35.png|17:00]] - 5295b1eeffffdac0385c84511f7d6258136bd390b7215027bc18f845b189095c.png&lt;br /&gt;
:[[Media:time36.png|17:30]] - f00822bdd210187c867b3408180ba93f715ca23a178758d12a0e4bddcbee0679.png&lt;br /&gt;
:[[Media:time37.png|18:00]] - 40c463ee4cd0797979ec9ced3fe4705f4f71050d8ade084cc6ce82ba414784c1.png&lt;br /&gt;
:[[Media:time38.png|18:30]] - f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png&lt;br /&gt;
:[[Media:time39.png|19:00]] - 88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png&lt;br /&gt;
:[[Media:time40.png|19:30]] - c18731de1f786d812d41800e7c86a6b05b537c1e86519776fbaed6a90db7d432.png&lt;br /&gt;
:[[Media:time41.png|20:00]] - 1d51d7be045fe97dc2359c27dd9f9eba8e9f2dc18cc5bea5796ea1e7ebcccf66.png&lt;br /&gt;
:[[Media:time42.png|20:30]] - 121d97f2b78cd18e2f6de40882f13b8759b865581d12edf665e66566edb2e333.png&lt;br /&gt;
:[[Media:time43.png|21:00]] - 13bed763cccb9909272f00e1a1fe92e8360c58a6dfcd322054491bb2d53bd084.png&lt;br /&gt;
:[[Media:time44.png|21:30]] - 6187b994ac8a43b71203733c7d28d384f47480b115524e41a30bfaf3ae77a405.png&lt;br /&gt;
:[[Media:time45.png|22:00]] - b842e5ecde53fb92406dd1de1d8a07571e67a265a458e57e79c77c2e932f989e.png&lt;br /&gt;
:[[Media:time46.png|22:30]] - 6482bafdc122a24f837eb45ac530c7f7f3f54adfb3f309061520c394f895b184.png&lt;br /&gt;
:[[Media:time47.png|23:00]] - 2545500fe415f155cde884403f48520d64cae3ae7bc2aaf0cdd66a1b3a5ac1e9.png&lt;br /&gt;
:[[Media:time48.png|23:30]] - 1da3859627430022485c53ad90e88e8771b2bec2d60e910b59ef332325bba29f.png&lt;br /&gt;
:[[Media:time49.png|24:00]] - 7db653f7045aa6781ec3c7db54279b56f39ec3ef24807cf02bf58a62492579df.png&lt;br /&gt;
:[[Media:time50.png|24:30]] - 14fc092adc9f3aeeb7b066fb54ead77b56cfb58eed5f4b736ff94f0207959169.png&lt;br /&gt;
:[[Media:time51.png|25:00]] - 50adf5715b4cb9a2a23f87ff0df5f618560fb1fa771afc6d5d38295c6effb40d.png&lt;br /&gt;
:[[Media:time52.png|25:30]] - a790d74849afdba2bc7f1781ea6fca9fb62b57d46912b14c40d777843d493f1f.png&lt;br /&gt;
:[[Media:time53.png|26:00]] - 427f9bc8bd184356928562515d420ad9e96a1189043c812c4ba8e1bbb6080ffa.png&lt;br /&gt;
:[[Media:time54.png|26:30]] - 6e13d39f86a04ff2770cafdccff6fd953ed0222a69cb322a68ec595b877db391.png&lt;br /&gt;
:[[Media:time55.png|27:00]] - 305b4d99ba0014a0704b7454939205888f404ffb860d1acadc0d79b84cca88d5.png&lt;br /&gt;
:[[Media:time56.png|27:30]] - f44b9ada26d0fcb9223e51030d4cd8e0384bfa616e850f04f863077c86e06461.png&lt;br /&gt;
:[[Media:time57.png|28:00]] - 201b34b87eafe69f97b131ddc6169bb688749596c19712df5f410ce9bee20f14.png&lt;br /&gt;
:[[Media:time58.png|28:30]] - 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png&lt;br /&gt;
:[[Media:time59.png|29:00]] - 55f56bff8868cb2dd75035a69140df58bf1ed2b21bb7739fcb28dd12960d0bb8.png&lt;br /&gt;
:[[Media:time60.png|29:30]] - f5412e1dbb9bcc3f82bb373156266de1a3f841a6720f650a73980b563850f2d7.png&lt;br /&gt;
:[[Media:time61.png|30:00]] - 9363661d4da84ab7cfe2901830663d255696196e54d4c1207874cb6b561adae9.png&lt;br /&gt;
:[[Media:time62.png|30:30]] - 6893da69231d1d44413073c635f1162c12d95068a22a8ac16c39c941b3e47bce.png&lt;br /&gt;
:[[Media:time63.png|31:00]] - ff12649ab08e48655885fa89536cc034155a9bd4ac9af77775a31565ee232461.png&lt;br /&gt;
:[[Media:time64.png|31:30]] - 297347fd8b2fd37f4df96388ce5f9ead1a89571887b721c087132ba1007cbb7d.png&lt;br /&gt;
:[[Media:time65.png|32:00]] - 5fdcd88b53fc5e7bcb67ca78d3e426f0d4d55bd322a93570ce3485cf6fe95852.png&lt;br /&gt;
:[[Media:time66.png|32:30]] - a97951338dba988c7362713b946b90b9375fe947500a4a76ba1da7205491b55f.png&lt;br /&gt;
:[[Media:time67.png|33:00]] - 261a4c70a112b18d15211cad535fcd3c6c3f16f58a50e99b6ff30dfbf79bd24d.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time72.png|35:30]] - 805819c16bb562698b72871b8e494d4ef2905fb32dca4b12910d744efe31f9f6.png&lt;br /&gt;
:[[Media:time73.png|36:00]] - 600bbcb1f0dbeb19d343ded7c7c8c6e63cecefd29849e1da68684ed53c384bb3.png&lt;br /&gt;
:[[Media:time74.png|36:30]] - fdbd747655fc15d13f161e3e9f8d33d7a482d36395293b26f00a598069857d9c.png&lt;br /&gt;
:[[Media:time75.png|37:00]] - b73990c62d82380282dfdee6dd612d6a1afaa570e1be1d5300bc7da04ced684a.png&lt;br /&gt;
:[[Media:time76.png|37:30]] - b69578076ee90a852d5d672bd5863eb890f466f835fad1a340ea48b4c10221cc.png&lt;br /&gt;
:[[Media:time77.png|38:00]] - 090f22722547c275aa66a413ef76f824c0e9aabfb7053407cb64ecfb68e44807.png&lt;br /&gt;
:[[Media:time78.png|38:30]] - 0fcc1a8ab0c7b8626da1d9cc214ca8aa21860d439743027b7585a8cd433c2c95.png&lt;br /&gt;
:[[Media:time79.png|39:00]] - 92acbd596029cedb5396ebaa8c6438ee68b30a3076a5968c00194873ea2ad76b.png&lt;br /&gt;
:[[Media:time80.png|39:30]] - e87184da8a81517fb389a74ce34de3b2f6e4b3c2b55d6de9cc505023d89566e9.png&lt;br /&gt;
:[[Media:time81.png|40:00]] - b356030ec86a14ae7224ee50d4af063d18cbd48e6a3395a1b6bd0c9e04f6ce70.png&lt;br /&gt;
:[[Media:time82.png|40:30]] - de86486235c332c24539586f6118e44e3a5ef0655637c42a8ce8aeeeddd7418a.png&lt;br /&gt;
:[[Media:time83.png|41:00]] - d4674f445c468c3c90c3f8866b05a682fc296190c95ccce771a42eee53543649.png&lt;br /&gt;
:[[Media:time84.png|41:30]] - d5d760b5528c5276d42e7864ed4189e9f03b68cb2addbb0992e6cfee7af1b6c1.png&lt;br /&gt;
:[[Media:time85.png|42:00]] - 9b440f0dd9a67f61cc38262f1dd93dd8a77c60c23fb09670961748779d88680c.png&lt;br /&gt;
:[[Media:time86.png|42:30]] - 560372e93e497f223f00fb9196494fbf2bc8e06fe01fd12548600d475ef058f6.png&lt;br /&gt;
:[[Media:time87.png|43:00]] - 775f6a4e70b978e69787d57de0cc4df349fe439cc34cb560f11ecf87d2065c1e.png&lt;br /&gt;
:[[Media:time88.png|43:30]] - caa0f012b4706ebcaaad92356896d91610629e7a064ee179dc1810d72e981a2b.png&lt;br /&gt;
:[[Media:time89.png|44:00]] - ebb0517f6246f36900e34c511379cabdbdb46a632de0b794e614a66981bbfa2b.png&lt;br /&gt;
:[[Media:time90.png|44:30]] - fec3db94a8ad6abe44048ad458570346f5f350d7cbf2c6050eff8d62106a019a.png&lt;br /&gt;
:[[Media:time91.png|45:00]] - 75e88091d88984485b51ec90272162112ed280a92a29970f60bc7fcfd6214570.png&lt;br /&gt;
:[[Media:time92.png|45:30]] - 293f68d990c4aeb9a9d3b90b74749c1ef605d743cf8a226d254c589c22b839fc.png&lt;br /&gt;
:[[Media:time93.png|46:00]] - &lt;br /&gt;
:[[Media:time94.png|46:30]] - &lt;br /&gt;
:[[Media:time95.png|47:00]] - &lt;br /&gt;
:[[Media:time96.png|47:30]] - &lt;br /&gt;
:[[Media:time97.png|48:00]] - &lt;br /&gt;
&amp;lt;!-- We'll aggregate all these images into one big image when we're sure that we've collected every frame of the comic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan and Cueball sitting in a landscape.]&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:Dynamic comics]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31176</id>
		<title>1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1190:_Time&amp;diff=31176"/>
				<updated>2013-03-26T23:39:14Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: /* Frame by Frame Breakdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1190&lt;br /&gt;
| date      = March 25, 2013&lt;br /&gt;
| title     = Time&lt;br /&gt;
| image     = time.png&lt;br /&gt;
| titletext = Wait for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete}}&lt;br /&gt;
[[Cueball]] and [[Megan]] are presumably by the seaside - Cueball dips his foot in the water at 07:30, and further on they make a sandcastle. Not much is known at the moment, but this comic appears to change as the day progresses. It seems that the comic changes every half an hour.&lt;br /&gt;
&lt;br /&gt;
==Frame by Frame Breakdown==&lt;br /&gt;
Below is the list of all the frames of the comic, in the order that they were revealed.&lt;br /&gt;
&lt;br /&gt;
:[[Media:time.png|00:00]]&lt;br /&gt;
:[[Media:time2.png|00:30]] - 8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
:[[Media:time3.png|01:00]] - 1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
:[[Media:time4.png|01:30]] - e25be2dd49fe9f33c3543cdf640b67e0f2146cc576db5da007a135a278e524ee.png&lt;br /&gt;
:[[Media:time5.png|02:00]] - 5614c47bc2f28b730a360f796cc2993ba04e1f09db0aa3f325e476338777a9c4.png&lt;br /&gt;
:[[Media:time6.png|02:30]] - 69715ed9abc8deac4fa1edfd49a7fde6970b1c8621a381b1fca2c0854b29c0dd.png&lt;br /&gt;
:[[Media:time7.png|03:00]] - 752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
:[[Media:time8.png|03:30]] - 6e162ade96f5a05b3223df0bcc6fd2ca3c76447a8d6095cee7ff56b2816c959c.png&lt;br /&gt;
:[[Media:time9.png|04:00]] - cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:[[Media:time10.png|04:30]] - 49b69c39cdd429cdf367e215a878f536dc566862ae00b91814adfbd264753d89.png&lt;br /&gt;
:[[Media:time11.png|05:00]] - 9a047f93c3da13dea6f46816cb32a7e45d4a8318205cdd9233102f42efe3ada9.png&lt;br /&gt;
:[[Media:time12.png|05:30]] - 109fc96e2c07e50da5c4d0ec77b0722241aa32c494791e7627c52e8f9f773329.png&lt;br /&gt;
:[[Media:time13.png|06:00]] - fb0cabb8215b77a9d2fbdb44511eccdf9b921125bff5060dc511c9a49e97aa81.png&lt;br /&gt;
:[[Media:time14.png|06:30]] - 426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
:[[Media:time15.png|07:00]] - 007fae5ead14f798ec94f3a3ff6eea56c551d13068a2900e5d50d658ccb2be10.png&lt;br /&gt;
:[[Media:time16.png|07:30]] - 90a46673c29fabb6a1eca1d3d0c5f52103c8e48b246e328dc2aed93b32e48ecb.png&lt;br /&gt;
:[[Media:time17.png|08:00]] - 53732f97cd437d7148faeecaaacbe492ec03ae42f0747933ed3068248f74a25f.png&lt;br /&gt;
:[[Media:time18.png|08:30]] - a901246fd70dcd0054429bf55ced123ecead832300d73dedd78857d91eaff2df.png&lt;br /&gt;
:[[Media:time19.png|09:00]] - 4b1dd11cb21b5631ee8c36f157076fd6185c62a90a580b41357901fcbb7f2190.png&lt;br /&gt;
:[[Media:time20.png|09:30]] - 407f7e8766a75cc25389b7852cd9be4f3f29994eeb5c35f0f7d5656e186d4331.png&lt;br /&gt;
:[[Media:time21.png|10:00]] - 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&lt;br /&gt;
:[[Media:time22.png|10:30]] - 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&lt;br /&gt;
:[[Media:time23.png|11:00]] - d10e0b58110b9182b3dac096bb9f95b299bf7245df8af147428e9070bbbddb1d.png&lt;br /&gt;
:[[Media:time24.png|11:30]] - 4e786f10bc85e1a188f557dad89b4938a3f6baae50200d15924ca238d1e6273c.png&lt;br /&gt;
:[[Media:time25.png|12:00]] - a3aa116efca3c01d8a64c0c7e79158dc8a62241aba767064e3a6c724cc5ade93.png&lt;br /&gt;
:[[Media:time26.png|12:30]] - fce427e9442e1b4bea98fa5ddae9d32d7c1cb0219de663196ee160a0e04cd4f8.png&lt;br /&gt;
:[[Media:time27.png|13:00]] - 470d6f2b03fd4b08d4a3f40c1a969ce84ce7b87fefd441a561908f2f5700dc88.png&lt;br /&gt;
:[[Media:time28.png|13:30]] - c2e1cc28a59b7184d3c3306a655d048669963412c0cf19f164afdc283ffdaf94.png&lt;br /&gt;
:[[Media:time29.png|14:00]] - b2c52fd7587a8b429a27c0b94aaaec7dda657baa71f8651458440912d6de9049.png&lt;br /&gt;
:[[Media:time30.png|14:30]] - 4ec08b20b0be913f7f0f9faf77b30f4bf2d683d224cc9b87479fd8706ad0aa75.png&lt;br /&gt;
:[[Media:time31.png|15:00]] - fc4a27fd780fbba0e88ffc6c4552093f082acbdfeeedbcd38319cb5793a07e32.png&lt;br /&gt;
:[[Media:time32.png|15:30]] - d8a70a1ca8aa3a3f9933169fead2d6f0784863f4563f83345bfafcb42a9dcafa.png&lt;br /&gt;
:[[Media:time33.png|16:00]] - 7725087f3a098133ddd849f7e6ab7660a916acef3315e80244bd849ec491ccb5.png&lt;br /&gt;
:[[Media:time34.png|16:30]] - bfe8bc08b7cf436df87ed9c4c49a8bfb4be2f09b6e28aa1a54ceedc41cb1ff5a.png&lt;br /&gt;
:[[Media:time35.png|17:00]] - 5295b1eeffffdac0385c84511f7d6258136bd390b7215027bc18f845b189095c.png&lt;br /&gt;
:[[Media:time36.png|17:30]] - f00822bdd210187c867b3408180ba93f715ca23a178758d12a0e4bddcbee0679.png&lt;br /&gt;
:[[Media:time37.png|18:00]] - 40c463ee4cd0797979ec9ced3fe4705f4f71050d8ade084cc6ce82ba414784c1.png&lt;br /&gt;
:[[Media:time38.png|18:30]]+ - f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png&lt;br /&gt;
:[[Media:time39.png|19:00]]+ - 88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png&lt;br /&gt;
:[[Media:time40.png|19:30]]+ - c18731de1f786d812d41800e7c86a6b05b537c1e86519776fbaed6a90db7d432.png&lt;br /&gt;
:[[Media:time41.png|20:00]]+ - 1d51d7be045fe97dc2359c27dd9f9eba8e9f2dc18cc5bea5796ea1e7ebcccf66.png&lt;br /&gt;
:[[Media:time42.png|20:30]]+ - 121d97f2b78cd18e2f6de40882f13b8759b865581d12edf665e66566edb2e333.png&lt;br /&gt;
:[[Media:time43.png|21:00]]+ - 13bed763cccb9909272f00e1a1fe92e8360c58a6dfcd322054491bb2d53bd084.png&lt;br /&gt;
:[[Media:time44.png|21:30]]+ - 6187b994ac8a43b71203733c7d28d384f47480b115524e41a30bfaf3ae77a405.png&lt;br /&gt;
:[[Media:time45.png|22:00]]+ - b842e5ecde53fb92406dd1de1d8a07571e67a265a458e57e79c77c2e932f989e.png&lt;br /&gt;
:[[Media:time46.png|22:30]]+ - 6482bafdc122a24f837eb45ac530c7f7f3f54adfb3f309061520c394f895b184.png&lt;br /&gt;
:[[Media:time47.png|23:00]]+ - 2545500fe415f155cde884403f48520d64cae3ae7bc2aaf0cdd66a1b3a5ac1e9.png&lt;br /&gt;
:[[Media:time48.png|23:30]]+ - 1da3859627430022485c53ad90e88e8771b2bec2d60e910b59ef332325bba29f.png&lt;br /&gt;
:[[Media:time49.png|24:00]] - 7db653f7045aa6781ec3c7db54279b56f39ec3ef24807cf02bf58a62492579df.png&lt;br /&gt;
:[[Media:time50.png|24:30]] - 14fc092adc9f3aeeb7b066fb54ead77b56cfb58eed5f4b736ff94f0207959169.png&lt;br /&gt;
:[[Media:time51.png|25:00]] - 50adf5715b4cb9a2a23f87ff0df5f618560fb1fa771afc6d5d38295c6effb40d.png&lt;br /&gt;
:[[Media:time52.png|25:30]] - a790d74849afdba2bc7f1781ea6fca9fb62b57d46912b14c40d777843d493f1f.png&lt;br /&gt;
:[[Media:time53.png|26:00]] - 427f9bc8bd184356928562515d420ad9e96a1189043c812c4ba8e1bbb6080ffa.png&lt;br /&gt;
:[[Media:time54.png|26:30]] - 6e13d39f86a04ff2770cafdccff6fd953ed0222a69cb322a68ec595b877db391.png&lt;br /&gt;
:[[Media:time55.png|27:00]] - 305b4d99ba0014a0704b7454939205888f404ffb860d1acadc0d79b84cca88d5.png&lt;br /&gt;
:[[Media:time56.png|27:30]] - f44b9ada26d0fcb9223e51030d4cd8e0384bfa616e850f04f863077c86e06461.png&lt;br /&gt;
:[[Media:time57.png|28:00]] - 201b34b87eafe69f97b131ddc6169bb688749596c19712df5f410ce9bee20f14.png&lt;br /&gt;
:[[Media:time58.png|28:30]] - 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png&lt;br /&gt;
:[[Media:time59.png|29:00]] - 55f56bff8868cb2dd75035a69140df58bf1ed2b21bb7739fcb28dd12960d0bb8.png&lt;br /&gt;
:[[Media:time60.png|29:30]] - f5412e1dbb9bcc3f82bb373156266de1a3f841a6720f650a73980b563850f2d7.png&lt;br /&gt;
:[[Media:time61.png|30:00]] - 9363661d4da84ab7cfe2901830663d255696196e54d4c1207874cb6b561adae9.png&lt;br /&gt;
:[[Media:time62.png|30:30]] - 6893da69231d1d44413073c635f1162c12d95068a22a8ac16c39c941b3e47bce.png&lt;br /&gt;
:[[Media:time63.png|31:00]] - ff12649ab08e48655885fa89536cc034155a9bd4ac9af77775a31565ee232461.png&lt;br /&gt;
:[[Media:time64.png|31:30]] - 297347fd8b2fd37f4df96388ce5f9ead1a89571887b721c087132ba1007cbb7d.png&lt;br /&gt;
:[[Media:time65.png|32:00]] - 5fdcd88b53fc5e7bcb67ca78d3e426f0d4d55bd322a93570ce3485cf6fe95852.png&lt;br /&gt;
:[[Media:time66.png|32:30]] - a97951338dba988c7362713b946b90b9375fe947500a4a76ba1da7205491b55f.png&lt;br /&gt;
:[[Media:time67.png|33:00]] - 261a4c70a112b18d15211cad535fcd3c6c3f16f58a50e99b6ff30dfbf79bd24d.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time68.png|33:30]] - 4cd7d0ed6cb0bd40f6c0f65ed0dfa3a81a6f73c3aff72a5c66351ec8c35027d9.png&lt;br /&gt;
:[[Media:time69.png|34:00]] - 7633b3ae4aac3ddbaa17ed86994a28a20d0d27f3b15047fd932380844287dbbb.png&lt;br /&gt;
:[[Media:time70.png|34:30]] - 125364a4d8c1544bf5234a3ea76bb9f09cb3ee397b60931f7b17f272a82712f2.png&lt;br /&gt;
:[[Media:time71.png|35:00]] - 9334f1c89a263b82b14e9a91b97a5fba59f1147569eb47aeab435e88d0d0b199.png&lt;br /&gt;
:[[Media:time72.png|35:30]] - 805819c16bb562698b72871b8e494d4ef2905fb32dca4b12910d744efe31f9f6.png&lt;br /&gt;
:[[Media:time73.png|36:00]] - 600bbcb1f0dbeb19d343ded7c7c8c6e63cecefd29849e1da68684ed53c384bb3.png&lt;br /&gt;
:[[Media:time74.png|36:30]] - fdbd747655fc15d13f161e3e9f8d33d7a482d36395293b26f00a598069857d9c.png&lt;br /&gt;
:[[Media:time75.png|37:00]] - b73990c62d82380282dfdee6dd612d6a1afaa570e1be1d5300bc7da04ced684a.png&lt;br /&gt;
:[[Media:time76.png|37:30]] - b69578076ee90a852d5d672bd5863eb890f466f835fad1a340ea48b4c10221cc.png&lt;br /&gt;
:[[Media:time77.png|38:00]] - 090f22722547c275aa66a413ef76f824c0e9aabfb7053407cb64ecfb68e44807.png&lt;br /&gt;
:[[Media:time78.png|38:30]] - 0fcc1a8ab0c7b8626da1d9cc214ca8aa21860d439743027b7585a8cd433c2c95.png&lt;br /&gt;
:[[Media:time79.png|39:00]] - 92acbd596029cedb5396ebaa8c6438ee68b30a3076a5968c00194873ea2ad76b.png&lt;br /&gt;
:[[Media:time80.png|39:30]] - e87184da8a81517fb389a74ce34de3b2f6e4b3c2b55d6de9cc505023d89566e9.png&lt;br /&gt;
:[[Media:time81.png|40:00]] - b356030ec86a14ae7224ee50d4af063d18cbd48e6a3395a1b6bd0c9e04f6ce70.png&lt;br /&gt;
:[[Media:time82.png|40:30]] - de86486235c332c24539586f6118e44e3a5ef0655637c42a8ce8aeeeddd7418a.png&lt;br /&gt;
:[[Media:time83.png|41:00]] - d4674f445c468c3c90c3f8866b05a682fc296190c95ccce771a42eee53543649.png&lt;br /&gt;
:[[Media:time84.png|41:30]] - d5d760b5528c5276d42e7864ed4189e9f03b68cb2addbb0992e6cfee7af1b6c1.png&lt;br /&gt;
:[[Media:time85.png|42:00]] - 9b440f0dd9a67f61cc38262f1dd93dd8a77c60c23fb09670961748779d88680c.png&lt;br /&gt;
:[[Media:time86.png|42:30]] - 560372e93e497f223f00fb9196494fbf2bc8e06fe01fd12548600d475ef058f6.png&lt;br /&gt;
:[[Media:time87.png|43:00]] - 775f6a4e70b978e69787d57de0cc4df349fe439cc34cb560f11ecf87d2065c1e.png&lt;br /&gt;
:[[Media:time88.png|43:30]] - caa0f012b4706ebcaaad92356896d91610629e7a064ee179dc1810d72e981a2b.png&lt;br /&gt;
:[[Media:time89.png|44:00]] - &lt;br /&gt;
:[[Media:time90.png|44:30]] - &lt;br /&gt;
:[[Media:time91.png|45:00]] - &lt;br /&gt;
:[[Media:time92.png|45:30]] - &lt;br /&gt;
:[[Media:time93.png|46:00]] - &lt;br /&gt;
:[[Media:time94.png|46:30]] - &lt;br /&gt;
:[[Media:time95.png|47:00]] - &lt;br /&gt;
:[[Media:time96.png|47:30]] - &lt;br /&gt;
:[[Media:time97.png|48:00]] - &lt;br /&gt;
+ Images on wiki that are slightly different than the originals&lt;br /&gt;
&amp;lt;!-- We'll aggregate all these images into one big image when we're sure that we've collected every frame of the comic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan and Cueball sitting in a landscape.]&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:Dynamic comics]]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31148</id>
		<title>Talk:1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31148"/>
				<updated>2013-03-26T19:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pretty sure we're just getting trolled with this one [[Special:Contributions/99.108.190.136|99.108.190.136]] 04:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can't tell if this is emo xkcd or trolling xkcd. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:53, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something seems a little fishy because the image url is different than normal. [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 04:55, 25 March 2013 (UTC)&lt;br /&gt;
:Maybe the comic slowly changes throughout the day. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:56, 25 March 2013 (UTC)&lt;br /&gt;
::Oh god, it does. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:57, 25 March 2013 (UTC)&lt;br /&gt;
:::When uploading different versions of the image, use the naming convention time[iterationNumber].png. We'll compile all the images into one and display them as per [[Traffic Lights]]. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:05, 25 March 2013 (UTC)&lt;br /&gt;
::::Alright, so the comic appears to be switching between two states here: between [[media:time2.png|this]] and [[media:time3.png|this]]. If nothing new happens, I'll get to clipping the comics together. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:28, 25 March 2013 (UTC)&lt;br /&gt;
:::::Whoop, nope, [[media:time4.png|this]] just came up. Is there more to come? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:34, 25 March 2013 (UTC)&lt;br /&gt;
::::::Alright, so a new one is posted every half-hour. Whoopee. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 06:06, 25 March 2013 (UTC)&lt;br /&gt;
:::::::And there's a new one! Megan leaning back and looking up...&lt;br /&gt;
::::::::Well, the image changed, who has the time to make a script to catch the new images and compile them into a gif? https://dl.dropbox.com/u/932170/time.png [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)It could be a reference to the old proverb &amp;quot; time and tide wait for none&amp;quot; Cueball and the girl could be waiting for the tide in the beach! (Just a guess)[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The picture does chance with time. The URL includes a changing timestamp that I can't decipher. Compare these two URLS (which have slightly different images:&lt;br /&gt;
http://imgs.xkcd.com/comics/time/8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
&lt;br /&gt;
Perhaps there is a way to hack the URL to view future images. [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:29, 25 March 2013 (UTC)&lt;br /&gt;
: I would also like to add that knowing randall, these are not the only images. For all we know, the image will still be changing in 5 years while a tree grows in front of them. My point is: Are the URLs hackable, or did he encrypt them? [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:33, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Likely there is a way to hack the URLs; they look like some sort of hash, probably a hashed timestamp. Of course, he could easily have added some salt to the hash, making it significantly *harder* to hack. But they're strings of a specific length, so it should be pretty easy to bruteforce it, fetch all the images, and then (maybe) reverse-engineer the sequence. *That* all depends on how many of them there are. [[Special:Contributions/76.90.249.178|76.90.249.178]] 05:44, 25 March 2013 (UTC)&lt;br /&gt;
:Good god, do you see how many digits are *in* that hash? The sun'll have burned out by the time we've tested every possible combination of digits. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:47, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It seems that the image is updated every 1/2 hour. [[Special:Contributions/152.23.97.150|152.23.97.150]] 06:17, 25 March 2013 (UTC)&lt;br /&gt;
: Given that the images switch back and forth between other images already seen, and that the comic should be viewable in the future, it seems unlikely that it's any thing like a simple sha256 of part of the timestamp.  I think it's more likely a function of half-hours and minutes (assuming we continue to get a new possible image every half-hour). [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: The images do cycle, yes. But for some reason I have never seen the img where Megan is looking behind her. Also wouldn't it be difficult to show a sequential story (like the rising tide) if the previous images keep cycling ?&lt;br /&gt;
&lt;br /&gt;
Hash appears to be SHA-256. I tried some obvious hashes (&amp;quot;1&amp;quot;, &amp;quot;11901&amp;quot;, &amp;quot;1190_1&amp;quot;, &amp;quot;1190.1&amp;quot;) to no avail. Maybe this is HMAC-SHA256? Also, I would suggest trying Unix timestamps. [[Special:Contributions/131.156.236.149|131.156.236.149]] 06:19, 25 March 2013 (UTC)&lt;br /&gt;
: I've been trying to make educated guesses as to what's being hashed here: http://www.xorbin.com/tools/sha256-hash-calculator ... he could also be using hash(hash2(value)) which would be virtually impossible to crack. [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's entirely possible that the &amp;quot;hash&amp;quot; is actually randomly generated. Just a thought. [[Special:Contributions/129.21.119.153|129.21.119.153]] 07:03, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Alright, this is probably not going to work, but I'm trying to exploit Randall's awesomeness here. Maybe he decided to take the time-stamps from the user? I don't know if that's even possible... That would then allow people in different time zones to obtain different images simultaneously. (What's the corollary of Godwin's law for a bunch of math-and-science nerds and relativity? Is there one?) Clicking the img src url on the comic's html page, give me this: http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png : Never mind.. apparently others see the same image too.&lt;br /&gt;
&lt;br /&gt;
Could he be doing this live? Monitoring the discussion on the net? Collaborative, crowdsourced comic-ing? Reminds me of those you-decide-what-the-character-does-next-and-flip-to-appropriate-page parallel plot novels.&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/220.224.246.97|220.224.246.97]] 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Let's just compare the two pictures and see how the bottom right changes, which I believe is water and they are indeed waiting for the tide. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:19, 25 March 2013 (UTC)&lt;br /&gt;
:I'm adding urls to pictures bellow, edit freely.&lt;br /&gt;
::They change every 5 minutes, will try to keep track.&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/f/f8/time.png &lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
http://dl.dropbox.com/u/932170/timeasdf.png &lt;br /&gt;
http://dl.dropbox.com/u/932170/time6.png&lt;br /&gt;
&lt;br /&gt;
:I have uploaded all the different images onto the wiki, in the order that they were revealed. To avoid needless duplication of effort, I'll put them up in the explanation page. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:44, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It just went back to the second image... [[Special:Contributions/220.224.246.97|220.224.246.97]] 07:59, 25 March 2013 (UTC)&lt;br /&gt;
: And now changed to something new.  http://imgs.xkcd.com/comics/time/cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:: The images do look alike, but they're all different. Thanks David. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 08:04, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: No..I checked the random string. They're exactly the same. In fact, now it's gone back to the second image. Again. [[Special:Contributions/220.224.246.97|220.224.246.97]] 08:07, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just found this JavaScript code embedded in the comic HTML source (Update: Reformatted to prevent eye-bleeding): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(function (e) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function t() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function n() {&lt;br /&gt;
        this.listeners = new t&lt;br /&gt;
    }&lt;br /&gt;
    function r(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function i(e) {&lt;br /&gt;
        this.type = e&lt;br /&gt;
    }&lt;br /&gt;
    function s(e, t) {&lt;br /&gt;
        i.call(this, e), this.data = t.data, this.lastEventId = t.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function g(e, t) {&lt;br /&gt;
        var n = Number(e);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || t&lt;br /&gt;
    }&lt;br /&gt;
    function y(e, t, n) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof e[t] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; e[t](n)&lt;br /&gt;
        } catch (i) {&lt;br /&gt;
            r(i)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function b(t, r) {&lt;br /&gt;
        function B() {&lt;br /&gt;
            L = d, N !== null &amp;amp;&amp;amp; (N.abort(), N = null), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), S.readyState = d&lt;br /&gt;
        }&lt;br /&gt;
        function j(e) {&lt;br /&gt;
            var t = L === p || L === h ? N.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                n = null;&lt;br /&gt;
            if (L === h) {&lt;br /&gt;
                var r = f ? t !== &amp;quot;&amp;quot; ? N.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : N.contentType;&lt;br /&gt;
                if (r &amp;amp;&amp;amp; v.test(r)) {&lt;br /&gt;
                    L = p, T = !0, x = u, S.readyState = p, n = new i(&amp;quot;open&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onopen&amp;quot;, n);&lt;br /&gt;
                    if (L === d) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (L === p) {&lt;br /&gt;
                t.length &amp;gt; k &amp;amp;&amp;amp; (H = !0, T = !0);&lt;br /&gt;
                var o = 0,&lt;br /&gt;
                    a = t.indexOf(&amp;quot;\r&amp;quot;, k),&lt;br /&gt;
                    l = t.indexOf(&amp;quot;\n&amp;quot;, k);&lt;br /&gt;
                while (a !== -1 || l !== -1) {&lt;br /&gt;
                    a === -1 || l !== -1 &amp;amp;&amp;amp; l &amp;lt; a ? (o = l, l = t.indexOf(&amp;quot;\n&amp;quot;, o + 1)) : (o = a, a = t.indexOf(&amp;quot;\r&amp;quot;, o + 1));&lt;br /&gt;
                    var m = t.slice(k, o),&lt;br /&gt;
                        B = D;&lt;br /&gt;
                    D = t.slice(o, o + 1) === &amp;quot;\r&amp;quot;, k = o + 1;&lt;br /&gt;
                    if (!B || m.length !== 0 || D) {&lt;br /&gt;
                        _.push(m);&lt;br /&gt;
                        var j = _.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        _.length = 0;&lt;br /&gt;
                        if (j !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var I = &amp;quot;&amp;quot;,&lt;br /&gt;
                                q = j.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            q !== -1 &amp;amp;&amp;amp; (I = j.slice(q + (j.slice(q + 1, q + 2) === &amp;quot; &amp;quot; ? 2 : 1)), j = j.slice(0, q)), j === &amp;quot;data&amp;quot; ? A.push(I) : j === &amp;quot;id&amp;quot; ? O = I : j === &amp;quot;event&amp;quot; ? M = I : j === &amp;quot;retry&amp;quot; ? (u = g(I, u), x = u, b &amp;lt; u &amp;amp;&amp;amp; (b = u)) : j === &amp;quot;retryLimit&amp;quot; ? b = g(I, b) : j === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (w = g(I, w), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = setTimeout(R, w)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (A.length !== 0) {&lt;br /&gt;
                                E = O;&lt;br /&gt;
                                var U = M || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                n = new s(U, {&lt;br /&gt;
                                    data: A.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: O&lt;br /&gt;
                                }), S.dispatchEvent(n), U === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; y(S, &amp;quot;onmessage&amp;quot;, n);&lt;br /&gt;
                                if (L === d) return&lt;br /&gt;
                            }&lt;br /&gt;
                            A.length = 0, M = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                k !== t.length &amp;amp;&amp;amp; (_.push(t.slice(k)), k = t.length)&lt;br /&gt;
            }&lt;br /&gt;
            H &amp;amp;&amp;amp; P === 0 &amp;amp;&amp;amp; (H = !1, P = setTimeout(F, 80)), L !== p &amp;amp;&amp;amp; L !== h || !(e || k &amp;gt; 1048576 || C === 0 &amp;amp;&amp;amp; !T) ? C === 0 &amp;amp;&amp;amp; (T = !1, C = setTimeout(R, w)) : (L = c, N.abort(), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), x &amp;gt; b &amp;amp;&amp;amp; (x = b), C = setTimeout(R, x), x = x * 2 + 1, S.readyState = h, n = new i(&amp;quot;error&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onerror&amp;quot;, n))&lt;br /&gt;
        }&lt;br /&gt;
        function F() {&lt;br /&gt;
            P = 0, j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function I() {&lt;br /&gt;
            j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function q() {&lt;br /&gt;
            j(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function R() {&lt;br /&gt;
            C = 0;&lt;br /&gt;
            if (L !== c) {&lt;br /&gt;
                j(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                C = setTimeout(R, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (m &amp;amp;&amp;amp; e.document &amp;amp;&amp;amp; (e.document.readyState === &amp;quot;loading&amp;quot; || e.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                C = setTimeout(R, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            N.onload = N.onerror = q, N.mozAnon === undefined ? N.onprogress = I : N.onreadystatechange = I, T = !1, C = setTimeout(R, w), k = 0, L = h, A.length = 0, M = &amp;quot;&amp;quot;, O = E, _.length = 0, D = !1, N.open(&amp;quot;GET&amp;quot;, t + ((t.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(E) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), N.withCredentials = o, N.responseType = &amp;quot;text&amp;quot;, f &amp;amp;&amp;amp; N.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), N.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        t = String(t);&lt;br /&gt;
        var o = Boolean(a &amp;amp;&amp;amp; r &amp;amp;&amp;amp; r.withCredentials),&lt;br /&gt;
            u = g(r ? r.retry : NaN, 1e3),&lt;br /&gt;
            b = g(r ? r.retryLimit : NaN, 3e5),&lt;br /&gt;
            w = g(r ? r.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            E = r &amp;amp;&amp;amp; r.lastEventId &amp;amp;&amp;amp; String(r.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            S = this,&lt;br /&gt;
            x = u,&lt;br /&gt;
            T = !1,&lt;br /&gt;
            N = new l,&lt;br /&gt;
            C = 0,&lt;br /&gt;
            k = 0,&lt;br /&gt;
            L = c,&lt;br /&gt;
            A = [],&lt;br /&gt;
            O = &amp;quot;&amp;quot;,&lt;br /&gt;
            M = &amp;quot;&amp;quot;,&lt;br /&gt;
            _ = [],&lt;br /&gt;
            D = !1,&lt;br /&gt;
            P = 0,&lt;br /&gt;
            H = !1;&lt;br /&gt;
        r = null, n.call(this), this.close = B, this.url = t, this.readyState = h, this.withCredentials = o, R()&lt;br /&gt;
    }&lt;br /&gt;
    function w() {&lt;br /&gt;
        this.CONNECTING = h, this.OPEN = p, this.CLOSED = d&lt;br /&gt;
    }&lt;br /&gt;
    t.prototype = {&lt;br /&gt;
        get: function (e) {&lt;br /&gt;
            return this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (e, t) {&lt;br /&gt;
            this.data[e + &amp;quot;~&amp;quot;] = t&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (e) {&lt;br /&gt;
            delete this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, n.prototype = {&lt;br /&gt;
        dispatchEvent: function (e) {&lt;br /&gt;
            var t = String(e.type),&lt;br /&gt;
                n = this.listeners,&lt;br /&gt;
                i = n.get(t);&lt;br /&gt;
            if (!i) return;&lt;br /&gt;
            var s = i.length,&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; s) {&lt;br /&gt;
                var u = i[o];&lt;br /&gt;
                try {&lt;br /&gt;
                    u.call(this, e)&lt;br /&gt;
                } catch (a) {&lt;br /&gt;
                    r(a)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            r || n.set(e, r = []);&lt;br /&gt;
            var i = r.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (r[i] === t) return;&lt;br /&gt;
            r.push(t)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            if (!r) return;&lt;br /&gt;
            var i = r.length,&lt;br /&gt;
                s = [],&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; i) r[o] !== t &amp;amp;&amp;amp; s.push(r[o]);&lt;br /&gt;
            s.length === 0 ? n[&amp;quot;delete&amp;quot;](e) : n.set(e, s)&lt;br /&gt;
        }&lt;br /&gt;
    }, s.prototype = i.prototype;&lt;br /&gt;
    var o = e.XMLHttpRequest,&lt;br /&gt;
        u = e.XDomainRequest,&lt;br /&gt;
        a = Boolean(o &amp;amp;&amp;amp; (new o).withCredentials !== undefined),&lt;br /&gt;
        f = a,&lt;br /&gt;
        l = a ? o : u,&lt;br /&gt;
        c = -1,&lt;br /&gt;
        h = 0,&lt;br /&gt;
        p = 1,&lt;br /&gt;
        d = 2,&lt;br /&gt;
        v = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        m = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    w.prototype = n.prototype, b.prototype = new w, w.call(b), l &amp;amp;&amp;amp; (e.EventSource = b)&lt;br /&gt;
})(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function e(e) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + e&lt;br /&gt;
    }&lt;br /&gt;
    function t() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var n = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            r = new EventSource(n);&lt;br /&gt;
        t(&amp;quot;connecting to event source:&amp;quot;, n), r.addEventListener(&amp;quot;open&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;error&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;loadtest&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, function (e) {&lt;br /&gt;
            var n = JSON.parse(e.data),&lt;br /&gt;
                r = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                i = Math.round(Math.random() * n.spread);&lt;br /&gt;
            t(&amp;quot;waiting&amp;quot;, i, &amp;quot;seconds before displaying comic&amp;quot;, n.image), setTimeout(function () {&lt;br /&gt;
                r.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + n.image&lt;br /&gt;
            }, i * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (i) {&lt;br /&gt;
        e(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm no programmer but this looks important to me...&lt;br /&gt;
&lt;br /&gt;
:Doesn't really help. The script basically changes the image when something happens (probably some time passes, although it's possible there is more hidden there). WHAT image then appears is not directed by the script, but by the site. Specifically, the image displayed as first is taken from [http://c0.xkcd.com/redirect/comic/time http://c0.xkcd.com/redirect/comic/time], while the script asks for [http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber) http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber)] ... which is, if you get correct &amp;quot;r&amp;quot;, probably some json containing the image url. So, even if you hack the script, you will not get all possible urls. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:17, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: ... actually, given that the script part doesn't seem to do anything just now, it's even possible it's for later (ie, starts producing images when the correct time come). Or maybe there is a bug somewhere in the code :-). -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:27, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thanks for explaining. Why hasn't anyone posted this before? Could &amp;quot;location.hash&amp;quot; possibly have anything to do with the method used to generate the image hash key? Also, why is this code so difficult to follow (Obfuscation?)? So many questions... Sorry if this is just a huge waste of ''Time''.&lt;br /&gt;
&lt;br /&gt;
:::: &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is the URI of the page. &amp;lt;code&amp;gt;location.hash&amp;lt;/code&amp;gt; is the part of the uri after the ''#'' character. If you go to [https://xkcd.com/1190/#verbose https://xkcd.com/1190/#verbose], you'll see some debugging output in your browser's debugging console (Firefox: Web Console or Firebug, Chrome: Development Tools). But nothing to decode the algorithm... :-( --[[Special:Contributions/83.243.48.2|83.243.48.2]] 10:01, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Well, I don't know what's doing it, but there's definitely some script (probably this script) that's refreshing the image automatically.  I left the comic open for an hour or so and noticed the image had changed. I refreshed with #verbose in Chrome right before the 30 minute mark and got the following in the console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connecting to event source: http://c0.xkcd.com/stream/comic/time?method=EventSource time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;e2992bf0-9557-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 0 seconds before displaying comic 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_start&amp;quot;. time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;79580fe8-9558-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 4 seconds before displaying comic 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png time07.min.js:1&lt;br /&gt;
connection error i {type: &amp;quot;error&amp;quot;} time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_error&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::::: The script seems to poll the server every minute or two. It's different from before, where the image server itself redirected to the correct image. The auto refresh was probably always intended, but not quite ready when the comic went live. It may have turned out to be necessary too, so the image server doesn't have to do all the work. [[Special:Contributions/129.21.119.153|129.21.119.153]] 14:45, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Before obfuscation... ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(function (global) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function Map() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function EventTarget() {&lt;br /&gt;
        this.listeners = new Map&lt;br /&gt;
    }&lt;br /&gt;
    function throwError(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function Event(type) {&lt;br /&gt;
        this.type = type&lt;br /&gt;
    }&lt;br /&gt;
    function MessageEvent(type, options) {&lt;br /&gt;
        Event.call(this, type), this.data = options.data, this.lastEventId = options.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function getDuration(value, def) {&lt;br /&gt;
        var n = Number(value);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || def&lt;br /&gt;
    }&lt;br /&gt;
    function fire(that, property, event) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof that[property] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; that[property](event)&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            throwError(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function EventSource(url, options) {&lt;br /&gt;
        function close() {&lt;br /&gt;
            currentState = CLOSED, xhr !== null &amp;amp;&amp;amp; (xhr.abort(), xhr = null), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), that.readyState = CLOSED&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress(isLoadEnd) {&lt;br /&gt;
            var responseText = currentState === OPEN || currentState === CONNECTING ? xhr.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                event = null;&lt;br /&gt;
            if (currentState === CONNECTING) {&lt;br /&gt;
                var contentType = isXHR ? responseText !== &amp;quot;&amp;quot; ? xhr.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : xhr.contentType;&lt;br /&gt;
                if (contentType &amp;amp;&amp;amp; contentTypeRegExp.test(contentType)) {&lt;br /&gt;
                    currentState = OPEN, wasActivity = !0, retry = initialRetry, that.readyState = OPEN, event = new Event(&amp;quot;open&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onopen&amp;quot;, event);&lt;br /&gt;
                    if (currentState === CLOSED) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (currentState === OPEN) {&lt;br /&gt;
                responseText.length &amp;gt; charOffset &amp;amp;&amp;amp; (wasAct = !0, wasActivity = !0);&lt;br /&gt;
                var i = 0,&lt;br /&gt;
                    i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, charOffset),&lt;br /&gt;
                    i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, charOffset);&lt;br /&gt;
                while (i1 !== -1 || i2 !== -1) {&lt;br /&gt;
                    i1 === -1 || i2 !== -1 &amp;amp;&amp;amp; i2 &amp;lt; i1 ? (i = i2, i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, i + 1)) : (i = i1, i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, i + 1));&lt;br /&gt;
                    var line = responseText.slice(charOffset, i),&lt;br /&gt;
                        oldWasCR = wasCR;&lt;br /&gt;
                    wasCR = responseText.slice(i, i + 1) === &amp;quot;\r&amp;quot;, charOffset = i + 1;&lt;br /&gt;
                    if (!oldWasCR || line.length !== 0 || wasCR) {&lt;br /&gt;
                        responseBuffer.push(line);&lt;br /&gt;
                        var field = responseBuffer.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        responseBuffer.length = 0;&lt;br /&gt;
                        if (field !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var value = &amp;quot;&amp;quot;,&lt;br /&gt;
                                j = field.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            j !== -1 &amp;amp;&amp;amp; (value = field.slice(j + (field.slice(j + 1, j + 2) === &amp;quot; &amp;quot; ? 2 : 1)), field = field.slice(0, j)), field === &amp;quot;data&amp;quot; ? dataBuffer.push(value) : field === &amp;quot;id&amp;quot; ? lastEventIdBuffer = value : field === &amp;quot;event&amp;quot; ? eventTypeBuffer = value : field === &amp;quot;retry&amp;quot; ? (initialRetry = getDuration(value, initialRetry), retry = initialRetry, retryLimit &amp;lt; initialRetry &amp;amp;&amp;amp; (retryLimit = initialRetry)) : field === &amp;quot;retryLimit&amp;quot; ? retryLimit = getDuration(value, retryLimit) : field === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (heartbeatTimeout = getDuration(value, heartbeatTimeout), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = setTimeout(onTimeout, heartbeatTimeout)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (dataBuffer.length !== 0) {&lt;br /&gt;
                                lastEventId = lastEventIdBuffer;&lt;br /&gt;
                                var type = eventTypeBuffer || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                event = new MessageEvent(type, {&lt;br /&gt;
                                    data: dataBuffer.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: lastEventIdBuffer&lt;br /&gt;
                                }), that.dispatchEvent(event), type === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; fire(that, &amp;quot;onmessage&amp;quot;, event);&lt;br /&gt;
                                if (currentState === CLOSED) return&lt;br /&gt;
                            }&lt;br /&gt;
                            dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                charOffset !== responseText.length &amp;amp;&amp;amp; (responseBuffer.push(responseText.slice(charOffset)), charOffset = responseText.length)&lt;br /&gt;
            }&lt;br /&gt;
            wasAct &amp;amp;&amp;amp; progressTimeout === 0 &amp;amp;&amp;amp; (wasAct = !1, progressTimeout = setTimeout(p, 80)), currentState !== OPEN &amp;amp;&amp;amp; currentState !== CONNECTING || !(isLoadEnd || charOffset &amp;gt; 1048576 || timeout === 0 &amp;amp;&amp;amp; !wasActivity) ? timeout === 0 &amp;amp;&amp;amp; (wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout)) : (currentState = WAITING, xhr.abort(), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), retry &amp;gt; retryLimit &amp;amp;&amp;amp; (retry = retryLimit), timeout = setTimeout(onTimeout, retry), retry = retry * 2 + 1, that.readyState = CONNECTING, event = new Event(&amp;quot;error&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onerror&amp;quot;, event))&lt;br /&gt;
        }&lt;br /&gt;
        function p() {&lt;br /&gt;
            progressTimeout = 0, onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress2() {&lt;br /&gt;
            onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onLoadEnd() {&lt;br /&gt;
            onProgress(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function onTimeout() {&lt;br /&gt;
            timeout = 0;&lt;br /&gt;
            if (currentState !== WAITING) {&lt;br /&gt;
                onProgress(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (webkitBefore535 &amp;amp;&amp;amp; global.document &amp;amp;&amp;amp; (global.document.readyState === &amp;quot;loading&amp;quot; || global.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            xhr.onload = xhr.onerror = onLoadEnd, xhr.mozAnon === undefined ? xhr.onprogress = onProgress2 : xhr.onreadystatechange = onProgress2, wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout), charOffset = 0, currentState = CONNECTING, dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;, lastEventIdBuffer = lastEventId, responseBuffer.length = 0, wasCR = !1, xhr.open(&amp;quot;GET&amp;quot;, url + ((url.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(lastEventId) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), xhr.withCredentials = withCredentials, xhr.responseType = &amp;quot;text&amp;quot;, isXHR &amp;amp;&amp;amp; xhr.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), xhr.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        url = String(url);&lt;br /&gt;
        var withCredentials = Boolean(xhr2 &amp;amp;&amp;amp; options &amp;amp;&amp;amp; options.withCredentials),&lt;br /&gt;
            initialRetry = getDuration(options ? options.retry : NaN, 1e3),&lt;br /&gt;
            retryLimit = getDuration(options ? options.retryLimit : NaN, 3e5),&lt;br /&gt;
            heartbeatTimeout = getDuration(options ? options.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            lastEventId = options &amp;amp;&amp;amp; options.lastEventId &amp;amp;&amp;amp; String(options.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            that = this,&lt;br /&gt;
            retry = initialRetry,&lt;br /&gt;
            wasActivity = !1,&lt;br /&gt;
            xhr = new Transport,&lt;br /&gt;
            timeout = 0,&lt;br /&gt;
            charOffset = 0,&lt;br /&gt;
            currentState = WAITING,&lt;br /&gt;
            dataBuffer = [],&lt;br /&gt;
            lastEventIdBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            eventTypeBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            responseBuffer = [],&lt;br /&gt;
            wasCR = !1,&lt;br /&gt;
            progressTimeout = 0,&lt;br /&gt;
            wasAct = !1;&lt;br /&gt;
        options = null, EventTarget.call(this), this.close = close, this.url = url, this.readyState = CONNECTING, this.withCredentials = withCredentials, onTimeout()&lt;br /&gt;
    }&lt;br /&gt;
    function F() {&lt;br /&gt;
        this.CONNECTING = CONNECTING, this.OPEN = OPEN, this.CLOSED = CLOSED&lt;br /&gt;
    }&lt;br /&gt;
    Map.prototype = {&lt;br /&gt;
        get: function (key) {&lt;br /&gt;
            return this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (key, value) {&lt;br /&gt;
            this.data[key + &amp;quot;~&amp;quot;] = value&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (key) {&lt;br /&gt;
            delete this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, EventTarget.prototype = {&lt;br /&gt;
        dispatchEvent: function (event) {&lt;br /&gt;
            var type = String(event.type),&lt;br /&gt;
                listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) {&lt;br /&gt;
                var listener = typeListeners[i];&lt;br /&gt;
                try {&lt;br /&gt;
                    listener.call(this, event)&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    throwError(e)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            typeListeners || listeners.set(type, typeListeners = []);&lt;br /&gt;
            var i = typeListeners.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (typeListeners[i] === callback) return;&lt;br /&gt;
            typeListeners.push(callback)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                filtered = [],&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) typeListeners[i] !== callback &amp;amp;&amp;amp; filtered.push(typeListeners[i]);&lt;br /&gt;
            filtered.length === 0 ? listeners[&amp;quot;delete&amp;quot;](type) : listeners.set(type, filtered)&lt;br /&gt;
        }&lt;br /&gt;
    }, MessageEvent.prototype = Event.prototype;&lt;br /&gt;
    var XHR = global.XMLHttpRequest,&lt;br /&gt;
        XDR = global.XDomainRequest,&lt;br /&gt;
        xhr2 = Boolean(XHR &amp;amp;&amp;amp; (new XHR).withCredentials !== undefined),&lt;br /&gt;
        isXHR = xhr2,&lt;br /&gt;
        Transport = xhr2 ? XHR : XDR,&lt;br /&gt;
        WAITING = -1,&lt;br /&gt;
        CONNECTING = 0,&lt;br /&gt;
        OPEN = 1,&lt;br /&gt;
        CLOSED = 2,&lt;br /&gt;
        contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        webkitBefore535 = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    F.prototype = EventTarget.prototype, EventSource.prototype = new F, F.call(EventSource), Transport &amp;amp;&amp;amp; (global.EventSource = EventSource)&lt;br /&gt;
 })(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function record(name) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + name&lt;br /&gt;
    }&lt;br /&gt;
    function log() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var esURL = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            source = new EventSource(esURL);&lt;br /&gt;
        log(&amp;quot;connecting to event source:&amp;quot;, esURL), source.addEventListener(&amp;quot;open&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;error&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;loadtest&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, function (ev) {&lt;br /&gt;
            var data = JSON.parse(ev.data),&lt;br /&gt;
                img = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                delay = Math.round(Math.random() * data.spread);&lt;br /&gt;
            log(&amp;quot;waiting&amp;quot;, delay, &amp;quot;seconds before displaying comic&amp;quot;, data.image), setTimeout(function () {&lt;br /&gt;
                img.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + data.image&lt;br /&gt;
            }, delay * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
        record(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 09:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://imgs.xkcd.com/comics/time/426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/1/1e/f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 22:51, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/b/b0/88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 23:10, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is it just me or or did Randall manage to make all of us perform a Denial of Service on xkcd.com, and explainxkcd.com ? xkcd.com seems much slower, and I keep getting &amp;quot;500 Internal server error&amp;quot; when accessing this site (explainxkcd.com). I guess that's the effect of having everybody hit F5 every few minutes :) [[Special:Contributions/193.239.192.194|193.239.192.194]] 11:57, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Earlier today, the server handled all the image redirections. The script you see above went through several mutations (currently at #8), with each mutation it seems that Randall is adding more servers and trying to split the load between them. This is basically how a bot-net works - we all run code written by some evil genius, and he's changing the code as time passes to serve some hidden purpose.&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 15:44, 25 March 2013 (UTC)&lt;br /&gt;
    If he is using us as a botnet, then maybe the next comic will be something alluding to that.&lt;br /&gt;
    Probably like this: http://xkcd.com/350/&lt;br /&gt;
&lt;br /&gt;
When I saw this comic last night and that there was no explanation up, I thought to myself &amp;quot;How zen.&amp;quot;  I figured that Randall was going through a calm streak before throwing us the utterly ridiculous April 1st comic.  Did it come early, or does he have something even bigger planned for us? [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:05, 26 March 2013 (UTC)&lt;br /&gt;
:Sorry, did you miss the bit where this comic updates every 30 minutes and all the server error messages being caused by the massive traffic to both the wiki and the main xkcd website? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:08, 26 March 2013 (UTC)&lt;br /&gt;
::Well, when I said &amp;quot;last night&amp;quot; and &amp;quot;no explanation&amp;quot;, I implied that I wasn't aware of that at the time, which is why I thought what I did.  Of course, it is now &amp;quot;now&amp;quot; and there &amp;lt;i&amp;gt;is&amp;lt;/i&amp;gt; an explanation, so that should answer your question.  Also, since it's not April 1st, and Randall has consistently released something major on that day, the jury is still out, leaving my question quite open (though I was really only asking for opinions). [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:20, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wanted to add an image to the list above, but didn't know at what timestamp to add it, got 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png at 2013-03-26 09:47 CET (UTC+0100)&lt;br /&gt;
 /Puggan&lt;br /&gt;
:The hours denote the time since the initial release of the comic. The page is still a work in progress, we're going to bring that all into one image file soon. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 09:13, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
This site should seriously consider cloudflare, it's perfect at times like this and takes minutes to set up.  I run all my sites through it and it saves a lot of page huts and bandwidth.&lt;br /&gt;
[[Special:Contributions/123.3.136.228|123.3.136.228]]Evan Pyle&lt;br /&gt;
:Or at least make the main page a static page that refreshes every so often.  I'm guessing that most of the traffic is going to the front page with not as much traffic to the actual comic page [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some of the images on the wiki (looks like time38.png through time48.png) are slightly different than what is on the main site.  The lines are slightly thicker, as though someone did them based on screen captures.&lt;br /&gt;
[[User:Royce|Royce]] ([[User talk:Royce|talk]]) 14:37, 26 March 2013 (UTC)&lt;br /&gt;
:Well, at least we have the hashes so they can be re-retrieved, so nothing is really lost, right?  Should we add links to the original? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I uploaded two of the &amp;quot;thicker&amp;quot; images and one of the &amp;quot;regular&amp;quot; ones, and I did the same thing for all of them: right-click-&amp;gt;save-as. Given that the &amp;quot;thick&amp;quot; ones are all clustered together, I think the files on the xkcd site changed. [[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 18:21, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Story so far: [http://static.odysseus.anderson.name/1190.gif linky] [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 19:30, 26 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31147</id>
		<title>Talk:1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31147"/>
				<updated>2013-03-26T19:29:16Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pretty sure we're just getting trolled with this one [[Special:Contributions/99.108.190.136|99.108.190.136]] 04:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can't tell if this is emo xkcd or trolling xkcd. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:53, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something seems a little fishy because the image url is different than normal. [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 04:55, 25 March 2013 (UTC)&lt;br /&gt;
:Maybe the comic slowly changes throughout the day. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:56, 25 March 2013 (UTC)&lt;br /&gt;
::Oh god, it does. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:57, 25 March 2013 (UTC)&lt;br /&gt;
:::When uploading different versions of the image, use the naming convention time[iterationNumber].png. We'll compile all the images into one and display them as per [[Traffic Lights]]. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:05, 25 March 2013 (UTC)&lt;br /&gt;
::::Alright, so the comic appears to be switching between two states here: between [[media:time2.png|this]] and [[media:time3.png|this]]. If nothing new happens, I'll get to clipping the comics together. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:28, 25 March 2013 (UTC)&lt;br /&gt;
:::::Whoop, nope, [[media:time4.png|this]] just came up. Is there more to come? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:34, 25 March 2013 (UTC)&lt;br /&gt;
::::::Alright, so a new one is posted every half-hour. Whoopee. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 06:06, 25 March 2013 (UTC)&lt;br /&gt;
:::::::And there's a new one! Megan leaning back and looking up...&lt;br /&gt;
::::::::Well, the image changed, who has the time to make a script to catch the new images and compile them into a gif? https://dl.dropbox.com/u/932170/time.png [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)It could be a reference to the old proverb &amp;quot; time and tide wait for none&amp;quot; Cueball and the girl could be waiting for the tide in the beach! (Just a guess)[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The picture does chance with time. The URL includes a changing timestamp that I can't decipher. Compare these two URLS (which have slightly different images:&lt;br /&gt;
http://imgs.xkcd.com/comics/time/8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
&lt;br /&gt;
Perhaps there is a way to hack the URL to view future images. [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:29, 25 March 2013 (UTC)&lt;br /&gt;
: I would also like to add that knowing randall, these are not the only images. For all we know, the image will still be changing in 5 years while a tree grows in front of them. My point is: Are the URLs hackable, or did he encrypt them? [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:33, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Likely there is a way to hack the URLs; they look like some sort of hash, probably a hashed timestamp. Of course, he could easily have added some salt to the hash, making it significantly *harder* to hack. But they're strings of a specific length, so it should be pretty easy to bruteforce it, fetch all the images, and then (maybe) reverse-engineer the sequence. *That* all depends on how many of them there are. [[Special:Contributions/76.90.249.178|76.90.249.178]] 05:44, 25 March 2013 (UTC)&lt;br /&gt;
:Good god, do you see how many digits are *in* that hash? The sun'll have burned out by the time we've tested every possible combination of digits. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:47, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It seems that the image is updated every 1/2 hour. [[Special:Contributions/152.23.97.150|152.23.97.150]] 06:17, 25 March 2013 (UTC)&lt;br /&gt;
: Given that the images switch back and forth between other images already seen, and that the comic should be viewable in the future, it seems unlikely that it's any thing like a simple sha256 of part of the timestamp.  I think it's more likely a function of half-hours and minutes (assuming we continue to get a new possible image every half-hour). [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: The images do cycle, yes. But for some reason I have never seen the img where Megan is looking behind her. Also wouldn't it be difficult to show a sequential story (like the rising tide) if the previous images keep cycling ?&lt;br /&gt;
&lt;br /&gt;
Hash appears to be SHA-256. I tried some obvious hashes (&amp;quot;1&amp;quot;, &amp;quot;11901&amp;quot;, &amp;quot;1190_1&amp;quot;, &amp;quot;1190.1&amp;quot;) to no avail. Maybe this is HMAC-SHA256? Also, I would suggest trying Unix timestamps. [[Special:Contributions/131.156.236.149|131.156.236.149]] 06:19, 25 March 2013 (UTC)&lt;br /&gt;
: I've been trying to make educated guesses as to what's being hashed here: http://www.xorbin.com/tools/sha256-hash-calculator ... he could also be using hash(hash2(value)) which would be virtually impossible to crack. [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's entirely possible that the &amp;quot;hash&amp;quot; is actually randomly generated. Just a thought. [[Special:Contributions/129.21.119.153|129.21.119.153]] 07:03, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Alright, this is probably not going to work, but I'm trying to exploit Randall's awesomeness here. Maybe he decided to take the time-stamps from the user? I don't know if that's even possible... That would then allow people in different time zones to obtain different images simultaneously. (What's the corollary of Godwin's law for a bunch of math-and-science nerds and relativity? Is there one?) Clicking the img src url on the comic's html page, give me this: http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png : Never mind.. apparently others see the same image too.&lt;br /&gt;
&lt;br /&gt;
Could he be doing this live? Monitoring the discussion on the net? Collaborative, crowdsourced comic-ing? Reminds me of those you-decide-what-the-character-does-next-and-flip-to-appropriate-page parallel plot novels.&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/220.224.246.97|220.224.246.97]] 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Let's just compare the two pictures and see how the bottom right changes, which I believe is water and they are indeed waiting for the tide. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:19, 25 March 2013 (UTC)&lt;br /&gt;
:I'm adding urls to pictures bellow, edit freely.&lt;br /&gt;
::They change every 5 minutes, will try to keep track.&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/f/f8/time.png &lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
http://dl.dropbox.com/u/932170/timeasdf.png &lt;br /&gt;
http://dl.dropbox.com/u/932170/time6.png&lt;br /&gt;
&lt;br /&gt;
:I have uploaded all the different images onto the wiki, in the order that they were revealed. To avoid needless duplication of effort, I'll put them up in the explanation page. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:44, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It just went back to the second image... [[Special:Contributions/220.224.246.97|220.224.246.97]] 07:59, 25 March 2013 (UTC)&lt;br /&gt;
: And now changed to something new.  http://imgs.xkcd.com/comics/time/cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:: The images do look alike, but they're all different. Thanks David. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 08:04, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: No..I checked the random string. They're exactly the same. In fact, now it's gone back to the second image. Again. [[Special:Contributions/220.224.246.97|220.224.246.97]] 08:07, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just found this JavaScript code embedded in the comic HTML source (Update: Reformatted to prevent eye-bleeding): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(function (e) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function t() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function n() {&lt;br /&gt;
        this.listeners = new t&lt;br /&gt;
    }&lt;br /&gt;
    function r(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function i(e) {&lt;br /&gt;
        this.type = e&lt;br /&gt;
    }&lt;br /&gt;
    function s(e, t) {&lt;br /&gt;
        i.call(this, e), this.data = t.data, this.lastEventId = t.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function g(e, t) {&lt;br /&gt;
        var n = Number(e);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || t&lt;br /&gt;
    }&lt;br /&gt;
    function y(e, t, n) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof e[t] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; e[t](n)&lt;br /&gt;
        } catch (i) {&lt;br /&gt;
            r(i)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function b(t, r) {&lt;br /&gt;
        function B() {&lt;br /&gt;
            L = d, N !== null &amp;amp;&amp;amp; (N.abort(), N = null), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), S.readyState = d&lt;br /&gt;
        }&lt;br /&gt;
        function j(e) {&lt;br /&gt;
            var t = L === p || L === h ? N.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                n = null;&lt;br /&gt;
            if (L === h) {&lt;br /&gt;
                var r = f ? t !== &amp;quot;&amp;quot; ? N.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : N.contentType;&lt;br /&gt;
                if (r &amp;amp;&amp;amp; v.test(r)) {&lt;br /&gt;
                    L = p, T = !0, x = u, S.readyState = p, n = new i(&amp;quot;open&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onopen&amp;quot;, n);&lt;br /&gt;
                    if (L === d) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (L === p) {&lt;br /&gt;
                t.length &amp;gt; k &amp;amp;&amp;amp; (H = !0, T = !0);&lt;br /&gt;
                var o = 0,&lt;br /&gt;
                    a = t.indexOf(&amp;quot;\r&amp;quot;, k),&lt;br /&gt;
                    l = t.indexOf(&amp;quot;\n&amp;quot;, k);&lt;br /&gt;
                while (a !== -1 || l !== -1) {&lt;br /&gt;
                    a === -1 || l !== -1 &amp;amp;&amp;amp; l &amp;lt; a ? (o = l, l = t.indexOf(&amp;quot;\n&amp;quot;, o + 1)) : (o = a, a = t.indexOf(&amp;quot;\r&amp;quot;, o + 1));&lt;br /&gt;
                    var m = t.slice(k, o),&lt;br /&gt;
                        B = D;&lt;br /&gt;
                    D = t.slice(o, o + 1) === &amp;quot;\r&amp;quot;, k = o + 1;&lt;br /&gt;
                    if (!B || m.length !== 0 || D) {&lt;br /&gt;
                        _.push(m);&lt;br /&gt;
                        var j = _.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        _.length = 0;&lt;br /&gt;
                        if (j !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var I = &amp;quot;&amp;quot;,&lt;br /&gt;
                                q = j.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            q !== -1 &amp;amp;&amp;amp; (I = j.slice(q + (j.slice(q + 1, q + 2) === &amp;quot; &amp;quot; ? 2 : 1)), j = j.slice(0, q)), j === &amp;quot;data&amp;quot; ? A.push(I) : j === &amp;quot;id&amp;quot; ? O = I : j === &amp;quot;event&amp;quot; ? M = I : j === &amp;quot;retry&amp;quot; ? (u = g(I, u), x = u, b &amp;lt; u &amp;amp;&amp;amp; (b = u)) : j === &amp;quot;retryLimit&amp;quot; ? b = g(I, b) : j === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (w = g(I, w), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = setTimeout(R, w)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (A.length !== 0) {&lt;br /&gt;
                                E = O;&lt;br /&gt;
                                var U = M || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                n = new s(U, {&lt;br /&gt;
                                    data: A.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: O&lt;br /&gt;
                                }), S.dispatchEvent(n), U === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; y(S, &amp;quot;onmessage&amp;quot;, n);&lt;br /&gt;
                                if (L === d) return&lt;br /&gt;
                            }&lt;br /&gt;
                            A.length = 0, M = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                k !== t.length &amp;amp;&amp;amp; (_.push(t.slice(k)), k = t.length)&lt;br /&gt;
            }&lt;br /&gt;
            H &amp;amp;&amp;amp; P === 0 &amp;amp;&amp;amp; (H = !1, P = setTimeout(F, 80)), L !== p &amp;amp;&amp;amp; L !== h || !(e || k &amp;gt; 1048576 || C === 0 &amp;amp;&amp;amp; !T) ? C === 0 &amp;amp;&amp;amp; (T = !1, C = setTimeout(R, w)) : (L = c, N.abort(), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), x &amp;gt; b &amp;amp;&amp;amp; (x = b), C = setTimeout(R, x), x = x * 2 + 1, S.readyState = h, n = new i(&amp;quot;error&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onerror&amp;quot;, n))&lt;br /&gt;
        }&lt;br /&gt;
        function F() {&lt;br /&gt;
            P = 0, j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function I() {&lt;br /&gt;
            j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function q() {&lt;br /&gt;
            j(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function R() {&lt;br /&gt;
            C = 0;&lt;br /&gt;
            if (L !== c) {&lt;br /&gt;
                j(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                C = setTimeout(R, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (m &amp;amp;&amp;amp; e.document &amp;amp;&amp;amp; (e.document.readyState === &amp;quot;loading&amp;quot; || e.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                C = setTimeout(R, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            N.onload = N.onerror = q, N.mozAnon === undefined ? N.onprogress = I : N.onreadystatechange = I, T = !1, C = setTimeout(R, w), k = 0, L = h, A.length = 0, M = &amp;quot;&amp;quot;, O = E, _.length = 0, D = !1, N.open(&amp;quot;GET&amp;quot;, t + ((t.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(E) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), N.withCredentials = o, N.responseType = &amp;quot;text&amp;quot;, f &amp;amp;&amp;amp; N.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), N.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        t = String(t);&lt;br /&gt;
        var o = Boolean(a &amp;amp;&amp;amp; r &amp;amp;&amp;amp; r.withCredentials),&lt;br /&gt;
            u = g(r ? r.retry : NaN, 1e3),&lt;br /&gt;
            b = g(r ? r.retryLimit : NaN, 3e5),&lt;br /&gt;
            w = g(r ? r.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            E = r &amp;amp;&amp;amp; r.lastEventId &amp;amp;&amp;amp; String(r.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            S = this,&lt;br /&gt;
            x = u,&lt;br /&gt;
            T = !1,&lt;br /&gt;
            N = new l,&lt;br /&gt;
            C = 0,&lt;br /&gt;
            k = 0,&lt;br /&gt;
            L = c,&lt;br /&gt;
            A = [],&lt;br /&gt;
            O = &amp;quot;&amp;quot;,&lt;br /&gt;
            M = &amp;quot;&amp;quot;,&lt;br /&gt;
            _ = [],&lt;br /&gt;
            D = !1,&lt;br /&gt;
            P = 0,&lt;br /&gt;
            H = !1;&lt;br /&gt;
        r = null, n.call(this), this.close = B, this.url = t, this.readyState = h, this.withCredentials = o, R()&lt;br /&gt;
    }&lt;br /&gt;
    function w() {&lt;br /&gt;
        this.CONNECTING = h, this.OPEN = p, this.CLOSED = d&lt;br /&gt;
    }&lt;br /&gt;
    t.prototype = {&lt;br /&gt;
        get: function (e) {&lt;br /&gt;
            return this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (e, t) {&lt;br /&gt;
            this.data[e + &amp;quot;~&amp;quot;] = t&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (e) {&lt;br /&gt;
            delete this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, n.prototype = {&lt;br /&gt;
        dispatchEvent: function (e) {&lt;br /&gt;
            var t = String(e.type),&lt;br /&gt;
                n = this.listeners,&lt;br /&gt;
                i = n.get(t);&lt;br /&gt;
            if (!i) return;&lt;br /&gt;
            var s = i.length,&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; s) {&lt;br /&gt;
                var u = i[o];&lt;br /&gt;
                try {&lt;br /&gt;
                    u.call(this, e)&lt;br /&gt;
                } catch (a) {&lt;br /&gt;
                    r(a)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            r || n.set(e, r = []);&lt;br /&gt;
            var i = r.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (r[i] === t) return;&lt;br /&gt;
            r.push(t)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            if (!r) return;&lt;br /&gt;
            var i = r.length,&lt;br /&gt;
                s = [],&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; i) r[o] !== t &amp;amp;&amp;amp; s.push(r[o]);&lt;br /&gt;
            s.length === 0 ? n[&amp;quot;delete&amp;quot;](e) : n.set(e, s)&lt;br /&gt;
        }&lt;br /&gt;
    }, s.prototype = i.prototype;&lt;br /&gt;
    var o = e.XMLHttpRequest,&lt;br /&gt;
        u = e.XDomainRequest,&lt;br /&gt;
        a = Boolean(o &amp;amp;&amp;amp; (new o).withCredentials !== undefined),&lt;br /&gt;
        f = a,&lt;br /&gt;
        l = a ? o : u,&lt;br /&gt;
        c = -1,&lt;br /&gt;
        h = 0,&lt;br /&gt;
        p = 1,&lt;br /&gt;
        d = 2,&lt;br /&gt;
        v = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        m = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    w.prototype = n.prototype, b.prototype = new w, w.call(b), l &amp;amp;&amp;amp; (e.EventSource = b)&lt;br /&gt;
})(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function e(e) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + e&lt;br /&gt;
    }&lt;br /&gt;
    function t() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var n = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            r = new EventSource(n);&lt;br /&gt;
        t(&amp;quot;connecting to event source:&amp;quot;, n), r.addEventListener(&amp;quot;open&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;error&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;loadtest&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, function (e) {&lt;br /&gt;
            var n = JSON.parse(e.data),&lt;br /&gt;
                r = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                i = Math.round(Math.random() * n.spread);&lt;br /&gt;
            t(&amp;quot;waiting&amp;quot;, i, &amp;quot;seconds before displaying comic&amp;quot;, n.image), setTimeout(function () {&lt;br /&gt;
                r.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + n.image&lt;br /&gt;
            }, i * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (i) {&lt;br /&gt;
        e(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm no programmer but this looks important to me...&lt;br /&gt;
&lt;br /&gt;
:Doesn't really help. The script basically changes the image when something happens (probably some time passes, although it's possible there is more hidden there). WHAT image then appears is not directed by the script, but by the site. Specifically, the image displayed as first is taken from [http://c0.xkcd.com/redirect/comic/time http://c0.xkcd.com/redirect/comic/time], while the script asks for [http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber) http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber)] ... which is, if you get correct &amp;quot;r&amp;quot;, probably some json containing the image url. So, even if you hack the script, you will not get all possible urls. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:17, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: ... actually, given that the script part doesn't seem to do anything just now, it's even possible it's for later (ie, starts producing images when the correct time come). Or maybe there is a bug somewhere in the code :-). -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:27, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thanks for explaining. Why hasn't anyone posted this before? Could &amp;quot;location.hash&amp;quot; possibly have anything to do with the method used to generate the image hash key? Also, why is this code so difficult to follow (Obfuscation?)? So many questions... Sorry if this is just a huge waste of ''Time''.&lt;br /&gt;
&lt;br /&gt;
:::: &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is the URI of the page. &amp;lt;code&amp;gt;location.hash&amp;lt;/code&amp;gt; is the part of the uri after the ''#'' character. If you go to [https://xkcd.com/1190/#verbose https://xkcd.com/1190/#verbose], you'll see some debugging output in your browser's debugging console (Firefox: Web Console or Firebug, Chrome: Development Tools). But nothing to decode the algorithm... :-( --[[Special:Contributions/83.243.48.2|83.243.48.2]] 10:01, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Well, I don't know what's doing it, but there's definitely some script (probably this script) that's refreshing the image automatically.  I left the comic open for an hour or so and noticed the image had changed. I refreshed with #verbose in Chrome right before the 30 minute mark and got the following in the console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connecting to event source: http://c0.xkcd.com/stream/comic/time?method=EventSource time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;e2992bf0-9557-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 0 seconds before displaying comic 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_start&amp;quot;. time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;79580fe8-9558-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 4 seconds before displaying comic 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png time07.min.js:1&lt;br /&gt;
connection error i {type: &amp;quot;error&amp;quot;} time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_error&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::::: The script seems to poll the server every minute or two. It's different from before, where the image server itself redirected to the correct image. The auto refresh was probably always intended, but not quite ready when the comic went live. It may have turned out to be necessary too, so the image server doesn't have to do all the work. [[Special:Contributions/129.21.119.153|129.21.119.153]] 14:45, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Before obfuscation... ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(function (global) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function Map() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function EventTarget() {&lt;br /&gt;
        this.listeners = new Map&lt;br /&gt;
    }&lt;br /&gt;
    function throwError(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function Event(type) {&lt;br /&gt;
        this.type = type&lt;br /&gt;
    }&lt;br /&gt;
    function MessageEvent(type, options) {&lt;br /&gt;
        Event.call(this, type), this.data = options.data, this.lastEventId = options.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function getDuration(value, def) {&lt;br /&gt;
        var n = Number(value);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || def&lt;br /&gt;
    }&lt;br /&gt;
    function fire(that, property, event) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof that[property] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; that[property](event)&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            throwError(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function EventSource(url, options) {&lt;br /&gt;
        function close() {&lt;br /&gt;
            currentState = CLOSED, xhr !== null &amp;amp;&amp;amp; (xhr.abort(), xhr = null), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), that.readyState = CLOSED&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress(isLoadEnd) {&lt;br /&gt;
            var responseText = currentState === OPEN || currentState === CONNECTING ? xhr.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                event = null;&lt;br /&gt;
            if (currentState === CONNECTING) {&lt;br /&gt;
                var contentType = isXHR ? responseText !== &amp;quot;&amp;quot; ? xhr.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : xhr.contentType;&lt;br /&gt;
                if (contentType &amp;amp;&amp;amp; contentTypeRegExp.test(contentType)) {&lt;br /&gt;
                    currentState = OPEN, wasActivity = !0, retry = initialRetry, that.readyState = OPEN, event = new Event(&amp;quot;open&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onopen&amp;quot;, event);&lt;br /&gt;
                    if (currentState === CLOSED) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (currentState === OPEN) {&lt;br /&gt;
                responseText.length &amp;gt; charOffset &amp;amp;&amp;amp; (wasAct = !0, wasActivity = !0);&lt;br /&gt;
                var i = 0,&lt;br /&gt;
                    i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, charOffset),&lt;br /&gt;
                    i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, charOffset);&lt;br /&gt;
                while (i1 !== -1 || i2 !== -1) {&lt;br /&gt;
                    i1 === -1 || i2 !== -1 &amp;amp;&amp;amp; i2 &amp;lt; i1 ? (i = i2, i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, i + 1)) : (i = i1, i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, i + 1));&lt;br /&gt;
                    var line = responseText.slice(charOffset, i),&lt;br /&gt;
                        oldWasCR = wasCR;&lt;br /&gt;
                    wasCR = responseText.slice(i, i + 1) === &amp;quot;\r&amp;quot;, charOffset = i + 1;&lt;br /&gt;
                    if (!oldWasCR || line.length !== 0 || wasCR) {&lt;br /&gt;
                        responseBuffer.push(line);&lt;br /&gt;
                        var field = responseBuffer.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        responseBuffer.length = 0;&lt;br /&gt;
                        if (field !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var value = &amp;quot;&amp;quot;,&lt;br /&gt;
                                j = field.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            j !== -1 &amp;amp;&amp;amp; (value = field.slice(j + (field.slice(j + 1, j + 2) === &amp;quot; &amp;quot; ? 2 : 1)), field = field.slice(0, j)), field === &amp;quot;data&amp;quot; ? dataBuffer.push(value) : field === &amp;quot;id&amp;quot; ? lastEventIdBuffer = value : field === &amp;quot;event&amp;quot; ? eventTypeBuffer = value : field === &amp;quot;retry&amp;quot; ? (initialRetry = getDuration(value, initialRetry), retry = initialRetry, retryLimit &amp;lt; initialRetry &amp;amp;&amp;amp; (retryLimit = initialRetry)) : field === &amp;quot;retryLimit&amp;quot; ? retryLimit = getDuration(value, retryLimit) : field === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (heartbeatTimeout = getDuration(value, heartbeatTimeout), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = setTimeout(onTimeout, heartbeatTimeout)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (dataBuffer.length !== 0) {&lt;br /&gt;
                                lastEventId = lastEventIdBuffer;&lt;br /&gt;
                                var type = eventTypeBuffer || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                event = new MessageEvent(type, {&lt;br /&gt;
                                    data: dataBuffer.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: lastEventIdBuffer&lt;br /&gt;
                                }), that.dispatchEvent(event), type === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; fire(that, &amp;quot;onmessage&amp;quot;, event);&lt;br /&gt;
                                if (currentState === CLOSED) return&lt;br /&gt;
                            }&lt;br /&gt;
                            dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                charOffset !== responseText.length &amp;amp;&amp;amp; (responseBuffer.push(responseText.slice(charOffset)), charOffset = responseText.length)&lt;br /&gt;
            }&lt;br /&gt;
            wasAct &amp;amp;&amp;amp; progressTimeout === 0 &amp;amp;&amp;amp; (wasAct = !1, progressTimeout = setTimeout(p, 80)), currentState !== OPEN &amp;amp;&amp;amp; currentState !== CONNECTING || !(isLoadEnd || charOffset &amp;gt; 1048576 || timeout === 0 &amp;amp;&amp;amp; !wasActivity) ? timeout === 0 &amp;amp;&amp;amp; (wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout)) : (currentState = WAITING, xhr.abort(), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), retry &amp;gt; retryLimit &amp;amp;&amp;amp; (retry = retryLimit), timeout = setTimeout(onTimeout, retry), retry = retry * 2 + 1, that.readyState = CONNECTING, event = new Event(&amp;quot;error&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onerror&amp;quot;, event))&lt;br /&gt;
        }&lt;br /&gt;
        function p() {&lt;br /&gt;
            progressTimeout = 0, onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress2() {&lt;br /&gt;
            onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onLoadEnd() {&lt;br /&gt;
            onProgress(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function onTimeout() {&lt;br /&gt;
            timeout = 0;&lt;br /&gt;
            if (currentState !== WAITING) {&lt;br /&gt;
                onProgress(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (webkitBefore535 &amp;amp;&amp;amp; global.document &amp;amp;&amp;amp; (global.document.readyState === &amp;quot;loading&amp;quot; || global.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            xhr.onload = xhr.onerror = onLoadEnd, xhr.mozAnon === undefined ? xhr.onprogress = onProgress2 : xhr.onreadystatechange = onProgress2, wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout), charOffset = 0, currentState = CONNECTING, dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;, lastEventIdBuffer = lastEventId, responseBuffer.length = 0, wasCR = !1, xhr.open(&amp;quot;GET&amp;quot;, url + ((url.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(lastEventId) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), xhr.withCredentials = withCredentials, xhr.responseType = &amp;quot;text&amp;quot;, isXHR &amp;amp;&amp;amp; xhr.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), xhr.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        url = String(url);&lt;br /&gt;
        var withCredentials = Boolean(xhr2 &amp;amp;&amp;amp; options &amp;amp;&amp;amp; options.withCredentials),&lt;br /&gt;
            initialRetry = getDuration(options ? options.retry : NaN, 1e3),&lt;br /&gt;
            retryLimit = getDuration(options ? options.retryLimit : NaN, 3e5),&lt;br /&gt;
            heartbeatTimeout = getDuration(options ? options.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            lastEventId = options &amp;amp;&amp;amp; options.lastEventId &amp;amp;&amp;amp; String(options.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            that = this,&lt;br /&gt;
            retry = initialRetry,&lt;br /&gt;
            wasActivity = !1,&lt;br /&gt;
            xhr = new Transport,&lt;br /&gt;
            timeout = 0,&lt;br /&gt;
            charOffset = 0,&lt;br /&gt;
            currentState = WAITING,&lt;br /&gt;
            dataBuffer = [],&lt;br /&gt;
            lastEventIdBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            eventTypeBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            responseBuffer = [],&lt;br /&gt;
            wasCR = !1,&lt;br /&gt;
            progressTimeout = 0,&lt;br /&gt;
            wasAct = !1;&lt;br /&gt;
        options = null, EventTarget.call(this), this.close = close, this.url = url, this.readyState = CONNECTING, this.withCredentials = withCredentials, onTimeout()&lt;br /&gt;
    }&lt;br /&gt;
    function F() {&lt;br /&gt;
        this.CONNECTING = CONNECTING, this.OPEN = OPEN, this.CLOSED = CLOSED&lt;br /&gt;
    }&lt;br /&gt;
    Map.prototype = {&lt;br /&gt;
        get: function (key) {&lt;br /&gt;
            return this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (key, value) {&lt;br /&gt;
            this.data[key + &amp;quot;~&amp;quot;] = value&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (key) {&lt;br /&gt;
            delete this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, EventTarget.prototype = {&lt;br /&gt;
        dispatchEvent: function (event) {&lt;br /&gt;
            var type = String(event.type),&lt;br /&gt;
                listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) {&lt;br /&gt;
                var listener = typeListeners[i];&lt;br /&gt;
                try {&lt;br /&gt;
                    listener.call(this, event)&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    throwError(e)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            typeListeners || listeners.set(type, typeListeners = []);&lt;br /&gt;
            var i = typeListeners.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (typeListeners[i] === callback) return;&lt;br /&gt;
            typeListeners.push(callback)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                filtered = [],&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) typeListeners[i] !== callback &amp;amp;&amp;amp; filtered.push(typeListeners[i]);&lt;br /&gt;
            filtered.length === 0 ? listeners[&amp;quot;delete&amp;quot;](type) : listeners.set(type, filtered)&lt;br /&gt;
        }&lt;br /&gt;
    }, MessageEvent.prototype = Event.prototype;&lt;br /&gt;
    var XHR = global.XMLHttpRequest,&lt;br /&gt;
        XDR = global.XDomainRequest,&lt;br /&gt;
        xhr2 = Boolean(XHR &amp;amp;&amp;amp; (new XHR).withCredentials !== undefined),&lt;br /&gt;
        isXHR = xhr2,&lt;br /&gt;
        Transport = xhr2 ? XHR : XDR,&lt;br /&gt;
        WAITING = -1,&lt;br /&gt;
        CONNECTING = 0,&lt;br /&gt;
        OPEN = 1,&lt;br /&gt;
        CLOSED = 2,&lt;br /&gt;
        contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        webkitBefore535 = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    F.prototype = EventTarget.prototype, EventSource.prototype = new F, F.call(EventSource), Transport &amp;amp;&amp;amp; (global.EventSource = EventSource)&lt;br /&gt;
 })(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function record(name) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + name&lt;br /&gt;
    }&lt;br /&gt;
    function log() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var esURL = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            source = new EventSource(esURL);&lt;br /&gt;
        log(&amp;quot;connecting to event source:&amp;quot;, esURL), source.addEventListener(&amp;quot;open&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;error&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;loadtest&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, function (ev) {&lt;br /&gt;
            var data = JSON.parse(ev.data),&lt;br /&gt;
                img = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                delay = Math.round(Math.random() * data.spread);&lt;br /&gt;
            log(&amp;quot;waiting&amp;quot;, delay, &amp;quot;seconds before displaying comic&amp;quot;, data.image), setTimeout(function () {&lt;br /&gt;
                img.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + data.image&lt;br /&gt;
            }, delay * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
        record(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 09:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://imgs.xkcd.com/comics/time/426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/1/1e/f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 22:51, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/b/b0/88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 23:10, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is it just me or or did Randall manage to make all of us perform a Denial of Service on xkcd.com, and explainxkcd.com ? xkcd.com seems much slower, and I keep getting &amp;quot;500 Internal server error&amp;quot; when accessing this site (explainxkcd.com). I guess that's the effect of having everybody hit F5 every few minutes :) [[Special:Contributions/193.239.192.194|193.239.192.194]] 11:57, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Earlier today, the server handled all the image redirections. The script you see above went through several mutations (currently at #8), with each mutation it seems that Randall is adding more servers and trying to split the load between them. This is basically how a bot-net works - we all run code written by some evil genius, and he's changing the code as time passes to serve some hidden purpose.&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 15:44, 25 March 2013 (UTC)&lt;br /&gt;
    If he is using us as a botnet, then maybe the next comic will be something alluding to that.&lt;br /&gt;
    Probably like this: http://xkcd.com/350/&lt;br /&gt;
&lt;br /&gt;
When I saw this comic last night and that there was no explanation up, I thought to myself &amp;quot;How zen.&amp;quot;  I figured that Randall was going through a calm streak before throwing us the utterly ridiculous April 1st comic.  Did it come early, or does he have something even bigger planned for us? [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:05, 26 March 2013 (UTC)&lt;br /&gt;
:Sorry, did you miss the bit where this comic updates every 30 minutes and all the server error messages being caused by the massive traffic to both the wiki and the main xkcd website? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:08, 26 March 2013 (UTC)&lt;br /&gt;
::Well, when I said &amp;quot;last night&amp;quot; and &amp;quot;no explanation&amp;quot;, I implied that I wasn't aware of that at the time, which is why I thought what I did.  Of course, it is now &amp;quot;now&amp;quot; and there &amp;lt;i&amp;gt;is&amp;lt;/i&amp;gt; an explanation, so that should answer your question.  Also, since it's not April 1st, and Randall has consistently released something major on that day, the jury is still out, leaving my question quite open (though I was really only asking for opinions). [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:20, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wanted to add an image to the list above, but didn't know at what timestamp to add it, got 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png at 2013-03-26 09:47 CET (UTC+0100)&lt;br /&gt;
 /Puggan&lt;br /&gt;
:The hours denote the time since the initial release of the comic. The page is still a work in progress, we're going to bring that all into one image file soon. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 09:13, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
This site should seriously consider cloudflare, it's perfect at times like this and takes minutes to set up.  I run all my sites through it and it saves a lot of page huts and bandwidth.&lt;br /&gt;
[[Special:Contributions/123.3.136.228|123.3.136.228]]Evan Pyle&lt;br /&gt;
:Or at least make the main page a static page that refreshes every so often.  I'm guessing that most of the traffic is going to the front page with not as much traffic to the actual comic page [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some of the images on the wiki (looks like time38.png through time48.png) are slightly different than what is on the main site.  The lines are slightly thicker, as though someone did them based on screen captures.&lt;br /&gt;
[[User:Royce|Royce]] ([[User talk:Royce|talk]]) 14:37, 26 March 2013 (UTC)&lt;br /&gt;
:Well, at least we have the hashes so they can be re-retrieved, so nothing is really lost, right?  Should we add links to the original? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I uploaded two of the &amp;quot;thicker&amp;quot; images and one of the &amp;quot;regular&amp;quot; ones, and I did the same thing for all of them: right-click-&amp;gt;save-as. Given that the &amp;quot;thick&amp;quot; ones are all clustered together, I think the files on the xkcd site changed. [[User:Druid816|Druid816]] ([[User talk:Druid816|talk]]) 18:21, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Story so far: [http://static.odysseus.anderson.name/1190.gif linky]&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31143</id>
		<title>Talk:1190: Time</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1190:_Time&amp;diff=31143"/>
				<updated>2013-03-26T15:43:17Z</updated>
		
		<summary type="html">&lt;p&gt;Odysseus654: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pretty sure we're just getting trolled with this one [[Special:Contributions/99.108.190.136|99.108.190.136]] 04:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can't tell if this is emo xkcd or trolling xkcd. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:53, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something seems a little fishy because the image url is different than normal. [[User:Bugefun|Bugefun]] ([[User talk:Bugefun|talk]]) 04:55, 25 March 2013 (UTC)&lt;br /&gt;
:Maybe the comic slowly changes throughout the day. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:56, 25 March 2013 (UTC)&lt;br /&gt;
::Oh god, it does. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 04:57, 25 March 2013 (UTC)&lt;br /&gt;
:::When uploading different versions of the image, use the naming convention time[iterationNumber].png. We'll compile all the images into one and display them as per [[Traffic Lights]]. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:05, 25 March 2013 (UTC)&lt;br /&gt;
::::Alright, so the comic appears to be switching between two states here: between [[media:time2.png|this]] and [[media:time3.png|this]]. If nothing new happens, I'll get to clipping the comics together. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:28, 25 March 2013 (UTC)&lt;br /&gt;
:::::Whoop, nope, [[media:time4.png|this]] just came up. Is there more to come? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:34, 25 March 2013 (UTC)&lt;br /&gt;
::::::Alright, so a new one is posted every half-hour. Whoopee. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 06:06, 25 March 2013 (UTC)&lt;br /&gt;
:::::::And there's a new one! Megan leaning back and looking up...&lt;br /&gt;
::::::::Well, the image changed, who has the time to make a script to catch the new images and compile them into a gif? https://dl.dropbox.com/u/932170/time.png [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)It could be a reference to the old proverb &amp;quot; time and tide wait for none&amp;quot; Cueball and the girl could be waiting for the tide in the beach! (Just a guess)[[Special:Contributions/72.21.198.66|72.21.198.66]] 05:11, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
The picture does chance with time. The URL includes a changing timestamp that I can't decipher. Compare these two URLS (which have slightly different images:&lt;br /&gt;
http://imgs.xkcd.com/comics/time/8eb156cce408df8bb83528382d6a2aa2ce6c74f3c573fd12b058cd1c56420672.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
&lt;br /&gt;
Perhaps there is a way to hack the URL to view future images. [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:29, 25 March 2013 (UTC)&lt;br /&gt;
: I would also like to add that knowing randall, these are not the only images. For all we know, the image will still be changing in 5 years while a tree grows in front of them. My point is: Are the URLs hackable, or did he encrypt them? [[Special:Contributions/199.30.248.121|199.30.248.121]] 05:33, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Likely there is a way to hack the URLs; they look like some sort of hash, probably a hashed timestamp. Of course, he could easily have added some salt to the hash, making it significantly *harder* to hack. But they're strings of a specific length, so it should be pretty easy to bruteforce it, fetch all the images, and then (maybe) reverse-engineer the sequence. *That* all depends on how many of them there are. [[Special:Contributions/76.90.249.178|76.90.249.178]] 05:44, 25 March 2013 (UTC)&lt;br /&gt;
:Good god, do you see how many digits are *in* that hash? The sun'll have burned out by the time we've tested every possible combination of digits. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 05:47, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It seems that the image is updated every 1/2 hour. [[Special:Contributions/152.23.97.150|152.23.97.150]] 06:17, 25 March 2013 (UTC)&lt;br /&gt;
: Given that the images switch back and forth between other images already seen, and that the comic should be viewable in the future, it seems unlikely that it's any thing like a simple sha256 of part of the timestamp.  I think it's more likely a function of half-hours and minutes (assuming we continue to get a new possible image every half-hour). [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: The images do cycle, yes. But for some reason I have never seen the img where Megan is looking behind her. Also wouldn't it be difficult to show a sequential story (like the rising tide) if the previous images keep cycling ?&lt;br /&gt;
&lt;br /&gt;
Hash appears to be SHA-256. I tried some obvious hashes (&amp;quot;1&amp;quot;, &amp;quot;11901&amp;quot;, &amp;quot;1190_1&amp;quot;, &amp;quot;1190.1&amp;quot;) to no avail. Maybe this is HMAC-SHA256? Also, I would suggest trying Unix timestamps. [[Special:Contributions/131.156.236.149|131.156.236.149]] 06:19, 25 March 2013 (UTC)&lt;br /&gt;
: I've been trying to make educated guesses as to what's being hashed here: http://www.xorbin.com/tools/sha256-hash-calculator ... he could also be using hash(hash2(value)) which would be virtually impossible to crack. [[Special:Contributions/99.153.248.206|99.153.248.206]] 06:59, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It's entirely possible that the &amp;quot;hash&amp;quot; is actually randomly generated. Just a thought. [[Special:Contributions/129.21.119.153|129.21.119.153]] 07:03, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Alright, this is probably not going to work, but I'm trying to exploit Randall's awesomeness here. Maybe he decided to take the time-stamps from the user? I don't know if that's even possible... That would then allow people in different time zones to obtain different images simultaneously. (What's the corollary of Godwin's law for a bunch of math-and-science nerds and relativity? Is there one?) Clicking the img src url on the comic's html page, give me this: http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png : Never mind.. apparently others see the same image too.&lt;br /&gt;
&lt;br /&gt;
Could he be doing this live? Monitoring the discussion on the net? Collaborative, crowdsourced comic-ing? Reminds me of those you-decide-what-the-character-does-next-and-flip-to-appropriate-page parallel plot novels.&lt;br /&gt;
&lt;br /&gt;
[[Special:Contributions/220.224.246.97|220.224.246.97]] 07:14, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Let's just compare the two pictures and see how the bottom right changes, which I believe is water and they are indeed waiting for the tide. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 07:19, 25 March 2013 (UTC)&lt;br /&gt;
:I'm adding urls to pictures bellow, edit freely.&lt;br /&gt;
::They change every 5 minutes, will try to keep track.&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/f/f8/time.png &lt;br /&gt;
http://imgs.xkcd.com/comics/time/1e349a579b5f9b5ed487ddf7e88244b70330941ddedac9c6abf6ed2e3f589b97.png&lt;br /&gt;
http://imgs.xkcd.com/comics/time/752687b61523144c61736cd89f8c153dc41e19128f72d78d44947ff800f057fa.png&lt;br /&gt;
http://dl.dropbox.com/u/932170/timeasdf.png &lt;br /&gt;
http://dl.dropbox.com/u/932170/time6.png&lt;br /&gt;
&lt;br /&gt;
:I have uploaded all the different images onto the wiki, in the order that they were revealed. To avoid needless duplication of effort, I'll put them up in the explanation page. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:44, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
It just went back to the second image... [[Special:Contributions/220.224.246.97|220.224.246.97]] 07:59, 25 March 2013 (UTC)&lt;br /&gt;
: And now changed to something new.  http://imgs.xkcd.com/comics/time/cdcc6b46b32c53f8596cd0106958b42c4260b9cbc022e6d94054147aa6554960.png&lt;br /&gt;
:: The images do look alike, but they're all different. Thanks David. [[User:Statharas.903|Statharas.903]] ([[User talk:Statharas.903|talk]]) 08:04, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: No..I checked the random string. They're exactly the same. In fact, now it's gone back to the second image. Again. [[Special:Contributions/220.224.246.97|220.224.246.97]] 08:07, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just found this JavaScript code embedded in the comic HTML source (Update: Reformatted to prevent eye-bleeding): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(function (e) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function t() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function n() {&lt;br /&gt;
        this.listeners = new t&lt;br /&gt;
    }&lt;br /&gt;
    function r(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function i(e) {&lt;br /&gt;
        this.type = e&lt;br /&gt;
    }&lt;br /&gt;
    function s(e, t) {&lt;br /&gt;
        i.call(this, e), this.data = t.data, this.lastEventId = t.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function g(e, t) {&lt;br /&gt;
        var n = Number(e);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || t&lt;br /&gt;
    }&lt;br /&gt;
    function y(e, t, n) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof e[t] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; e[t](n)&lt;br /&gt;
        } catch (i) {&lt;br /&gt;
            r(i)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function b(t, r) {&lt;br /&gt;
        function B() {&lt;br /&gt;
            L = d, N !== null &amp;amp;&amp;amp; (N.abort(), N = null), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), S.readyState = d&lt;br /&gt;
        }&lt;br /&gt;
        function j(e) {&lt;br /&gt;
            var t = L === p || L === h ? N.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                n = null;&lt;br /&gt;
            if (L === h) {&lt;br /&gt;
                var r = f ? t !== &amp;quot;&amp;quot; ? N.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : N.contentType;&lt;br /&gt;
                if (r &amp;amp;&amp;amp; v.test(r)) {&lt;br /&gt;
                    L = p, T = !0, x = u, S.readyState = p, n = new i(&amp;quot;open&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onopen&amp;quot;, n);&lt;br /&gt;
                    if (L === d) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (L === p) {&lt;br /&gt;
                t.length &amp;gt; k &amp;amp;&amp;amp; (H = !0, T = !0);&lt;br /&gt;
                var o = 0,&lt;br /&gt;
                    a = t.indexOf(&amp;quot;\r&amp;quot;, k),&lt;br /&gt;
                    l = t.indexOf(&amp;quot;\n&amp;quot;, k);&lt;br /&gt;
                while (a !== -1 || l !== -1) {&lt;br /&gt;
                    a === -1 || l !== -1 &amp;amp;&amp;amp; l &amp;lt; a ? (o = l, l = t.indexOf(&amp;quot;\n&amp;quot;, o + 1)) : (o = a, a = t.indexOf(&amp;quot;\r&amp;quot;, o + 1));&lt;br /&gt;
                    var m = t.slice(k, o),&lt;br /&gt;
                        B = D;&lt;br /&gt;
                    D = t.slice(o, o + 1) === &amp;quot;\r&amp;quot;, k = o + 1;&lt;br /&gt;
                    if (!B || m.length !== 0 || D) {&lt;br /&gt;
                        _.push(m);&lt;br /&gt;
                        var j = _.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        _.length = 0;&lt;br /&gt;
                        if (j !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var I = &amp;quot;&amp;quot;,&lt;br /&gt;
                                q = j.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            q !== -1 &amp;amp;&amp;amp; (I = j.slice(q + (j.slice(q + 1, q + 2) === &amp;quot; &amp;quot; ? 2 : 1)), j = j.slice(0, q)), j === &amp;quot;data&amp;quot; ? A.push(I) : j === &amp;quot;id&amp;quot; ? O = I : j === &amp;quot;event&amp;quot; ? M = I : j === &amp;quot;retry&amp;quot; ? (u = g(I, u), x = u, b &amp;lt; u &amp;amp;&amp;amp; (b = u)) : j === &amp;quot;retryLimit&amp;quot; ? b = g(I, b) : j === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (w = g(I, w), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = setTimeout(R, w)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (A.length !== 0) {&lt;br /&gt;
                                E = O;&lt;br /&gt;
                                var U = M || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                n = new s(U, {&lt;br /&gt;
                                    data: A.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: O&lt;br /&gt;
                                }), S.dispatchEvent(n), U === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; y(S, &amp;quot;onmessage&amp;quot;, n);&lt;br /&gt;
                                if (L === d) return&lt;br /&gt;
                            }&lt;br /&gt;
                            A.length = 0, M = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                k !== t.length &amp;amp;&amp;amp; (_.push(t.slice(k)), k = t.length)&lt;br /&gt;
            }&lt;br /&gt;
            H &amp;amp;&amp;amp; P === 0 &amp;amp;&amp;amp; (H = !1, P = setTimeout(F, 80)), L !== p &amp;amp;&amp;amp; L !== h || !(e || k &amp;gt; 1048576 || C === 0 &amp;amp;&amp;amp; !T) ? C === 0 &amp;amp;&amp;amp; (T = !1, C = setTimeout(R, w)) : (L = c, N.abort(), C !== 0 &amp;amp;&amp;amp; (clearTimeout(C), C = 0), x &amp;gt; b &amp;amp;&amp;amp; (x = b), C = setTimeout(R, x), x = x * 2 + 1, S.readyState = h, n = new i(&amp;quot;error&amp;quot;), S.dispatchEvent(n), y(S, &amp;quot;onerror&amp;quot;, n))&lt;br /&gt;
        }&lt;br /&gt;
        function F() {&lt;br /&gt;
            P = 0, j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function I() {&lt;br /&gt;
            j(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function q() {&lt;br /&gt;
            j(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function R() {&lt;br /&gt;
            C = 0;&lt;br /&gt;
            if (L !== c) {&lt;br /&gt;
                j(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                C = setTimeout(R, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (m &amp;amp;&amp;amp; e.document &amp;amp;&amp;amp; (e.document.readyState === &amp;quot;loading&amp;quot; || e.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                C = setTimeout(R, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            N.onload = N.onerror = q, N.mozAnon === undefined ? N.onprogress = I : N.onreadystatechange = I, T = !1, C = setTimeout(R, w), k = 0, L = h, A.length = 0, M = &amp;quot;&amp;quot;, O = E, _.length = 0, D = !1, N.open(&amp;quot;GET&amp;quot;, t + ((t.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(E) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), N.withCredentials = o, N.responseType = &amp;quot;text&amp;quot;, f &amp;amp;&amp;amp; N.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), N.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        t = String(t);&lt;br /&gt;
        var o = Boolean(a &amp;amp;&amp;amp; r &amp;amp;&amp;amp; r.withCredentials),&lt;br /&gt;
            u = g(r ? r.retry : NaN, 1e3),&lt;br /&gt;
            b = g(r ? r.retryLimit : NaN, 3e5),&lt;br /&gt;
            w = g(r ? r.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            E = r &amp;amp;&amp;amp; r.lastEventId &amp;amp;&amp;amp; String(r.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            S = this,&lt;br /&gt;
            x = u,&lt;br /&gt;
            T = !1,&lt;br /&gt;
            N = new l,&lt;br /&gt;
            C = 0,&lt;br /&gt;
            k = 0,&lt;br /&gt;
            L = c,&lt;br /&gt;
            A = [],&lt;br /&gt;
            O = &amp;quot;&amp;quot;,&lt;br /&gt;
            M = &amp;quot;&amp;quot;,&lt;br /&gt;
            _ = [],&lt;br /&gt;
            D = !1,&lt;br /&gt;
            P = 0,&lt;br /&gt;
            H = !1;&lt;br /&gt;
        r = null, n.call(this), this.close = B, this.url = t, this.readyState = h, this.withCredentials = o, R()&lt;br /&gt;
    }&lt;br /&gt;
    function w() {&lt;br /&gt;
        this.CONNECTING = h, this.OPEN = p, this.CLOSED = d&lt;br /&gt;
    }&lt;br /&gt;
    t.prototype = {&lt;br /&gt;
        get: function (e) {&lt;br /&gt;
            return this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (e, t) {&lt;br /&gt;
            this.data[e + &amp;quot;~&amp;quot;] = t&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (e) {&lt;br /&gt;
            delete this.data[e + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, n.prototype = {&lt;br /&gt;
        dispatchEvent: function (e) {&lt;br /&gt;
            var t = String(e.type),&lt;br /&gt;
                n = this.listeners,&lt;br /&gt;
                i = n.get(t);&lt;br /&gt;
            if (!i) return;&lt;br /&gt;
            var s = i.length,&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; s) {&lt;br /&gt;
                var u = i[o];&lt;br /&gt;
                try {&lt;br /&gt;
                    u.call(this, e)&lt;br /&gt;
                } catch (a) {&lt;br /&gt;
                    r(a)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            r || n.set(e, r = []);&lt;br /&gt;
            var i = r.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (r[i] === t) return;&lt;br /&gt;
            r.push(t)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (e, t) {&lt;br /&gt;
            e = String(e);&lt;br /&gt;
            var n = this.listeners,&lt;br /&gt;
                r = n.get(e);&lt;br /&gt;
            if (!r) return;&lt;br /&gt;
            var i = r.length,&lt;br /&gt;
                s = [],&lt;br /&gt;
                o = -1;&lt;br /&gt;
            while (++o &amp;lt; i) r[o] !== t &amp;amp;&amp;amp; s.push(r[o]);&lt;br /&gt;
            s.length === 0 ? n[&amp;quot;delete&amp;quot;](e) : n.set(e, s)&lt;br /&gt;
        }&lt;br /&gt;
    }, s.prototype = i.prototype;&lt;br /&gt;
    var o = e.XMLHttpRequest,&lt;br /&gt;
        u = e.XDomainRequest,&lt;br /&gt;
        a = Boolean(o &amp;amp;&amp;amp; (new o).withCredentials !== undefined),&lt;br /&gt;
        f = a,&lt;br /&gt;
        l = a ? o : u,&lt;br /&gt;
        c = -1,&lt;br /&gt;
        h = 0,&lt;br /&gt;
        p = 1,&lt;br /&gt;
        d = 2,&lt;br /&gt;
        v = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        m = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    w.prototype = n.prototype, b.prototype = new w, w.call(b), l &amp;amp;&amp;amp; (e.EventSource = b)&lt;br /&gt;
})(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function e(e) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + e&lt;br /&gt;
    }&lt;br /&gt;
    function t() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var n = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            r = new EventSource(n);&lt;br /&gt;
        t(&amp;quot;connecting to event source:&amp;quot;, n), r.addEventListener(&amp;quot;open&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;error&amp;quot;, function (t) {&lt;br /&gt;
            e(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), r.addEventListener(&amp;quot;loadtest&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, t, !1), r.addEventListener(&amp;quot;comic/time&amp;quot;, function (e) {&lt;br /&gt;
            var n = JSON.parse(e.data),&lt;br /&gt;
                r = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                i = Math.round(Math.random() * n.spread);&lt;br /&gt;
            t(&amp;quot;waiting&amp;quot;, i, &amp;quot;seconds before displaying comic&amp;quot;, n.image), setTimeout(function () {&lt;br /&gt;
                r.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + n.image&lt;br /&gt;
            }, i * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (i) {&lt;br /&gt;
        e(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm no programmer but this looks important to me...&lt;br /&gt;
&lt;br /&gt;
:Doesn't really help. The script basically changes the image when something happens (probably some time passes, although it's possible there is more hidden there). WHAT image then appears is not directed by the script, but by the site. Specifically, the image displayed as first is taken from [http://c0.xkcd.com/redirect/comic/time http://c0.xkcd.com/redirect/comic/time], while the script asks for [http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber) http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;amp;r=(somenumber)] ... which is, if you get correct &amp;quot;r&amp;quot;, probably some json containing the image url. So, even if you hack the script, you will not get all possible urls. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:17, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: ... actually, given that the script part doesn't seem to do anything just now, it's even possible it's for later (ie, starts producing images when the correct time come). Or maybe there is a bug somewhere in the code :-). -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 09:27, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thanks for explaining. Why hasn't anyone posted this before? Could &amp;quot;location.hash&amp;quot; possibly have anything to do with the method used to generate the image hash key? Also, why is this code so difficult to follow (Obfuscation?)? So many questions... Sorry if this is just a huge waste of ''Time''.&lt;br /&gt;
&lt;br /&gt;
:::: &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is the URI of the page. &amp;lt;code&amp;gt;location.hash&amp;lt;/code&amp;gt; is the part of the uri after the ''#'' character. If you go to [https://xkcd.com/1190/#verbose https://xkcd.com/1190/#verbose], you'll see some debugging output in your browser's debugging console (Firefox: Web Console or Firebug, Chrome: Development Tools). But nothing to decode the algorithm... :-( --[[Special:Contributions/83.243.48.2|83.243.48.2]] 10:01, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Well, I don't know what's doing it, but there's definitely some script (probably this script) that's refreshing the image automatically.  I left the comic open for an hour or so and noticed the image had changed. I refreshed with #verbose in Chrome right before the 30 minute mark and got the following in the console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connecting to event source: http://c0.xkcd.com/stream/comic/time?method=EventSource time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;e2992bf0-9557-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 0 seconds before displaying comic 832a7f13ca0fadc46e93475bb617d78211e32c81c3af0e289a51f8f149707759.png time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_start&amp;quot;. time07.min.js:1&lt;br /&gt;
s {type: &amp;quot;comic/time&amp;quot;, data: &amp;quot;{&amp;quot;spread&amp;quot;:5,&amp;quot;image&amp;quot;:&amp;quot;847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png&amp;quot;}&amp;quot;, lastEventId: &amp;quot;79580fe8-9558-11e2-8001-1c6f659cb250&amp;quot;} time07.min.js:1&lt;br /&gt;
waiting 4 seconds before displaying comic 847265673986f085460bf1a95b96f7171bcd9a4f1f0a598b2188307d03bcfaa3.png time07.min.js:1&lt;br /&gt;
connection error i {type: &amp;quot;error&amp;quot;} time07.min.js:1&lt;br /&gt;
Resource interpreted as Image but transferred with MIME type application/octet-stream: &amp;quot;http://xkcd.com/events/connect_error&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::::: The script seems to poll the server every minute or two. It's different from before, where the image server itself redirected to the correct image. The auto refresh was probably always intended, but not quite ready when the comic went live. It may have turned out to be necessary too, so the image server doesn't have to do all the work. [[Special:Contributions/129.21.119.153|129.21.119.153]] 14:45, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Before obfuscation... ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(function (global) {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    function Map() {&lt;br /&gt;
        this.data = {}&lt;br /&gt;
    }&lt;br /&gt;
    function EventTarget() {&lt;br /&gt;
        this.listeners = new Map&lt;br /&gt;
    }&lt;br /&gt;
    function throwError(e) {&lt;br /&gt;
        setTimeout(function () {&lt;br /&gt;
            throw e&lt;br /&gt;
        }, 0)&lt;br /&gt;
    }&lt;br /&gt;
    function Event(type) {&lt;br /&gt;
        this.type = type&lt;br /&gt;
    }&lt;br /&gt;
    function MessageEvent(type, options) {&lt;br /&gt;
        Event.call(this, type), this.data = options.data, this.lastEventId = options.lastEventId&lt;br /&gt;
    }&lt;br /&gt;
    function getDuration(value, def) {&lt;br /&gt;
        var n = Number(value);&lt;br /&gt;
        return (n &amp;lt; 1 ? 1 : n &amp;gt; 18e6 ? 18e6 : n) || def&lt;br /&gt;
    }&lt;br /&gt;
    function fire(that, property, event) {&lt;br /&gt;
        try {&lt;br /&gt;
            typeof that[property] == &amp;quot;function&amp;quot; &amp;amp;&amp;amp; that[property](event)&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            throwError(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function EventSource(url, options) {&lt;br /&gt;
        function close() {&lt;br /&gt;
            currentState = CLOSED, xhr !== null &amp;amp;&amp;amp; (xhr.abort(), xhr = null), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), that.readyState = CLOSED&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress(isLoadEnd) {&lt;br /&gt;
            var responseText = currentState === OPEN || currentState === CONNECTING ? xhr.responseText || &amp;quot;&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
                event = null;&lt;br /&gt;
            if (currentState === CONNECTING) {&lt;br /&gt;
                var contentType = isXHR ? responseText !== &amp;quot;&amp;quot; ? xhr.getResponseHeader(&amp;quot;Content-Type&amp;quot;) : &amp;quot;&amp;quot; : xhr.contentType;&lt;br /&gt;
                if (contentType &amp;amp;&amp;amp; contentTypeRegExp.test(contentType)) {&lt;br /&gt;
                    currentState = OPEN, wasActivity = !0, retry = initialRetry, that.readyState = OPEN, event = new Event(&amp;quot;open&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onopen&amp;quot;, event);&lt;br /&gt;
                    if (currentState === CLOSED) return&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (currentState === OPEN) {&lt;br /&gt;
                responseText.length &amp;gt; charOffset &amp;amp;&amp;amp; (wasAct = !0, wasActivity = !0);&lt;br /&gt;
                var i = 0,&lt;br /&gt;
                    i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, charOffset),&lt;br /&gt;
                    i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, charOffset);&lt;br /&gt;
                while (i1 !== -1 || i2 !== -1) {&lt;br /&gt;
                    i1 === -1 || i2 !== -1 &amp;amp;&amp;amp; i2 &amp;lt; i1 ? (i = i2, i2 = responseText.indexOf(&amp;quot;\n&amp;quot;, i + 1)) : (i = i1, i1 = responseText.indexOf(&amp;quot;\r&amp;quot;, i + 1));&lt;br /&gt;
                    var line = responseText.slice(charOffset, i),&lt;br /&gt;
                        oldWasCR = wasCR;&lt;br /&gt;
                    wasCR = responseText.slice(i, i + 1) === &amp;quot;\r&amp;quot;, charOffset = i + 1;&lt;br /&gt;
                    if (!oldWasCR || line.length !== 0 || wasCR) {&lt;br /&gt;
                        responseBuffer.push(line);&lt;br /&gt;
                        var field = responseBuffer.join(&amp;quot;&amp;quot;);&lt;br /&gt;
                        responseBuffer.length = 0;&lt;br /&gt;
                        if (field !== &amp;quot;&amp;quot;) {&lt;br /&gt;
                            var value = &amp;quot;&amp;quot;,&lt;br /&gt;
                                j = field.indexOf(&amp;quot;:&amp;quot;, 0);&lt;br /&gt;
                            j !== -1 &amp;amp;&amp;amp; (value = field.slice(j + (field.slice(j + 1, j + 2) === &amp;quot; &amp;quot; ? 2 : 1)), field = field.slice(0, j)), field === &amp;quot;data&amp;quot; ? dataBuffer.push(value) : field === &amp;quot;id&amp;quot; ? lastEventIdBuffer = value : field === &amp;quot;event&amp;quot; ? eventTypeBuffer = value : field === &amp;quot;retry&amp;quot; ? (initialRetry = getDuration(value, initialRetry), retry = initialRetry, retryLimit &amp;lt; initialRetry &amp;amp;&amp;amp; (retryLimit = initialRetry)) : field === &amp;quot;retryLimit&amp;quot; ? retryLimit = getDuration(value, retryLimit) : field === &amp;quot;heartbeatTimeout&amp;quot; &amp;amp;&amp;amp; (heartbeatTimeout = getDuration(value, heartbeatTimeout), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = setTimeout(onTimeout, heartbeatTimeout)))&lt;br /&gt;
                        } else {&lt;br /&gt;
                            if (dataBuffer.length !== 0) {&lt;br /&gt;
                                lastEventId = lastEventIdBuffer;&lt;br /&gt;
                                var type = eventTypeBuffer || &amp;quot;message&amp;quot;;&lt;br /&gt;
                                event = new MessageEvent(type, {&lt;br /&gt;
                                    data: dataBuffer.join(&amp;quot;\n&amp;quot;),&lt;br /&gt;
                                    lastEventId: lastEventIdBuffer&lt;br /&gt;
                                }), that.dispatchEvent(event), type === &amp;quot;message&amp;quot; &amp;amp;&amp;amp; fire(that, &amp;quot;onmessage&amp;quot;, event);&lt;br /&gt;
                                if (currentState === CLOSED) return&lt;br /&gt;
                            }&lt;br /&gt;
                            dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                charOffset !== responseText.length &amp;amp;&amp;amp; (responseBuffer.push(responseText.slice(charOffset)), charOffset = responseText.length)&lt;br /&gt;
            }&lt;br /&gt;
            wasAct &amp;amp;&amp;amp; progressTimeout === 0 &amp;amp;&amp;amp; (wasAct = !1, progressTimeout = setTimeout(p, 80)), currentState !== OPEN &amp;amp;&amp;amp; currentState !== CONNECTING || !(isLoadEnd || charOffset &amp;gt; 1048576 || timeout === 0 &amp;amp;&amp;amp; !wasActivity) ? timeout === 0 &amp;amp;&amp;amp; (wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout)) : (currentState = WAITING, xhr.abort(), timeout !== 0 &amp;amp;&amp;amp; (clearTimeout(timeout), timeout = 0), retry &amp;gt; retryLimit &amp;amp;&amp;amp; (retry = retryLimit), timeout = setTimeout(onTimeout, retry), retry = retry * 2 + 1, that.readyState = CONNECTING, event = new Event(&amp;quot;error&amp;quot;), that.dispatchEvent(event), fire(that, &amp;quot;onerror&amp;quot;, event))&lt;br /&gt;
        }&lt;br /&gt;
        function p() {&lt;br /&gt;
            progressTimeout = 0, onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onProgress2() {&lt;br /&gt;
            onProgress(!1)&lt;br /&gt;
        }&lt;br /&gt;
        function onLoadEnd() {&lt;br /&gt;
            onProgress(!0)&lt;br /&gt;
        }&lt;br /&gt;
        function onTimeout() {&lt;br /&gt;
            timeout = 0;&lt;br /&gt;
            if (currentState !== WAITING) {&lt;br /&gt;
                onProgress(!1);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (navigator.onLine === !1) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 500);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            if (webkitBefore535 &amp;amp;&amp;amp; global.document &amp;amp;&amp;amp; (global.document.readyState === &amp;quot;loading&amp;quot; || global.document.readyState === &amp;quot;interactive&amp;quot;)) {&lt;br /&gt;
                timeout = setTimeout(onTimeout, 100);&lt;br /&gt;
                return&lt;br /&gt;
            }&lt;br /&gt;
            xhr.onload = xhr.onerror = onLoadEnd, xhr.mozAnon === undefined ? xhr.onprogress = onProgress2 : xhr.onreadystatechange = onProgress2, wasActivity = !1, timeout = setTimeout(onTimeout, heartbeatTimeout), charOffset = 0, currentState = CONNECTING, dataBuffer.length = 0, eventTypeBuffer = &amp;quot;&amp;quot;, lastEventIdBuffer = lastEventId, responseBuffer.length = 0, wasCR = !1, xhr.open(&amp;quot;GET&amp;quot;, url + ((url.indexOf(&amp;quot;?&amp;quot;, 0) === -1 ? &amp;quot;?&amp;quot; : &amp;quot;&amp;amp;&amp;quot;) + &amp;quot;lastEventId=&amp;quot; + encodeURIComponent(lastEventId) + &amp;quot;&amp;amp;r=&amp;quot; + String(Math.random() + 1).slice(2)), !0), xhr.withCredentials = withCredentials, xhr.responseType = &amp;quot;text&amp;quot;, isXHR &amp;amp;&amp;amp; xhr.setRequestHeader(&amp;quot;Accept&amp;quot;, &amp;quot;text/event-stream&amp;quot;), xhr.send(null)&lt;br /&gt;
        }&lt;br /&gt;
        url = String(url);&lt;br /&gt;
        var withCredentials = Boolean(xhr2 &amp;amp;&amp;amp; options &amp;amp;&amp;amp; options.withCredentials),&lt;br /&gt;
            initialRetry = getDuration(options ? options.retry : NaN, 1e3),&lt;br /&gt;
            retryLimit = getDuration(options ? options.retryLimit : NaN, 3e5),&lt;br /&gt;
            heartbeatTimeout = getDuration(options ? options.heartbeatTimeout : NaN, 45e3),&lt;br /&gt;
            lastEventId = options &amp;amp;&amp;amp; options.lastEventId &amp;amp;&amp;amp; String(options.lastEventId) || &amp;quot;&amp;quot;,&lt;br /&gt;
            that = this,&lt;br /&gt;
            retry = initialRetry,&lt;br /&gt;
            wasActivity = !1,&lt;br /&gt;
            xhr = new Transport,&lt;br /&gt;
            timeout = 0,&lt;br /&gt;
            charOffset = 0,&lt;br /&gt;
            currentState = WAITING,&lt;br /&gt;
            dataBuffer = [],&lt;br /&gt;
            lastEventIdBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            eventTypeBuffer = &amp;quot;&amp;quot;,&lt;br /&gt;
            responseBuffer = [],&lt;br /&gt;
            wasCR = !1,&lt;br /&gt;
            progressTimeout = 0,&lt;br /&gt;
            wasAct = !1;&lt;br /&gt;
        options = null, EventTarget.call(this), this.close = close, this.url = url, this.readyState = CONNECTING, this.withCredentials = withCredentials, onTimeout()&lt;br /&gt;
    }&lt;br /&gt;
    function F() {&lt;br /&gt;
        this.CONNECTING = CONNECTING, this.OPEN = OPEN, this.CLOSED = CLOSED&lt;br /&gt;
    }&lt;br /&gt;
    Map.prototype = {&lt;br /&gt;
        get: function (key) {&lt;br /&gt;
            return this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        set: function (key, value) {&lt;br /&gt;
            this.data[key + &amp;quot;~&amp;quot;] = value&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;delete&amp;quot;: function (key) {&lt;br /&gt;
            delete this.data[key + &amp;quot;~&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
    }, EventTarget.prototype = {&lt;br /&gt;
        dispatchEvent: function (event) {&lt;br /&gt;
            var type = String(event.type),&lt;br /&gt;
                listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) {&lt;br /&gt;
                var listener = typeListeners[i];&lt;br /&gt;
                try {&lt;br /&gt;
                    listener.call(this, event)&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    throwError(e)&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        addEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            typeListeners || listeners.set(type, typeListeners = []);&lt;br /&gt;
            var i = typeListeners.length;&lt;br /&gt;
            while (--i &amp;gt;= 0) if (typeListeners[i] === callback) return;&lt;br /&gt;
            typeListeners.push(callback)&lt;br /&gt;
        },&lt;br /&gt;
        removeEventListener: function (type, callback) {&lt;br /&gt;
            type = String(type);&lt;br /&gt;
            var listeners = this.listeners,&lt;br /&gt;
                typeListeners = listeners.get(type);&lt;br /&gt;
            if (!typeListeners) return;&lt;br /&gt;
            var length = typeListeners.length,&lt;br /&gt;
                filtered = [],&lt;br /&gt;
                i = -1;&lt;br /&gt;
            while (++i &amp;lt; length) typeListeners[i] !== callback &amp;amp;&amp;amp; filtered.push(typeListeners[i]);&lt;br /&gt;
            filtered.length === 0 ? listeners[&amp;quot;delete&amp;quot;](type) : listeners.set(type, filtered)&lt;br /&gt;
        }&lt;br /&gt;
    }, MessageEvent.prototype = Event.prototype;&lt;br /&gt;
    var XHR = global.XMLHttpRequest,&lt;br /&gt;
        XDR = global.XDomainRequest,&lt;br /&gt;
        xhr2 = Boolean(XHR &amp;amp;&amp;amp; (new XHR).withCredentials !== undefined),&lt;br /&gt;
        isXHR = xhr2,&lt;br /&gt;
        Transport = xhr2 ? XHR : XDR,&lt;br /&gt;
        WAITING = -1,&lt;br /&gt;
        CONNECTING = 0,&lt;br /&gt;
        OPEN = 1,&lt;br /&gt;
        CLOSED = 2,&lt;br /&gt;
        contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i,&lt;br /&gt;
        webkitBefore535 = /AppleWebKit\/5([0-2][0-9]|3[0-4])[^\d]/.test(navigator.userAgent);&lt;br /&gt;
    F.prototype = EventTarget.prototype, EventSource.prototype = new F, F.call(EventSource), Transport &amp;amp;&amp;amp; (global.EventSource = EventSource)&lt;br /&gt;
 })(this),&lt;br /&gt;
function () {&lt;br /&gt;
    function record(name) {&lt;br /&gt;
        (new Image).src = &amp;quot;http://xkcd.com/events/&amp;quot; + name&lt;br /&gt;
    }&lt;br /&gt;
    function log() {&lt;br /&gt;
        location.hash == &amp;quot;#verbose&amp;quot; &amp;amp;&amp;amp; console.log.apply(console, arguments)&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
        var esURL = &amp;quot;http://c0.xkcd.com/stream/comic/time?method=EventSource&amp;quot;,&lt;br /&gt;
            source = new EventSource(esURL);&lt;br /&gt;
        log(&amp;quot;connecting to event source:&amp;quot;, esURL), source.addEventListener(&amp;quot;open&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_start&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;error&amp;quot;, function (ev) {&lt;br /&gt;
            record(&amp;quot;connect_error&amp;quot;)&lt;br /&gt;
        }, !1), source.addEventListener(&amp;quot;loadtest&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, log, !1), source.addEventListener(&amp;quot;comic/time&amp;quot;, function (ev) {&lt;br /&gt;
            var data = JSON.parse(ev.data),&lt;br /&gt;
                img = document.getElementById(&amp;quot;comic&amp;quot;).getElementsByTagName(&amp;quot;img&amp;quot;)[0],&lt;br /&gt;
                delay = Math.round(Math.random() * data.spread);&lt;br /&gt;
            log(&amp;quot;waiting&amp;quot;, delay, &amp;quot;seconds before displaying comic&amp;quot;, data.image), setTimeout(function () {&lt;br /&gt;
                img.src = &amp;quot;http://imgs.xkcd.com/comics/time/&amp;quot; + data.image&lt;br /&gt;
            }, delay * 1e3)&lt;br /&gt;
        }, !1)&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
        record(&amp;quot;js_error&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 09:48, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://imgs.xkcd.com/comics/time/426033682a26a0012a6f8e0c47287af91b7991a852d81c77402c937ffbd650c6.png&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/1/1e/f46c6571393bee1ee649a7daae41f6328e63482506aef1e22607d22c47dd7027.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 22:51, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
http://www.explainxkcd.com/wiki/images/b/b0/88e3a0c8bba935c669606d9134314f811a0961985f968dd5d329e4695acc67c8.png --[[User:Johnsmith|Johnsmith]] ([[User talk:Johnsmith|talk]]) 23:10, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is it just me or or did Randall manage to make all of us perform a Denial of Service on xkcd.com, and explainxkcd.com ? xkcd.com seems much slower, and I keep getting &amp;quot;500 Internal server error&amp;quot; when accessing this site (explainxkcd.com). I guess that's the effect of having everybody hit F5 every few minutes :) [[Special:Contributions/193.239.192.194|193.239.192.194]] 11:57, 25 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Earlier today, the server handled all the image redirections. The script you see above went through several mutations (currently at #8), with each mutation it seems that Randall is adding more servers and trying to split the load between them. This is basically how a bot-net works - we all run code written by some evil genius, and he's changing the code as time passes to serve some hidden purpose.&lt;br /&gt;
[[Special:Contributions/79.180.173.88|79.180.173.88]] 15:44, 25 March 2013 (UTC)&lt;br /&gt;
    If he is using us as a botnet, then maybe the next comic will be something alluding to that.&lt;br /&gt;
    Probably like this: http://xkcd.com/350/&lt;br /&gt;
&lt;br /&gt;
When I saw this comic last night and that there was no explanation up, I thought to myself &amp;quot;How zen.&amp;quot;  I figured that Randall was going through a calm streak before throwing us the utterly ridiculous April 1st comic.  Did it come early, or does he have something even bigger planned for us? [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:05, 26 March 2013 (UTC)&lt;br /&gt;
:Sorry, did you miss the bit where this comic updates every 30 minutes and all the server error messages being caused by the massive traffic to both the wiki and the main xkcd website? '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 07:08, 26 March 2013 (UTC)&lt;br /&gt;
::Well, when I said &amp;quot;last night&amp;quot; and &amp;quot;no explanation&amp;quot;, I implied that I wasn't aware of that at the time, which is why I thought what I did.  Of course, it is now &amp;quot;now&amp;quot; and there &amp;lt;i&amp;gt;is&amp;lt;/i&amp;gt; an explanation, so that should answer your question.  Also, since it's not April 1st, and Randall has consistently released something major on that day, the jury is still out, leaving my question quite open (though I was really only asking for opinions). [[Special:Contributions/76.106.251.87|76.106.251.87]] 07:20, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wanted to add an image to the list above, but didn't know at what timestamp to add it, got 69085b480cb82911b19fe8f114909756989eed89b0d227db0f59c1843de7ba24.png at 2013-03-26 09:47 CET (UTC+0100)&lt;br /&gt;
 /Puggan&lt;br /&gt;
:The hours denote the time since the initial release of the comic. The page is still a work in progress, we're going to bring that all into one image file soon. '''[[User:Davidy22|&amp;lt;u&amp;gt;{{Color|purple|David}}&amp;lt;font color=green size=3px&amp;gt;y&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;font color=indigo size=4px&amp;gt;²²&amp;lt;/font&amp;gt;]]'''[[User talk:Davidy22|&amp;lt;tt&amp;gt;[talk]&amp;lt;/tt&amp;gt;]] 09:13, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
This site should seriously consider cloudflare, it's perfect at times like this and takes minutes to set up.  I run all my sites through it and it saves a lot of page huts and bandwidth.&lt;br /&gt;
[[Special:Contributions/123.3.136.228|123.3.136.228]]Evan Pyle&lt;br /&gt;
:Or at least make the main page a static page that refreshes every so often.  I'm guessing that most of the traffic is going to the front page with not as much traffic to the actual comic page [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some of the images on the wiki (looks like time38.png through time48.png) are slightly different than what is on the main site.  The lines are slightly thicker, as though someone did them based on screen captures.&lt;br /&gt;
[[User:Royce|Royce]] ([[User talk:Royce|talk]]) 14:37, 26 March 2013 (UTC)&lt;br /&gt;
:Well, at least we have the hashes so they can be re-retrieved, so nothing is really lost, right?  Should we add links to the original? [[User:Odysseus654|Odysseus654]] ([[User talk:Odysseus654|talk]]) 15:43, 26 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Odysseus654</name></author>	</entry>

	</feed>