Monday, August 24, 2009

The Linux Experience

I'm writing this from a Linux desktop. You won't know this, but I've been trying to get a Linux box running for something like 8 or 9 years now. I've only had partial success, at best, in the past. There was always some issue that made the effort still a "project", and it would get retired to the closet when I ran out of time. Now I have got two boxes running daily, and I almost have everything exactly as I would on my Windows machine - or better. I've tried out 5 or 6 "distros" (Linux slang for the distribution package, eg. Red Hat, Suse, Ubuntu, etc.) on the way to getting here. And, of course, I've got some opinions, as always!

All distros are not equal. The big distro names from the past have gotten somewhat left behind in the current Linux competition. Not entirely, but there is a definite competion to see who's best (which can only bring good things), and they have a little catching up to do. Hardware detection and installation guidelines, a weakness in past years, has finally gotten to the point where the common end-user can probably "just make it work".

Let me regress a bit, and discuss our modern software world. The common desktop end-user has basically three choices today for operating systems: Mac, Windows, and Linux. Since the 1990's it's been Mac and Windows, with Linux coming along behind DRDOS and OS2. Mac has always had the philosophy that they'll make the hardware and software work for you. They did that, and well. They also charged you for it. Windows came in the market at a far, far lower price point, with the philosophy of just make it good enough. Simple demand curve analysis tells us that Windows would have a far larger market share - and they did. Mac/Apple has made a few half-hearted attempts to break into the lower market end, but Windows had the inertia. DRDOS and OS2 faced the same problem (market inertia). Linux then enters the market at an even lower price point - free. Can't beat that? Well, it turns out you could.

Windows marketing has slowly introduced technical upgrades, catching up to technical superiority in Mac, OS2, and Linux. But still, mostly making it "just good enough". Windows has spread the learning curve out over years - the end-user has come a long way in sophistication since 1994. And, they've paid for the priviledge, but not upfront, like Macs, rather the "death of a thousand cuts" with planned obsolescence.

I always wondered why Linux didn't do better than they did. Simple demand curve, right? They should have 90% of the market! A major reason it didn't take over more market share was simply because, for the common end-user, it didn't work. Not saying it couldn't work - it didn't work. Linux has been the "cowboy frontier" of the OS world. Linux has consistently been behind the curve on ease of installation. Mac had that out of the gate, first time, every time. Microsoft had it, in a "just good enough" sense. It would work, sometimes you'd have to fix it, but mostly it worked, and mostly you could do it yourself. For Linux you had to have a friend - a sort of regression of the dominant market player's advantage - and a definite disadvantage.

The competitive bar has constantly gone up as we've moved along. The Internet, CD's, DVD's, lans, routers, firewalls, Palm devices, Bluetooth, USB, and all have kept moving. In some of these areas, Linux had a natural advantage, but it wasn't utilized clearly for the average Joe end-user. Linux had to run faster to catch up - and I think they have finally done it. Even two years ago this wasn't quite true. But today, I've two machines up and running, and got them that way by myself, with only online searches for help. Linux is still going to be better if you have someone knowledgable about, preferably very close. But, I think it has turned the corner. I think today we can say it is ready for the desktop.

One of the standards I had is simply this: I had to be able to do EVERYTHING I did daily on my Windows machines on my Linux machine. That includes software, security, and hardware. I want to be able to take my thumb drive to work, work on my notes and files, bring them home, and synchronize my home files from the work I did that day, so I can seamlessly work on the same stuff. Windows might never have taken over from DOS, if the DOS programs had had the sense to work together seamlessly. Today, this means I have to be able to work on my Office documents (Word, Excel, and Powerpoint), encrypt a virtual disk for my financial data, and have my encrypted diary, password and account data. I have software that does that all very well for me, and that needs to continue to be true. All my hardware needed to be recognized, and functional, or at least functional with a minimum of fuss.

There were two distros that I tried that accomplished this painlessly, and I'm told there is another just as good. I speak of Ubuntu, openmamba, and Mint Linux. Along the way, I also tried Oracle "Unbreakable" Linux (basically a rebrand of Red Hat/Fedora), Fedora 10 and 11, Mepis, Vector Linux, and Debian. I didn't try Suse this time, so I can't speak about that distro.

Earlier this year, the Oracle distro gave me the best installation I had ever had to date. Things worked, mostly, with some issues. But, when it came time to get updates? It was pay your way only. Not my market, sorry. However, Oracle is just a re-branded Fedora/Red Hat, so I tried Fedora (the inheritor of the Red Hat mantle) 10. Fedora 10 installed nicely, but had some video issues and wouldn't get my wifi card working. Otherwise, it seemed pretty smooth sailing, but when Fedora 10 tried to upgrade itself to 11 everything locked up. Instant failure. Too many issues, moving on.

At that point I got Ubuntu running on one of the machines I'm working on (there are two). And, it "Just Worked". Out of all the distros I tried, Ubuntu was one of two that "just worked". But, I don't like some things about Ubuntu. They have this brown color theme - not my taste. Then there is the free / non-free software philosophy business. In the past, when I tried Ubuntu, it installed very cleanly, but Ubuntu has been pretty religious about the free software bit, which, in the past, was a complete turn-off, since it prevented me from doing daily internet stuff (no Java, no YouTube!) without major manual surgery. Today they have lightened up about this, and offer built-in options to take advantage of simple things like Java, Flash, and various online "movie/tv" video players. You have to know how to find those options, tho. This installation is running today. It does work, but it still has a motherboard issue, and I don't think it got my wifi, but it has a hard-wired connection. I have a workaround for the motherboard issue, since fixing it would probably mean hours and hours and hours of time. This installation worked approximately as well as a Windows installation.

I wanted to try a "lighter" (speedier) distro for the machine I meant to be a server. I tried Vector Linux in 2006 or 7, and it installed as well as anything else I tried then. So I tried it again. The installation was even better. However, for users who don't just have a standard setup, there can be issues in Vector, and having an issue in Vector usually means working on the command line, and in plain text configuration files. I frequently had to do significant research on what was creating an issue, and possible resolutions. Then I had to take the time to try the possible resolutions. I have to reserve my recommendations for Vector to experienced players only, no newbs. After spending many hours trying to fix a few issues in Vector, and still having two outstanding issues (workarounds only, at that point), when I hit another issue it was finally a fail. Reformat and reboot.

By now I had heard people recommend Mepis, openmamba, and Mint Linux. Mint Linux is based on Ubuntu, and therefore the installation should work as well. However, they don't do the free software restrictions, and claim to get stuff like Java and Flash working out of the box. I didn't use them, but if you are reading this, you might want to know.

For whatever reason, I decided to try Mepis first. That was a complete bust, as it wouldn't even install.

Next, I tried openmamba. Openmamba was every bit as good in the installation as Ubuntu, and also gave me all the glitz - Java, Flash, Microsoft movie codecs, etc. However, after getting everything running, I saw that, this might be a distribution that may be in trouble, and headed for the "abandoned" category. They are an Italian distro, the forum postings (your first line of defense in the Help arena) are mostly in Italian (and sparsely posted, not a good sign), their repositories (the update directories) for software are (at least in some instances) dated. On top of that, one of the major reasons I tried them was because I had read that one of their goals was to be able to use other distro's software package repositories. That would give you a fantastic selection of software. But, it was too good to be true. Each distro has its own repositories, because each distro does things internally slightly differently. I tried to update a critical program - but their repository only had a very old version (~2 yrs). I really liked openmamba, but there were those issues! The next problem I came across was then big enough for a fail rating.

And, I went back to Debian. I figured if I couldn't get it to work, it would be Mint next. But, with my newly gained knowledge, I got Debian up and running with little more effort than a normal Windows installation would be to the same level of productivity. I've met my objectives, so it's time to get back to work!

Recommended:
For the Complete Noob: Mint Linux (based on what other's tell me), and Ubuntu.
For the semi-literate Noob: Ubuntu and openmamba - because you might have to resolve issues, depending on your usage.

For semi-literate geek wannabes: Debian, Fedora (some knowledge of partitioning, Linux directory and configuration structures is useful, as is a willingness to work with it just a little)
For junior grade geeks or better: Vector, Debian (some knowledge of partitioning, good knowledge of Linux directory and configuration structures is useful, basic command line usage, file and directory permissions, user and group management. Both give you lots of freedom to build your OS environment.).