The origin of the Free Software Foundation and the Open Source movement

A New Hope

In 1969, Ken Thompson, and Dennis Ritchie put the lion’s share of drive and effort into creating the first version of the Unix operating system for a small pdp-7 they’d gotten a hold of at Bell labs. They wrote most of it in a GECOS (a GE operating system) cross-assembler for the dec pdp-7 that produced paper tapes which had to be carried to the other machine to be run. Dennis Ritchie has said “the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.”

Some interesting language work got done too, which ended up being driven forward largely by the move to a PDP-11. Thompson first set out to write a Fortran, but as Ritchie says, “the intent to handle Fortran lasted about a week.” This effort became a mash of BCPL, spartan syntax, and the tiny space requirements (particularly on the PDP-7) which took the name B. A much expanded and improved version known as C was written on the PDP-11 itself, and the Unix operating system was slowly rewritten in C from the bottom up (excepting the assembler).

For the next ten years (and beyond), the Unix operating system blossomed through intense amounts of communication, sharing, and tinkering with the open system. Nearly all of the key contributions which made Unix a success came out of the openness, readability, and modularity of the system — particularly the early sharing of the system to Berkeley and the exploits of Bill Joy and Bob Fabry.

The Empire Strikes Back

In 1974, the United States congress reclassified computer programs as copyrightable material[10]. Whereas they had once been considered analogs to blueprints/constructions (as in, source/compilation), they were eventually classed as similar to literary works. This led to the use of licensing instead of sale to preserve First Sale Rights, and that’s where EULAs come from.

Unix had become very popular. It had been programmed in a high level language, which meant it lent itself very well to teaching Operating System design, and it was being constantly improved and upgraded by the cool folks at Berkely (and others as well – the source was just part of the package in those days. What had started as a research effort grew and flourished into a successful tool used by academics and businesses worldwide almost entirely through its openness and hacking.

So of course, AT&T felt it best commercialize and sell the system. They did their best job (with new copyright powers!) to see that the hacking around and openness got snubbed – particularly at Berkeley. The BSD had been fed largely by military money (it was the OS for nationwide upgrades to DARPAnet hardware), but after being left on its own just became a target for a copyright suit from Ma Bell.

The community largely collapsed as everyone began taking posts at large companies (they had changed the world, after all), and the younger generation was left alone wondering, “What gives?”

(Actually, AT&T probably isn’t that evil – but they didn’t want to let Berkeley make stuff based off of their own stuff; regardless of how okay it had been previously. This put BSD in the legal dumps as they tried to sort everything out with AT&T, and kind of killed BSD’s popularity.)

Return of the Jedi

Tux

"Tux"

This is where Richard Stallman comes in. He seems to have been peeved that he missed the boat, so he stood up and shouted that he was building his own boat; and now was the time to get in line. In October of 1985 he announced the creation of the Free Software Foundation, whose intention was to build a free Unix from scratch. Things really went very well, (they often do for the hardworking MIT type), and tools like gcc and emacs came out of his efforts. But he needed a kernel; the original had been written from scratch in C in 1973 and had undergone revision and improvement by the best minds of computer science for over a decade. All of it was copyrighted.

In late 1991, a university student happened to create a simplistic kernel for the 386, and after posting it to some MINIX related discussion boards (as it was based loosely on MINIX) and working for a few months, others began to help. Within a few years, the GPL’d Linux Kernel version 1.0 was available and integrated into a number of collections of GNU tools – an example of one such distribution is Debian.

Linux now ‘competes’ with less open variations of Unix, but for all intensive purposes, old Unix has been wiped out of relevance. True BSD and System V releases are unheard of, and OpenBSD, NetBSD, and FreeBSD (open source variations of the free but long lawsuit-encumbered Berkeley Software Distribution of the original Unix OS) are still around with tiny user bases, on the same open model of software as linux. A different variant, OpenSolaris, is dead (thanks a lot, Oracle), but the closed Solaris system exists widely. The closed Macintosh OSX is really just a revamping of NeXT, which was a proprietary Unix-like from the early 1990’s – it is the only popular surviving relative of Linux, and fortunately it internally still utilizes many of the same standards and tools.

Surrounding the GNU system (and later the GNU/Linux distributions) has been a tremendous amount of what Ritchie originally spoke of as being the important aspect of a remotely accessible, time-shared environment: a tight-knit community with high levels of communication has been forged around the use and modification of these systems. It is an open community, and the materials it works upon and processes by which it operates are transparent. While by no means perfect, it has continued to be a pinnacle of innovation and has fueled tremendous amounts of new software and is responsible for tools that run the vast amount of the business and internet infrastructure across the world.

Citations:

(it is 6:00 AM and I do not possess the mental capacity required to write these out in the correct formats — I’ll do my best to go back and inline them at relevant spots though)

  1. http://cm.bell-labs.com/cm/cs/who/dmr/hist.html – this is actually written by Dennis Ritchie. It’s a great read; please go look at this if you have any interest at all in the topic.
  2. http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/history.html – this is a short Unix history in a HOWTO on someone’s web-based guide to secure unix programming. I think that this kind of community narrative which is being passed down through the generations is right there at the heart of what Ritchie meant.
  3. http://www.crackmonkey.org/unix.html – this guy seems to have glanced around a bit and done the same thing I did; he quotes the Ritchie paper and basically just restates it with a little bit of extra stuff.
  4. http://oreilly.com/catalog/opensources/book/kirkmck.html – a lot of really good information on the BSD side. This article touches on just how much of a champ Bill Joy is.
  5. http://www.gnu.org/gnu/thegnuproject.html
  6. http://www.gnu.org/gnu/gnu-history.html
  7. http://www.opensource.org/osd.html
  8. http://en.wikipedia.org/wiki/Software_copyright
  9. http://en.wikipedia.org/wiki/Linux_kernel#History
  10. http://en.wikipedia.org/wiki/History_of_Linux
  11. Lemley, Menell, Merges and Samuelson. Software and Internet Law, p. 35

quick idea

Windows 7 has changing desktop backgrounds – so do Ubuntu and OSX and even, ugh, Vista I bet – so I’m thinking, why not have a conversation play out through them?

I recently made a background which is just “Wyatt, go back to work. also, 42/13.37 ~= PI” – and just now it’s occurring to me that I could make more. A response such as “I am working. We are home. Shut up.” could shift in, in the same style – images, snippets of text, and various still media could be interwoven at random to create some kind of interesting ongoing tale of woe, joy, and humour in the background of my day.

I’ll have to do that sometime when I don’t have a midterm in 6 hours, a philosophy paper nearly 2 weeks overdue, another philosophy paper to write by 5pm tomorrow, a good blog post to do by midnight, another midterm at 9:00 AM the following morning (on the same topic as that overdue philosophy paper), grading software to write, and a major programming competition to prepare for. And a business idea to bring to fruition, which is taking a backseat to things it really should not have to.

tangent: that blog post will probably be on the founding of the Free Software Foundation and the dawn of software copyright; I remember reading stuff about that a few years ago and it was pretty cool. Back in the day (I think, 1976 was when it changed. 197x for sure), UNIX wasn’t shipped as binaries, it came as source. You bought the source and compiled it. If you wanted to make changes, see how it was written, copy it and change it, that was cool. Then machines became a bit more standardised and it made sense to ship binaries. Software as a business became feasible. Stallman and his MIT chums cried, and William H. Gates III did too – but in joy.

Okay so probably more like Stallman and them stroked their computer-science beards and Gates nodded approvingly and wrote a letter.

Marking CIS 1500 Assignment 1: Part 1

Automating the Grading process

I’ve got 90 students to mark and I’m running behind on time. So the natural
thing to do is to document what I try, what works, and what I end up doing to
figure out the marks for my students. Anywhere that it would come in, I will
have removed any personal data from a student. Hopefully, none of the code and
nothing super related to the coding problem they solved comes in, either.

First thing is first

The students made submissions through a feature known as “Dropbox” (no, not /that/ dropbox), and we (the TA’s) have to download a zip of all of theirsubmissions. This could be great, if it weren’t for a few obstacles.

Desire2Learn’s software does not work properly with Mozilla Firefox. It uses
some javascript to alter database requests that just does not seem to run right
in FF.

I have no ability to select or view ‘students from my lab’. I have three /paper/
sheets of separately alphabetised data for each of my labs.

We started off using Ubuntu 10.04 and having students write code on it and
compile with gcc. Someone in our department decided it was a reasonable choice
to upgrade to 10.04 the week that all the students moved in, and it turns out
the SunRay terminal server (we use dumb terms for our labs; lower power costs
etc) running Solaris is for some reason incompatible with some setting in
10.04’s XServer. So we switched to Debian 6. And of the four linux servers for
the CS department, there will always be at least one down – sometimes two,
rarely three, and on that occasional moment, all of them will be out of
commission.

It should be noted that ‘down’ here means they authenticate and suck you in,
warn you about your kerberos password expiring in 350ish days (thanks! I’ll keep
it in mind!), display the MOTD, and then hang. No prompt appears and ^C, ^D, ^Z,

Esc, Alt+Est, Alt+X, or any reasonable combination will cause anything useful.
It’s like a program stuck in a while loop.

Back on topic: We decided to let students use Windows and PellesC if they want,
because (sigh) it was just far more stably available than our linux systems.

This meant that we needed two separare dropboxes, one for Pelles and one for
gcc. Yes, we know that there should be no differences (these are super simple
assignments), but the argumentation seems to be, “on the off chance that
something crazy happens, this is insurance and we know where this is alleged to
work.”

So, D2L forces me to use Internet Explorer,
I have 3 separately alphabetised lists of students on paper (90 out of 530)
I have assignments to collect across two separate dropboxes.

How to go about it

I have written out the names of all 90 of my students from the 3 labs into a
text file, tab-separated. I’ve also downloaded /all/ of the assignments off of
the site, because it’s relatively easy to do that. Unfortunately, D2L doesn’t
just give the most recent submission, it gives all files – so there’s some old-
versions floating around that need to be gotten rid of.

Time to write a script!

It’s going to have to get all of the filenames and keep only the newest ones.
The first way that pops into my head is as follows.

# The submissions have the dates in the filename,
# so the reversed output of ls will have the newest
# file listed first.
#
files = `ls`
files = files.split(“\n”)
files.reverse!

# Since the names are all generated by Desire2Learn,
# multiple submissions are identical for the first several
# characters. I chose to check against the first 16 or so,
# as that seems like a reasonable maximum length for a last
# name, to deal with the case of two people who share last
# names.
#
# If the first 16 characters match, this is an alternate-
# submission. And since I know they’re reverse-chronologically
# ordered, I can discard all but the first. Clever!
#
copy_files = []
old_file = “…………….”
files.each do |file|
if file[0,15] != old_file then
copy_files << file
old_file = file[0,15]
end
end

# broken out of the loop above for clarity
copy_files.each do |file|
`cp “#{file}” “filtered/#{file}”`
end

Now I need to deal with the much harder problem of only marking my students.

This post is about Wikileaks

Crowdsourcing Freedom of Information

Wikileaks. If you have not heard of it, here is a short-form rundown:

  • non-profit, volunteer-run whistleblowing organization
  • anti-corruption, anti-collusion, pro super-transparency.
  • directed by Australian hacker-cum-journalist Julian Assange[1]
  • regularly pisses a lot of the world off
  • fundamentally controversial and central to modern practice of freedom of speech.

I’m not sure what first brought Wikileaks to my attention – but I immediately loved the idea. For however long it is that people have had secrets, particularly about wrongs they committed, other people privy to those secrets have wished that there was some way they could get the word out. There has been a longstanding need for humanity to have some sensible means of uncovering the injustices done by those who watch over us and run our lives.

The institution of journalism itself was supposed to have this covered, and yet it clearly does not. Wikileaks has apparently released a higher number of classified or confidential documents than the combined efforts of every other press institution worldwide. This should be taken as a failing of the press institutions of the world, rather than an example of how great Wikileaks is, notes Assange[1].

We’ll look a bit at Assange himself first, as it seems the best way to understand this tool may be in the context of its creator, then at some of the accomplishments Wikileaks has come through, and finally the reasons why one might not want Wikileaks to exist, and the controversy surrounding it.

Advocating transparency from behind a veil of mystery

Julian Assange met Nikki Barrowclough in May of 2010 for an interview for the Sydney Morning Herald.Julian Assange was closely tied into the hacker community in Australia in the 80s, and operated under the handle Mendax. He hacked into an Australian Nortel node and an Aussie university around 1988, and his home was raided by federal authorities soon after. He went to trial terrified, but felt that his white-hat intent was meaningful and would cast a different light on his acts. He was in the system for information and out of curiosity, not for profit or joy of destruction. He decided to plead guilty to several of the charges brought forth and ended up only paying a fine as a result of his good behaviour in court and also the judge’s understanding of his intent[2] (look for the word ‘surf’ in the article).  In my eyes, this makes him a pretty cool guy.

In the book Underground, written by Suelette Dreyfus with all research done by Assange himself, a great deal of the culture and events of the international hacking community of the 80s are explored. Around page 53, the book is focusing on Mendax, and we can see it corroborating what he told interviewers at The New Yorker.

For a clever sixteen-year-old boy, the place was dead boring. Mendax lived there with his mother; Emerald was merely a stopping point, one of dozens, as his mother shuttled her child around the continent trying to escape from a psychopathic former de facto. The house was an emergency refuge for  families on the run. It was safe and so, for a time, Mendax and his exhausted family stopped to rest before tearing off again in search of a new place to hide.
Sometimes Mendax went to school. Often he didn’t. The school system didn’t hold much interest for him.

The book is available for free online. The article mentioned from The New Yorker wherein Julian gave a great deal of information in an interview states,

When Assange turned sixteen, he got a modem, and his computer was transformed into a portal. Web sites did not exist yet—this was 1987—but computer networks and telecom systems were sufficiently linked to form a hidden electronic landscape that teen-agers with the requisite technical savvy could traverse. Assange called himself Mendax—from Horace’s splendide mendax, or “nobly untruthful”—and he established a reputation as a sophisticated programmer who could break into the most secure networks.[2]

This is really cool – because it means that we have some tremendous insight across this book and particularly across the character of Mendax into Assange’s outlook on life and the experiences that shaped him, which led to Wikileaks being what it is now. The New Yorker article goes on to state that he had a protracted battle for custody of his child, and at the same time he worked alongside his mother to attempt to persuade government employees in the Australian Child Protective Services to leak internal information about the problems with the system[2]. As late as 1999 he was active in this respect, and in 1999 he obtained the domain name leaks.org[1]. This suggests strongly that the idea of Wikileaks is Assange’s originally, and that the idea is based off of his experiences during that court case and fighting a bureaucracy for what he considered to be the safety of his child.[2]

Drip, drip

Wikileaks has put out more information than I can cover reasonably here. The wikipedia page (also linked above) is the best resource for reviewing what important documents and information has come forth through the site, but I will present a short list here:

Bagdhad Shooting Video

Reuters journalists, civilians, and both armed and unarmed insurgent fighters were killed by a Helicopter crew.

September 11th, 2001 Pager Records for New York City

All pager traffic from the date of September 11th, 2001, showing a great deal of Fire, Police, and Ambulance traffic and their responses, as well as the responses of various electronic systems to the 9/11 attacks.

NATO Master Narrative for the Middle East

The NATO Master Narrative is a definition of the storytelling elements to be used and avoided when speaking about the war in the Middle East. This document discusses how to frame and spin discussions related to the Middle East to keep certain allies and enemies straight, and to paint a consistent picture of the objective of the NATO troops within the region. As a note of curiosity, the password to these documents was the word “progress”.

Sarah Palin’s use of Yahoo email addresses to avoid public records laws

A member of 4chan (specifically, the son of a Democratic member of the House of Representatives) hacked into Sarah Palin’s Yahoo email account and publicly exposed her emails through Wikileaks. His identity was outed through other means, specifically a proxy server he utilized that gave up his identity, but the documents themselves remained on Wikileaks and showed clearly that Palin was dodging laws in an uncouth manner.[6][8]

Scientology OT manuals

In response the the printing of a small amount of Scientology material, lawyers from the Church of Scientology sent a cease and desist, threatening legal action. In response, Wikileaks released several thousand additional pages of copyrighted Scientology material.

Afghan War Diary

Over 90,000 pages of documents spanning 2004-2009 showing continued, consistent events wherein humans are maimed, killed, or emotionally ruined by the actions of US forces, often in error and often by accident. It is an account of the toll that war takes, of what war is in modern times. Some greater controversy arose over this set of documents than others.

Why not?

The greatest reasons which have been put forth to date for “Why Wikileaks should not exist and publish such documents” has been privacy. There has been expressed concern that privacy for small parties or individuals is often being jeapordized by the releases of such large volumes of information.

Wikileaks (through Julian Assange) responded that whenever possible, documents have been held for a number of months to allow for the smaller interests who could be considered collateral damage to find protection and for the value of information about them in particular to decrease. Additionally, Wikileaks does take pains to avoid inclusion of personal information for individuals and small parties who are innocent and not involved as stakeholders in the confidentiality of the document.

Some others have cited concerns for National Security. Assange has an excellent rebut, “We’re not interested in that. We’re interested in justice. We are a supranational organisation. So we’re not interested in national security.” With a fell swoop, Wikileaks is placed above the issue of National Security, because of course, it is above the level of a Nation. It is not in Wikileaks’ interests if any one nation is less or more secure – it is in Wikileaks’ interests that justice (under whatever definition Mr. Assange holds for it) is served.

Controversy

There is controversy over everything about Wikileaks: the way it is run, Assange’s private life, possible smear campaigns, small-scale personal information, overhyping of information, editing or doctoring of information, coersion to steal secrets, national security concerns, moral concerns – everything Wikileaks does ends up being debated by someone.

It could be argued that this is necessary, and exactly what is intended. By doing work that no one else seems capable of doing, Wikileaks is making it possible for others to follow in its footsteps, and it is making debate and open discourse about sensitive materials a “normal idea”. Whistleblowing will become an expected part of a corporation and a government’s planning process, and Assange explains best why that matters (From 53 seconds on particularly):

Conclusions

Some people may feel that Wikileaks should not be allowed to say what it does. They believe that it should, in some manners, be silenced, censored, edited, or controlled. After looking at the chief editor of Wikileaks, and having seen a great deal of the material the website has published, my opinion remains resolved.

Anyone who says that freedom of speech should be revoked in special cases is welcome to say it, but to implement such a system would be to welcome injustice. Julian Assange, through what I can only believe is ultimately his own creation, Wikileaks, is fighting to preserve and restore justice – by providing a means of true freedom of speech with regard to government wrongs when no other person has. I thank him, and am a donator to the Wikileaks project.

Citations and Links used during Research

  1. Barrowclough, Nikki. (2010, May 22). Fairfax Digital. Sydney Morning Herald. Retrieved from http://www.smh.com.au/technology/technology-news/the-secret-life-of-wikileaks-founder-julian-assange-20100521-w1um.html
  2. Khatchadourian, Raffi. (2010, June 7). Conde Nast Digital. The New Yorker. Retrieved from http://www.newyorker.com/reporting/2010/06/07/100607fa_fact_khatchadourian?printable=true
  3. McGreal, Chris. (2010, April 5). Guardian News and Media Limited. The Guardian. Retrieved from http://www.guardian.co.uk/world/2010/apr/05/wikileaks-us-army-iraq-attack
  4. Guilliatt, Richard. (2009, May 30). News Limited. The Australian. Retrieved from http://www.theaustralian.com.au/national-affairs/defence/rudd-government-blacklist-hacker-monitors-police/story-e6frg8yx-1225718288350
  5. http://www.xs4all.nl/~suelette/underground/Underground.pdf
  6. http://en.wikipedia.org/wiki/WikiLeaks
  7. http://en.wikipedia.org/wiki/Julian_Assange
  8. http://knoxville.fbi.gov/dojpressrel/2008/kxhacking100808.htm