NMC Sponsored Panel, Fight the Power: Open Source, Free Software, and Critical Digital Practice

FALL 2011: V.07 N.02: CAA Conference Edition 2011

Ben Chang
Associate Professor in the Department of the Arts, Co-Director of the Games and Simulation Arts and Sciences Program
Rensselaer Polytechnic Institute

Chair: Ben Chang, Rensselaer Polytechnic Institute

Panelists: Aymeric Mansoux, Piet Zwart Institute, Rotterdam, and Goldsmiths, University of London; Heidi May and Jody Baker, Emily Carr University of Art and Design; Bridget Elmer, University of Alabama; Megan Lotts, Southern University of Illinois, Carbondale; and Robert Lawrence, University of South Florida.

Critical Digital Practice

INTRODUCTION by Ben Chang

Digital technology has become a standard tool for artists working in both new media and traditional forms, just as it has become enmeshed in every aspect of contemporary life. At the same time, the software industry has evolved towards an oligopoly, particularly in creative applications. Our digital landscape and creative tools are wrapped in a rhetoric of free expression, inspired creativity, and social interconnectedness; but all this is built and maintained through the hard-nosed and often strikingly aggressive system of late-capitalist logic. The title of this panel is perhaps a bit of tongue-in-cheek hyperbole. As a topic heavily infused with the technical details of software engineering, it may seem like an unlikely site for radical resistance. On the other hand, executives at Microsoft have described open-source software as “a cancer,” an “intellectual property destroyer,” a form of modern-day Communism, “a virus,” an attack on the American Way, and “very bad basically for the world, but especially for the United States.” [1] This suggests there must be something interesting going on.

As artists – and computer users in general – we really just want our software to work well, and help us get our work done. However, we also understand the importance of a critical awareness of the methods of production, environmental effects and social impacts of the things we use everyday. Extending this to an examination of our digital tools and practices means grappling with the material nature and implications of something immaterial, abstract and (as Arthur C. Clarke puts it) generally indistinguishable from magic. [2]

Anything digital we create only comes into being through software and is utterly dependent on an elaborate web of technologies for its continued existence. This system of dependencies is also a matrix of control, defined by the affordances and the restrictions constructed by software makers. One way in which these are expressed is through the “End-User License Agreement,” or EULA, the pseudo-contracts that one has to click through when first using almost any piece of commercial software. [3] Since these are generally multiple pages of fine-print legalese (the EULA for iTunes is nearly 80 pages long), almost nobody reads them; but they contain a subtle and important shift in what it means to be a technology consumer and user. Purchasing a piece of software no longer means ownership of it – instead, we are merely paying for a license to use the software, under terms dictated by the manufacturer. Some of the terms found in EULA’s and in Terms of Service (TOS) agreements forbid users from “reverse-engineering” the software, to try and learn how it works; forbid public comparisons of the software with other applications; allow companies to install other software on your computer without the user’s consent or knowledge; assign rights to user-created content back to the software maker; and allow the collection and recording of anything the user does.

The underlying issue has to do with the restrictions that manufacturers place on what can be done with their software – essentially limiting the freedom that the user has. We enjoy a certain amount of freedom with our possessions in the real world. Want to paint your car bright pink? Sure, it’s your car. Want to take your watch apart to see how it works? Go ahead – good luck getting it back together, but it’s your watch. Want to do a solar power conversion on your lawnmower? Improbable, but nothing’s stopping you. However, in the realm of commercial software, these kinds of uses are frequently prohibited and sometimes illegal. At their most broad, the EULA can forbid users from reselling or giving software to someone else. While you can always sell that lawnmower on eBay or give that watch to a friend as a present, any EULA can make this illegal for software. Since almost everything now has software in it, we may be entering a time when we don’t really legally own anything but only lease it. [4]

The EULA is just one example of the constraints that commercial software has developed. Free Software, in contrast, has an emphasis on freedom instead of constraint. The Free Software Foundation offers this definition:

“Free software” is a matter of liberty not price. To understand the concept you should think of “free” as in “free speech” not as in “free beer.”

Free software is a matter of the users’ freedom to run, copy, distribute, study, change and improve the software. More precisely it means that the program’s users have the four essential freedoms:

0. The freedom to run the program for any purpose (freedom 0).

1. The freedom to study how the program works and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.

2. The freedom to redistribute copies so you can help your neighbor (freedom 2).

3. The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. [5]

All of these freedoms rely on software being open source. To understand what this means we have to delve a little bit deeper into how computer programs work. Any piece of software, no matter now sophisticated, is built from lists of instructions, or code.

Here’s everyone’s first program in the C programming language, which prints out a little message on the screen:

#include <stdio.h>

int main ()

{

printf (“hello world\n”);

}

It’s written in a language that humans can use. The computer, however, actually speaks a very different language. Here’s the same program, converted into Assembly, a little closer to the language of the machine:

1 .file “hello.c”

9 .Ltext0:

10 .section .rodata

11 .LC0:

12 0000 68656C6C .string “hello world”

12 6F20776F

12 726C6400

13 .text

14 .globl main

16 main:

17 .LFB0:

18 .file 1 “hello.c”

19 .loc 1 4 0

20 .cfi_startproc

21 .cfi_personality 0×3,__gxx_personality_v0

22 0000 55 pushq %rbp

23 .LCFI0:

24 .cfi_def_cfa_offset 16

25 0001 4889E5 movq %rsp, %rbp

26 .cfi_offset 6, -16

27 .LCFI1:

28 .cfi_def_cfa_register 6

29 .loc 1 5 0

30 0004 BF000000 movl $.LC0, %edi

30 00

31 0009 E8000000 call puts

31 00

32 000e B8000000 movl $0, %eax

32 00

33 .loc 1 6 0

34 0013 C9 leave

35 0014 C3 ret

36 .cfi_endproc

37 .LFE0:

39 .Letext0:

Assembly is cryptic, but is still a human-oriented representation of the final form of the program, in pure machine code:

0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0001 003e 0001 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 03e0 0000 0000 0000
0000030 0000 0000 0040 0000 0000 0040 0018 0015
0000040 4855 e589 00bf 0000 e800 0000 0000 00b8
0000050 0000 c900 00c3 0000 1101 2501 130e 030b
0000060 1b0e 110e 1201 1001 0006 0200 0024 0b0b
0000070 0b3e 0e03 0000 2403 0b00 3e0b 030b 0008
0000080 0400 0024 0b0b 0b3e 0000 2e05 3f00 030c
0000090 3a0e 3b0b 490b 1113 1201 4001 0006 0000

[6]

The first version of the program is called the source code. This is what programmers work with; it’s something that can be read, understood and modified. The final version is known as the object code, machine code, executable or the binary. This is the form that most software comes in: it’s functional, but almost impossible to decipher or modify. Most software companies keep the source code to their programs a closely guarded secret, wrapped in a protective cocoon of NDA’s and patents. Having access to source code provides the ability to look at a program and understand how it works, and the ability to modify and improve it.

It’s important to note that free and open source software doesn’t prohibit charging money – it is only a definition of freedoms for users. These ideas are implemented through the creation of licenses, which specify freedoms rather than restrictions. There are a number of common open-source licenses, including the GPL (GNU Public License), BSD License, Apache License, MIT License and many more. [7] The GPL, also created by the Free Software Foundation, is perhaps the best known open-source license. It is also a Copyleft license, requiring that the modified versions of a program also be released under the same GPL, along with source code. This prevents GPL software from being turned into “non-free” software and ensures that improvements and innovations remain shared by the whole community.

As with any movement driven by passionate idealism, these philosophies and their implementation in practice are a contested territory, even within the FOSS community. Different positions lie along a continuum from purists such as Richard Stallman (creator of the GNU Project and founder of the Free Software Foundation) to pragmatists like Linus Torvalds (inventor of Linux) and South African billionaire Mark Shuttleworth (space tourist and founder of the popular Ubuntu Linux distribution.)

One common thread is the emphasis on community-oriented development. Open-source software provides the technical possibility that anyone can modify and contribute to the code. Successful projects turn this option into the core organizing principle of production, using decentralized, international networks of programmers. Large projects also frequently involve contributions from teams at major software companies like IBM, Red Hat, Oracle, and Google, but the ultimate ownership of the software lies with ‘the community’ rather than any one corporation. Corporations may act as the main sponsor of an open-source project, but if it starts doing things with the project that the community doesn’t agree with, anyone is free to ‘fork’ it—take the source and continue developing his or her own version of the program. Management of open-source projects requires an emphasis on transparency, consensus building and democratic governance structures, which make them an interesting model for other forms of community-driven production.

Open-source software is just one part of a wider conversation about free culture, freedom of information and alternate modes of creative production. However, the term “open-source” has become a broad signifier for artistic projects, going beyond its original usage in software development to include work which may not involve writing software at all but focuses on the free redistribution of media, remixes and community-oriented practices. The papers presented here explore a range of ways in which artists engage with these issues, from software art and digital remixes, to networked performance and handmade books.

Aymeric Mansoux has worked extensively with issues of free distribution as both a theorist and practitioner. He is the creator of Pure::Dyne, a Linux distribution for new media artists; co-founder of the GOTO10 software art collective and co-editor of the book FLOSS+Art, a seminal collection of essays on art, open-source software and open culture. As co-supervisor of the Networked Media Design and Communication Master’s Program at the Piet Zwart Institute in Rotterdam, he has developed a postgraduate course of study based around Free Software, DIY and critical approaches to digital media. In his essay, Mansoux discusses the use of copyleft licenses in art as a deliberate tactic, and asks whether the use of licenses like the GPL and the Free Art License can provide a foundation for critical engagement with the continually reprocessed sea of information. Heidi May and Jody Baker use the non-hierarchical, unpredictable nature of networked culture to reshape the physical and virtual classroom as a space of emergent knowledge. They present a theoretical framework for their pedagogical approach, and its application in curriculum design centered on the concept of the remix. Open Source and Free Software are primarily related to digital media. Do they have relevance for old, physical media as well? Bridget Elmer’s Open Edition extends free software and its ideas to one of the oldest and most physical forms of media, the handmade book. The project demonstrates the use of Free Software tools for design and layout, including algorithmic design in Processsing. Collaborative bookmaking workshops and open resources on papermaking, printing and binding techniques extend the philosophies of Open Source through the whole process, culminating in the question of applying the GPL to unique, handmade physical objects. These questions, like many of the fundamental issues in Open Source and Free Culture, are about the future of that strange abstraction known as Intellectual Property. Megan Lotts, Fine Arts Librarian at Southern Illinois, Carbondale, provides a concise overview of copyright law, the heavily contested terrain of Fair Use and new approaches such as the Creative Commons system. Finally, Robert Lawrence presents the evolution of his telematic performance work, which incorporates the philosophy of Open Source on multiple fronts. The underlying technology includes the development of open-source video streaming software, but the work itself is also collaborative and involves a worldwide, decentralized network of participants. These papers describe a diverse array of practices, providing a sampling of critical approaches to new media through Open Source and Free Software.

Endnotes:

1. An archive of quotes by Bill Gates, Steve Ballmer, and others at Microsoft on Open Source is available online, The Source, “Open Source at Microsoft,” http://www.the-source.com/open-source-at-microsoft/ (accessed July 6, 2011).
2. Clarke’s Third Law, “Any sufficiently advanced technology is indistinguishable from magic.”
Arthur C. Clarke, “Hazards of Prophecy: The Failure of Imagination,” in Profiles of the Future: An Enquiry into the Limits of the Posssible, Revised Edition (New York: Harper & Row Publishers, 1973), 21.
3. For more examples of strange and frightening language in EULA’s, see the Electronic Frontier Foundation’s page “Dangerous Terms: A User’s Guide to EULAs,” http://www.eff.org/wp/dangerous-terms-users-guide-eulas (accessed August 17, 2011 and TOSBack, “Terms of Service Tracker,” http://www.tosback.org/timeline.php (accessed August 17, 2011).
4. In Autodesk v. Verner, the Ninth Circuit Court of Appeals ruled that the EULA barred the resale of legally purchased copies of Autocad. This decision allows EULA’s to trump the long-held doctrine of “first sale” in copyright law, with potentially far-reaching consequences. The Source, “Open Source at Microsoft,” http://www.the-source.com/open-source-at-microsoft/ (accessed July 6, 2011). Groklaw’s coverage of this case and other related cases provides a good overview of the issues. Groklaw. “EFF Urges Supreme Court to Hear Vernor v. AutoDesk First Sale Case, ” http://www.groklaw.net/article.php?story=20110622225806671 (accessed August 17, 2011).
5. GNU Operating System. “The Free Software Definition,” http://www.gnu.org/philosophy/free-sw.html (accessed August 17, 2011).
6. This example was compiled with GCC 4.4.5, x86_64-linux-gnu. To replicate, save the C source code as “hello.c” and run this command:
g++ -Wa,-adhln,-L -g -c hello.c
or just
g++ -S hello.c
which stores the assembly code in a file called hello.s
To compile the C code to an executable program, do
g++ hello.c -o hello
To see the hex code:
hexdump hello
7. Wikipedia. “Comparison of free software licenses,” http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses (accessed August 17, 2011).

Appendix: Free and Open Source Software

Linux Distributions:

Ubuntu: http://www.ubuntu.com
Linux Mint: http://www.linuxmint.com
Fedora: http://www.fedoraproject.org
Debian: http://www.debian.org
OpenSuse: http://www.opensuse.org
ArtistX: http://www.artistx.org
PureDyne: http://www.puredyne.org
DistroWatch: http://distrowatch.com/

Free/Open Source Software:

Graphics:

GNU Image Manipulation Program (GIMP): http://www.gimp.org
Inkscape: http://www.inkscape.org
Scribus: http://www.scribus.net
MyPaint: http://mypaint.intilinux.com/
Pencil: http://www.pencil-animation.org/

Video:

Kdenlive: http://www.kdenlive.org
VLC: http://www.videolan.org/vlc/
FreeMix: http://freemix.forja.rediris.es/
ffmpeg: http://www.ffmpeg.org/
PiTiVi: http://www.pitivi.org/
Cinelerra: http://cinelerra.org/
Kino: http://www.kinodv.org/

Audio:

Audacity: http://audacity.sourceforge.net
Ardour: http://ardour.org
Pure Data: http://puredata.info/
Mixxx: http://www.mixxx.org/
SuperCollider: http://supercollider.sourceforge.net/
Qtractor: http://qtractor.sourceforge.net/qtractor-index.html
LMMS: http://lmms.sourceforge.net/

Programming:

Processing: http://www.processing.org
Arduino: http://www.arduino.cc
Cinder: http://libcinder.org/
OpenFrameworks: http://www.openframeworks.cc
Eclipse: http://www.eclipse.org

3D:

Blender: http://www.blender.org
Wings3D: http://www.wings3d.com/
K3D: http://www.k-3d.org/wiki/Main_Page
BRLCad: http://sourceforge.net/projects/brlcad/
FreeCad: http://www.ar-cad.com/freecad/index.html
Art of Illusion: http://www.artofillusion.org/

Game Engines:

Panda3D: http://www.panda3d.org
PyGame: http://www.pygame.org
Alice: http://www.alice.org
Cocos2D: http://www.cocos2d-iphone.org/, http://www.cocos2d.org
CrystalSpace: http://www.crystalspace3d.org/
OGRE: http://www.ogre3d.org/
Irrlicht: http://irrlicht.sourceforge.net/
Delta3D: http://www.delta3d.org/

Other:

LibreOffice: http://www.libreoffice.org/
Firefox: http://www.mozilla.com
Gnome Desktop: http://www.gnome.org/
KDE Desktop: http://kde.org/
Linux Kernel: http://www.kernel.org/

Organizations and web resources:

Electronic Frontier Foundation: http://www.eff.org/
Free Software Foundation: http://www.fsf.org/
Creative Commons: http://creativecommons.org/
Open Source Foundation: http://www.opensource.org/
GrokLaw: http://www.groklaw.net