Main Page

Explain xkcd: It's 'cause you're dumb.
(Difference between revisions)
Jump to: navigation, search
(Happily, we')
(fix count and add explanation)
Line 4: Line 4:
 
<center>
 
<center>
 
<big>''Welcome to the '''explain xkcd''' wiki!''
 
<big>''Welcome to the '''explain xkcd''' wiki!''
We already have [[:Category:Comics|'''{{#expr:{{PAGESINCAT:Comics}}-3}}''' comic explanations]]!</big>
+
We already have [[:Category:Comics|'''{{#expr:{{PAGESINCAT:Comics}}-10}}''' comic explanations]]!</big>
 +
<!-- Note: the -10 in the calculation above is to discount subcategories (there are 7 of them as of ~~~~~),
 +
    non-comic pages (2 as of same date: [[List of all comics]] and [[Exoplanet]])
 +
    and the comic 404, which was deliberately not posted. Thus 7 + 2 + 1 = 10 -->
  
(But there are still {{#expr:{{LATESTCOMIC}}-({{PAGESINCAT:Comics}}-3)}} to go. Come and [[List of all comics|add yours]]!)
+
(But there are still {{#expr:{{LATESTCOMIC}}-({{PAGESINCAT:Comics}}-10)}} to go. Come and [[List of all comics|add yours]]!)
 
</center>
 
</center>
  

Revision as of 16:59, 20 November 2012


Welcome to the explain xkcd wiki! We already have Expression error: Unrecognised punctuation character ",". comic explanations!

(But there are still Expression error: Unrecognised punctuation character ",". to go. Come and add yours!)

Latest comic

Go to this comic

Future Self
Maybe I haven't been to Iceland because I'm busy dealing with YOUR crummy code.
Title text: Maybe I haven't been to Iceland because I'm busy dealing with YOUR crummy code.

Explanation

The comic presumably shows part of a computer software file from an old project written by Cueball. The part shown in the comic consists entirely of comments. A number of computer languages, including several popular ones, use "#" to indicate "the remainder of this line is a comment". A comment is a line, or a portion of a line, of code which should not be executed. The comment symbol tells the compiler to skip to the next line, ignoring everything after the symbol. Programmers make use of comments to leave notes about what a particular line or section of code is meant to do, places that require debugging, ideas for future revisions, etc.

These comments were written with apparent foresight by Cueball's "younger self" in anticipation of being read by his "older self" at some point in the future. The language in the comments is similar to how people address themselves in personal time capsules, in which they put letters away to read years later to see how much they've changed.

A "parse function" is code that interprets some form of input and makes sense of it in a way that enables functionality in some other part of the code. Parsers are commonly used to to extract useful information from the text of a web-page that has been "scraped" off the web, or to understand the command-line arguments of a program, or in an interpreter which runs computer code. Parsing can be a difficult problem to solve, and programmers will often take shortcuts based on assumptions on the kinds of input that the parsing function will have to handle. If the programmer does not have control over the input, such as reading a page from someone else's web-site, then any changes to the input syntax in the future can cause the parser to spontaneously break even if the parsing function has not changed. In the case of a web page, the difference may be in the structure of the page and not even visible to someone looking at the page in a web browser, or it could be the result of a "site refresh" where the look and feel of the entire web-site is changed to avoid appearing dated, or the website may no longer exist, or any number of other possible differences.

Programmers often don't spend much time looking at previously written code that is working, so the younger self has made the assumption that the parsing function, which worked at one point in time, has 'failed'. Possibly it was originally kludged together with no expectation that it would handle future changes, since the comments indicate a firm belief that the parsing function could not be easily "re-kludged" to handle the new situation but instead would need to be re-written. This may be because the parsing function was written using regular expressions or in some other write-only language style, where the program is typically created through means of trial-and-error, and it is considered easier to start from scratch than try to determine how the original program worked. Or it could be that the new situation has "mightier" inputs that can not be parsed by regular expressions, for example when a regular grammar is replaced by a context-free grammar.

The parsing function has held up to the younger Cueball's expectations as it has lasted a year past 2013 (comic published in September 2014). So he has correctly judged how external factors would affect the parsing function.

Current-day Cueball feels the need to rhetorically reply to his younger self's commentary, and then notices a forward-looking, mean-spiritted remark that is both prescient and emotionally hard-hitting. Past Cueball has the advantage that it is easy to predict that his future self might not follow through with aspirations or resolutions. But in the title-text current-day Cueball is refusing to accept any blame, preferring to blame someone else (his past self), a form of projection that is very common human behavior.

Transcript

[Cueball is sitting at a laptop, reading code. The two separate parts of code as well as the two comments by Cueball is connected with "speak" lines, with the line from the code going down to the computer screen.]
# Dear Future Self,
#
# You're looking at this file because
# the parse function finally broke.
#
# It's not fixable. You have to rewrite it.
# Sincerely, Past Self
Cueball: Dear Past Self, it's kinda creepy how you do that.
# Also, it's probably at least
# 2013. Did you ever take
# that trip to Iceland?
Cueball: Stop judging me!

New here?

Feel free to 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 xkcd web comic, it should be here.

  • List of all comics contains a complete table of all xkcd comics so far and the corresponding explanations. The red links (like this) are missing explanations. Feel free to help out by creating them!

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 posting such are at risk of being blocked.

If you need assistance from an admin, feel free to leave a message on their personal discussion page. The list of admins is here.

Explain xkcd logo courtesy of User:Alek2407.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal or Bitcoin?