Lesson 2

Source Code & User Rights


Now that you’ve met the class and been introduced to FOSS, we’ll examine the underpinnings of “open source” – source code. Understanding source code will clarify some benefits of FOSS adoption. In our first lesson, you learned about the ideas and organizations behind FOSS. In this lesson, we will learn about source code and its implications for both software developers and end-users.

The lesson addresses these topics:

  • What is Source Code?
  • Source Code Implications
  • User Control vs. 3rd Party 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?
  • 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?
  • What is malware, and how might public source code affect it?
  • How might DRM be at odds with users’ interests?
  • Are software freedoms and social freedoms directly connected?

Walk-through

1. Read Chapter 1, “What is Open Source” in 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. You will see how a very simple program looks in several programming languages. Finally, Hart shares a FOSS 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 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 choose 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.

For Discussion:

  • What are the advantages and the drawbacks of choosing the open source “car”?
  • If you are surrounded by peers that drive the welded-hood car, does that change how you feel about driving something different?

2. Watch A Programmer’s Perspective (Youtube, 23:58)

Stephan Fabel was the technical lead for UHM College of Education for several years. He is a programmer, a networking professional, and an infrastructure operations expert. As you listen, 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 likely to have programming expertise. Think in terms of the advantages that source code availability brings your organization, in addition to what it means for your personal use.


free-software-free-society-33. Read the following from Stallman’s Free Software, Free Society:

  • Forward, by Lawrence Lessig pp. vii. to x.
  • Chapter 14: Why Open Source Misses the Point of Free Software, pp. 75-82

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. Stallman’s own writings in Free Software, Free Society 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 asserts 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. The heart of his 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.

For discussion:

  • What are “malicious features”?

4. Read examples: Underhanded software and Hazards of Closed Source

In my view, there are inherent hazards in adopting proprietary software. 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 everything that proprietary code really does on your computer. These news articles demonstrate some real-world examples of this danger.

  • Sony’s DRM Rootkit
    • 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 implemented a form of digital rights management (DRM) by modifying the operating system to interfere with CD copying. Neither program could be easily un-installed, 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.

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

NOTE: Follow along with the transcript, and pause when you need to reflect on or rewind something. Use Hypothes.is to view instructor’s notes and contribute your own.

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

For Discussion:

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

Activity

In this simple activity, we’ll change HTML source and see the modified output. You’ll understand how a programmer can change the source of a FOSS 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.

Mozilla’s Thimble – Experiment and Learn HTML

  1. Click “Start a project from scratch”
  2. On the lefthand pane, change the text between <h1> and </h1>
  3. Notice the change in the “output” in the righthand pane.  With some HTML knowledge, you can make this page do anything you want; but without access to the source, it’s static.
  4. Feel free to experiment. Add more text. Can you tell how to make text bold? Try out some other tags.

Assignments

blog iconBlog Post #2 and Class Comments

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.” Stallman asserts that only free software respects users’ essential freedoms: the freedom to run, study, change and redistribute.

Choose a proprietary (closed source, nonfree) program you are familiar with (Windows, Keynote, Excel, Quicken, etc.) and write two position statements.

  1. In the first, take Stallman’s perspective and discuss the software in terms of user restrictions, malicious features, DRM, and ethics. Advocate for a FOSS alternative.
  2. In the second, discuss the software from the perspective of a user who doesn’t share Stallman’s perspective. Address and counter Doctorow’s and Stallman’s perspectives and show why a typical user need not be concerned by them.

Your post should provide the reader with evidence that you read and understood Hart, Stallman and Doctorow. Feel free to tie in other course material or external resources to your post.

  1. Review and comment on 3 of your classmates’ posts. Comments (replies) should make it clear that you read and understood their post. Tie your comments to the readings, presentation, transcript, related materials, or your own post.

Additional Material

Back To Top