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.
Slashdot.org
Not an Open Source site as such but touches on a lot of Open Source
Issues "News for Nerds Stuff That Matters" It is a daily read
for
me and has been a way that I've found new software on occasion.
Do
a web search with the functionality that you want and the word Open
Source
Open Source Software that I use regularly
The GIMP - The Gnu
Image Manipulation Program to be compared with Adobe Photoshop or
PaintShop Pro
Inkscape
- Scalable Vector Graphics Drawing program to be compared with Adobe
Illustrator or Macromedia (Macrodobia) Fireworks
OpenOffice
- Office Suite with Wordprocessor, Spreadsheet, Presentation, and
Drawing, and Database to be compared with Microsoft Office or
WordPerfect/Corel Suite
Audacity -
Audio edting and compression tool to be compared with Adobe Auditions
NVU - HTML Authoring
tool to be compared with Front Page and Macrodobia Dreamweaver
7-Zip - File
Compression Utility to be compared with Winzip
Python - Programming
Language - to be compared with...well Perl but Perl is also open
source...
Blender
- 3d Modeling, Compositing, Video Editing, Game Engine to be compared
with Maya but only within the modelling this is really a distinctive
tool.
Scribus
- Desktop Publishing to be compared with Adobe PageMaker or Quark.
Please note this program is not currently available for
Windows
so you need to follow these
directions
for installing Cygwin (linux virtual environment) and compiling Scribus
for use within Cygwin. This is more technically demanding
than
any of the other programs on this list.
Jahshaka - Video
Compositing tool to be compared with Adobe Premiere
Clam AntiVirus -
AntiVirus Software to be compared with Norton AntiVirus or McAffee
Anti-Virus