1421: Future Self
Future Self |
Title text: Maybe I haven't been to Iceland because I'm busy dealing with YOUR crummy code. |
Explanation
This explanation may be incomplete or incorrect: First attempt at explanation, taking over from the Bot, but probably debatable. If you can address this issue, please edit the page! Thanks. |
The comic shows presumably a segment of a code transcript from an old project of Cueball's, this part entirely consisting of comments (a number of computer languages, including several popular dialects, use "#" to indicate "the remainder of this line is a comment") written with apparent foresight by the Cueball's 'younger self' in anticipation of being read by his 'older self' at some point in the future.
A "parse function" might well be some code that interprets some form of input (e.g. the text of a web-page that has been 'scraped' by another part of the code) and makes sense of it in a way that enables functionality in some other part of the code. For some reason this has now failed. A likely explanation in the example case being that source web-site has revamped its pages and information display method, whether or not this is noticable by the human reader who only reads the page as rendered the browser and not the underlying code.
Certainly, that the parser has 'failed' indicates that it worked once but possibly it was kludged together with no expectation that it would handle expected future changes and a firm belief that those changes could not be easily 'rekludged' to handle the new situation but instead a proper re-write of the code needs to be done. However, it seems to have lasted one year more than expected, by the younger Cueball. This is probably more down to external factors (lazy web-site maintainers), however.
Older cueball feels the need to retorically reply to his younger self's commentary, only to find a further foreward-looking snark that is both prescient and obviously emotionally hard-hitting. The title-text is a further come-back by the older-self, who lays the blame back upon the historic Cueball persona.
Some people write letters to "future self", which they put away and read years later to see how much they've changed. In this comic, the letter wasn't written for entertainment purposes, but rather it is a comment in source code file in which Cueball of the past admitted he did a horrible job writing a parsing routine, and knew that somewhere in the future, he would have to go back to this code and fix some bug that wasn't the problem back then, but it turned out to be now. He knew that the code will be very hard to fix and left the letter as a reminder to not try to fix it and rewrite it from scratch instead. Cueball of the present, shown on the comic, is absolutely bewildered how accurate the note he left years ago is.
Transcript
This transcript is incomplete. Please help editing it! Thanks. |
- # 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!
Discussion
# Dear Future Editor
# As author of the first explanation, I know of what I write. Perhaps minus the snarky code-commenting.
# But I've a feeling there's a better way of writing it, and possibly a different context that I've missed.
#
# ...so over to you.141.101.99.7 08:20, 15 September 2014 (UTC)
The last paragraph was written with assumption no other content is here yet (because there wasn't) - can someone incorporate it correctly with the rest, please? 141.101.89.217 08:19, 15 September 2014 (UTC)
- (Dealing with edit conflict) Let me check what you mean. 141.101.99.7 08:20, 15 September 2014 (UTC)
- Ahah! Yes, we were both dealing with edit conflicts, only in different orders (me in here, you in the main article). I think I'm going to let a third party resolve the explanation, it'd probably be best.141.101.99.7 08:23, 15 September 2014 (UTC)
- aaaand dodged by yet another editor 108.162.249.206 08:47, 15 September 2014 (UTC)
I'm not sure I totally agree with the sentence: "The parsing function seems to have lasted one year longer than expected by the younger Cueball." Younger Cueball expected that the parsing function would fail on or after 2013, which is pretty accurate if it failed in 2014. Djbrasier (talk) 14:22, 15 September 2014 (UTC)
- "It's at least 2013" parsed to me as "this will certainly work until part-way through 2013", so the fact that the message in a bottle is uncovered in 2014 says a year longer than worst expectations. OTOH, an alternate interpretation would be "this can't fail before 2013". Maybe, just maybe, Past Cueball (and we don't know how long ago Past Cueball wrote this) is smart enough to say that, so... Who knows.
- (Also, related to what @Artyer below says, I've reconsidered my ideas about this. Maybe Past Cueball is actually just going "I wonder what it was like in Iceland?", but of course Present Cueball has a guilty conscience about this never coming to pass and takes the innocent comment badly. And I'm also seeing a lot of cynicism about Regexps... Using regexps is usually the best way to allow easy 'rekludging'. Indeed, import pattern-strings from a plain-text flatfile, branching options with and the like with sufficient power from an external flat-file and you needn't touch the code at all, just modift the associated "config file". Again, this is something I've done, for frequently permutating sources. But, even without, with access to the source code hard-coded regexps aren't necessarily the disaster.) 141.101.99.7 20:16, 15 September 2014 (UTC)
- This is almost mirroring the talk on the wikipedia page for write-only languages, but while *any* language can be written in a maintainable fashion, there are some situations where a quick result is the goal, and there are some languages/features that are amenable to that goal. The bad rap that scripting languages get for maintainability is almost certainly due more to the nature of problems that scripting languages are used to solve (and the time constraints in which they are written) than to the nature of the language itself. Finally, it's arguably better to spend a day writing a parser, then a day every year re-writing the parser because it broke, than a week writing the parser *properly*, then an hour a year updating the parser's config. Of course, YMMV. The description probably doesn't need any specific languages mentioned, but I think the reference to write-only code is relevant. 108.162.249.206 01:52, 16 September 2014 (UTC)
- agreed - "write-only" is relevant. Regex is easily as prone to being effectively write-only as JavaScript or PHP - once you can read the syntax quickly, it's far more readable and maintainable (just like JavaScript or PHP. There is nothing INHERENTLY write-only about regex -- Brettpeirce (talk) 17:35, 16 September 2014 (UTC)
- This is almost mirroring the talk on the wikipedia page for write-only languages, but while *any* language can be written in a maintainable fashion, there are some situations where a quick result is the goal, and there are some languages/features that are amenable to that goal. The bad rap that scripting languages get for maintainability is almost certainly due more to the nature of problems that scripting languages are used to solve (and the time constraints in which they are written) than to the nature of the language itself. Finally, it's arguably better to spend a day writing a parser, then a day every year re-writing the parser because it broke, than a week writing the parser *properly*, then an hour a year updating the parser's config. Of course, YMMV. The description probably doesn't need any specific languages mentioned, but I think the reference to write-only code is relevant. 108.162.249.206 01:52, 16 September 2014 (UTC)
There's nothng wrtten about the trip to Iceland that cueball was plannng to go on (procrastination caused him not to). Maybe something like "in this case, it was that cueball knew he wouldn't go on the trip he planned" but I rewrote it like 5 times, and it didn't work. —Artyer (talk) 16:45, 15 September 2014 (UTC)
I think the sentence about context free and regular grammars over-interpretates this a bit. First of all, there are many regex engines which support back-references, thus allowing more than regular grammars; second of all, a "kludged" parser very often assumes that the input is grammatically correct and just wants to extract the required information. --108.162.254.32 17:01, 15 September 2014 (UTC)
- Agreed, and as I mentioned above maybe it's worth removing mention of regular expressions at all. There's nothing in the comic to suggest that the parse function would be using a single language or feature, so there's no reason to suggest Cueball would be using regular expressions without any kind of wrapping script. 108.162.249.206 01:56, 16 September 2014 (UTC)
- There's nothing to prove any particular language, but regex uses EXACTLY that character to denote comments, is by its nature a PARSING language (whether for validation, extraction, or mutation), and is WELL KNOWN for being written with little regard to readability only to be compressed even more to a nearly-impossible-to-read-string and shoved in somewhere without the slightest context to help someone finding it to understand what the heck it is. So I would say there is "something" in the comic to suggest the use of regex. -- Brettpeirce (talk) 17:36, 16 September 2014 (UTC)
The first 'h' is backwards in the line " The parse function finally broke" 20:18, 15 September 2014 (UTC)
- It appears to be a capital-H (not technically chiral, unlike a small-h), to match the capitality of the long-standing standard of XKCD writing and the rest of the writing on this comic, but somehow obscured/over-smeared by the preceding "T". Image editing error, of some kind? Other characters' anti-aliased fringes quite happily run into their neighbours without similar artefacts. See the "TU" out of the first line's "FUTURE". On the other hand, the effect repeats in the "THAT" at the end of the "DEAR PAST SELF" text, except with a token two-pixel 'riser' remaining in this case. See also "# THAT TRIP TO ICELAND?" at the end and "THIS FILE" near the beginning. A style element?
- And to address the Incomplete-Tag's current question about the word "snark", please change it if you don't like it or know what that means (I suppose I'd say "snide and sarcastic" would be a good 'back portmanteau' explanation as to its intended usage). 141.101.99.7 20:43, 15 September 2014 (UTC)
- Alright... who's gonna start the Backmanteau wikipedia page? -- Brettpeirce (talk) 17:49, 16 September 2014 (UTC)
- The "TH" being run together may be Randall doing a manual kerning of some kind. --RenniePet (talk) 12:22, 16 September 2014 (UTC)
Does anybody else see a Walter Mitty (movie version obviously, which I thought was a great homage) reference with the trip to Iceland question? I read it as, "did you ever get a life and go out and see the world or have you spent the last X years still just coding, instead of fulfilling some dreams?" 108.162.242.18 03:33, 20 September 2014 (UTC) dgebel
There could also be an intended reference here to Ray Bradbury's short story "Night Call, Collect" in which an old man in a deserted Martian town begins receiving harassing phone calls recorded by his much younger self. 108.162.245.58 (talk) (please sign your comments with ~~~~)
- It probably isn't a reference to anything except the general concept of leaving messages for your future self (that said I was mostly reminded of Karkat from Homestuck, who spends a significant portion of his narrative having screaming matches with his past and future selves...) -Pennpenn 108.162.250.162 01:45, 22 June 2015 (UTC)
- Glad to see I wasn't the only one to have this thought. It just totally clicks. 162.158.63.166 23:19, 21 September 2019 (UTC)
print "in some languages it's '//'"
oh wait i gotta stop messing around with that one project xd An user who has no account yet (talk) 02:36, 6 September 2023 (UTC)