Monday, August 31, 2009

Staying Power

What are the real threats to open source software? We all know that there are some threats. Microsoft is a big one. The Redmond Washington mafia is always trying to stifle the GNU/Linux and open source community. Macintosh, the real alternative to Windows in most consumers' minds, is another potential threat (especially considering that several of the current markets are shared between GNU/Linux vendors and Apple {think Hollywood, astronomy, other scientific communities, and 3d modeling}). However, due to the decentralized and highly viral nature of open source software, these competitors are not going to be the death nail for GNU/Linux. If GNU/Linux is going down, it will come from the community itself.

From programmers to home users, we are the cancer killing Linux. Why? Complacency and a want for the convenient. To a large extent we are no longer willing to take the time to do things 'properly'. Unix systems are classically 'set up once and forget it,' meaning that setup can be painfully difficult and trying, but after being set up you never need to think about the OS again. This no longer accurate in the Linux world. We want the shiny installer that a brain-brain dead rat could figure out how to use, and we want the package selection menu provided by Ubuntu even though it often results in a polluted system, and potentially breeds security issues. The ability to exercise control over a system is one of the attractions that brings people to Linux, we are getting rid of it, because we are lazy. We want things to be easy for people, but those types of people often do not care enough to bother with Linux at all, let alone understand what Linux is and why it's important. This is also why we see Ubuntu respins every where we turn our heads, and Debian respins on the backs of our eye lids. It's easy to do, and so we do it. We don't take the time to learn how to do things 'the hard way' or the 'right way,' we just want our solution, we want it now, we want it to be easy, and we want it readily available... because taking the time to search for it is just not worth it.

Another issue is that from a programming perspective we are getting lazier everyday. Why does Linux battery life on notebooks and netbooks suck so much? Well, CPU cycles are far higher than need be, because everyone is using incredibly high-level languages to write everything... Python and other interpreted languages are being used to write large, bulky, resource intensive applications. So for every one pass through a CPU that a fully-compiled application would have, the interpreted application runs twice. One to translate, the other to execute. Just like I've said, convenience has killed off correctness. We used to choose the appropriate language for task at hand, now we choose the easiest. With one application running this may seem to be a stupid point, but that isn't the issue. The average user doesn't want to run powertop and kill applications that he or she needs just to save battery life (this would effectively turn the 200 to 2000 dollar machine into a paperweight). ASM, C, and C++ are becoming old-school. No one want to write software in those languages anymore, not with Python, C#, and Ruby readily available. Even Java and FalconPL are better options seeing as they are semi-compiled, though the JRE is rather bloated and could easily kill a machine's power efficiency anyway... which brings us back to fully compiled languages being better suited to large applications. I am aware of some of the virtues of interpreted languages, in particular the ability to run the program anywhere that interpreter is present without recompiling, but this logic doesn't always work considering that compiling software in Linux is trivial. Cmake, make, imake, jam, and the rest of the automated systems make this easy. Programmers just don't want to do it (I am a programmer, and I am somewhat guilty of this myself; I often rationalize my way through it, but at the end of the day it's just easier and faster to code in higher-level languages).

The next and biggest reason that Linux users are so often the cancer killing Linux is that we are zealous. We often say that Linux is just better than Windows and Macintosh. Explanations are often riddled with philosophies and have little to do with practicality. If someone heavily relies on Win32 and Win64 software why on Earth should he/she use Wine, which does not work well for everything (and last I checked not at all for Win64)? If someone is accustomed to using tools available for Macintosh why should he/she switch to Linux which offers no compatibility at all with Macintosh? Linux is great for phones, DVRs, BlueRay players, game systems, desktops, laptops, netbooks, servers, mainframes, cars, jets, and toasters in general, but it is not great for every single one of them. Yet, here comes the Linux fanboy pushing his favorite distribution. He convinces someone to switch, and after doing so the system does not work properly if it works at all. Someone else is now totally turned off to Linux and free software. Sometimes, just the pushy and condescending nature of Linux advocates will push people away.

At South East Linux Fest here in the USA, the majority of laptops I saw were not running Linux. Most of them were running Windows, and my laptop as well as one other person's laptop were running OS X (Power architecture, and aluminum... no distro properly supports the multitouch aluminum touchpad). Beyond that, most people were completely against making Linux compatible with any other system. Why would you do that, if it were capable of running other platform's software then no one would write software for Linux!? Well, you cannot tell someone that software is gratis, and then tell them to throw away $3999.99 worth of software. The price tag in that instance is actually $3999.99 plus the downtime it takes to install the new software. These people yap on and on about open source software, but not everything in Linux is open source. There are binary blobs littering the kernel, several closed source drivers that are used quite often, and firmware that is certainly not open source. Further there are multimedia codecs we all use that have a lot of legally gray water surrounding them. So the almost religious devotion to the open source model is somewhat flawed, imho.

We talk about Linux being able to do anything, well there are things it cannot do... it cannot give me two hours of battery life on my PowerBook G4, and it cannot run the majority of software out there, and it cannot seem to break into the commercial PC market, and it cannot seem to work oob with most portable devices or wireless chipsets (though kernel drivers for wireless chipsets has gotten quite a bit better). Yet, Linux can make my coffee in the morning. I love Linux and open source software. I really do. These little annoyances force a lot of Linux users to keep a Windows system running, or a Macintosh system running. We do this instead of taking the time to make Linux do these things. We are the threat to Linux and open source. No one else is.

Tuesday, August 25, 2009

Great Distros You May Not Have Tried

There are some great distributions in our wonderfully cluttered Linux distro landscape. Some are very similar to others, and some are wildly different from the rest. The one thing to remember is that while these distributions may be amazingly well thought out, and amazingly well put together their obscurity will present two problems. First, smaller communities will not be as capable of helping you with every problem you face. Second, with fewer users you also have fewer contributors. This means that releases may be infrequent and irregular, and package repositories will be sparse. If these problems are not crucial deal breakers for you, read on.

Platform: i686
Format: CD ISO
I have already mentioned GoboLinux in this Blog. GoboLinux is a personal favorite of mine, because I use some obscure packages which are installed from source. GoboLinux also allows me to have multiple versions of the same package installed at one time, and also allows those packages to be used in tandem. GoboLinux installs packages into their own directory under /Programs/Foo/1.0/ where Foo is the package you are concerned with and 1.0 is the version you are installing. One advantage of Gobo is that portage has been ported to Gobo, allowing you to lean on Gentoo's vast package repositories. LiveCD and Install CD. KDE and Window Maker included.

Platform: i486
Format: CD ISO
Draco was originally based upon Slackware, but has since come into its own as an independently developed GNU/Linux distribution. It's claim to fame is the use of NetBSD's pkgsrc. It is incredibly stable, and for being a one-man-project (last I checked) it has a rather robust package repository. The install/live CD is a little spartan btw, but this is expected due to its leaning toward BSD. Repos include XFCE, GNOME, and KDE.

Platform: i686
Format: CD ISO
Blag is a linux-libre, Fedora-based GNU/Linux distribution. It serves very well as a single CD Fedora. Another great part of Blag is that the most common RPM repositories are preconfigured for use. Blag is a showcase of what is possible with only purely open source software. However, that does mean that hardware support is a little less stellar than to what most users are accustomed. Several packages are included for multimedia in this distribution. Anaconda Install CD, GNOME.

Platform: i686
Format: CD ISO
Enlisy is a gem. It's similar to Arch Linux, but unlike Arch all of the system management tools are written in Python. This makes the system very highly hackable. The tools closely resemble those present in Arch, so you have the same level of flexibility and power at your disposal. The cd is installable only, and like Arch you will start with a relatively minmal system. However, the installer is much improved (imho) over Arch's, and a minimal shell is available from the install CD, as well as a memtester... which is always useful. KDE, GNOME, XFCE all available through the repos.

Platform: i686
Format: CD ISO
Protech is an Ubuntu based distribution that stands out from most Ubuntu respins. Usually with Ubuntu respins we have seen there is very little originality. They all try 'redefine' the desktop, and make things 'easy' or 'pretty' or something similar. This one does accomplish the above but it also packs in plenty of network and security tools. It can be used Live or Installed, or on USB. Fluxbox as default. Plenty in repos.

Saturday, August 8, 2009

Quick cli application rundown

It isn't unknown that Linux/UNIX systems have a powerful CLI. The heritage of these operating systems is in the CLI, and applications are still written for it. Here is a run down of some of the more popular CLI apps.

Web Browsers
Lynx, a classical text-based web browser that supports Gopher, HTTP, HTTPS, FTP, WAIS, and NNTP. It doesn't render tables, frames, CSS, fonts, Java, JavaScript, AJAX or page colors. However, font attributes are often represented by a change in text color. Links is another console web browser. It can render tables, frames, limited CSS, images, and colors. Through the use of GPM Links can make use of that silly little pointing rat on your desk.

File Sharing
rTorrent is bittorrent client for ncurses/console. Its keybindings are a little less than intuitive but it is a powerful client. After getting used to it, I think you will find that it's a wonderful application. It offers all of the standard features that torrent users have come to expect. rTorrent is makes use of libtorrent, and if you find rTorrent to complex for your liking, there is also simple-torrent on the website, which you can use as a basis for your own client.

Text Editors
There are many console text editors, and none of them seem intuitive to new users. VI is amazing, but newer users are put off by its keybindings and some of the standard things it does (like opening in view mode as opposed to edit mode). The two heavy weight champions are VI and Emacs. Both have loyal followings, and both are so powerful that you could probably conquer the universe with them, and at the very least consider them an OS. Pico/Nano is popular, but the key bindings are not natural. This is why I like NE. NE is a simple text editor that allows use of several different character models (latin, chinese, korean, arabic, katakana, hirogana, thai, greek...), syntax highlighting, unlimited undo/redo, and the list goes on.

Many people know about alsaplayer, mpg321, and similar audio players for the console, but there are two music players with which I have been particularly impressed MOC and CMUS. CMUS is my personal favorite. It has a simple ncurses interface with a high level of control over playlists and whatnot else. Not much of a learning curve. player-play will play music, and as thought player-stop, player-pause and so on. MOC is very similar to Midnight Commander in it's interface, and while it isn't my preferred audio player, it does offer something CMUS doesn't... by pressing q the interface will disappear, freeing up the terminal, and can be accessed later on. You can also have MOC accessible in your X-session while having it simultaneously available on a standard tty.

On most modern machines, svgalib can open up image viewing and video viewing on the console. The image viewer of choice imho is ZGV. It hasn't been updated since 2005, but it works well. Mplayer can work with several drivers that do not require X, but I find that it is easier to make it work with svgalib, just make sure that you have the development files for svgalib handy when trying to get Mplayer working.

Continuing with media, there are several applications that can be used in conjunction with one another. Take for instance, cdparanoia. On it's own is merely a cdripper that has good error correction. However, one can then use ogg-enc (available through vorbis-tools) to make the wave files produced by cdparanoia a set of oggs. Those can then be used anywhere, or even burnt to CD using cdrtools.

Mutt is the best mail user agent on Earth. Besides being highly configurable, open source, free, common, small, and intuitive it also uses libraries and commands that are common to almost all *nix systems (fetchmail/getmail, sendmail, procmail). SLRN is an slang news reader, and has just as loyal a following as Mutt. IRSSI is an IRC client that has gained amazing popularity. It allows multiple simultaneous server connections, file sharing, and almost every other feature than IRC supports.

For PIMs, the two best applications I have found are Calcurse and HNB. Calcurse is a more traditional PIM, and most users would likely prefer it. HNB is a hierarchial notebook, and can be used for virtually any kind of information organization you could think of. I list it as a PIM because that is its most obvious use. For dealing with Word documents, AntiWord can convert .doc files to postscript or plain text. You could use LaTeX as a way to make rich text documents or you could use HTML. For spreadsheets Oleo has done me well. Databases are numerous. PostgreSQL is my favorite, though many people enjoy MySQL or SQLite.

Final Thoughts
There are many hundreds more applications out there, but these are enough to get someone curious about using the CLI more a good direction. This selection of applications will also make it possible for many casual computer users to switch entirely to CLI only system. If you are looking for instant messengers (one group notably left off of my listing), you will find several on source forge. My reason for leaving them out, is that I personally think they all suck.

Thursday, August 6, 2009

Office Suites

Nearly every desktop computer and laptop has some kind of office or productivity suite. Many of these have several applications in them that can be used together to replace a paper office, but the most common three applications are word processors, spread sheets, and presentation creators/viewers. On Win32 machines, there are several commercial suites that reign supreme, and on Macintosh systems iWork and MS Office are common (though NeoOffice is a close 3rd). So what options are available for UNIX/Linux systems? I have found there are six common office/productivity solutions for these platforms with which most of us are already familiar.

There's GNOME Office, which consists of AbiWord, Gnumeric, Evince, Evolution, GnuCash, gLabels, and Glom. AbiWord is a word processor. It supports a wide range of document formats, and is the jewel of this suite. The common MS .doc format is well supported, and while may corrupt the document layout of .doc files, AbiWord tends to do far better in that department. For spreadsheets GNOME Office contains Gnumeric. Evince is a decent document viewer, and an official part of GNOME. Evolution is also an office part of GNOME and serves as an organizational tool and mail/news client. GnuCash is a financial-accounting application for small businesses but is also a wonderful personal finance application. gLabels is a label design application. Glom is an incredibly simple DB program that reminds me quite a bit of OS/2's default DB system.

KOffice is the office suite for KDE. KDE is insanely common across UNIX and Linux systems, and oddly enough most people never use it. eclipsed it nearly entirely. With KOffice version 2.0.0, we may start seeing this office suite again reach wide-spread acceptance. KOffice is very versatile and capable. It consists of KWord (word processing), KSpread (spreadsheets), KPresenter (presentation creation/viewing), Krita (image manipulation), Karbon (vector drawing), KPlato (project management), and Kivio (flowcharts, diagramming). Kexi and Korganizer have not been included in this release of KOffice, but Korganizer is still present in KDE and works well with KOffice. Kexi is still making use of QT3 libs.

By far the most popular office suite outside of Microsoft's dominion, is Created by Sun Microsystems as an open source StarOffice, it quickly gained popularity. OO.o consists of Writer (word processing), Calc (spreadsheets), Impress (presentations), Draw (flowcharts, graphics, diagrams), and Base (databases).

Siag Office is much smaller in overall disk usage than the other suites, and tends to be lighter in memory usage as well. Unfortunately, it hasn't been updated since 2007. It consists of Siag (spreadsheets), PW (word processing), Egon (animation/image), XedPlus (text editor), Xfiler (filemanager), and Gvu (image/document previewer).

Lotus Symphony is based upon and while sharing that basis has several notable differences. The Lotus Symphony UI is drastically different and more simplistic than it's older brother's, and it's a smaller program overall. It contains only word processing, spreadsheet, and presentation software.

The sixth on the list is Google Docs. Being a web based office suite, Google Docs is cross platform. It is lighter in feature set than most of the others, though is incredibly useful. It features word processing, spreadsheets, form creation, and presentation viewing/creation.

Other office suites do exist, though these are the most common. Feel free to comment with additional information or with corrections in the information presented here.

Tuesday, August 4, 2009


What is it that makes Microsoft's products sell? Why is it that Microsoft seems to reign supreme in our microcomputer industry? Sure, we all know that IBM and Linux are strong in the research field, and we know that Solaris had a strong following in some areas as well, but niches aren't what dominate markets. Niches are just small pockets that concentrate on specific things. We all have a tendency to think that Scientific Linux is a niche distribution, or that tomstrbt is a niche distribution... in reality Linux is a niche operating system. The same can be said about the BSDs, and Solaris, and AIX, and HPUX, and V7x86 (ad inifitum). When we look at Macintosh, there is a tendency to think that Microsoft isn't impenetrable. Why does Macintosh do well when Linux does not? After all, Linux offers more hardware support than any other OS. Well, the answers are blazingly obvious and simple.

First, Macintosh has brand recognition... which is something Linux cannot offer.
Second, Macintosh advertises.
Third, Macintosh comes pre-installed on Apple branded computers.
Fourth, Macintosh has made itself trendy.

These things may seem trivial, but the truth of this matter is that most people simply do not care about their computers all that much. They do not understand the benefits of open source software, and really wouldn't care if they did (and about half would call it hippy b.s.). When people actually use Linux systems they become convinced, and for many when you explain that they will not need antivirus and antimalware software they become a little more interested, but that doesn't tip them over. Linux is looked at as nerdy by those who know about it, and it is regarded as quality by those who are familiar with it. What it does not have is a marketing ploy, advertising, ubiquity, or brand recognition. Without those things it will fail. Macintosh made itself desirable for reasons other than superiority to the competition. Superiority in quality never makes a difference in the microcomputer world. Macintosh made itself desirable by becoming trendy, doing clever advertisements, and making themselves more available to the market.

Linux cannot do any of these things, because no large corporations back Linux. Canonical, Novell, and Red Hat are the only companies that could really make any things like this happen, and neither will because there is too much risk involved. How much money would they have to spend, and after spending where is the assurance that they will profit off of their investment? There are no numbers to support the idea that people want Linux. Most Linux users would never pay for a preconfigured Linux machine. We enjoy making our machines our machines, and often are not interested in someone else's setup. The majority of the population will not really care about Linux as soon as they hear: no you cannot use MS Office, Outlook, IE, any of your games... They have spent hundreds, and sometimes thousands of dollars on their software. Being told that they will have wasted their money should they switch to Linux isn't an attractive thought.