1579: Tech Loops

Explain xkcd: It's 'cause you're dumb.
Revision as of 10:08, 20 September 2015 by 141.101.99.42 (talk) (Transcript: A couple of clarifications; More needed?)
Jump to: navigation, search
Tech Loops
And when I think about it, a lot of "things I want to do" are just learning about and discussing new tools for tinkering with the chain.
Title text: And when I think about it, a lot of "things I want to do" are just learning about and discussing new tools for tinkering with the chain.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Now two different explanations. Should be merged/deleted. What is really missing is a list of all items in the comic, and what they mean, both in general, and in the context of the place in the comic, as when there are several libaries... Does it mean different things?
If you can address this issue, please edit the page! Thanks.

The comic is 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. Often the operating system 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 one then needs to spend time fixing.

Most people consider computers as tools to achieve something else -- e.g. to surf the web, read news or balance their bank account -- and they rather not have to maintain the OS or the computer if they can avoid it. However here 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 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.

The perils of hardware updates have been shown in 349: Success

(previous explanation below, somebody please edit and reconcile if you find both points of view interesting.)

This comic is about how technically oriented people find more and more complex tools to solve simple problems, which is frustrating.

Usually, people who have used computers in the 1980s and 1990s feel that current tools are very powerful, but aimed at the wrong targets. A real life example of this can be someone who finds the Android keyboard lacks non-English characters, so this person thinks about programming a new keyboard app adding a few keys for characters used often in another language. This user tries to find simple example of Android programs to start learning the basics, and finds surprisingly that the "simple" application in Android is one that finds the GPS coordinates of the current position, searches for nearby gas stations and presents the user with a map for those gas stations. This would be considered really, really difficult for traditional programming, especially if compared to the relatively simple task of presenting a keyboard on screen. One of the sections of the loop, where "VM" (virtual machine) and "Chat Client" are listed is likely a reference to the virtual machines that are used to run an old operation system to acces a chat room in 1305: Undocumented Feature.

So, in the comic Randall finds that the things he wishes to do with his computer (maybe presenting a simple keyboard on screen or performing some simple calculations) can't be done easily, however there are plenty of libraries and tools for other, much more complex, tasks, which in some cases could be related to what he is trying to do but in any event are far too complex to learn and not well suited for the simple goal in his mind.

This is similar to a traditional joke which can be found on this link.

Transcript

Ambox notice.png This transcript is incomplete. Please help editing it! Thanks.
[A flow chart]
→ means supports (key)

Things I actually want to use my computer for [isolated box with no links into or out of, by any of the following]
DLL needed by something → ? [two exits to unknowns]
Library (1) → Awful hack from 2009 →
Awful hack from 2009 → IRC for some reason → Awful hack from 2009 → (Loop)
Awful hack from 2009 → Library (2) → Library (3) → Repository
Awful hack from 2009 → Library (4) → Library (5) → Custom Settings → Library (6) →
Library (6) → Chat Client → Repository
Library (6) → Hardware Workaround →
Hardware Workaround → VM → Chat Client → Repository
Hardware Workaround → Awful hack from 2009 → (Loop)
Library (6) → Tool (1) → Updater →
Updater → Repository
Updater → Library (6) → (Loop)
Updater → Tool (2) → VM → Chat Client → Repository
(Note the Repository node leads to nowhere)
comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

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)
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)

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)