UNCW HomeUNCW HomeBreaking News! Click here for details.

Shane Baptista Computing Consultant
Center for Teaching Excellence


Introduction to Open Source Software

Definition of Open Source Software and History


Open Source Software programs have licenses which allow the end user to use, redistribute, modify, and sell the software.  You read the last portion of the last sentence correctly, to sell the software.  You could start a business today selling Open Source Software for any price you could convince somebody to pay.  The programmers expressly give up their copyright to their work.  On the surface this seems like an impossible situation.  Why on earth would somebody give away their work?  What these developers share is a sense of freedom from constraint within the licensing model and a conception of software as a service rather than a commodity.  Given a service model for software, the skill to adapt and use the software is the item of value.  

These developers gain personally through programming for the Open Source Community.  Developing a particularly useful application is likely to get you hired by a large corporation for a nice sum.  A recent example is Guido van Rossum, the creator of a popular Open Source programming language, Python.  He was hired  by Google in December 2005.  Many of those who develop Open Source Software began their software development life using Open Source Tools and so are converted in the beginning and never see any good reason to leave the community.  They are often paid programmers for a company by day and Open Source programmers by night.  Sometimes they are paid by companies to develop Open Source Software.

In the beginning computers were monolithic.  These large collections of vacuum tubes resided in few select places.  Scholars worked on these systems and shared the results of their research through the traditional academic model; they published their results so the findings could be verified by their peers.  In the software development world this meant the source code was included with the descriptive article.  The few computers that existed were of same or similar physical architeture so the programs would be run to verify the findings and the source code would be included in the next project in the same way other sciences build upon previous findings.  With the advent of microcomputers, the widespread access to computers created a demand for software to utilize the power of these machines.  It was at this point that the source code began to be held back.

Richard Matthew Stallman
grew up intellectually within the original academic, collaborative, and social setting that was the foundation of software development.  In June 1971, Stallman went to school at Harvard University and was a programmer in the MIT AI Laboratory.  There was a playful inclusive culture in which Stallman thrived as a "hacker" amongst hackers.  With the birth of micro-computers in the 1980's, this hacker culture began to dissolve.  The hackers either started for profit companies and closed the source code to their software or went to work for firms that closed the source code.  In response to the dissolution of a society he loved, Stallman founded the Free Software Foundation and later the GNU General Public License.

Linus Torvalds was a graduate student at the University of Helsinki.  Torvalds started out writing a Unix-like kernel to be able to write his own input and output codes.  He based is kernal on Minix which was a Unix clone that was used as a teaching tool.  Minix had an active community which helped Torvalds get started on his Minix clone.  This small project grew until it became the one of the best known Open Software Projects, Linux.

Red Hat Linux is one of the largest Open Source Software companies and is traded publicly.  Sun Microsystems has been a major contributor to the Open Source world.  IBM is another company that has turned to Open Source Software as a means to stay competitive.

My Experiences with Open Source Software


How I learned to stop worrying and love the Open Source.  I've been working in a computer related capacity since the early 90's.  I worked as a student secretary while I did my undergraduate work in history and secondary education.  I was hired mainly on the strength of my computer technical skills.  After I graduated I went to work at another university as a secretary, again on the strength of my computer technical skills.  I then moved to North Carolina and was hired yet again as a secretary with the University of North Carolina Wilmington Center for Teaching Excellence on the strength of my computer technical skills.  That position opened into a real computing consultant position with the Center for Teaching Excellence in 1999 and I've been training and advising faculty on the use of computer programs and technologies through the present.

During my time as a computer consultant I have had access to most computer programs that I could demonstrate would be useful to faculty.  However, I was not in control of purse strings to the point of being able to procure the same software for all faculty.  I could help the faculty member write a grant or a memo to try to attain the money but everybody with need found themselves in a position of being a beggar or mooching off of nagware and dealing with the "You have used this program x # of times don't you want to give us money now?" pop up windows before the program would run.  Bad vibes were everywhere.  If I couldn't get the software for a professor I would end up in a dependent relationship where I became a part of the professor workflow.  This was good for making friends but bad for productivity on both sides.

Working for a public institution I have tried to be frugal with state money.  So when Photoshop went from version 5 to version 6, I stayed with 5.  When Premiere went from verision 5 to version 6 I found myself needing the improvements and spent the money.  It rankled, however, because I had paid plenty of good money for a working version, found it lacking and when the company fixed the product I had to buy it again to atain the base level functionality that I desired.  I watched new versions of Microsoft Office come and go with no apparent increase in functionality, just the changing numbers, or name conventions and the occasional breaking of backwards and or forwards interoperability between versions.  When the OS changed from 98/NT to XP I watched yet again a number of once perfectly useable computers be shunted to the wayside because of software upgrades.

Sometimes software is no longer sold or changes companies and becomes more expensive...MS PhotoDraw was originally bundled with FrontPage, then it was included with the UNCW site license for the MS Office suite and finally it was dropped from the suite and sold as the stand alone MS Digital Imaging Suite. CoolEdit by Syntrillium software was purchased by Adobe changed to Adobe Auditions and went from $69 to $250.  Who knows how the Adobe Macromedia Merger will play out in terms of which software lives and which dies since the two companies had some competitive overlap in their products.  Not able to use tutorial resources created for the applications and no point in using them further because can't teach somebody how to use them because the only way to get the product to the new person is to pirate the software.

For years there has been rampant piracy especially with software that is really expensive.  The more expensive the software the more likely an individual is to feel that they are free to steal that software.  Adobe Photoshop is one of the most widely pirated software programs because it is well known, useful and expensive.  I had been guilty of this and I felt badly in that justified but still not right sort of way.  Open Source Software offers a way to end this piracy by taking what is being offered and ignoring that which is held back.

The frustrations that I felt seemed to be the inevitable state of computing in the modern era.  Pay three times and then throw the hardware away.  The process was painful to watch and even more painful to participate in.  I had heard about Open Source Software and had even had a home computer made into a dual boot windows/linux, machine which means that when the computer boots up I had the option to choose between Linux and Windows.  Unfortunately, the sound card in my computer wasn't recognized and neither was the modem.  Without the ability to reach out to the internet or listen to music or videos I found the Linux side of my machine uninspiring.  However, there were some intriguing programs that seemed to work pretty well and I hadn't paid for them.  My curiosity was piqued and then sated.

During this same time period I started playing around with a program called the GIMP which is an acronymn that stands for Gnu Image Manipulation Program.  The GIMP posed two difficulties.  First the name which doesn't bear saying in a formal setting without some sort of caveat about geek software naming humor. Second, it had a nonstandard interface and seemed a little buggy.  Once again my interest was raised but I was satisfied that I would have to suffer on through the proprietary upgrade cycle.

Fast forward another couple of years to the Spring of 2003.  I had developed an interest in 3D modeling.  The industry standard, Maya, was a $7,000 dollar purchase.  For the first time in my professional career I requested a tool and I was told that it was simply too expensive.  I asked around and the computer science department had purchased a 20 seat license for the software and I was allowed to install Maya on my computer and have it validate via their server to make sure it had not surpassed the concurrent use limits.  I was really happy with having acquired the software that I wanted to learn and dug in with earnest.  3D modelling takes some doing to learn and I found that I really wanted to work some at night at home.  In pretty traditional geek fashion I will stay up into the early hours of the morning when I'm working on a particularly interesting project.  Unfortunately I could not use this copy of Maya on my home computer I had now way to authenticate via the university server.  I started using Maya's free trial use version but the "Trial Version" watermarked over the main 3D screen proved to be too much of a distraction to an already difficult task.  I resigned myself to daytime work on the 3d modelling and progressed slowly.

In the summer of 2003 when the university had sent it's professors away to research and I was working in relative solitude I happened upon a downloadable CD called the Open CD.  The Open CD had a collection of Open Source Software varying from computer utilities like pdf creation and file compression to an office suite, games, a universe simulator and most interesting to me some teaser materials from an open source 3D modelling program called Blender.  I downloaded Blender and began studying from online tutorials.  From there I branched out to other Windows based Open Source Software packages and I have not looked back.

I still use some proprietary software, but this list is constantly shrinking.  I run a dual boot system on my laptop computer and I run some linux software from my Windows desktop computer through a Linux emulator called Cygwin.  I try to stay focused on Windows compatible Open Source Software because the professors that I work for/with are mostly on Windows computers and don't want to/shouldn't need to learn new tricks in new operating systems.  They have professional obligations to tend, and too much time in the technical realm doesn't serve them well when it comes to reappointment and tenure.

What you Want:  How to Get Your Programs

There are some problems that can occur when you start using Open Source Software.  Once you find software that you want you will be presented with a couple of options; source or binaries.  Well at first glance it is Open Source Software so you must want the source.  Well unless you know what you are doing you can't do much with the source code because it hasn't yet been compiled to work with your computer.  When a code is compiled you end up with a binary which is the program that you run.  So answer to Question #1 is I want the binary.

Free is not necessarily Open Source

Beware of free software that does not bear some sort of Open Source or GNU licensing.  When someone is giving you something for free but hiding the code away there might be a reason they want to hide the code.  There are many free utilties on the web that are either spyware or malware.  You should run an anti-virus program on your computer and you should use some sort of anti-spyware program.  You should be careful about what you install on your computer.  Open Source Software is free of viruses and bad code that can hurt your computer or send information about you back to some marketing firm.

Where to find Open Source Software


Do a web search with the functionality that you want and the word Open Source

Open Source Software that I use regularly

Compilation CD's

Bibiography

"An Introduction To Open Source Software Development"
http://user.cs.tu-berlin.de/%7Etron/opensource/
Steffen Evers

A Brief History of Free/Open Source Software Movement
http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html

Richard Stallman
From Wikipedia, the free encyclopedia.

"The Cathedral and the Bazaar"
Eric Steven Raymond

Moody, Glyn. Rebel Code:  The Inside Story of Linux and the Open Source Revolution.  Cambridge Massachusetts:  Perseus Publishing, 2001.