Sunday, February 19, 2006

Mez generates "code"


public class Mez extends CodePoet {

protected Text generate(Text orig) {

orig.insertInitial(this.getNextEmailHeader());

while (orig.isCoherent()) {
orig.insertRandom("][");
orig.insertRandom(Dictionary.COMPSCI);
orig.insertRandom(Dictionary.BIOLOGY);
orig = this.obfuscate(orig);
}

return orig;
}
}

3 Comments:

Blogger Zach said...

I am, perhaps, too harsh in my post.

Mez reminds me of Memmot, and both remind me of Katherine Hayles' talk here on campus last term. Mez and Memmot do successfully capture a sense of normal human text and sentiment perverted and garbled by its transmission through a network. And this perversion is due to the unwitnessed computer processes the message passes through, the effects of which they signify through "code" pervading the text. I can appreciate that.

There's a few things that irk me though. First is the implication that what they're doing is "code". What they're doing instead suggests to me producing word-length strings of random English letters, sticking in a umlaut here and there, and calling it German. The second is the consistent message--code is incomprehensible, infectious, dangerous. But really they have only randomly intermingled two texts, one of them happening to be source code. The confusion and disorientation would be as great to the uninformed if the second text were, rather than code, French or Portuguese.

This bring me to Hayles argument that code is symbol without meaning, and that computers perhaps embody Lacan's Real, existing outside the Symbolic. She may be right about computers--they process 1s and 0s only. But at this point it is without symbols. Computers don't understand code; it must be translated (compiled or interpreted) into machine code--binary 1s and 0s--to be executed. The symbols we know as code are intended solely for human readers. It's a precise, imperative, limited language, yes--rather like mathematics or medical terminology. But it can be expressive, and convey more subtle meanings for the human reader than either mathematics or medical terms.


I end with a few examples. (The first 3 come from ThinkGeek.com T-shirts.)

/(bb|[^b]{2})/

A regular expression search for two letter b's or two letters that are not b's. Hence, "2 b or not 2 b".


/* no comment */

This is a comment one would find documenting source code. In a way, this is similar to "This sentence is false."


$>man woman
$>Segmentation fault (core dumped)

Not exactly code, but rather unix commands. The "man" command is short for manual, which contains user documenation for nearly every unix command and many other unix features. Here, the user is trying to get documentation/help concerning "woman". A Segmentation fault is when a program attempts to access an out-of-bounds memory resource (rather like the "blue screen of death" in Windows). Hence, no help is available as woman is incomprehensible and incalculable.


if (me.location == you.location) {
me.happiness++;
}

A quick one-off of my own. Basically, "being around you makes me happy".

Subtlty is also possible. Originally, my post contained the line:

orig.obfuscate();

Since orig is some sort of Text object, this is invoking one if its methods, telling it to obfuscate. Instead, I changed it to:

orig = this.obfuscate(orig);

Here I'm calling the obfuscate method, not of the text, but of the current object, which would be an instance of Mez. I'm passing the orig Text as a parameter, and then saving the changed text again. Here, the text is not obfuscating itself; Mez is the one changing it.

I see these as example of code expressiveness and meaning for human readers. And it bugs me when this richness is constantly maligned or ignored.

12:17 AM  
Blogger Zach said...

Admittedly, code is usually imperative. Its purpose is to tell the computer what to do. The witty meanings (for the human reader) are often at a "higher" level, tangential (in a way) to the code's purpose as instructions. However, this need not always be the case. Mark-up languages (such as XML) and descriptive, logic programming languages (such as PROLOG) are more suited to inscribing declarative statements. As a "description" of a process though, I hope my original post stands strong. Here, using an imperative language to describe (albeit, in jestful commentary) Mez's generative process is still fitting and meaningful, even at the instructional code level.

12:19 AM  
Blogger JZ said...

I don't think you're too harsh about Mez's work. You seem to be making a clear point about the limitations of the implied claims of such a writing practice, and you do it--quite admirably, I think--in a way that reinforces your point by way of example. Your comment is the kind of code-inflected (as opposed to "infected") writing that John Cayley more or less upholds in his article "The Code is not the Text (unless it is the Text)" in the EBR. It's not just "code-like" but could actually be compiled to function in a processor.

Your point, in your own comments, about the difference between "machine" and "human language" is an important one. I'm wondering if philosophically we can go one step further an say that binary machine code, which is indeed "without symbols" in regard to human readers, is at the same time the product of human engineering, and not the language of some quasi-mystical "Other" who can be figured as another addressee or agency.

Hayles herself does make the distinction between "higher-level" code that humans typically write and machine code, but to align machine code with the Lacanian Real seems to suggest that the Real is manufactured by Intel, which I don't think is the case.
In Lacan, the Real is one of three positions in a model of the mind (the other two are the Symbolic and the Imaginary); it's what cannot be subsumed within either of the other two--a kind of horizon or limit on our psychic capacity. To try to "locate" it in some aspect of human culture (like the computer) seems seriously to miss the point. It will be interesting to see how Hayles, who certainly does know Lacan's work well, develops this odd point (which she is borrowing from another media theorist--Friedrich Kittler).

Thanks for the terrific examples of clever (and functional) geek-speek. You're completely right about the expressive capacities of programming languages. All the hard-core programmers I know are always talking about "elegant" code (and, more often, complaining about its opposite).

1:13 PM  

Post a Comment

<< Home