Editing 1636: XKCD Stack

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 32: Line 32:
 
:{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes used as a database system (rarely a good choice).
 
:{{w|MongoDB}} is a modern {{w|NoSQL}} {{w|Database|database}} system, {{w|Microsoft Excel}} is a {{w|Spreadsheet|spreadsheet}} program from Microsoft, which is sometimes used as a database system (rarely a good choice).
 
;Some piece that works so nobody asks any questions
 
;Some piece that works so nobody asks any questions
:Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|bugs}}. With complex software, this is a long and tiring process, so when the product is finally finished no one dares to modify it any further for fear that it will fail in unexpected ways. After some time passes, it is even worse because nobody really remembers how the software was ''supposed'' to work, so the product becomes some kind of godlike treasure which must be treated with the utmost respect and reverence because, you know, if it stops working we're all doomed ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favor of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.
+
:Writing any non-trivial piece of software always require a phase of {{w|debugging}}, which consists in finding and fixing {{w|Software bug|bugs}}. With complex software, this is a long and tiring process, so when the product is finally finished no one dares to modify it any further for fear that it will fail in unexpected ways. After some time passes, it is even worse because nobody really remembers how the software was ''supposed'' to work, so the product becomes some kind of godlike treasure which must be treated with the utmost respect and reverence because, you know, if it stops working we're all doomed ([[1421: Future Self]]). After completion, {{w|Refactoring}} is the process of rewriting code for greater efficiency or reliability. However, if the performance is not 'too bad' (i.e. not unusably terrible in normal use) there is a great temptation to avoid this, in favour of the 'if it ain't broke, don't fix it' methodology. This could lead, for example, to a trained monkey and an abacus being used to crunch numbers. It works, but could be done far better. However, nobody wishes to change it, for fear of breaking a presently functional, if inefficient, system.
 
;Triply-Nested Docker
 
;Triply-Nested Docker
 
:{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare.
 
:{{w|Docker (software)|Docker}} is a {{w|Operating-system-level virtualization|software container}}, which is a way that allows a complete operating system to run under different operating system (OS) (as long they share the same kernel, among other things). Triply-nested docker would mean OS A running under OS B running under OS C running under OS D (running under OS E?). That would likely be a performance and management nightmare.
Line 38: Line 38:
 
:This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused it to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary to {{w|full virtualization}}, on which the guest operating system is not required to do anything special and the host handles everything.
 
:This is a reference to the {{w|Virtual Boy}}, a failed portable console created by {{w|Nintendo}}. It was [https://www.youtube.com/watch?v=MKKK6FH1vGw promoted as being a highly immersive, incredible experience], but the poor technology that it used caused it to be [https://youtu.be/OyVAp0tOk5A?t=56s very criticized] for not meeting the high expectations. {{w|Paravirtualization}} is a way of virtualization, that requires cooperation of the guest operating system, contrary to {{w|full virtualization}}, on which the guest operating system is not required to do anything special and the host handles everything.
 
;A dev typing real fast
 
;A dev typing real fast
:A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. It looks like the XKCD Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing. If this is the case, then it's possible that almost none of the other layers of the stack actually do anything.
+
:A dev is a {{w|Software developer|software developer}}. This is possibly a reference to [[341: 1337: Part 1]], where [[Mrs. Roberts]] edits the {{w|Transmission Control Protocol|TCP}} stream live while wearing oven mitts and baking cookies. It looks like the xkcd Webserver is not a computer after all -- we have a person manually replying to HTTP protocol queries. Such a  feat would indeed require real fast typing. If this is the case, then it's possible that almost none of the other layers of the stack actually do anything.
 
;Older version of our software
 
;Older version of our software
 
:People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing everything with less features and circumventing old bugs. They don't know how to use the new features, which of course come with new bugs they haven't learned how to circumvent yet. It is also often the case that newer versions remove weird unused old features, breaking the workflow of users who actually did use such features and are left without a suitable replacement ([[1172: Workflow]]). Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the "older version" software Microsoft DOS until Windows NT. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.
 
:People are often reluctant to switch to newer versions of software because, even though newer versions are supposed to have more features and fewer bugs, they end up confusing users. Users of older versions are used to doing everything with less features and circumventing old bugs. They don't know how to use the new features, which of course come with new bugs they haven't learned how to circumvent yet. It is also often the case that newer versions remove weird unused old features, breaking the workflow of users who actually did use such features and are left without a suitable replacement ([[1172: Workflow]]). Alternately, since higher parts of a stack are dependent on lower parts, this could also be a reference to how the consumer versions of Microsoft Windows (3.x, 95, 98, and ME) ran on the "older version" software Microsoft DOS until Windows NT. Paired with the previous layer, it could instead mean that the human is merely retyping the output of the older version.

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)