Explain xkcd: It's 'cause you're dumb.
Welcome to the explain xkcd wiki!
We already have 11 comic explanations!
(But there are still 1683 to go. Come and add yours!)
Go to this comic
Title text: There's also a unicode-handling bug in the URL request library, and we're storing the passwords unsalted ... so if we salt them with emoji, we can close three issues at once!
|| This explanation may be incomplete or incorrect: What is a resolvable URL? what is salting of passwords? Explain why the three issues can be closed with emoji salting|
Cueball asks if an off-panel character can look at his bug report. The person asks if it's a "normal one" and not a "horrifying" one which "proves that the whole project is broken beyond repair and should be burnt to the ground". This implies that there have been reports of the "horrifying" variety in the past.
Cueball promises that it is a normal one but it turns out that the server crashes when a user's password is a resolvable URL, which implies that the server is in some way attempting to resolve passwords as if they were URLs. A resolvable URL is one that is syntactically correct and in particular includes a valid IP address or name, for instance "www.explainxkcd.com", in the <server-name> field; some might claim that it should also have a <path> field that is recognised by the server.
There is no reason for the code that processes passwords to attempt to resolve the input string as a URL, so any bug provoked by such input suggests a fundamental error in the way the server handles passwords. Realizing this, the off-panel person resigns and decides that burning the project to the ground is the only solution, telling Cueball I'll get the lighter fluid.
In the title text another two issues with Cueballs program are mentioned together with a possible solution that would fix all three problems at once. The second problem is unicode-handling bug in the URL request library, and the third is that the passwords are stored unsalted. Salting passwords increases security by adding random data to the passwords which primarily helps defend against dictionary attacks.
The proposed solution is to salt the passwords with emoji, which is claimed to solve all three issues at once.
When the passwords are salted with emoji, the URL request library will fail to resolve any (salted) passwords due to its lack of unicode support. Since the server only crashes on resolvable URls, this should mean the server won't crash anymore. In addition, the passwords will now be salted. But it is not clear how this solves the issue with the unicode-handling bug in the URL request library. As it rather seems to use this bug to resolve the one mentioned in the main comic.
Given that this comic comes only five comics after 1695: Code Quality 2 is seems likely that the off-panel person is Ponytail and as could be seen in the first of those two comics, 1513: Code Quality, the perpetrator is indeed Cueball. In the title text of this first one, using emoji in variable names is mentioned.
In 1349: Shouldn't Be Hard Cueball is also programming and finding it very difficult in-spite that he thinks is should be easy. An off-panel person suggest burning the computer down with a blowtorch much like the off-panel person in this one suggest burning the whole project (including the computer) to the ground with lighter fluid. In the very next comic, the multi storyline 1350: Lorenz, one story line results in a computer being burned with a blow torch.
- [Cueball sits at his desk in front of his computer leaning back and turning away from it to speak to a person off-panel.]
- Cueball: Can you take a look at the bug I just opened?
- Off-panel voice: Uh oh.
- [Zoom out and pan to show only Cueball sitting on his chair facing away from the computer, which is now off-panel. The person speaking to him is still of panel even though this panel is much broader.]
- Off-panel voice: Is this a normal bug, or one of those horrifying ones that prove your whole project is broken beyond repair and should be burned to the ground?
- [Zoom in on Cueballs head and upper torso.]
- Cueball: It's a normal one this time, I promise.
- Off-panel voice: OK, what's the bug?
- [Back to a view similar to the first panel where Cueball has turned towards the computer and points at the screen with one hand.]
- Cueball: The server crashes if a user's password is a resolvable URL.
- Off-panel voice: I'll get the lighter fluid.
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!
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.