Thursday, 12 April 2012

Open Source Thinking (part 1)

I recently presented a lecture on the connections between open source software development and open educational resources. The full lecture is viewable @ (link working 12/4/12).

I thought I would expand this in a blog post (we don't all have multimedia capable browsers or connections!) as I think their are some important points to make and connections not just with OER but also with political and philosophy that should be free to air.

The Postmodern Condition
Back in 1978 Lyotard wrote 'The Postmodern Condition' which was an attempt to analyse knowledge in the 'postmodern age'

So he was talking about what is considered 'knowledge' and how such information is 'framed' in postmodern culture. In the past all 'knowledge' had been framed in metanarratives, such as reductionism, or teleological ideas such as Marxism, or Enlightenment.. This is starting to dissolve in the late 20th century, as technological shifts in communication, media and computer science have granulated 'knowledge' into 'bits', which can be reshaped.

Lyotard speaks of these 'bits' as being controlled by large companies in 'data banks'. He cites IBM as an example of knowledge custodians, and predicts their model for the future is to sell this knowledge to the highest bidder, and therefore create a dystopian view of progression. It's a bit like Wikipedia acting like iTunes and selling you articles formatted for your iDevice, if you have one... if you don't, well...

I think this fits into place for the time of writing. UNIX, the first computer programming environment, was controlled by AT&T. That is to say, the root protocols upon which the technological alchemy can take place are set and controlled by large corporations. (You can see parallels today in the race for patents that Apple, Samsung, Microsoft etc have chased in terms of touchscreen technology.)

Let's reflect on the political and philosophical implications of this and imagine a computer programming environment is like a physical environment, like a small village. We have rules to make sure the fabric of such an environment works, such as 'Don't litter the park'. If we didn't have this rule, the park may get filled with litter and thus become unusable. In the virtual environment, this may be a piece of code,  which runs to delete the cache. If this agent doesn't work, or the patent for this code is controlled by someone else, then the 'park', or 'memory load on the CPU' may become filled and crash out. If the code is owned by a third party, you may have to pay for rights to use it in your software, and you may not get 'open source' access to it so it may not do exactly what you want it to (e.g. you may want the agent to pick up only certain bits of the cache to delete...').. software development suddenly becomes hard, slow and legally cumbersome.

Lyotard saw this part of this change, that knowledge was being granulated and 'framed' by its ability to sit in data banks rather than by its relation to 'big' ideology, but what he didn't see is that these structures would become cumbersome or unusable if they were not released into the open.

Let's just go over this again using another example.

Say the rule/ protocol in the computer operating system is relative, such as the rule to 'drive on the left'. This enforces all 'drivers' or 'programmers' to write code in a certain way, which is not necessarily bad in itself. But if IBM 'own' this rule, they act like the political 'state' in the physical environment - they have control not only of what direction traffic can go, but also what the taxing arrangement on this protocol is. This rule is often built on other rules ("the road must be made of tarmac, have the following signs, be the following width etc.") and IBM can own and sell them all. But as we have seen, selling them as 'finished products' is not enough for flexible software development. Programmers need to have 'open source' access to them to be able to develop flexible systems (e.g. I want the protocol to drive on the left, but I want the roads to be made out of some other material for some other benefit, and be another width...)

This all sounds mighty complicated and technical, but I hope you have taken the following out of Part 1 of this blog post:
  1. Computer Operating Systems are basically a series of protocols
  2. Protocols are analogous to 'rules' in the physical world
  3. You can own the protocols, but ownership is not flexible enough, too totalitarian
  4. Openness of rules is what is required to make flexible systems as the relationships between the rules are the important bit, not the rule itself
In Part 2 I will talk about the Open Source movement, where it came from and how a new legal framework came to protect the collaborators and encourage more collaboration.