The comic is about how much time a geek might spend on a computer just to maintain the system itself, rather than actually using it for something relevant. This can in the worst cases go all the way up to the point where maintaining the system becomes the main goal. Often the operating system (OS) needs periodic updates, which might break some apps which in turn need to be updated; apps themselves might need to be updated, which can create all sort of incompatibilities which the geek then needs to spend time fixing. One term for this is "dependency hell".
Most people consider computers as tools to achieve something else — e.g. to surf the web, play games, read news or balance their bank account — and they would rather not have to spend lots of time on maintaining the OS or the computer if they can avoid it.
Here, however, Randall finds he's spending most of the time using his computer just for the sake of maintaining the OS or the hardware on said computer. It's tools for the sake of tooling, rather than tools as helpers to build something else.
A hardware equivalent would be the RepRap Project: get a 3D printer and end up spending all the time printing 3D parts for itself instead of creating something else like toys or art.
An alternative interpretation is how a simple task can get maddeningly tricky because of the inherent complexity of the system. An example of this appears in 949: File Transfer, where the simple task of sending a file from one computer to another gets practically impossible despite having all kinds of cloud tools available, many of them designed to perform much more complex tasks with one simple click. In this view, the box labeled "things I actually want to use my computer for" could refer to simple actions like transferring a file and all the rest of the graph are unsuccessful tiring attempts to solve the problem by installing increasingly complex tools which end up not solving the simple problem properly. This is similar to this traditional programming joke.
In the title text Randall realizes that what he really wishes to do it often only to learn about and discussing new tools to improve the chain. So in this way it is for sure only a system to support itself. But on the other hand, then the box with things he actually wishes to use the computer for, is then not disconnected from the rest, but an integral part of it all.
There are 18 boxes in the chart, but only 12 different texts. 16 of the boxes are interconnected. Two are not connected to any other boxes.
RANDALL, WHY DID YOU GIVE ME AN EXISTENIAL CRISIS?! 173.245.54.113 10:49, 18 September 2015 (UTC)
There are only three loops; "Awful hack from 2009" and "IRC for some reason" forms one, "Tool" → "Updater" → "Library" → "Tool" is the second, and there's a long one from "Awful hack from 2009" → "Library" → "Library" → "Custom settings" → "Library" → "Hardware workaround" → "Awful hack from 2009". Any other path not from "DLL needed by something" ends at "Repository". 108.162.237.193 04:35, 18 September 2015 (UTC)
- I think the fact that "Repository" ends to be a sink (only entering connections) is a mistake - all other have at least one entry and at least one exit --JakubNarebski (talk) 07:24, 18 September 2015 (UTC)
- No, I think that makes sense. A repository is where something is stored. If it's in use by something, it's not a repository. Of course, I'm thinking that repository means something like "USB Hard Drive", so I might be wrong. 108.162.249.187 09:12, 18 September 2015 (UTC)
- I agree to this. A repository is a perfect location for "dumping" things where they never come back Elektrizikekswerk (talk) 09:31, 18 September 2015 (UTC)
- I interpreted it to mean that the repository hosts the things it is dependent on, using the things it is dependent on, making the loop conceptual. The code that is hosted in the repository is only ultimately required because of the need for the repository to host thing code that the repository runs on. 141.101.98.187 11:19, 18 September 2015 (UTC)
- I agree to this. A repository is a perfect location for "dumping" things where they never come back Elektrizikekswerk (talk) 09:31, 18 September 2015 (UTC)
- The library at the bottom right does not have any entry, so there is also a start! So one that only has exits and one that only has entries! No error there I also think!--Kynde (talk) 14:33, 21 September 2015 (UTC)
- No, I think that makes sense. A repository is where something is stored. If it's in use by something, it's not a repository. Of course, I'm thinking that repository means something like "USB Hard Drive", so I might be wrong. 108.162.249.187 09:12, 18 September 2015 (UTC)
Doesn't Buddha sais "The Path is the Goal"? Just because what you are doing is on path which seems to go nowhere doesn't mean the path is not worth it. Did you saw any tourist complaining that the trek he's on is supposed to end on the same place it started? -- Hkmaly (talk) 12:07, 18 September 2015 (UTC)
Does it bother anyone else that he wrote "soley" or am I missing something? 108.162.216.40 (talk) (please sign your comments with ~~~~)
- It also bothers John and Nancy, but it doesn't bother me because he was obviously talking about doing it by means of a fish.-boB (talk)
- The image is corrected [1]. 173.245.50.154 13:40, 21 September 2015 (UTC)
When I see this comic I think its less about "how tech people find complicated solutions to things" and more about how as time goes on they end up with increasingly complex workarounds to get old stuff to work. Like in https://xkcd.com/1305/ they wanted to use the chat group, but for that they needed the VM, but according to this comic they need hardware workaround for that, which needs a library to work, which needs custom settings, which needs a library, etc.... Thoughts? -- Pyrolo (talk) (please sign your comments with ~~~~)
I don't get the current "explanation" at all which goes off on a seemingly off-topic tangent on Android programming (not to mention that I don't agree that gps-based apps to find nearby gas stations are the typical introductory apps source code one might find.)From the design of the xkcd panel, it's obviously targeted at a Windows desktop computer rather than Android, given the mention of DLLs. You could trivially substitute DLL by "shared library" (aka ".so") and make it a Linux or other Unix-compatible system, which combined with Windows would cover 99.99% of existing desktop systems. And of course a reference to 349 shall be made when it comes to hardware workarounds.Given this context, the comic is more about how much of the time one might spend on a computer as a geek tends to be in maintaining the system itself rather using it, up to the point where maintaining the system becomes the main goal. Most people consider computers as tools to achieve something else -- e.g. to write a book or balance their bank account; however here Randall is using his computer just for the sake of maintaining the OS or the hardware on said computer. It's tools for the sake of tooling, rather than tools as helpers to build something else. If somebody knows how to express that more fluently, please do so.
- A hardware equivalent would be reprap: get a 3d printer and end up spending all the time printing 3d parts for the printer instead of creating something else like toys or art.
- I've modified the explanation with a variation of this; I've left the original explanation in place since maybe there's some value in it. Please edit as you see fit. Ralfoide (talk) 14:53, 18 September 2015 (UTC)
- Actually, for many MIT students it is tools for the sake of tooling. Okay, that was a terrible pun that most people won't get. --198.41.235.155 05:56, 9 November 2015 (UTC)
A great deal of all that we do, as individuals, and as a society, directly or indirectly maintains our ability to do so.Such a tiny sliver of our lives is "unproductive", but that's literally the only reason we do any of the "productive" parts of life.The only things really worth doing are the things there is no real reason for doing.Does that make sense? Benjaminikuta (talk) 18:07, 18 September 2015 (UTC)
- Yes, it's called overhead. 188.114.97.30 13:59, 26 January 2016 (UTC)
In a broader sense, one might even say that the basic human desire to socialise is evolutionarily advantageous, serving the purpose of continuing the species. In that broad sense, everything that we do is merely "maintaining a huge chain of technology solely to support itself". Reminds me of https://xkcd.com/59/. It's easy to forget why we do things in life. Benjaminikuta (talk) 18:14, 18 September 2015 (UTC)
Forget about official "tech people," even godforsaken ordinary users spend way too much time wrestling with this stuff. I myself always quail when I see a .dll in the distance. It has never ended well for me.NoniMausa (talk) 01:08, 19 September 2015 (UTC)
Sometimes you eat too much dogfood. If you write a toolkit, and then find you need to write a buildsystem (or other infrastructure) and at some point find your buildsystem using the toolkit, you are probably doing something wrong. Note the exception of writing an IDE in your toolkit, for your toolkit, is not only okay, it is doing it wring.162.158.90.235 10:45, 19 September 2015 (UTC)
I'm the author of the original explanation (that about Android things). It looked good to me at that time (mostly justified by the "things I actually want to do with my computer" bit), however the "new" explanation by Ralfoide looks much better now, so probably mine should be just deleted (I'm not doing just that right now because I lack the time to search for useful bits to keep, if any). By the way, the Android story actually happened to a friend of mine just as told.:) 108.162.229.183 21:54, 19 September 2015 (UTC)
This is me again from another IP. I changed the wording of my original explanation and changed the Android stuff to a reference to comic 949. Now I feel like the first explanation was awfully worded and this one says about the same thing but fits much better. Or something 108.162.229.236 10:21, 21 September 2015 (UTC)
The current explanation is wrong. The joke is that there are a lot of running components in Randall's computer (services, daemons, applications...) whose only purpose is to enable the execution of the other components in the loop. In other words, performing busywork, which is a waste of computer resources. The chain probably started when Randall wanted to test a new software in Linux, that is known to have a nightmarish package system based on dependencies, so he had to install a lot of libraries and perform some ugly hacks to get the software working, which in turn required other packages to be installed and tweaked. At one point, one of the packages or hacks had a circular dependency with the original software and created a loop. By then, Randall had already forgotten why he wanted to use that software in the first place, and now he only uses it to keep the rest of the loop running. 141.101.99.108 10:41, 21 September 2015 (UTC)
- The footer begins "Every now and then", so this is not about a single event. Also, the "DLL" part does not match this being Linux-specific. 108.162.229.236 11:23, 21 September 2015 (UTC)
- Yeah, this is not the first time he accidentally created a self-sustained loop, but it probably always happen for the same reason. It's pretty clear to me that the strip refers to a linux system because its software distribution philosophy is literally a mess, unlike every other system whose applications are self-contained in one neat file with no other dependencies. To support my point, note how the DLL files are conveniently NOT part of the loop; this is what makes them hilarious and what's baffling Randall: he has no idea about which component is relying on them because they do not belong in a Linux system. In any case, the fact that there is a (probably windows) VM running in the mix, plus an Irc client, points to the loop being multi-system wide, so that is a botch of epic proportions. 141.101.99.108 14:47, 21 September 2015 (UTC)
The isolated 'mystery DLL dependency' reminds me of the Programmable Gate Array evolution experiment where an interesting solution to a problem created an efficient but highly unintuitive circuit 'design' within it that contained a segment that was not actually connected to anything else but performed a vital function (removing the isolated elements from the 'design' produced a non-working circuit, as would 'attaching' it, even neutrally, to the surroundings), though not by any method that the design and specification would make obvious. Here is one possible telling of the tale, although it doesn't exactly match the one that I recall. Look at the paragraph immediately under the "Evolving Complexity" heading for this version, however. (Or in the paragraph immediately under the "Tron kiss" picture in this other article, that I also found.) 141.101.99.12 22:12, 21 September 2015 (UTC)
I want that hour of my time back from following the ridiculous link to the RepRap Project! Do we really need to waste every one else's time too? --Ianrbibtitlht (talk) 05:29, 4 June 2017 (UTC)
"dll in use by something"... my life in a nutshell An user who has no account yet (talk) 18:47, 5 September 2023 (UTC)