1579: Tech Loops
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.
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.
Description of the boxes
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.
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.
- There are two tools which both are related to the updater and both have one entry and one exit. The first tool has an entry from the most active library (most arrows) and the second has an exit to the VM.
- 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.
- The updater has one entry from a tool, but also exits to another tool. Two other exits goes to the most active library (most arrows) and to the repository which is the only box without exits.
- 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 history tab.
- There are three entries, but this box has no exits. Thus the information stored here never leaves; this means the programs stored in the repository are not used.
- Library: In this context, a library 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.
- There are six libraries. Four of them has one entry and one exit arrow and twice one library exits only to another library. The top left is the most active with two entries and three exits making it the second busiest box in the chart. But most important is the bottom right library that starts everything since this is the only of the interconnected boxes that does not itself have any entry. From this library you can reach all the other connected boxes starting from its only connection: Awful hack from 2009.
- 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".
- It has two entries as it obviously both need a tool and a hardware workaround to function. It exits to the chat client already mentioned.
- Chat client: an Online chat program, probably a reference to 1305: Undocumented Feature, combined with the previous item "VM".
- It has two entries, one from the most active library (most arrows) and one from the already mentioned VM. It exits to the repository which is the only box without exits.
- IRC for some reason: Internet Relay Chat.
- It is connected in a loop (entry and exit) only with Awful hack from 2009.
- 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 becomes helplessly burdensome when the user must install several programs requiring different settings.
- Is connecting two libraries, exiting to the most active library (most arrows).
- 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.
- Has one entry from the most active library (most arrows) and two exits to VM and Awful hack from 2009
- Awful hack from 2009: An example of an awful hack can be found in 1479: Troubleshooting. When an awful hack 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-character limit in the Windows path for a file, which has been inherited from MS-DOS (way, way before 2009) and is still there up to Windows 10.[actual citation needed]
- This is the most busy box with three entries and three exits. It has an entry from the only box that does not it self have any entries, the bottom right library. Another entry is from the Hardware workaround. It also form a simple entry exit loop with IRC for some reason, that box is not connected to any other boxes. And finally it exits to two libraries. One of these leads to the most active library (most arrows). From this hack all connected boxes can be reached, except the library that only has entry into the hack.
- DLL needed by something: 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.
- This box only leads to two question marks, and not to any of the other items. Modern computers have thousands of DLL files, the actual use of which is not often obvious even to tech-savvy people.
- Things I actually want to use my computer for: All the other stuff is thus only there to make it possible to use the computer for these purposes.
- But this box is not in any way related to all the tools libraries etc. mentioned here above. Which are thus in reality not needed at all.
The tech loops
- The flow chart described:
- → 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)
- [A flow chart 18 boxes linked (or not) with arrows going in several different directions. At the top is an arrow pointing to the right with text under. The rest of the text in the chart is written inside the boxes.]
- [Under arrow:]
- [Going from the top below the tip of the arrow and reading left to right and top to bottom the following text is written in the boxes that all are in some way connected with each other. The number of arrows going in and out of each box is noted behind the text in square brackets as [in, out]:]
- Updater [1, 3]
- Tool [1, 1]
- Tool [1, 1]
- Repository [3, 0]
- Library [1, 1]
- Library [2, 3]
- Library [1, 1]
- Chat Client [2, 1]
- VM [2, 1]
- IRC for some reason [1, 1]
- Custom Settings [1, 1]
- Hardware Workaround [1, 2]
- Library [1, 1]
- Awful hack from 2009 [3, 3]
- Library [1, 1]
- Library [0, 1]
- [The last box in the lower middle is not connected to any other boxes but has two exit arrows pointing to two questionmarks.]
- DLL needed by something [0, 2]
- [Box alone at the top right corner, with no connections:]
- Things I actually want to use my computer for [0, 0]
- [Caption below the panel:]
- Every now and then I realize I'm maintaining a huge chain of technology solely to support itself.
- In the first version of this comic is said "soley" instead of "solely" in the caption. This was corrected later on the release day.
add a comment! ⋅ add a topic (use sparingly)! ⋅ refresh comments!