Editing 2531: Dark Arts

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 8: Line 8:
  
 
==Explanation==
 
==Explanation==
[[White Hat]] has presumably just asked [[Cueball]] to perform some task involving {{w|file system|filesystems}}. Cueball responds with an exceptionally melodramatic monologue, referring to the subject as "dark arts" and stating he'd rather not have anything to do with them. This is reminiscent of a fairly typical scene in fantasy novels, superhero movies, etc: a person with supernatural powers explains they prefer not to use them, as their use is likely to have negative effects that outweigh the positive ones. Often this is tied to a tragic backstory of the character, where the use of their powers previously caused them or someone close to them much suffering.
+
{{incomplete|Created by a V8-BASED EXT4 FUSE DRIVER - Please change this comment when editing this page. Do NOT delete this tag too soon.}}
  
The humor of the comic comes from the parallel drawn; it seems unlikely that knowledge of filesystems could have negative consequences on the scale of, say, leveling a city, so the comparison is hyperbolic. However, much of today's infrastructure does depend on legacy systems that can be very overly complex to work with, having weathered aggressive political conflicts and short corporate deadlines for decades now. An example is the recent shutdown of the pgp keyserver network, or how the developer of the fastest linux filesystem built (reiserfs) was imprisoned for murdering his wife right before it could be merged into linux. Still, this joke is in a similar vein to comics like [[349: Success]], in which Cueball's relationship with technology is shown to have a potential for disaster far exceeding that of a normal person's.
+
In this comic, [[White Hat]] has presumably just asked [[Cueball]] to perform some task involving {{w|file system|filesystems}}. Cueball responds to this request with an extremely melodramatic monologue, referring to knowledge of the subject as "dark arts" and stating he'd rather not have anything to do with them, as they are too dangerous.  
  
A filesystem is the part of a computer's {{w|operating system}} that handles the organization of data in persistent storage, usually splitting it into files and directories. It can be a very complicated piece of software. Because of this, it is easy to make mistakes in advanced usage, and because it controls practically all data on a given machine, mistakes made can have serious consequences (e.g., loss of data). These properties of filesystems are likely why Cueball is reluctant to mess with them.
+
This reaction is reminiscent of a fairly typical scene in e.g. superhero movies, where a person with supernatural powers explains they prefer not to use them, as their use is likely to have negative effects that outweigh the positive ones. Often this is tied to a tragic backstory of the character, where the use of their powers previously caused them or someone close to them much pain and suffering.
 +
 
 +
A filesystem is the part of a computer's {{w|operating system}} that handles the organisation of data in persistent storage, usually splitting it into files and directories. It can be a very complicated piece of software. Because of this, it is very easy to make mistakes when interacting with it outside of the most common operations most users would be familiar with, and because it controls practically all of a user's data on a given machine, mistakes made can have very serious consequences (e.g., loss of data). This is probably why Cueball is reluctant to mess with them.
  
 
{{w|ext4}} is a popular filesystem used with the {{w|Linux}} operating system kernel.  
 
{{w|ext4}} is a popular filesystem used with the {{w|Linux}} operating system kernel.  
  
{{w|hard_link|Hardlinks}} allow two filenames to refer to the same underlying file or directory. These can be particularly tricky to use, as in nearly all respects they look like regular files, but modifying them can have effects that are not immediately obvious (e.g., changing what one filename refers to, the other will not remain consistent). Hardlinks and their misuse have been referenced in xkcd before, as in [[981: Porn Folder]].  
+
{{w|hard_link|Hardlinks}}, allow two filenames to refer to the same underlying file or directory. These can be particularly tricky to use, as in nearly all respects they look like regular files, but modifying them can have effects that are not immediately obvious (e.g., changing what one filename refers to, the other will not remain consistent). Hardlinks and their misuse have been referenced in xkcd before, as in [[981: Porn Folder]].  
  
The title text hints at an experience Cueball or [[Randall]] had (his own "tragic backstory", if you will), involving hardlinks on ext4. He thought he had found an ideal use case for them, one which presumably avoided most of their pitfalls, but still, six months later, ended up having to troubleshoot some inscrutable bug arising from his decision.
+
The title text hints at an experience Cueball or [[Randall]] has had in the past (his own "tragic backstory", if you will), involving hardlinks on ext4. He thought he had found an ideal use case for them, one which presumably avoided most of their pitfalls, but still, 6 months later, ends up having to troubleshoot some inscrutable bug arising from his decision.
  
{{w|Javascript}} is a programming language most often associated with web pages. As such it is not usually interacting directly with a computer's filesystem, since allowing arbitrary websites to access the filesystem is widely considered an extremely bad idea{{citation needed}}. It ''is'' possible to run Javascript directly outside of a browser – in which case it does have access to common filesystem operations, and even theoretically to the internals of the filesystem – but since it is a high-level language with poor support for working with the data structures a filesystem uses, this would be a painful, "cursed" way to go about things.
+
{{w|Javascript}} is a programming language most often associated with web pages. Because of this it is not usually interacting directly with a computer's filesystem, as allowing arbitrary websites to access the filesystem is widely considered an extremely bad idea{{citation needed}}, from a security standpoint. It ''is'' possible to run Javascript directly outside of a browser -- in which case it does have access to common filesystem operations, and even theoretically to the internals of the filesystem -- but since it is a high-level language with poor support for working with the data structures a filesystem uses, this would be a painful, "cursed" way to go about things.
  
A senior IT professional (nowadays fewer people need to know about such features) will be reminded of their own experiences and mishaps with non-trivial file system configurations. Beyond hardlinks, filesystems may have a number of features a normal user or even an admin are not aware of. Such features are prone to bugs, poor documentation, or poor integration with other system tools.
+
An experienced IT professional will be reminded of their own experiences and mishaps with non trivial file system configurations. Beyond hardlinks, fileystems may have a number of features a normal user or even an admin are not aware of. Such features are prone to bugs, poor documentation or poor integration with other system tools.
 
For example:
 
For example:
 
* {{w|Symbolic link|Symbolic links}} (soft links) - one file links to another using its name.  While symbolic links work "everywhere," hardlinks are generally limited.
 
* {{w|Symbolic link|Symbolic links}} (soft links) - one file links to another using its name.  While symbolic links work "everywhere," hardlinks are generally limited.
* Compressed filesystems can cause unexpected side effects in performance, quota management, and disk fragmentation.
+
* Compressed filesystems can cause unexpected side effects in performance, quota management and disk fragmentation.
 
* Sparse files and shallow copies (copy on demand).  
 
* Sparse files and shallow copies (copy on demand).  
 
* Live filesystem backup and file locking.
 
* Live filesystem backup and file locking.
* Read-only filesystems.
+
* Read only filesystems.
* 'Virtual' filesystems, like memory-backed and file-backed file systems, backed by dynamic data or databases.
+
* 'Virtual' filesystems, like memory backed and file backed file systems, backed by dynamic data or databases.
* 'Overlay' file systems where a read-only portion is overlaid and partially shadowed by another file system.
+
* 'Overlay' file systems where a read only portion is overlayed and partially shadowed by another file system.
 
* File caching for read or write operation.
 
* File caching for read or write operation.
 
* Syncing file systems.
 
* Syncing file systems.
 
* Many, many more.
 
* Many, many more.
  
"In another age" might refer to the fact that detailed file system manipulations were common in the days when developers were installing, configuring and managing operating systems and software on physical servers. When disk space was limited and network speeds were low, such manipulations saved space and time. Virtualization, containerization and deployment frameworks isolate developers and administrators from such low level details.
+
"In another age" might refer to the fact that these kinds of detailed manipulations (and forgetting about them six months later) were common in the days before containers, immutable server pattern, serverless, etc. In fact, one of the goals of these more modern deployment methods is to AVOID this kind of detailed maintenance. Today, for example, the exact structure of a Docker image can be determined by looking at the Dockerfile. Even configuration tools like Chef and Ansible help, because they provide Infrastructure as Code and you can look at the code to see what kinds of manipulations need to be done (vs. forgetting that time way back when that you did them manually).
  
 
==Transcript==
 
==Transcript==
:[Cueball and White Hat stand in a slightly darkened room, with a jagged circle of light centered on Cueball and light-reflecting onto White Hat's face. Cueball holds his arm out with his palm facing towards White Hat.]
+
:[Cueball and White Hat stand in a slightly darkened room, with a jagged circle of light centered on Cueball emanating from the floor and light reflecting onto White Hat's face. Cueball holds his arm out with his palm facing towards White Hat.]
 
:Cueball: Long ago, in another age, I mastered these dark arts.
 
:Cueball: Long ago, in another age, I mastered these dark arts.
 
:Cueball: But I now endeavor to live my life such that I never need them.
 
:Cueball: But I now endeavor to live my life such that I never need them.
Line 49: Line 51:
 
[[Category: Comics featuring White Hat]]
 
[[Category: Comics featuring White Hat]]
 
[[Category: Computers]]
 
[[Category: Computers]]
[[Category:Comics with cursed items]] <!-- Google search-term in title text -->
 

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)