Difference between revisions of "Main Page"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(Getting started: hide parts of section. Please wait until we have a consent at the community portal.)
(Latest comic: Cutting a little whitespace and references, cruft from an older time.)
(95 intermediate revisions by 7 users not shown)
Line 1: Line 1:
''Welcome to the Explain XKCD wiki''
+
__NOTOC__{{DISPLAYTITLE:explain xkcd}}
 +
<center>
  
__TOC__
+
<font size=5px>''Welcome to the '''explain [[xkcd]]''' wiki!''</font><br>
 +
We have an explanation for all [[:Category:All comics|'''{{#expr:{{PAGESINCAT:All comics|R}}-1}}''' xkcd comics]],
 +
<!-- Note: the -1 in the calculation above is to discount "comic" 404,
 +
    which is not really a comic, even though we've categorised it so. -->
 +
and only {{PAGESINCAT:Incomplete explanations|R}}
 +
({{#expr: {{PAGESINCAT:Incomplete explanations|R}} / {{LATESTCOMIC}} * 100 round 0}}%) [[:Category:Incomplete explanations|are incomplete]]. Help us finish them!
 +
</center>
 +
== Latest comic ==
 +
<div style="border:1px solid grey; background:#eee; padding:1em;">
 +
<span style="float:right;">[[{{LATESTCOMIC}}|'''Go to this comic explanation''']]</span>
 +
<br clear="right">
 +
{{:{{LATESTCOMIC}}}}</div>
  
==Comics==
+
<small>''Is this out of date? {{Purge|Clicking here will fix that}}.''</small>
The latest comic is number [[1090]]
 
  
All the comics (so far) are [[:Category:Comics|here]].
+
== New here? ==
 +
<div style="float:right; margin: 0 0 1em 1em">{{Special:ContributionScores/10/7/nosort,notools}}<div style="font-size:0.85em; width:25em; font-style:italic">[[Special:ContributionScores|Lots of people]] contribute to make this wiki a success. Many of the recent contributors, listed above, have [http://www.explainxkcd.com/wiki/index.php?title=Special%3AContributions&contribs=newbie just joined]. You can do it too! Create your account [[Special:UserLogin/signup|here]].</div></div>
  
== Welcome ==
+
You can read a brief introduction about this wiki at [[explain xkcd]]. Feel free to [[Special:UserLogin/signup|sign up for an account]] and contribute to the wiki! We need explanations for [[:Category:Incomplete explanations|comics]], [[:Category:Characters|characters]], [[:Category:Comics by topic|themes]] and [[:Category:Meta|everything in between]]. If it is referenced in an [[xkcd]] web comic, it should be here.
Please sign up for an account and contribute to the Explain XKCD wiki! We need explanations for comics, characters, themes, memes and everything in between. If it is referenced in an [http://www.xkcd.com XKCD] web comic, it should be in here.
 
  
If you need help with the wiki syntax, Mediawiki has a great wealth of information to help you the syntax right.  In particular, their instructions on [http://www.mediawiki.org/wiki/Help:Navigation Navigation] and [http://www.mediawiki.org/wiki/Help:Editing_pages Editing] are strongly recommended (but do be aware that these links take you to ''their'' site; you'll have to come back here to participate. ;-)
+
* If you're new to wiki editing, see [[mw:Help:Editing pages|how to edit wiki pages]]. There's also a handy {{w|Help:Cheatsheet|wikicode cheatsheet}}.
  
== Getting started ==
+
* Discussion about the wiki itself happens at the [[explain xkcd:Community portal|Community portal]].
<!--For new comic pages:
 
  
1. Every registered user can upload images.
+
* You can browse the comics from [[List of all comics]] or by navigating the category tree at [[:Category:Comics]].
  
2. Put the comic number, the date it was posted and a link to the comic above the photo.
+
* There are incomplete explanations listed [[:Category:Incomplete explanations|here]]. Feel free to help out by expanding them!
  
3. Put the image text below the photo.
+
* We sell advertising space to pay for our server costs. To learn more, go [[explain xkcd:Advertise Here|here]].
  
4. Explain away below that.
+
== Rules ==
  
If you are setting up a new page for a new (or old) comic, please make sure you also redirect the comic number to that page as well.
+
Don't be a jerk.
  
The syntax for redirects is:
+
There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.
 
 
<nowiki>#REDIRECT [[pagename]]</nowiki>
 
 
 
For example, on the page for 1045 is:
 
 
 
<nowiki>#REDIRECT [[Constraints]]</nowiki>
 
 
 
That allows the users of the site to search via the comic number or the name of the comic.
 
 
 
=== Choose a comic! ===
 
Wondering which comics haven't been started yet?  There's a list over at [[Explain XKCD:Checklist]].  Pick one and get started!
 
 
 
=== Discussion ===-->
 
Discussion about various parts of the wiki are going on at [[Explain XKCD:Community portal]].  Share your 2¢!
 
 
 
== Rules ==
 
Don't be a jerk.  There are a lot of comics that don't have set in stone explanations, feel free to put multiple interpretations in the wiki page for each comic.
 
  
If you want to talk about a specific comic, the Discussion page is perfect for that.
+
If you want to talk about a specific comic, use its discussion page.
  
Please only submit material directly related to&mdash;and helping everyone better understand&mdash;xkcd... and of course ''only'' submit material that can legally be posted (and freely edited.) Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users posting such are at risk of being blocked.
+
Please only submit material directly related to (and helping everyone better understand) xkcd... and of course ''only'' submit material that can legally be posted (and freely edited).  Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.
  
If you have a message for an admin, feel free to leave a message on their personal discussion page.
+
If you need assistance from an [[explain xkcd:Administrators|admin]], post a message to the [[explain xkcd:Community portal/Admin requests|Admin requests]] board.
  
The Admins are [[Special:ListUsers/sysop|here]].
+
[[Category:Root category]]

Revision as of 09:15, 8 February 2016

Welcome to the explain xkcd wiki!
We have an explanation for all 2928 xkcd comics, and only 9 (0%) are incomplete. Help us finish them!

Latest comic

Go to this comic explanation

Software Testing Day
The company tried to document how often employees were celebrating Software Testing Day, but their recordkeeping system kept mysteriously crashing.
Title text: The company tried to document how often employees were celebrating Software Testing Day, but their recordkeeping system kept mysteriously crashing.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Created by a NEGATIVE ONCE BOOKED EMPLOYEE, BEING PAID EVERY -1 MONTHS - Please change this comment when editing this page. Do NOT delete this tag too soon.

Quality Assurance (QA) engineers are responsible for ensuring the quality of some software product through the use of testing. This process often involves entering bizarre and/or nonsense inputs in an attempt to break the software. Cueball, a QA engineer in this case, expresses concern that the scheduling system doesn't crash. This could either be because as a QA engineer he is concerned about crashes in general, or that as a system used by QA engineers it likely has a lot of weird/invalid values that could cause a crash.

For example, here it seems that Software Testing Day, a day likely celebrated by QA engineers, takes place every −1 years on January 0th at 25:71 PM. That statement is nonsensical in the following ways:

  • The interval between different events is a scalar, so a negative value like “every −1 years” does not make sense.
  • The first day of the month is the 1st, not the 0th.
  • There are only 24 hours in a day, so “25” is too large.
    • In addition, the “PM” suggests that it is a 12-hour time, so the expected range of values for the hour is 1 to 12, making the “25” even more nonsensical.
  • There are only 60 minutes in an hour, so “71” is too large of a minute.

All numerical values are out of range, suggesting that a QA engineer picked this date to test the scheduling system. If the date were to be made sense through under/overflow, it would result on January 1st at 14:11 (2:11 PM). Apparently, though this date is nonsensical, the QA engineers have decided to make this date a celebration day. Both "January" and "PM" are likely correct values because for QA reasons these two items tend to be selected from predetermined lists since they have an extremely limited number of possible values, it's rarely possible to enter an invalid value for either of these.

The title text suggests that the recordkeeping system used to see how often employees celebrated Software Testing Day kept crashing, possibly due to the employees celebrating on January 0th or any nonsensical values. QA engineers may have also had the opportunity to do this purposefully with inputs such as negative amounts of celebrations.

In real life, such invalid dates would be rejected or coerced to be valid dates. Failing to account for invalid dates may result in errors, sometimes catastrophic, such as the February 29, 2012 Microsoft Azure outage caused by the server trying to generate a certificate valid until February 29, 2013, a date that does not exist on non-leap years.

Treatment of invalid dates varies by the chosen programming language and date-time library. Javascript, for example, would coerce January 0th into December 31st, and 25 o’clock into 1 o’clock the following day. While there is no way to directly create a Javascript Date object using 12-hour notation (because that requires text parsing, and the validation of the text input would just result in an invalid date), the following code snippet represents how far this correction can be abused:

// In Javascript, month 0 is January
const d = new Date(2024, 0, 0, 25+12, 71);
console.log(d); // prints “Mon Jan 01 2024 14:11:00” (exact format depends on your locale)

An event happening every −1 years is equivalent to one that happens every year, but the numbers are reversed; i.e. if this year hosts the 1st Software Testing Day, next year will host the 0th Software Testing Day. This is expected to cause issues in software that assumes that the 2nd Software Testing Day will occur after the 1st Software Testing Day, an assumption that time only moves in one direction that may or may not be reasonable.

The holiday may be due to the claim of "we really can't do anything else, during this automated process", using the same sort of logic as 303: Compiling justified for the programming team. Albeit that here we explicitly learn that a failure behind the scenes will cancel the 'sanctioned' pausing/idling-away of contracted work hours, much as a notable compilation/build error would interupt the others' few minutes of office sports.

Unusual date-time notation in real life

  • Seconds usually go from 0 to 59. However, when a leap second is added, December 31st, 23:59:59 UTC is followed by 23:59:60 before starting the new year.
  • "24:00" can be used to unamiguously state the closing midnight of a given date. i.e. the same as "00:00" upon the next, but without the ambiguity as to which 'midnight' bookending of the given date it might refer to, e.g. for deadlines.
  • It can be generally used to simplify the understanding of how much time is encompassed by a period starting at a pre-midnight time and ending at a post-midnight one.
  • Japan, in particular, very occasionally uses hour numbers greater than 24 to express times past midnight but before sunrise. For example, 25:00 on a Friday is the same time as 1:00 the following Saturday. This is mainly used to express the starting times of midnight TV programming and the closing times of bars and other establishments open late at night. The hours usually go up to 27, but numbers up to 30 (6AM of the following day) are also seldom seen. It allows the timepoint to 'belong' to the normal working day that precedes it, rather than setting it prior to the normally expected start of business for the day after (especially when that involved weekends).

Transcript

[Megan and Cueball stand facing each other.]
Megan: So, do you and the other QA engineers have any fun plans for the holiday?
Cueball: Yeah, assuming the scheduling system doesn't crash.
[Caption below the panel:]
Software Testing Day is a holiday celebrated every -1 years on January 0th at 25:71 PM.


Is this out of date? Clicking here will fix that.

New here?

Last 7 days (Top 10)

Lots of people contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined. You can do it too! Create your account here.

You can read a brief introduction about this wiki at explain xkcd. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes and everything in between. If it is referenced in an xkcd web comic, it should be here.

  • There are incomplete explanations listed here. Feel free to help out by expanding them!
  • We sell advertising space to pay for our server costs. To learn more, go here.

Rules

Don't be a jerk.

There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.

If you want to talk about a specific comic, use its discussion page.

Please only submit material directly related to (and helping everyone better understand) xkcd... and of course only submit material that can legally be posted (and freely edited). Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.

If you need assistance from an admin, post a message to the Admin requests board.