Main

UNIX Archives

October 15, 2008

Unix

As you know, our class explores hacker culture and hacker politics. An important part of understanding a hacker, is understanding the methods in which they use a computer. With the introduction of the operating system, computing was taken to a completely different level. Unix is an operating system that is different from others in not only it's history, but also in its form.

The class began with the viewing of two clips:

The first is a parody of Apple.
http://ubergeek.tv/article.php?pid=54

The second is a funny clip of computer users, one who knows what he's doing, and the other, not at all.

To explore Unix, our class read "Sharing Source Code" by Christopher Kelty, and Neal Stephenson's book, "In the Beginning was the Command Line".

Kelty's article describes Unix in terms of its history. It was created by the AT&T corporation which was a telecommunications company, so they were unable to distribute Unix, so they licensed it for a small fee to users. They licensed it out under the condition that it would remain relatively secret. This is important to the development of Unix as it became a system that was taught and learned. Literature was written about how to use Unix and the source code needed to make it work. As this became a problem for AT&T, others produced Unix-like operating systems. They were essentially the same system, except they used different source code.

Christopher Kelty discusses Unix in his article, and there are three elements of Unix that make it unique.

First, it’s PORTIBILITY. Unix can go from machine to machine, unlike any operating system before it. It can go from machine to machine and work on these different pieces of hardware. This creates a SHARED CULTURE. We related this to Phrack, as both created a certain kind of public.

Second, LITERATURE was produced about Unix. John Lions’ “Lions’ Commentary on UNIX with Source Code” informed those who wanted to learn about Unix and shared the source code information necessary to use Unix. People were able to educate themselves on how to use Unix.

feature.0067.jpg

Third, Unix allowed for FORKING. Forking allowed users to make changes to the system and bring it back to the source, and still use the same name. Terms like “Flavors of Unix” and the “Gilgamesh Epic” were discussed in terms of Unix’s ability to be changed and manipulated.

Unix's ability to allow for the aforementioned was what made Unix so innovative. It also was responsible for many users to rally for free software and sharing. There was long distance collaboration with Unix. “It was like having rumors of a group of model enthusiast had created a completely functional Saturn V by exchanging blue prints on the Net and making values and flanges to each other.” (page 89) Because Unix's owner, AT&T wouldn't allow for it, copies of the format were made. One of the most well-known today is Linux.

In class we discussed some of the key differences between Unix and Linux:

Unix
Made by AT&T (corporation)
Very slow pace of development as a disk had to be physically delivered

Linux
Created by one man
No corporate stamp
Shared very quickly

We also discussed the effects of Unix on FREE SOFTWARE
Would free software exist without Unix?
Was it inevitable that people would want free software?

Some say that this was INEVITABLE. If the controversy over Unix didn’t lead to people wanting free software, something else would have.
This process led to caring about information freedom.

Free software is a topic that many disagree upon.
Some say software should absolutely not be free; that there is too much work that is put into it.
Others say we should share and there should be no price.

To help the classes understanding, some analogies were used.
We discussed clothing as a commodity, but pointed out the very basic differences between clothing and software. Software is a commodity, like clothing; but, tangible objects often have monetary value because it takes resources (that are paid for) to create the product.

Sharing becomes the issue because one cannot share a t-shirt (“economically exclusive”), but one can share software and source code and retain what they had.

LAND as the main example of a tangible commodity.
Land can be shared, does that mean it should have no monetary value?

The economy of software is specific to software—it is unlike land or clothing.


In Neal Stephenson's book, he touches upon many topics relating to not only hardware and software, but also their social implications. He evaluates the many options users have when choosing an operating system. There are many OSs and the user really just has to choose what works for them. Stephenson argues that there should be the option of seeing the command line, but explains how much American's love mediation. GUIs are graphical user interfaces. He explains GUIs as they mediate between the user and the computer, permitting users to have essentially no idea about what is really taking place at the command line level. Although it is the users choice, Stephenson believes that access to the command line should be available.

In class we discussed Neal Stephenson and his description of INTERFACE CULTURE.

There is extreme mediation between the user and the computer
GUIs (Graphical User Interfaces)
Larger Cultural Implications—Disney represents one big GUI because one is at a theme park walking down the main street of a fake town.

But Stephenson states that Americans love being mediated, and rely on mediation because there is too much information to process otherwise.

“Stephenson is the literary genius of hackerdom” (Gabriella Coleman)

Stephenson’s elitist attitude was discussed, as well as how he makes those who are unaware of the mediation or knowledge of these systems feel somewhat uneducated.

I see a value to not knowing this, sometimes “Ignorance is bliss.”

We utilized a car analogy, exploring the idea of those who just drive to get to point A to point B, versus those who know how to fix the engine, and see value in building and fixing cars.

Similarly, some use computers, and prefer the mediation of a simple operating system, rather than having to learn to speak with the COMMAND LINE, which allows you to modify.

But, there is the argument that the command line should be available if the user chooses to manipulate the system they utilize.

Accessing the command line could be like opening the hood of the car in our analogy.

300px-Bash_screenshot.png EngineCompartment.jpg


Linux has the option of using a GUI to hide the command line, but the command line can also be easily accessed, making Linux a good option for the user who wants to have the best of both worlds.

When choosing an operating system, a user must be aware of what is available, and what the manufacturer takes responsibility for. Linux and Unix do not promote themselves as bug-free. They take responsibility for their system that can have bugs.

Corporate systems tend to not acknowledge their mistakes, as they prefer to present a confidence, with sales as their driving force. This is a fundamental problem because these are the companies that are marketing to the masses. A classmate suggested that maybe if we put a computer in the hands of a child (who learn languages very easily), and taught them the language of the command line, they would be able to utilize a system that offers both command of the command line, and use to the mediated GUI system.

October 22, 2008

The Aethetics of Code

"An intellectual is a man who says a simple thing in a difficult way. An artist is a man who says a difficult thing in a simple way."
- Charles Bukowski

In Monday's lecture and class, we drove into the bit of gray area concerning code and programmers: Can code have aesthetics? If so, what are some the important implementations of said aesthetics, and what does it say about for a) the programmers themselves and b) the end user of the code. Near the end of class, we were able to come up with a sort of joke-ish way of understanding how hacker aesthetics work, which I like to refer to as the "trifecta," which I will explain in the rest of this post:

trifecta.jpg (again, thanks tuxpaint)

We read two texts for the day's class, one from Maurice Black entitled, "At the Edge of Language: The Art of Code" and another by Samir Chopra and Scott Dexter entitled "Free Software and Aesthetics of Code." Blacks's primary argument revolves around looking at various aspects of the craft of code, referencing the 10,000 lines of UNIX, and the surrounding public. John Lyons self crafted book on UNIX, famously copied, discussed, and shared marks an important basis for understanding the "craft" aspect of code. This was an important aspect in creating a community of programmers who were coming together and actually looking and admiring the style and creativity found within one of the most heralded operating systems of all time.

Black continued his exploration of hacking craft, by exploring the idea that code is not like poetry, but it IS poetry, and should be treated as more than a mechanical representation of computer instructions. (Wordpress.org, the site for the popular open-source blog software, adopts Black's motto "CODE IS POETRY") Black gives o concrete example of Perl poetry, that is, code written in the Perl programing language which is both a human readable poem and executable by a computer, is a principle example of how the craft of coding can venture into reputable art. He argues that these representations should make clear that code is an acceptable form of expression, and should be treated with the same liberties as expressive works.

Here is an example of a Perl Poem:

' Love was’

&& ‘love will be’ if
(I, ever-faithful),
do wait, patiently;

“negative”, “wordly”, values disappear,

@last, ‘love triumphs’;

join (hands, checkbooks),
pop champagne-corks,

“live happily-ever-after”.

“not so” ?
tell me: “I listen”,
(do-not-hear);

push (rush, hurry) && die lonely if not-careful;

“I will wait.”

&wait

# Sharon Hopkins, June 26th, 1991
# rush (a perl poem)
"

via http://www.digitalcraft.org/iloveyou/catalogue_jutta_steidel_if.htm

While certainly "perl poetry" is an expressive work, it is an extremely specific example of how code could be used as a vehicle for expression. Lions work on UNIX and Perl Poetry showcase how code can be a craft, something which is done with a passion for a constructive purpose, and valuing something seen as a chore to some. These aesthetics make up the first pillar of the Trifecta.
With that being said, during class we focused more on the arguments of a Chopra and Dexter, and outlining what they considered to be crucial elements of what makes the aesthetics of code.
These authors primarily focus on a few key elements when comparing programming aesthetics to more traditional art forms. These aspects, while not completely exhaustive, include:

1. Condensed, non bloated code.
2. Free and Open Code
3. High level code and programming languages
4. Never ending production, (programs are always evolving, they have no completion) date
5. Libraries of sharing, peer review, negotiation of code, and constant competition ("ready-mades")
6. Embracing restraints as an impetus for creativity
7. Improvisational nature of coding
8. “In the end is an “esoteric art” that can really only be appreciated by its makers

Discussing each of these parts ended up being the most spirited part of the class, as people continued to justify how and if these conditions were satisfied in code.

John Randall questioned the definitions of Chopra and Dexter, asking where the desire for "power of simplicity" exists within their definition, and why this is not included as an aesthetic?


"• Simplicity and elegance in code and coding tools is a valued aesthetic because it gets the mechanics out of the way, allowing the programmer to deal in the realm if the pure idea, or pure logic, in a less encumbered fashion.
• Simplicity and elegance in code is a valued aesthetic because it represents simplicity and elegance in an abstract logical machine.
• An abstract logical machines operates very close to, and is restrained by, the nature of logic and math, as derived from the nature of the universe, These machines therefore (un?)consciously resonates with the deepest of mysteries of consciousness and existence, and therefore, simplicity and elegance in the logic of abstract machines, as expressed in the logic of code, are valued aesthetic with nothing less than a spiritual draw."

Personally, while I do feel that simplicity and mathematical rigor is something which is valued and idolized by many programmers, I don't necessarily feel that it is a required impetus for code to embody an aesthetic, due to the fact that many programs are extremely complicated to understand, however brilliant; nor do all programmers value this element above all others One of the interesting facts of nature is how many of her “codes” can be understood in a just few simple variables which define much of science. On the other hand, computer algorithms, even in their most elegant, are still most times complex, unapproachable, and constructed Additionally, these authors did not discuss particular programming structure and styles: ever hacker and programmer has different styles and methods which they deem "the right thing" for a certain job, and trends and ideas in how to program become fashionable and then die out in time. However, these individualized stylistics help us see how programs embody an aesthetics, and therefore so do the programmers which code them. That gives us another pillar of the Trifecta of the Aesthetics of Code, the romantic programmer, where we see fanaticism to text editors and tools, and flame wars about styles of programming languages (such as Perl vs Python) , and other statements of purpose in their code.


wtf-code-1.jpg
less wtfs/minute = better code! but wtfs still exists!


The final aspect of the hacker aesthetic revolves around what Fred Brooks called "the thought stuff," the materials hackers use to create their art. The math and algorithms behind their programs remains the most important aspect of hacker aesthetic.
The love of restraints (hardware, software, memory time, money, language) and nontraditional notions of authorship for entire projects gives this math power an interesting twist on hacker aesthetics (it is interesting to note that FOSS hackers use "ownership" to say they are responsible for maintian a project). Their clever hacks and programs make them respected within the community, but they don't keep these things close to their heart, they let good math defuse across the community as a whole.

And that is what is so interesting about code and hackers. Never in the world has there been something in which doing what you are doing both progresses your own concept of what is right (technically), in addition to serving as a primary text for expression. Certainly other art can comment on its condition of inception, but can only can code actually adjust the landscape and address an issue at hand so tangibly. While self modifying code may be an ancient faus-pas amongst computer programmers, the programs they create with the aesthetics they have serve to self modify their own existence.

Then again, hackers just want code that works, and work well!

About UNIX

This page contains an archive of all entries posted to STDIN in the UNIX category. They are listed from oldest to newest.

Touble with the law is the previous category.

Many more can be found on the main index page or by looking through the archives.