Editing 1764: XKCDE
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 8: | Line 8: | ||
==Explanation== | ==Explanation== | ||
+ | |||
Randall has created a theoretical software environment named XKCDE (a portmanteau on xkcd and {{w|Collaborative development environment|CDE}} (Collaborative Development Environment)), which relies on the user creating a series of nested virtual machines inside each other (creating sort of a digital version of the {{w|Droste effect}}), which would likely cause extreme strain on the resources of the machine running it. This strain is explained in [[676: Abstraction]], at least for the normal case. | Randall has created a theoretical software environment named XKCDE (a portmanteau on xkcd and {{w|Collaborative development environment|CDE}} (Collaborative Development Environment)), which relies on the user creating a series of nested virtual machines inside each other (creating sort of a digital version of the {{w|Droste effect}}), which would likely cause extreme strain on the resources of the machine running it. This strain is explained in [[676: Abstraction]], at least for the normal case. | ||
− | + | Virtual Machines are software which pretend to be PC hardware so that a "guest" operating system can run inside of them, under a "host" operating system. Nesting VMs is the process of making a guest also be a host to yet another guest. Generally this is considered wasteful of resources, especially beyond one or two layers deep, and is not done except in a test lab for very specific purposes. | |
− | + | Randall derives humour from repeating the nesting ''ad absurdum'' in a never-ending fractal of nested VMs, thus trapping the follower of the instruction in a form of [[Nerd Sniping]]: Any external observer, such as your boss, who sees you doing this is likely to fire you for wasting company time (An outcome which is undesirable, though still better than being hit by a truck). | |
− | |||
− | |||
− | + | In 'normal' software development, spinning up a (single, non-nested) VM is a practice to ensure that the development environment is identical between developers, thus minimising hard-to-reproduce bugs due to local machine differences, such as [https://sourceforge.net/p/phpmyadmin/bugs/2343/#0e4a unmatching library versions], [http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html locale settings] or [http://askubuntu.com/questions/202857/cant-install-ati-proprietary-drivers-in-12-10 additional installed or missing software]. | |
+ | The single VM image is shared between all developers, who each spin up their own instance on their personal workstation. | ||
+ | In such cases, spinning up the VM is the first step in bringing up a local development environment, after which additional steps will instruct which programs to open, which configuration settings to change, etc. | ||
− | |||
− | |||
− | |||
− | |||
− | + | A software environment which disables both the machine it runs on and the user that runs it could be thought of as a useless machine. | |
− | + | Someone got [https://pcsteps.com/508-nested-virtualization 4 levels deep] with this. | |
− | |||
− | |||
− | |||
− | + | The title-text is a pun on the words {{w|Tree (data structure)|root and leaf}}, drawing an analogy of cutting down a tree (unplugging the root machine) scattering leaves (the leaf VMs, probably the VMs farthest down). In this case, a literal interpretation would be that turning off the computer the VMs are running on would make all the VMs without any VMs running in them propagate themselves through a network and install themselves on other computers, which at the end of the day would be a very inefficient method of creating a virus.{{Citation needed}} | |
==Transcript== | ==Transcript== | ||
− | + | Installing the xkcd development environment | |
− | + | {| class="wikitable" | |
− | + | | | |
− | + | # Spin up a VM | |
− | + | # Spin up a VM inside that VM | |
+ | # Continue spinning up nested VMs and containers until you get fired | ||
+ | |} | ||
{{comic discussion}} | {{comic discussion}} | ||
− | |||
− |