Lesson 2

Source Code & User Rights


Now that you’ve met the class and been introduced to F/OSS, we’ll examine the underpinnings of the F/OSS concept(s) – source code. Understanding source will clarify some benefits of F/OSS adoption. In our first lesson, you learned about the terminology and organizations behind F/OSS. In this lesson, we will learn about source code and its implications for both software developers and end-users – both individuals and institutions.

The lesson addresses these topics:

  • What is Source Code?
  • Source Code Implications
  • Corporate and Governmental Control vs. User Control

Advanced Organizer

During the lesson, look for answers to the following questions NOTE: consider copying and pasting these questions into your notes to reference while you read and review content

  • What is source code, and why should a non-programmer care about it?
  • What is GNU (pronounced “guh-NEW”)? What is the GPL?
  • Why is Free Software like the law in a free society?
  • How does public source code relate to the 4 freedoms in the Free Software definition?
  • Does the establishment of lasting freedom require that people value and discuss freedom?
  • What is malware, and how might public source code affect it?
  • How might DRM (digital rights management) be at odds with users’ interests?
  • Are software freedoms and social freedoms directly connected?

Walk-through

1. Read Timothy Hart’s Open Source in Education, pp. 8-13.

Most of us are not programmers. If you have programmed before, source code and the resultant executable software is old news; but if you have solely viewed software from the user perspective it might be a foreign concept. Hart walks us through what source is (it’s human readable!), how it works, and why we don’t program in binary (it’s only computer readable!). You will see how a very simple program looks in several programming languages. Finally, Hart shares a F/OSS analogy comparing software to cars, and what a “proprietary car” and an “open source car” might look like to a user. In the proprietary car, the user is not allowed to see or access the engine; and must rely solely on the dealership.

Hart’s car analogy resonates with me for several reasons. First, I have been the recipient of friends’ and family members repair talents for my own vehicles many times, and it has always saved me money – the dealer is always the most expensive service option. Second, I’m not a mechanic, but I’ve had to access my engine many times for mundane reasons – adding wiper fluid, jump starting a friend’s car, or getting a jump-start when my battery failed. Most importantly, I get options and can choose a qualified mechanic willing to do whatever work or modifications I might want. A recent transmission failure on my wife’s car would have cost $9,000 at the dealer, but I found a shop willing to do the work for $3,500. While individual users may never wish to hire a programmer to extend or modify software on their behalf, users almost always benefit from wide options. Moreover, in the likely event that you are one day in charge of technology for an educational institution, you will find that staff or contracted programmers can meet institutional needs quickly and economically through software modifications.

The car analogy is a simple way to communicate some of the complex and problematic issues associated with closed source, proprietary software. Before the “hazards and dangers of closed source” discussion gets you down, however, note that we’re going to be exploring a huge list of positives in lesson 2.1. If you need a mood lightener, feel free to jump ahead and read Benefits of Open Source Software in Education (ODT). You’ll quickly get the idea that open source isn’t all about avoiding negatives; but opens huge opportunities to save money, maintain flexibility, and build communities.


2. Read the following sections of Stallman’s Free Software, Free Society:

  • Forward pp. v. to viii.
  • Chapter 14: Why Open Source Misses the Point of Free Software
NOTE: You have the option to purchase the book or download a PDF copy.

FSFS-cover_sm

You’ve seen that Richard Stallman, in addition to being a programmer, is a philosopher and an activist. His stance on software is considered extreme by some, and absolutely logical by others – you will have to form your own opinion. Let’s turn back now to Stallman’s own writings in Free Software, Free Society.  This is a collection of essays.  They were not originally meant for compilation as a book, and consequently you’ll notice some overlap. The introduction was written by Lawrence Lessig, an academic and legal expert who has written on the idea that code, both computer code and legal code, are instruments of social control – and that both need to be openly accessible to maintain a free society.

In chapter 14, Stallman describes his objections to the Open Source movement (as opposed to the Free Software movement). The heart of the objection is the lack of social and ethical consideration in the underlying philosophy, but he acknowledges that “nearly all open source software is free software.” He believes that establishing lasting freedom requires teaching people to value freedom, not just pragmatism.


3. Watch Mr. Stephan Fabel’s F/OSS – A Programmer’s Perspective (Youtube, 23:58)

Stephan Fabel

Next, we’ll hear from a programmer on why F/OSS is critical. Mr. Stephan Fabel is the technical lead for the Technology and Distance Programs office in our College of Education. He oversees code development for several projects, is a mechanical engineer, a networking professional, and an infrastructure operations expert. Mr. Fabel is a doctoral candidate in Information and Computer Science and also teaches in our Educational Technology program.

As you listen to Mr. Fabel, I encourage you to think of yourself in the role of a technology manager. While you are likely not a programmer yourself, your team and/or your contracted service providers are very likely to have programming expertise. Think in terms of the advantages of source code availability for your organization in addition to what it means for your personal use.


4. Read the following news articles

In my view, there are inherent hazards in adopting proprietary software. One of the most important elements is the reliance on proprietary data formats, which have the effect of locking you to specific software products AND restricting your future technology decisions. From an organizational perspective this is dangerous ground, but we will discuss open formats in detail in a later lesson. For now, let’s look at some hazards that could affect you as an individual or organizational user. These readings revolve around this theme – what happens when no one but the developer gets to see the code? The software can be doing things that you, the user, don’t approve of – and you might never know it. Mr. Fabel described this danger in general terms and showed you an example demonstrating that you can not know what proprietary code really does on computers. By reading these news articles you will see real-world examples of this danger and understand the possible consequences of accepting proprietary code.

  • The 2005 BMG Sony Rootkit Scandal (Network World)
    • The Sony BMG CD copy protection rootkit scandal of 2005–2007 concerns copy protection measures implemented by Sony BMG on millions of CDs. The CDs installed one of two pieces of software which provided a form of digital rights management (DRM) by modifying the operating system to interfere with CD copying. Neither program could be easily uninstalled, and they created vulnerabilities that were exploited by unrelated malware. One of the programs installed even if the user refused its EULA, and it “phoned home” with reports on the user’s private listening habits; the other was not mentioned in the EULA at all  and configured the operating system to hide the software’s existence, leading both programs to be characterized as rootkits. (source: Wikipedia, see link in Additional Materials)
  • Your choice of at least one of the following

5. Watch the first 30 minutes of the video Coming War on General Computing

NOTE: I recommend following along with the transcript.

In this video, you’ll hear about how business interests want to control and restrict what you do on computers and networks. Pay attention to what they must implement to achieve that control (hint: rootkits and spyware), and how that impacts users, their freedoms, and user control.

Consider This:

  • Are these control methods possible if we choose F/OSS over closed-source?
  • What are the possible costs of insisting on F/OSS?

Next week, we’ll read from Timothy Hart’s Open Source in Education, wherein he states that “proprietary software can protect corrupt business or unconstitutional government”, but also that “with open source it’s nearly impossible to hide spyware or similar threats to privacy and free speech” (PDF page 36). In Doctorow’s closing, he states “Freedom in the future will require us to have the capacity to monitor our devices and set meaningful policy on them, to examine and terminate the processes that run on them, to maintain them as honest servants to our will, and not as traitors and spies working for criminals, thugs, and control freaks.” His dystopian vision of the future underlines the need for users and technologists to be advocates for the freedoms we value.

Activity

In this practice session, we’ll change some HTML source and see the modified output. You’ll understand how a programmer can change the source of a F/OSS application to make her own modifications.

HTML stands for Hypertext Markup Language. Similar to programming languages’ source files, access to HTML source allows the user to make modifications that server their needs. The analogy isn’t perfect, as HTML source doesn’t need to be compiled into an executable program. Instead, HTML source is simply interpreted by a web browser, which displays the results. In the following exercise, you will edit some HTML source, including a few basic HTML tags – the notation that controls how content is displayed.

Changing Code, Observing Effects

Assignments

Blog Post #2 and Class Comments

  1. Describe your reactions to Cory Doctorow’s talk. Minimally, address the “Consider This” questions noted above.
  • Your post should provide the reader with evidence that you listened carefully to the presentation. When describing your reactions, discuss the issue and what your reactions are based on. Tie in other course material to your post, where related.
  1. Review your classmates’ posts. Leave comments if you find particularly insightful reactions or where you want to add to their statements.
  • Your replies should make it clear that you read and understood their post. Where you comment, tie your statements to the presentation, transcript, related materials, or your own post. The instructor should be able to gauge that you have reviewed classmates’ posts by the presence of your comments.

Additional Material

Back To Top