Showing posts with label free/open source. Show all posts
Showing posts with label free/open source. Show all posts

Monday, July 28, 2008

A Non-insider's Guide to Free and Open Source Software

For years I have been using and, in some cases, promoting "open source" software, but until a few months ago, I really couldn't have told you what is really behind that idea. I knew vaguely what it is - that the source code for a certain software program is "open" (available) and can be copied and improved upon by anyone who wants to. And that's good, right? But since neither I nor anyone I know actually would delve into the source code (at least not at this point), what does it matter? Windows, Office, and Adobe Reader all work, even though they don't share their source codes, so why should an end user (that's you) care? From a practical point of view, there are not that many compelling reasons, but I'll try to lay out what "Free" and "open source" mean and why they might just matter to you after all.

A Nutshell History - Free Software and GNU

In the 1970s, long before everybody had computers in their homes, computers were confined to university research centers, and software was free and shared for the most part. Two future figures in personal computing came out of this era with opposite impressions. Bill Gates, frustrated by the idea that software was being shared among computer enthusiasts without payment to the software creators (known as "pirating" software), wrote an open letter saying so, in which you can see the seeds of the Microsoft business model.

Richard Stallman, on the other hand, became frustrated that people were putting restrictive licenses on what was previously open and shared software, and in response to this, he created the Free Software Foundation, which still advances the cause of Free Software. Stallman's greatest innovation is the intellectual property workaround of "copyleft," in which a program's creator copyrights the source code, then releases the source code and program with the condition that it must remain Free and shared and that any modifications to it must also be shared in turn, preventing anyone from taking, say, the Linux kernel, changing the code, then copyrighting that code to make millions of dollars. This concept has been codified in what is known as the "GNU General Public License" or "GPL," which led to the Linux/Open Source revolution as much as anything else.

If you are interested in Richard Stallman's ideas about this, peruse the GNU Project website. It is worth mentioning that what is normally referred to as "Linux" is actually just as much Richard Stallman's GNU system (hence some distributions' insistence on calling it "GNU/Linux") - unfortunately for Stallman, "Linux" is a much catchier, if not quite accurate, name.

"Open Source" Software

In the late 90s, as Linux began to take hold as a viable alternative to proprietary software, Free Software advocates began attempting to shop their software programs to the business world. Given the political stances of the Free Software movement, and the inherent trouble of describing software as "free" to people interested in making money, several Free Software figures got together and formed the Open Source Definition, which was based largely on Debian's Free Software Guidelines. This new term (to which Richard Stallman strongly objects) gave businesses a way to extol the practical benefits of free software without having to negotiate the ambiguous (and potentially loaded) term "free." Unfortunately, "open source" is also ambiguous enough to lead to situations where companies may release their source code (making it "open"), but will attach a number of caveats about its use and redistribution that are not at all in line with the Free Software movements goals (or those of the Open Source Initiative for that matter).

"Freeware", "Shareware", and Other Confusions

To add a large dose of confusion to what is already a complicated topic, there are many software programs out there on the Web which are free to use, but are not Free or Open Source software. These programs will often use terms like "freeware" or "shareware" in their descriptions, which to the untutored eye all look the same. Browsers like Internet Explorer or Safari, or programs like iTunes, Adobe Reader, or VMWare, are all free to download and use under certain conditions. There is also a growing number of free (of cost) web-based services that have come to define the idea of "Web 2.0"-style computer usage, like Google Documents, PBWiki, and even Blogger (which I use to host this blog). These are not Free Software in the "free as in speech," Open Source Definition/GPL sense. As Free Software advocates continually have to explain, the "Free" is about "freedom", not cost, and these "pseudo-free" programs have ulterior motives when they don't charge for their use (mainly advertising).

How to Tell if Your Software is Free

Now that I've laid out what's Free and what isn't, how do you tell? Here are a few characteristics of non-Free software:
  • A restrictive End User License Agreement (EULA) - a quick glance should tell you - you will see a lot of "You may not . . ." language.
  • Many non-Free programs will attempt to slip in extra software (like the Yahoo! or Google browser toolbars that track your internet usage and provide advertisers with whatever personal information you don't explicitly "opt out" of)
  • You may see advertisements appear during the installation process
  • You may have to enter your personal information to "register" your product or use a product key to be able to use the product
Free software programs will often be licensed under the GPL or some other license (Apache, Mozilla, and other open source companies provide this sort of licensing as well). Look for language affirming the rights to redistribute and share the product.

It's All About Choices

Just like in your grocery-shopping, software choices matter. Most of the time (at least to my palate) conventionally-grown brocolli tastes the same as organically-grown brocolli, so why spend the extra money? I buy organic fruits and vegetables (when possible) because I know (or trust) that my body doesn't need the extra chemicals and pesticides that are used in conventional factory farming nowdays. Free and Open Source software are similar, in that you know that you can use conventional corporate software solutions with all of their caveats and insidious advertising, or your can use Free and Open Source software, which guarantee your freedoms to use and share it as you see fit, without any ulterior motive. You can argue that they "taste the same", but isn't an extra glance at the EULA worth the effort?

Friday, May 16, 2008

I (heart) Debian


As I mentioned, I am using a virtual installation of Debian "etch" to learn how a Linux server works, and I wanted to write about how impressed I am with Debian in particular as a rock-solid, stable, and principled Linux distribution. I was just reading through some of the online documentation provided on their website and I just get the warm fuzzies about it :-). Of course, this is a sign that I've either 1) finally lost it or 2) have achieved a level of geekdom seldom dreamed about or 3) a bit of both. Okay, here's what I love about Debian:

Stability and Functionality

Debian takes great care testing software and making sure that it is as bug-free as possible, which results in situation where it is both a) never on the cutting edge of software technology and b) extremely reliable and functional. They maintain three versions of Debian at a time: the stable distribution (currently named "etch"), the testing distribution (currently named "lenny") and the unstable distribution (always named "sid"). The names come from the Pixar film Toy Story, a fact which I just recently learned. Debian is often criticized in the Linux community for being so slow to release, and is not nearly as popular as a desktop distribution as, say, Ubuntu (more about this comparison to follow).

Strong Principles

In the late 1990s, when the free-software movement developed the term "open source" to describe free software projects in a way that the business world could understand, the creators based the Open Source Definition (OSD) on the Debian Free Software Guidelines. Debian as an organization adheres very strictly to these when choosing software to include in its distributions, and there have been controversies (in the free/open source software world) about the policy, including a high-profile rejection of the Mozilla Firefox brand name. For the average end user, this does not amount to much, of course, but that's one of the main reasons Debian is able to keep its reputation for integrity - they are willing to make controversial or otherwise unpopular decisions. Debian also insists on officially being called "Debian GNU/Linux" in reference to the fact that the Linux kernel is only a part of the operating system as a whole. Free software pioneer Richard Stallman has an opinion about this as well.

Foundational for Other Great Distributions

Debian is the basis for many other distributions, most notably Knoppix and (of course) Ubuntu. Since I moved to Ubuntu, I have often thought of it as Debian's "really unstable" branch, though Ubuntu has a different mission in mind and is associated closely with Canonical, which, like Red Hat, is a for-profit company seeking to gain an enterprise Linux market share (not that there's anything wrong with that :-)). Debian was my first choice as a Linux distribution when I got into all this, and I'm happy I went with it.

Thursday, April 17, 2008

What I'm Doing Here

I've been working on this blog for a while and have been sharing it from time to time with friends, co-workers, and family members and I'm told kind of all around that much of what I'm writing is incomprehensible to them! At first this was kind of flattering, especially from one or two of my peers who were impressed by how much I've learned about this, but I really want people to understand, especially my friends and family. Of course I've been doing this for nearly 9 months now, and that was after learning a great deal in graduate courses that has given me some background. So I'm writing this post as a jargon-free clarification of what I'm doing and maybe I'll re-clarify why I'm doing it in a separate post.

When you use a computer, you are using its operating system (like Windows XP or Vista or Mac OS) and its applications (like Internet Explorer, Office, Safari, or iTunes). You may have variations on this. You might have Windows Vista or (God help you) Windows 98. You may only use Microsoft Word and Internet Explorer. You may use Quicken or Adobe Photoshop or Dreamweaver or some very specific application you need for work. All those product names are probably familiar, because so many people use them. Your eyes probably don't glaze over as you read them, at least.

Linux, like Windows or Mac OS, is also an operating system. It has a desktop, icons, and volume control. It looks like this:


I use a mouse, a keyboard, a printer, a scanner, and speakers. I type in plain English, not computer code. If you were to sit down at my computer, you would be able to get around and do whatever you normally would do with your current computer. With a little orientation, you would be surfing the web, using email, typing and printing letters, listening to CDs, or watching DVDs. You could also talk on the phone, chat, program a drum machine and lay down guitar, bass, and vocal tracks for your next pop album. You can download all your digital camera pictures and tinker with them. I think I've made the point.

What if I told you that you can have all of these benefits for free? Not one shiny dime have I spent on this project. Here's what I have on my computer:

  1. A brand spanking new operating system that is endlessly customizable to my whims and preferences. It NEVER crashes. I've never had to "Ctrl-Alt-Delete" to get out of something and I certainly don't have to restart after every software installation or update.
  2. A full-featured office suite that can open MS Office documents and save sharp, crystal clear PDF documents.
  3. A professional grade video editor (among several out there).
  4. A first-rate Internet browser, email client, and chat client.
  5. A drum machine and multi-track digital recorder.
  6. As many games as I'd ever have time to play and then some.
I could go on, but again, I think I've made the point. I didn't have to buy this great stuff, and you know what else? I can share it with you for free as well. We don't have to meet in some back alley, and we don't have to call a company and ask permission. No one will come lock us up for doing it. This is what is meant by "free" software. Pretty cool, huh?

Monday, April 14, 2008

Several Musings . . .

I have been starting posts left and right, and then I get bogged (blogged?) down and I never finish them. Here is a summary of some of the ideas that I was trying to express:

I Have Changed

Since beginning this project, I have been mainly interested in the practical aspects of Linux (e.g., "Wow, this works!," "Where do I find this or that driver?," "I wonder how KDE & Gnome are different?" etc.). I had said from the outset that using Linux for me was not at all political, but slowly, as a result of using Linux, and from reading/seeing the books and other media about Linux, GNU, and Open Source, I have a greater understanding and respect for the entire ethos and philosophical framework for these movements. The result of this is twofold:

  1. I am now enthusiastically searching out open source alternatives for proprietary software. I recently did a blog post for our library system about this. I am also talking to others about my experiences ad nauseam.
  2. I have come to view proprietary software very negatively, especially now that I have an understanding of the many benefits of keeping software open and free (as in liberty).
The best thing I can compare this transformation to is a religious conversion. I have "found Linux!" Given the pride, fervor, and devotion of Linux users, I imagine this is not an uncommon experience.

Getting Under the Hood

Because of the requirements of certain employment opportunities in my field, I have decided to learn Unix commands and scripting. I had taken a networking class in grad school that required us to know some of this, but that was nearly three years ago and I've gotten quite rusty. I'm also trying to learn Perl for the same purpose. I was a science/math kid, and then in high school and college I was drawn to literature and the liberal arts, and with my M.S. in library and information studies, my science/tech side was reawakened. However, my current skillset doesn't quite match my enthusiasm. This is what I'm trying to remedy by learning shell and Perl scripting.

Open Source Libraries

A corollary to my interest in open source programs to do everyday computer tasks is my interest in applying all this to libraries. My system uses a proprietary Integrated Library System (ILS) that we all (patrons and staff) tolerate at best. When we want a certain customization, the answer is almost always "no," and I just don't see a good reason why this should be true. Fortunately, in a rare case of my home state of Georgia being ahead of the curve, the Georgia Public Library Service developed the Evergreen ILS, which is released under the GPL and is completely home grown. I would love to get involved in this project, and I am trying to develop a skillset (see above) to let me get my foot in the door.

So there's the gist of the six or so posts I was working on!

Tuesday, April 1, 2008

GNU/Linux/Open Source History

I just got a book from the library that I came across in an encyclopedia called The Cathedral and the Bazaar by Eric S. Raymond and started reading it last night. I mentioned in an earlier post that there seems to be a dearth of published (non-web) works about the history of open source software, and this is one of the only ones, and though I was not familiar with it, it is very well known. It was originally an essay posted on the web, and includes other apparently notable essays from the time. The main metaphor of the book evokes two images to contrast closed-source and open-source software development. The corporation method is like the builders of a cathedral - elites who work in secret and unveil their product with great fanfare, while the open source model, which is done in public view and employs anyone who's interested, resembles a chaotic bazaar. Both images have positive and negative aspects. The thing about the current state of Windows, Apple, and GNU/Linux distributions is that the bazaar has caught up with the cathedral.

Compare the reactions from both the public and the press (at least initially) to the releases of Windows Vista and Ubuntu 7.10 last year. You can see the bazaar in action now, with Ubuntu's beta release of 8.04 "Hardy Heron." Critics and programmers are finding problems that will almost certainly be addressed by the final release. One of the most memorable lines in "The Cathedral and the Bazaar" is "Given enough eyeballs, all bugs are shallow," which Raymond attributes to Linus Torvalds. Trapped by the cathedral model, Vista faced much negativity and ridicule with the need for "patches" and "service packs" almost immediately. A large open-source community would have almost certainly found these problems before the release.

I said just a few short weeks ago that my interest in Linux and open source software is not political, but I'm finding myself faced with the undeniable reality that moving to an open source way of doing things has made me evolve in my thinking (I'm working on another post about this transformation, which I'm finding difficult to describe), and my opinions about companies that still claim to own products that I have purchased have moved further toward the "free" software philosophy. Expect more about this as I read on!