Wednesday, May 7, 2008

Freedom

Richard Stallman's adamant perception of freedom can be found in the footnotes of his GNU Manifesto. He states, "I have learned to distinguish carefully between "free" in the sense of freedom and "Free" in the sense of price. Free software is software that users have the freedom to distribute and change." I'm going to focus on this second meaning - the freedom of distribution and change. Stallman's use of the word 'free' brings about a few essential questions:

  • Where does the idea of protocol enter into the GNU project? (and in what way does protocol limit the freedom Stallman proposes?)
  • How can something operating under a strict protocol (either a programming language, operating system environment, hardware requirements, distribution over the Internet) be 'free'?
  • Is 'open' a more appropriate term for a movement with so many restrictions?

In "Protocol: How Control Exists After Decentralization", Alexander Galloway argues that control, and not freedom, lies at the heart of the Internet. He described the Internet as a group of protocols, and that "protocol is the fundamental management style of 'control society.'" He likens newer technologies, posited as liberating devices, to devices of control. Think ankle bracelets for people on probation. Think Facebook and MySpace - technologies that provide useful services or minor freedoms, but encourage surveillance. Galloway's argument seems to conflict with Stallman's manifesto. On one hand you have this virtual space built on strict protocols - HTML, XML, JavaScript, tcp/ip + dns, ftp - and on the other hand you have the idea of freedom of distribution and creation. In a way, the Free and Open Source Software (FOSS) movement is restricted by a different set of protocols - Java, C/C++, PHP, Perl, HTML, JavaScript, etc. Do users truly have the freedom to contribute, distribute and alter the free software (assuming the user has the unique knowledge to do so in the first place)? In order to contribute to a FOSS project, you have to be literate in a particular programming language, have knowledge of the project, have access to the project's repository/source code. The last requirement forces the user to use the Internet - a space that is based on control, not freedom, as Galloway argues. Protocol is intrinsically linked to the GNU projects, and is a major restriction on the connotation of Stallman's use of the word "free".

The programming language barrier is only one technical protocol limiting the freedom of Stallman's GNU project. Hardware requirements, operating system environments and medium of distribution are other factors that restrict the project's freedom. For hardware, there is absolutely no freedom of creation, alteration or distribution. There really are no free and open source hardware projects, so any 'free' software will be running on 'unfree' hardware. His 'free' operating system is difficult to use for anyone without technical knowledge of computer systems. The Internet is the only medium through which to contribute and develop FOSS projects, and a connection is certainly not free.

Thirdly the idea of 'open' or 'transparent' seems to encapsulate Stallman's manifesto more appropriately than 'free'. With all the protocol restrictions on Stallman's GNU project, the idea of "freedom" is limited. As stated before, programming languages and other protocols prohibit users from distributing and changing pieces of software with complete freedom. However, the requirement of the source code being 'open' - that is, presented in both its compiled and human readable form - is more relevant than the program being 'free'. With the absolute freedom of the program itself in question, the transparency of the program cannot be disputed. Anything presented in its human readable form can be edited, re-compiled and redistributed at will (regardless of its copyright or 'copyleft' policy). It may not be free - open source code is still restricted by protocols - but it is certainly open. It's open to reinterpretation from users, developers, students looking to see some source code. The connotations of the word 'open' (or 'transparent') apply more directly to Stallman's GNU project (and the FOSS movement in general).

So how free is 'free'? Is Stallman's vision of a software development movement based on volunteerism best described as 'free'? Although his first definition - "free in the sense of price" - does apply, the second is more complicated. Stallman fails to mention various aspects of open source development that problematizes his use of the term 'free'.

Wednesday, March 19, 2008

1. Liberating the Usr

One of the most frequently used programs available today is a simple chat program - a piece of software that relays text between two terminals (such as AIM, Pidgin, iChat, ICQ, etc). My instruction code is an object-oriented class written in Java that handles client side commands - commands handled locally within the user's terminal. The basic idea is that there are two threads: one that handles the "listening" and one that handles the "talking". The meat of the algorithm is in the run methods in the Reader and Writer inner classes. The Writer is constantly listening to the users keyboard for a line of text to send to the server, while the Reader is constantly listening for text sent from the server. This "constant listening" takes the form of two while loops, which just loop constantly until the boolean flag isConnected tells them to stop.

I've been using AIM since I was eleven or twelve. I went through a dozen screen names, socialized, got to know people, flirted, fought, argued - things that any adolescent would do. I still use the AIM protocol (through gChat, iChat and Pidgin), and it is still my primary means of communicating with friends from high school. Before taking my first computer science course last year, I had never given any thought to how the AIM protocol worked. I never realized that my messages were being relayed through some phantom server, through some intermediary.

The AIM protocol is a set of numbers - ports, addresses, user names - all represented in ASCII or Unicode so they can more easily read in machine language. It most likely operates in the TCP protocol, using the Client/Server model to more easily relay messages over the Internet, which is a group of protocols itself. Moreover, I chat in English, a natural language protocol that expresses my thoughts. I say that this is a protocol because it passes through so many intermediaries - through my terminal, the server, various hubs throughout the Internet, and finally the terminal of the receiver. I still don't know how secure it is - probably extremely insecure (in fact, I bet I could write a program that listens in on sockets with a certain address and port). Regardless, all of my computerized communication throughout my teenage years was reduced to a large set of protocols that didn't include human to human interaction. The English language protocol conveyed through AIM didn't include gestures or tone - signifiers that one has to pick up in RL communication. Galloway argues that control, and not freedom lies at the heart of the Internet. He says on page 25-26 of the introduction to IN: Protocol: How Control Exists After Decentralization, "I argue that the Internet is distributed not decentralized and that it is in fact highly controlled despite having few if any central points of control... In fact one might go so far as to say that Empire is the social theory and protocol the technical... Like Empire, if protocol dared to centralize, or dared to hierarchize, or dared to essentialize, it would fail." It would follow his argument that this protocol only restricts the users of the Internet, likening it to the attributes of a modern day Empire. I'm inclined to disagree. I feel that the power of the Internet lies in the agreement its contributers have made - the agreement on the type of protocol or set of protocols to be used. This agreement has empowered software developers to create programs that provide services and distribute information at unthinkable speeds. This agreement empowered my thirteen year old self to start flirting with girls, which eventually poured over into real life. Most importantly, this set of protocols, while restrictive to some, allows others to create objects that serve the layman, which provides freedom to everyone.

I would say that 90% of my friends haven't given any thought to how a computer program executes. I would also speculate that 100% of my friends used or actively use AIM, Facebook and Email. Do I benefit more from these programs than they do because I have a specific idea of how programs work? I don't think so. Writing the algorithm for a simple chat program enlightened me to the fact that it doesn't matter how it works if it just works. The black-box or idea of encapsulation in object-oriented programming relates to this. If I want to incorporate a piece of code my friend wrote, I just need to know what goes in, and what comes out. If he or she wrote it well, I don't need to know what's happening on the inside (and indeed, I have no specific knowledge of the inner workings of Java's Socket class, which I used in my ChatClient object). Ultimately the concrete understanding of the fabric of the program - the code - is no more liberating than using the program itself.

Simple Chat Client


package chat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**
* Here's a chat client (meant for two way or group chatting).
* It has two threads so it can simultaneously read
* what the server sends it, and can write and send to the server.
* Not included is the server code, which handles another client or group of clients.
* The server receives everything sent by the clients, and then sends it to every client
* to be written (which is why you see what you just said).
* It's very simple, and sort of the base of text communication over a server.
* It employs the java.net.Socket class, which uses the TCP protocol (meaning that 100% of
* packets are received in the order in which they were sent).
* @author amiller
*
*/
public class ChatClient {
//address and port information for all users
private static final int PORT = 1445;
private static final String SERVER_ADDRESS = "chatAddress";

private Socket socket;
private String userName;
private boolean isConnected;

public ChatClient(String usrName) throws UnknownHostException, IOException{
//string to identify user
userName = usrName;
//establish the connection and start the threads
establishConnection();
}

public void establishConnection() throws UnknownHostException, IOException{
//establishes communication with the server
socket = new Socket(SERVER_ADDRESS, PORT);
isConnected = true;

Writer writeThread = new Writer();
Reader readThread = new Reader();

//this starts the reading and the writing.
writeThread.start();
readThread.start();
}

/**
* To break from the while loops and kill the
* reader and writer threads
*/
public void disconnect(){
isConnected = false;
}

private class Reader extends Thread {
//reads from the socket connection
private BufferedReader reader;
public Reader() throws IOException{
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
public void run(){
String lineFromServer;
while(isConnected){
lineFromServer = null;
try {
lineFromServer = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if(lineFromServer != null)
System.out.println(lineFromServer);
}
}

}
private class Writer extends Thread {
//writes to socket
private PrintWriter writer;
//listens to the local computer's keyboard
private BufferedReader reader;

public Writer() throws IOException{
writer = new PrintWriter(socket.getOutputStream(), true);
reader = new BufferedReader(new InputStreamReader(System.in));
}
/**
* This thread is constantly listening for the user's input (locally)
* When the user has entered a line, it writes it to the socket
* that has established a connection
*/
public void run(){
while(isConnected){
try {
String line = reader.readLine();
if(line != null)
writer.println(userName + ": " + line);
} catch(Exception e){
e.printStackTrace();
}
}
}
}

}

Thursday, February 21, 2008

A* Search - Neuromancer

Page 49 – Case and Molly talking about McCoy Pauley AKA Dixie Flatline

Background

In this excerpt, Molly and Case are talking privately about their enigmatic employer, Armitage. Molly, before any explanation, appears to be closely connected to Armitage, however, it is soon discovered that she is in a similar situation as Case – she’s kept in the dark about many things, especially her employer’s motives. One exception to this, however, is Molly’s knowledge of Case. At this point Case has no idea why Armitage funded his surgery, or who Molly is.

Molly: “Yeah. I saw your profile, Case. And I’ve seen the rest of our shopping list, once. You ever work with the dead?”

Case: “No.” He watched his reflection in her glasses. “I could, I guess. I’m good at what I do.” The present tense made him nervous.

“You know that the Dixie Flatline’s dead?”

He nodded. “Heart, I heard.”

“You’ll be working with his construct.” She smiled. “Taught you the ropes, huh? Him and Quine. I know Quine, by the way. Real asshole.”

“Somebody’s got a recording of McCoy Pauley? Who?” Now Case sat, and rested his elbows on the table. “I can’t see it. He’d never have sat still for it.”

Sense/Net. Paid him mega, you bet your ass.”


Small excerpts such as the one above appear throughout Neuromancer. They withhold the meaning of the words or a description of characters discussed for a distinct period of time, which is later revealed in a more descriptive manner. In this way, the reader is enticed. Cyberpunk fiction thrives on the hermeneutic code – the questions that beg for answers. This small, almost insignificant passing conversation is a prime example of Gibson’s posing a question placed aside to be answered later. He places the action before explanation. This moves the story along, yet it stagnates the new reader. Gradually, as the excerpt proceeds, some of the questions are answered, but not all. Some larger questions are left unanswered – what is Case really doing for Armitage? What is a “construct” or a “recording” in the sense that Case and Molly are speaking of? What does Case do, exactly, as a cowboy? Gibson’s withholding, giving the reader just enough to proceed, and nothing more.

"sense/net"

*(HER): What is Sense/Net? Was it mentioned before? Is it a place, a corporation, a group of people?

"recording and construct"

*(PRO): Case sat, and rested his elbows. He’s tired, in disbelief, and more affected than he puts on by the news he just received.
**(SEM): A recording and construct are the same thing to Case and Molly. But a recording and construct are two different things. One is a reflection of the existing, and the other is a creation of the existing. A recording implies a simpler, less powerful entity, but a construct’s complexity is seemingly limitless. Case’s use of the word “recording” shows us that he might think less of these ‘constructs’ than Molly. She, being a soldier of the real world, may aggrandize this concept of saving the imprint of a mind. Case, however, looks at it realistically – it’s merely the captured ‘recording’ of something that’s gone – of someone whose heart gave out.

"construct"

*(HER): Who’s Quine? What’s a construct? At this point Case’s personal life before his incident with his past employer’s is hardly mentioned. Molly’s knowledge of Dixie Flatline’s tutelage gives the reader a small look into Case’s past.
**(PRO): “She smiled.” Molly’s expression.

"heart"

*(PRO): “He nodded”. Action – nodded. Case acknowledges his knowing of both Flatline himself and his cause of death.
**(PRO): An answer – “heart” can be taken for the cause of death. This dead topic of conversation, Dixie Flatline, died because of his heart. This also reveals some reason for his/her nickname – flatline.
***(SYM): Is Flatline’s heart death a symbol of his natural death. Certainly the construct that Case works with isn’t McCoy Pauley, Case’s old mentor. The death of the heart conjures its association with the soul. Gibson is reaffirming that Pauley is dead, and just a ‘construct’ or ‘recording’ of his memory remains. As human as the conversations between Case and the construct may seem, they are just the digital representation of his memory, nothing more. Nothing more is possible – his heart gave out.

"Dixie Flatline"

*(HER): Who (or what) is Dixie Flatline? Is it a nickname or just an odd, futuristic name that’s common in Gibson’s reality? Is the imagery of “flatline” important – the idea of a heart stopping? Gibson tends to do this to us – to throw out a name or a place and offer no further explanation.
**(CUL): Is Dixie Flatline a household name? Molly asks this question assuming Case knows who the person is. The reader is left in the dark, witnessing a conversation about an apparently dead mutual acquaintance of Molly and Case.

"The present tense made him nervous"

*(HER): Case knows what she’s talking about. It appears that working with the dead is a common idea to both characters. Molly’s question remains mysterious – no hints are given by Case’s response.
**(SEM): “The present tense made him nervous.” Is it the present tense that is making him nervous, or is it the implication of “doing” making him nervous? Is Case doubting his skills as a cowboy, or is he merely worried he’s rusty after all this time? It’s not the present tense, but what the present tense represents. At the beginning of the book Case is living in the past; he frequents cowboy bars and leads a faded existence. That was, for as long as he was out of commission, his present tense. Knowing what he can do and doing are separate, and Case’s apprehension is showing this to us. But this also begs the question, what exactly is Case nervous about? It’s clearly not working with “the dead” – that idea created a positive response. It’s something else, something we’re not all that familiar with. We have no idea what exactly it is that Case does or why a mysterious employer summoned him. This present tense carries a heavy, unrevealed weight.
***(PRO): “He watched his reflection in her glasses.” Case is attempting to make eye contact, but cannot. He can only see his reflection in her “eyes”.
****(PRO): “made him nervous.” Case’s feelings are a result of his uncertainty about a skill that has yet to be defined.

"Shopping List"

*(HER): The “shopping list” implies the existence of other tasks. The first task can be seen as fixing Case, or even just acquiring Case. The second task, we can assume, will soon be explained to us. Furthermore, the term “shopping list” seems to imply a longer set of tasks that involves searching. The idea of searching is associated with shopping – one peruses the aisles of a market to acquire items. This brings up another idea of acquisition. They’ve already acquired Case. Will this shopping list cause them to pick up more people? Is it a person, necessarily, that they will be acquiring next? The next question Molly asks is “You ever work with the dead?” It cannot be expected that the reader associates the future with the undead – and the reader would be hard pressed to assume that minds could be saved onto a ROM in the reality constructed by Gibson. This notion of working with the dead is clearly meant to force the reader to ask questions – how is that possible? Is she talking about physically working with corpses? Is she using ‘dead’ in a different context than expected? Some of these are nonsensical, but all are natural reactions to her partially revealing questions.
**(PRO): Molly has “seen” the shopping list and “saw” Case’s profile. She’s actually talking to him.

Wednesday, February 20, 2008

A* Search - Neuromancer

Page 49 – Case and Molly talking about McCoy Pauley AKA Dixie Flatline

Background 

In this excerpt, Molly and Case are talking privately about their enigmatic employer, Armitage. Molly, before any explanation, appears to be closely connected to Armitage, however, it is soon discovered that she is in a similar situation as Case – she’s kept in the dark about many things, especially her employer’s motives. One exception to this, however, is Molly’s knowledge of Case. At this point Case has no idea why Armitage funded his surgery, or who Molly is.

Molly: “Yeah. I saw your profile, Case. And I’ve seen the rest of our shopping list, once. You ever work with the dead?”

*(HER): The “shopping list” implies the existence of other tasks. The first task can be seen as fixing Case, or even just acquiring Case. The second task, we can assume, will soon be explained to us. Furthermore, the term “shopping list” seems to imply a longer set of tasks that involves searching. The idea of searching is associated with shopping – one peruses the aisles of a market to acquire items. This brings up another idea of acquisition. They’ve already acquired Case. Will this shopping list cause them to pick up more people? Is it a person, necessarily, that they will be acquiring next? The next question Molly asks is “You ever work with the dead?” It cannot be expected that the reader associates the future with the undead – and the reader would be hard pressed to assume that minds could be saved onto a ROM in the reality constructed by Gibson. This notion of working with the dead is clearly meant to force the reader to ask questions – how is that possible? Is she talking about physically working with corpses? Is she using ‘dead’ in a different context than expected? Some of these are nonsensical, but all are natural reactions to her partially revealing questions.
**(PRO): Molly has “seen” the shopping list and “saw” Case’s profile. She’s actually talking to him.

Case: “No.” He watched his reflection in her glasses. “I could, I guess. I’m good at what I do.” The present tense made him nervous.

*(HER): Case knows what she’s talking about. It appears that working with the dead is a common idea to both characters. Molly’s question remains mysterious – no hints are given by Case’s response.
**(SEM): “The present tense made him nervous.” Is it the present tense that is making him nervous, or is it the implication of “doing” making him nervous? Is Case doubting his skills as a cowboy, or is he merely worried he’s rusty after all this time? It’s not the present tense, but what the present tense represents. At the beginning of the book Case is living in the past; he frequents cowboy bars and leads a faded existence. That was, for as long as he was out of commission, his present tense. Knowing what he can do and doing are separate, and Case’s apprehension is showing this to us. But this also begs the question, what exactly is Case nervous about? It’s clearly not working with “the dead” – that idea created a positive response. It’s something else, something we’re not all that familiar with. We have no idea what exactly it is that Case does or why a mysterious employer summoned him. This present tense carries a heavy, unrevealed weight.
***(PRO): “He watched his reflection in her glasses.” Case is attempting to make eye contact, but cannot. He can only see his reflection in her “eyes”.
****(PRO): “made him nervous.” Case’s feelings are a result of his uncertainty about a skill that has yet to be defined.

“You know that the Dixie Flatline’s dead?”

*(HER): Who (or what) is Dixie Flatline? Is it a nickname or just an odd, futuristic name that’s common in Gibson’s reality? Is the imagery of “flatline” important – the idea of a heart stopping? Gibson tends to do this to us – to throw out a name or a place and offer no further explanation.
**(CUL): Is Dixie Flatline a household name? Molly asks this question assuming Case knows who the person is. The reader is left in the dark, witnessing a conversation about an apparently dead mutual acquaintance of Molly and Case.

He nodded. “Heart, I heard.”

*(PRO): “He nodded”. Action – nodded. Case acknowledges his knowing of both Flatline himself and his cause of death.
**(PRO): An answer – “heart” can be taken for the cause of death. This dead topic of conversation, Dixie Flatline, died because of his heart. This also reveals some reason for his/her nickname – flatline.
***(SYM): Is Flatline’s heart death a symbol of his natural death. Certainly the construct that Case works with isn’t McCoy Pauley, Case’s old mentor. The death of the heart conjures its association with the soul. Gibson is reaffirming that Pauley is dead, and just a ‘construct’ or ‘recording’ of his memory remains. As human as the conversations between Case and the construct may seem, they are just the digital representation of his memory, nothing more. Nothing more is possible – his heart gave out.

“You’ll be working with his construct.” She smiled. “Taught you the ropes, huh? Him and Quine. I know Quine, by the way. Real asshole.”

*(HER): Who’s Quine? What’s a construct? At this point Case’s personal life before his incident with his past employer’s is hardly mentioned. Molly’s knowledge of Dixie Flatline’s tutelage gives the reader a small look into Case’s past.
**(PRO): “She smiled.” Molly’s expression.

“Somebody’s got a recording of McCoy Pauley? Who?” Now Case sat, and rested his elbows on the table. “I can’t see it. He’d never have sat still for it.”

*(PRO): Case sat, and rested his elbows. He’s tired, in disbelief, and more affected than he puts on by the news he just received.
**(SEM): A recording and construct are the same thing to Case and Molly. But a recording and construct are two different things. One is a reflection of the existing, and the other is a creation of the existing. A recording implies a simpler, less powerful entity, but a construct’s complexity is seemingly limitless. Case’s use of the word “recording” shows us that he might think less of these ‘constructs’ than Molly. She, being a soldier of the real world, may aggrandize this concept of saving the imprint of a mind. Case, however, looks at it realistically – it’s merely the captured ‘recording’ of something that’s gone – of someone whose heart gave out.

“Sense/Net. Paid him mega, you bet your ass.”

*(HER): What is Sense/Net? Was it mentioned before? Is it a place, a corporation, a group of people?

Small excerpts such as the one above appear throughout Neuromancer. They withhold the meaning of the words or a description of characters discussed for a distinct period of time, which is later revealed in a more descriptive manner. In this way, the reader is enticed. Cyberpunk fiction thrives on the hermeneutic code – the questions that beg for answers. This small, almost insignificant passing conversation is a prime example of Gibson’s posing a question placed aside to be answered later. He places the action before explanation. This moves the story along, yet it stagnates the new reader. Gradually, as the excerpt proceeds, some of the questions are answered, but not all. Some larger questions are left unanswered – what is Case really doing for Armitage? What is a “construct” or a “recording” in the sense that Case and Molly are speaking of? What does Case do, exactly, as a cowboy? Gibson’s withholding, giving the reader just enough to proceed, and nothing more.

MCM 23 Assignments Blog