Wiki Side Effects

Side effects get a bad rap. The presumption seems to be that they are always deleterious, that they are, at best, something to be tamed or controlled. Notice that pharmacology can reasonably, though uncharitably, be thought of as the self-generating art and science of begetting and treating side effects, as simultaneously solving the bootstrapping problem and discovering a business model predicated on genesis and eradication.

Even when side effects aren't pathological, they typically remain unwanted. People charged with getting computer programs and systems to behave in particular ways worry over unexpected side effects cropping up, since predictability is paramount and future contexts unknown. And no one, but no one, likes a dodgy computer.

Sometimes, however, a side effect is simply a bonus and a boon, a novel and welcome outcome.[1] The trick is generating them reliably, that is, systematically, without changing goals or otherwise altering course. website
On Purpose, On a Wiki recently manifested a side effect in the form of a long, properly formatted list of links to 128 philosophy Ph.D. programs.[2] The list both "just happened" and was directly caused, which is to say: it is a side effect. The cause was a recipe of sorts, a quasi-system, the outline of which is this:

  1. Use plain text files
  2. Make them long so that there are fewer of them
  3. Standardize formatting
  4. Keep access open

The basic ethos is: don't reinvent the wheel. Or, benefit from the work of others. encourages editors—which is to say, users—to list academic programs (using normal wiki markup) in standard ways, e.g., the main links to departments look like this:

=== [ University of California, Davis] ===

This is, of course, completely unremarkable.

Then, So What?

This small bit of standardization, however, makes a beneficent side effect possible. For while there seem to be lots and lots of doctorate-granting philosophy departments around the world—at least when considered in terms of choosing one—in the grand scheme of things, there really aren't that many; there may not even be 300. So overlap among programs on specialty lists, e.g., philosophy of biology, philosophical logic, etc., is likely.

Anytime a philosophy department is listed on a specialty wiki (in the standard way), that is one fewer url to look up and one fewer line to type. At least, potentially. For useful accretion to occur, the list must accumulate somewhere.

Which brings us to this:

grep "=== \[.*\] ===" input-file.txt |
sort -k3 > output-file.txt

This line contains two commands—grep and sort—and can be run on any Mac or Linux/UNIX machine (and with ease on many Windows machines). The details don't really matter except for what they demonstrate. In English, the commands say something like this:

Look in the file input-file.txt for text that matches this pattern: === \[.*\] ===.[3] Then take all those matching lines and alphabetize them by the third word in each line, and put that list in output-file.txt.

Because all links to philosophy programs on the wikis are formatted the same way, a grep search of a page can identify them uniquely, and the sort command puts them in alphabetical order by university name. And because the front pages of each wiki contain a list (in a big text file) of all relevant programs—rather than fragmenting this information across multiple files—the command only needs to be run once-per-wiki. The results from those files can be combined and resorted in a larger main file.

The result is the Running List, which is also itself a wiki page. The 128 programs in the current Running List come from the 20th Century Continental Philosophy wiki, the Philosophical Logic wiki, and the Philosophy of Biology wiki. The list has to this point been generated by hand, but that may change.

The Moral of the Story

Making lists can be tedious, but useful lists are important. Since tedium is partly a function of time, dividing tedious tasks magically makes them cease to be such things. It also lowers the barrier to entry—that is, makes contributions more likely—because much of the groundwork has already been laid. But coordinating the division of labor on projects that are no one's priority is cumbersome and generally futile.

Happily, coordination isn't needed particularly. Just keep the lists in standard formats in text files that other people have access to. And then watch—in hopeful anticipation—for side effects.

2014 © Shawn A. Miller


[1] Vegans may come to find, for example, that their restrictive diets make snacking at the office more difficult since most foods on offer contain dairy or eggs. And that's good, because office snacking does not generally contribute to human flourishing. So while no one embraces veganism simply to avoid nibbling M&M's between meals, that it bars this behavior is a happy side effect.

[2] lists philosophy wikis of interest to prospective and current graduate students. It also provides free setup and hosting of such sites.

[3] This point also doesn't particularly matter, but the string === \[.*\] === is called a regular expression. Thinking in terms of the more familiar notion of wildcards, it would translate to: === [*] === .