For some time now, wherever one looks, a more or less heated debate has been going on regarding patents, licenses, free software, and the Creative Commons movement. Some say piracy is wrong because it’s a shortcut, others reply that it’s a way to fight the corporations and outdated law, some mention the freedom inherent in the open source movement, others say they don’t want to mix ethics with technology. They quarrel and argue, seeking support for their views among moral, legal, or economic authority figures. And although all these debates are very important, they often ignore an important aspect of the whole thing – its practical side. For me, the open source movement is simple pragmatics – the ethics, law, and economy come as bonuses.
A (Mini) Introduction to Licenses
Free and open projects (not just software-related ones) are not without their rights. To allow them to function effectively as free and open, a number of licenses have been created with the main purpose of protecting the right to continue the development of the licensed product. One such license is the General Public License (GPL), created by the founder of the Free Software Foundation, Richard Stalmann. The specificity of the GPL is that it requires the author of a work derived from the licensed product to provide that work under the same license. Thus the GPL assures a free and open existence for all derivatives of the given product or project. It is often portrayed as a “license virus” that moves from one work to another. Other popular free and open licenses include the Lesser General Public License (LGPL), the BSD, and licenses from the Creative Commons family.
I would like to present this pragmatic side of open source from several complementary perspectives. To reflect on what is its educational dimension, what comfort means in open source, what the work ethic is in projects of this kind, and why less cost means more cost even though more cost means less cost. In this part, I would like to focus chiefly on the educational dimension, which appears to me to be one of the strongest advantages of the open source movement.
Let us start with a fictional story about Kowalski and Nowak.
1. Software developer Kowalski writes a new program – a music player. For this purpose, he creates a large number of text files containing what is known as “source code”, which is, basically, a long and complex list of instructions for the computer, expressed in one of the hundreds of programming languages. Kowalski has chosen a language called Python because programming in it is easy and fun.
2. Kowalski uses special tools to turn the source code into a working piece of software. Then, he posts the software on his website in the form of a special installation version so that the future users won’t have to waste time getting through the source code files. Double click is our friend!
3. Kowalski has decided to release his program under one of the standard free software licenses, the GPL (General Public License). Why shouldn’t anyone be allowed to add something to his software or modify it? Kowalski is not a thick-headed programmer and if someone has a good idea how to tweak his software, he won’t mind. “The things people come up with!” Kowalski likes to say.
4. Graphic designer Nowak stumbles upon Kowalski’s site and decides to try the product. He’s been listening to music on his computer using Kowalski’s program for two weeks now and he’s very satisfied. The thing works, has a series of nice options, and it costs nothing – it’s freeware.
5. Still, Nowak doesn’t love the fact that, being the “typical software engineer”, Kowalski has equipped his program with ugly icons and anachronistic colours. Nowak remembers that the program is distributed on the GPL license, which means that its author encourages cooperation.
GNU General Public Licence logo
by Aurelio A. Heckert
6. Nowak creates some nice icons and e-mails Kowalski asking whether he’d like to use them in his program and telling him he could prepare new colour identification. Kowalski writes back the next day to say that the icons have already been added and Nowak’s name is in the Contributors section. He adds he will gladly accept a new colour range – it’s not his strongest side and he finds the chore tiresome. If Nowak wants to start working with on colours himself, he should have no problem doing so, because the source code is well written. The two exchange their instant messaging nicks.
7. With certain apprehension but also excitement, Nowak downloads the source code and unpacks it on his machine. There are many files, but Nowak quickly finds the two folders of interest to him: pics with the icons, and gui with the source code for the graphic user interface, where the colours should be.
8. When Nowak opens a file called track_list.py and Ctrl-f’s to find the first mention of “color”, he is greatly surprised. He sees the following lines:
# set the font color to light red
self.color = QtGui.QColor( 250, 150, 150 )
“It’s like English!”, Nowak thinks.
9. Nowak quickly realises that the figures in the parentheses are the RGB (red, green, blue) values, which he is familiar from Photoshop. He finds a nice red colour and replaces the values.
10. When he opens the program again, the songs highlighted on the track list have a new hue. Nowak is filled with pride.
11. Kowalski loves the new and improved look of his music player. He has changed the version number from 0.6 to 0.7 and listed Nowak as co-author. It’s been several months since Nowak’s initial contribution and he has learned to write in Python with Kowalski’s help. He never thought he’d be doing this, but now he chats with Nowak, discussing the option of equipping their music player with a video playback function. A new version is in the making!
Perhaps some readers will find this story sounds like fairy tale about a beautiful, ideal world. But if anyone has read it using Firefox, they have experienced its effects on their own skin, and on a much greater scale. Firefox is an open source web browser and the users’ involvement can be gauged by the number of the available plug-ins and skins. As of today, Mozilla, the company responsible for the product, lists over 10,000 plug-ins and over 35,000 skins. Moreover, the Mozilla source code has been used to create not only Firefox but several other browsers as well (including Flock, which has recently grown quite popular).
Linux logo by Larry EwingAnother spectacular example is, of course, the Linux operating system. It was created on the initiative of a brilliant Finnish student who complained that after graduating, he would no longer have access to the Unix operating system he used in university. To address this, helped by his fellow students and hundreds of thousands of programmers and enthusiasts from all over the world, he wrote his own Unix-based system. Linux is a flagship example of using the internet for collective work.
Anyone who has read up to this point can say that this is interesting but limited to the narrow world of software developers. Well, this is not true, and for several reasons. Without going into details (there will be time for that in the successive installments of this series), let us look briefly at two open source movie projects, Elephants Dream and Big Buck Bunny.
Both short animations have been created in a similar manner: Blender Foundation (an institution responsible for writing and developing a source code called Blender, which is used to make 3D animations) set up a specific-purpose residence program for several outstanding animators. In the first instance, the group’s role was to create a short film that would fully exploit Blender’s potential in terms of figure animation. The second residence was for nature animation. During both productions, the Blender Foundation was able not only to see how much can be done with their software but also develop it on the spot according to the suggestions of outstanding animators. What more, the authors of Blender knew that they would thus obtain top-quality educational material, because the complete production-level content was made available to Blender users on an open source basis. In this case, source code means character models, lighting schemes, specific animation sequences – all that is needed to make an animated film. You can download it from the Blender Foundation website and use for your own purposes, be it educational, artistic, programming, or other. As a result, any time someone wonders, watching the film, “How did they do it?”, you can always answer, “I don’t know but give me a moment, I’ll look inside and tell you”. Some of the best animators on the market today have made their work available to us so that we can improve our own technique under their supervision, as it were.
As in the Kowalski/Nowak story, here too the educational aspect should function as a primary one. Open source means not only the possibility to adapt code to your needs but also, and most importantly, the possibility to learn from more advanced users. This is the radical change of perspective that the open source movement offers. The classic saying, “He graduated from university, but he learned his profession on the job”, is reflected here – thanks to the possibility of learning directly from experienced programmers, architects, and animators, knowledge is not detached from professional practice. I myself am a self-taught software developer – I know how much I owe to open source!
translated by Marcin Wawrzyńczak