1579: Tech Loops

Explain xkcd: It's 'cause you're dumb.
Revision as of 12:58, 21 September 2015 by 173.245.50.144 (talk) (Explanation: Link to https://en.wikipedia.org/wiki/Repository_(version_control))
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: Missing explanation for each of the items in the list. Also, title text
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 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 part of the comic 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 a traditional joke which can be found on this link.

Here is a list of all the items explained individually:

  • Tool: In this context, a tool is mostly any general purpose computer program. Typical tools are text editors and calendar applications. Randall is presumably spending all his time installing and maintaining tools but never using them for their intended purpose.
  • Updater: An application designed to automatically download and install new versions of an already installed program. Referenced in 1197: All Adobe Updates. The time spent in updating an application can't be used to get productive work from the application.
  • Repository: For programmers a repository is a database where programs are stored. All modifications of the programs are preserved for posterity, in the same way as the Wikipedia View page tab.
  • Library: In this context, a Library (computing) is a part of a computer program which is developed separately, with the idea that the library will be used for more than one program and therefore saving effort, as the library has to be developed only once. Often, programs require specific versions of specific libraries that can or can not be available. A typical example of a library often required and not always available is Microsoft's Framework Class Library, more known as .NET Framework.
  • VM: A Virtual machine is a computer program designed to emulate a complete computer. Probably a reference to 1305: Undocumented Feature, combined with the next item "Chat client".
  • Chat client: an Online chat program, probably a reference to 1305: Undocumented Feature, combined with the previous item "VM".
  • IRC for some reason: Internet Relay Chat.
  • Custom settings: Some programs (and especially web sites) assume a fixed setup in the user's computer. Many web pages even state plainly that they are only intended to work in one single browser with some settings enabled. This is a nuisance for users, and it becames helplessly burdensome when the user must install several programs requiring different settings.
  • Hardware workaround: Sometimes a problem can be solved by hardware changes. Removing TV tuner or telephone modem cards, changing an USB device from one port to another, opening and closing the CD tray, etc. are operations that, in many cases, have led to solving a problem; most of the time with no one knowing exactly why such an operation should or could have any effect in the computer's behavior.
  • Awful hack from 2009: An example of an awful hack can be found in 1479: Troubleshooting. When an awful hacks is necessary, it is often because less awful alternatives do not exist; so awful hacks tend to remain useful for many years. An example can be the 256-caracter limit in the Windows path for a file, which has been inherited from MS-DOS and is still there up to Windows 10 [citation needed].
  • DLL needed by something: Acronym for Dynamic-link library. Although DLL is a term used by Microsoft Windows, all modern operating systems use dynamic libraries, each with its own name. A dynamic library is a part of a program which is not loaded when the program starts, but rather it's attached "dynamically" to the running process when it is needed. This has the advantage that the dynamic library is not loaded at all if it's not needed, and also several processes which need the same dynamic library can share the same copy in memory.
  • Things I actually want to use my computer for:

Other comics about the same concept are 349: Success and 763: Workaround.

Transcript

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

"dll in use by something"... my life in a nutshell An user who has no account yet (talk) 18:47, 5 September 2023 (UTC)