Wednesday, July 30, 2008

KDE 4.1 - Wow!

Okay, I'll just start with the screenshot, because, I'm just a little speechless:

Can you believe this is Linux?!? As anyone who has followed my blog knows, I've had mixed reviews of KDE in the past. I first saw KDE in Knoppix, my first experience using Linux, and it just looked foreign and strange, and not that inviting. I tried KDE again when I first installed Ubuntu and liked it okay. Actually I thought it was nice enough, but just a little boring maybe - a little too Windows-y looking for my taste. And I know it's shallow, but all the "K" names (Klipper, Konsole, Konqueror) were really bugging me there for a while. Since then, though I've kept a separate Kubuntu partition, just to be able to use it from time to time, if for no other reason than that it's free and that it gives me a well-rounded Linux experience to use both Gnome and KDE.

I replaced my monitor today, the CRT model that came with my Dell in 2004 with an LG 19" flat panel, and I wanted to see how KDE looks on it. Then decided to see if I could give KDE 4.1 a whirl. So I downloaded it to work alongside KDE 3.5 and wow, is it awesome! It's almost like an entirely different program, making my darling Ubuntu Gnome desktop look a little boring itself. I may even do a fresh install of Kubuntu in this partition with KDE 4, then upgrade to KDE 4.1. In any case, I'm sure I'll report back with more to say!

Tuesday, July 29, 2008

Learning How Linux Really Works

The thrust of this blog has been an attempt to use Linux in the same way one would use Windows or Mac OS, which is to say, without using the command line. Nothing makes people's eyes glaze over more quickly than the very words "command line," no matter which type of computer you're using. I recently showed my father-in-law the bash shell on his three-year-old MacBook, and he had no clue what it is or what it does. When Windows 95 took hold of the computing world, it was a while before I found that the "MS/DOS" icon opens the command window that works like it always did in the pre-GUI days of the late eighties. In any case, the command line is where Linux truly works, and all the mousing and clicking is really only issuing commands to the shell, the Unix/Linux term for the command line interface.

For all of the Linux distributions I've encountered, bash (the Bourne Again Shell) is the default shell (there are others that I haven't explored yet). I'll mention here that bash is a program developed for the GNU operating system, which, along with the Linux kernel, constitutes GNU/Linux, or what many call simply "Linux." A shell is simply a program that allows a human being to interface with the computer, manage files, perform tasks, and so on. To use the shell, you type in a command (input) and the shell performs the command and provides feedback (output) or simply returns to the command prompt, which lets you know that the command worked and all is well. If something goes wrong, it lets you know that too by giving you (usually comprehensible) error messages. That's about it. Once you know a set of basic commands, you can navigate through your files in a more hands-on and precise way than is possible from a graphical interface. It's a little like driving a car with a stick shift after only driving an automatic. You have much more control, but there's a steep learning curve and you're in for a bumpy ride for a while.

The other main thing to learn about Linux that you can only do effectively (in my view) from the shell is the directory structure. At first this is a little overwhelming, but since it is set up in a standard, orderly hierarchy, you'll soon learn what it is you're looking at. Finally, when you have learned some commands and get your bearings, you can learn the true meaning of "open source" since you can view the source code of all the programs you have installed. Of course, at that point you'd want some understanding of programming languages, and I'm not much help there at this point!

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?

Wednesday, July 2, 2008

Free as in Kittens

I've talked so far about software freedom as in speech and as in beer. Today my topic is the kind of "free" that people view as a burden, the example being "free kittens." This is the meaning of "free" that keeps many regular, reasonable computer users from adopting (or perhaps even trying) free software solutions for everyday needs. Free kittens are free of charge initially, yes, but that doesn't include the monetary costs of vet care, food, or replacing clawed up furniture. The word "free" here also doesn't include intangible costs like time spent training the kitten, cleaning up after her, having her keep you awake at night, and the like (can you tell I speak from experience?). We learn as adults that many so-called "free" things are not really free, since the costs of ownership outweigh the benefits.

A big reason that people pay for software is so they have someone else accountable when things go wrong, which as Mr. Murphy has taught us, they always will. That accountability is obviously worth millions (just ask the recently-retired Bill Gates, age 52). The sense of "getting what you've paid for" also provides much of the basis for Microsoft's infamous "Fear, Uncertainty and Doubt" (FUD) strategy that was revealed in the leaked "Halloween Documents" in the late 1990s. From this perspective, it's easy to say that free software is "not really free," since you can't call anybody when it breaks.

In an earlier post, I addressed how tech support is usually provided in the GNU/Linux/Free/Open Source community. Through online forums and IRC channels, users have great access to support from fellow users - people just like you who use a computer just like you who've had problems just like yours, not someone getting paid pennies to answer a phone and pretend like they care. As anyone who's sat on hold waiting for a tech support person, or sifting through hundreds of "knowledge base" articles that almost-but-not-quite address the problem, knows, "support" in this case is often not very supportive. Since Linux is community-driven, you're bound to find someone to help you with your problem, because we've all been there!

So what's the counter-argument to the charge of free software being "free as in kittens?" First of all, most cat owners will tell you that the kitten stage is worth the effort. I mean, we're all adults here, right (unless you're not :-))? Does anybody who's actually lived real life believe that anything is really free in this sense? Does having the "right" to call tech support 24/7 and sit on hold being told by recordings that your time is valuable really constitute peace of mind? I don't think so, but I'm also kind of a sold-out believer in free/open source software at this point and I know from experience that I can pretty easily find solutions to problems.

The main point to make at the end of the discussion is (to paraphrase Richard Stallman), "think free speech, not free kittens." Free software is not about monetary cost, it's about having the freedom to use and share software for the benefit and enjoyment of all. Have a happy Fourth of July and make sure to download some free-as-in-speech software this weekend! Be brave and build it from source!

***[Fireworks, Star Spangled Banner playing]***