Saturday, July 25, 2009

Their claims? That my slow browser is probably "several generations old." They tell me that IE8 is "a huge improvement on the speed scale."

These statements are true if I ordinarily run Mosaic. Of course, IE8 is one more generation of the same old software, and to say that IE8 is faster than IE7 is kinda like saying that Windows 7 will be faster than Vista. They'd have to try hard to make it the other way around.

Of course, they completely fail to mention that IE8 fails almost as hard as IE7 when it comes to meeting web standards. Finally, Microsoft managed to turn this:

...into this:

Congratulations, Microsoft. You finally passed the Acid2 test. But every other browser's been breezing through for quite some time now. Find something else to impress me with.

And how about Acid3? Here's the debacle we know as IE7's rendering:

And here's the major improvement shown by IE8:

Wow! Now it says, "FAIL" in giant letters just to let you know that it does, in fact, fail. It probably says that in the IE7 rendering as well, but it's difficult to tell what with all the mangled distortion of crap way up there.

This test takes about two to three seconds to run in Firefox and Chrome (with Chrome running about half a second faster). In Internet Explorer, it's about nine seconds. How's that for fast!

One generation older and seven seconds slower.

On an unrelated note, after Microsoft's failed ad campaign starring Jerry Seinfeld, you'd think that other has-been performers from the 90's would realize that perhaps Microsoft commercials are not the best way to make a career comeback.

GoboLinux is a Linux distribution I heard about from a friend who said that it looked interesting for its flagship property - a simpler file structure. I decided to check it out.

I downloaded the distribution ISO from their website, which was easy enough, and booted up VirtualBox with that ISO mounted as a drive.

Installation

Installation was simple enough for an intermediate user to do. Instead of Ubiquity or another similar installer, the Gobo folks have opted for a custom piece of software.

I booted to the live CD's desktop environment. You must manually run startx to kick on the X server from the live CD. This is a good and bad thing, depending on who you are. I believe that this Linux is designed for mid-to-high levels of Linux experience, so if you have that, this should be no big deal, especially since the first output tells you exactly what to type to get things done. For novices, this would be confusing and unappealing, though not insurmountable. I doubt that newbies are the target audience for Gobo.

I had to boot to the desktop environment because the command line installer will not run without having already partitioned your drive. While I'm sure there was a command line partitioner available, I am not familiar with any of them, so I opted for the desktop install. Even from that environment, ease of install is hindered by the fact that the installer errors out if your drive is not already partitioned. Partitioning must be done separately, then the installer can be run.

The installer itself is easy to understand, if a bit unsightly. Again, this won't be attracting novice users, but anybody who knows a bit about computers will be able to figure it out in no time.

Installation was quick, even for the full package. My VM took care of it in 10 minutes or so on low-grade hardware, once I got through the install configuration sections.

Trying to reboot from the desktop environment was not possible without using the terminal. I exited my session and was spat out into a terminal still executing from the live CD image. I gave the reboot command and finally got to boot into the OS, ready for action.

First Boot

The bootloader allows for three options, as shown here:

So far, I have only booted to the Graphic Desktop option, but it's nice to have those other options available. Yet another sign that this is not for your average Joe the Plumber, this screen requires the user to make a selection before it will boot. I waited for quite some time, and it never timed out.

The boot is noisy until it hits runlevel 2, then it starts a slightly quieter boot process.

Desktop Environment

The default desktop environment for Gobo is KDE 3.5. I've never personally been a fan of KDE, but I could install Gnome on here if I wanted to.

The login process is more or less the same as any other KDE login:

The default desktop wallpaper is pretty lame, but most Linuxes tend to use their own logo by default. Fortunately, a collection of good photographs and textures are available, and you can, of course, add more as desired.

Three icons greet you, Home, Trash, and Manager. Manager is the applications management frontend for Gobo. It's recipe-based, and is supposed to provide users with a list of available versions of various software packages. Software can be enabled, disabled, and linked (more on linking later). The distro's website contains a decent collection of recipes for various products. It's poorly organized, but it's there all the same. The search feature helps to find what you're looking for.

Manager itself executes in a terminal, then creates an additional window for the GUI frontend. Naturally, closing the terminal closes the GUI as well. That's a bit unrefined, but not a killer problem.

The control panel allows you to change your settings well. The standard control panel for KDE is what exists.

As with other KDE-based distros, the default text editor is kate. Text editors are a big thing for me since I develop for the web with hard code like this. If anybody else cares, kate does a decent job with syntax highlighting. It's not as good as gedit in Gnome, but here's a picture of it highlighting most of the JavaScript embedded within HTML fairly well:

The web browser, as you may have guessed, is Konqueror. Again, I've never been too impressed with KDE and its suite of software, but at least it renders basic HTML, CSS, and JavaScript properly, which is more than Microsoft can say for Internet Explorer.

Software Installation

As mentioned before, Manager is the GUI frontend to Gobo's software installation system. That system is a very good one that solves some problems. There are tons of different ways to install software. Gobo looks at the problem from the perspective that compiling from source is the best way to ascertain the most recent version of software, and addresses it by using a custom program called Compile.

Compile combines the functionality of various other compilation programs like compileprogram, makefile, and xmkmf to always compile source code correctly. It also adapts the file paths of those source compilers to match the specialized file structure of Gobo.

Compile uses recipes to know where to get the source code, what version it is, what the checksum is for download verification, and how the compiler should react to the download. This turns the terminal command for installation into something as simple as "Compile foo" or "Compile bar 1.1" for a specific version. If properly managed, this is a great and easy way to get the job done.

The Flagship

So far, Gobo is a pretty mediocre distribution of Linux, but it does one thing extraordinarily well, and the devs flaunt it rightly. The file structure has been completely reworked. This is the root directory:

Seven directories. That's it. All of the POSIX stuff is still there, but only in the sense of symlinks that point to various locations. All the details about how they do it can be found here, but here are the important parts:

"GoboLinux is a modular Linux distribution: it organizes the programs in your system in a new, logical way. Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that's installed in the system and which files belong to which programs in a simple and obvious way."

Here's the breakdown alphabetically:

Depot - This is a shared directory for all users. The devs call it a "community area" or an all-users home folder.

Files - This is a shared directory for applications. Files that are needed by multiple programs, but are not necessarily owned by those programs are kept here, such as fonts and wallpapers.

Programs - Each program gets its own directory here wherein it can install all of its files and folders.

System - Here are the critical system files, the ones that make Gobo work. These include the Linux kernel, boot software, initialization scripts, settings for various software (/etc content, in other words), and all the symlinks that make the new file structure work (and compatible with other Unix-like file structures).

Users - This is the /home replacement, and that's more or less all it is.

Really, the system is quite intuitive. Hisham Muhammad, the ringleader for the GoboLinux development community, makes some very convincing arguments regarding the new file structure on the GoboLinux website. He makes a very good case for change and explains how, despite the deviance from the standard Unix/Linux file architecture, it is still compatible with that old Unix format, if not more so.

"Through a mapping of traditional paths into their GoboLinux counterparts, we transparently retain compatibility with the Unix legacy. There is no rocket science to this: /bin is a link to /System/Links/Executables. And as a matter of fact, so is /usr/bin. And /usr/sbin... all "binaries" directories map to the same place. Amusingly, this makes us even more compatible than some more standard-looking distributions. In GoboLinux, all standard paths work for all files, while other distros may struggle with incompatibilites such as scripts breaking when they refer to /usr/bin/foo when the file is actually in /usr/local/bin/foo."

Conclusion

After many years of Linux use, I have come to find what I like and do not like about Linux-based operating systems. I want a system that I can install quickly and easily, without much hassle. I love the repository-centric installation and updating of software packages, but I could probably adapt to a recipe-based installation system. I much prefer the Gnome desktop environment to KDE, XFCE, Enlightenment, or any other that I have come across. In these respects, GoboLinux fails to meet most of my expectations of a Linux OS.

But don't let that fool you. This is a perfectly stable OS with a lot of benefits. Most importantly, Mr. Muhammad has a really great idea going with this retooling of the file structure. It's user-friendly, system-friendly, and Unix-friendly. It's simple and clean. It goes a long way toward simplifying Linux for average computer users. While many aspects of the OS are more difficult to use and while I believe the new structure could use some further improvement, Gobo makes a great point with this. Many Linux users will disagree, and that's fine. That's why we have communities and a multitude of distributions. I personally wish that Ubuntu or Fedora would adopt a system like this. It could take those other distros a long way.

I won't be using GoboLinux on a regular basis, but I'll be checking back in on it in a year or two to see how far it's come. This is a distro with major potential.

Saturday, July 11, 2009

I, like most Linux advocates, have demonstrated the power of Linux to people who had no idea such power existed in technology, much less in free technology.

I have a friend who was at my house one day while I was at work. For some reason, he needed me to reboot my computer. So I did, via SSH. When I'm at work, I stream music off of my desktop at home for my listening pleasure via the web. Sometimes if I need to do something from my desktop when I'm working, I'll X-forward an application to my work computer and do it that way.

People see all of these things, not to mention the various desktop effects that Compiz provides, and marvel at how awesome and powerful it is. They ask what it is. When I help them set it up, they get frustrated and quit. These are the problems faced by many a Linux demonstrator. The complaints that I hear are consistent. Always.

But I'm not here to complain. I'm here to solve problems. So I will offer a solution to each complaint that I've heard a dozen times as I go.

The first complaint:

"I put a DVD in my player and it won't play."

This problem, like most of them on this list, is the result of user ignorance brought on by some external force or another. This particular problem comes about when terms like DVD and MP3 become marketing buzzwords. Their definitions are reduced to the most distilled, basic descriptions of what they should be because products sell better that way. Here's how these words look in a Best Buy salesman's dictionary:

DVD - n. A movie.

MP3 - n. Music.

But they're both so much more than that. They're patented formats, which makes all the difference. Any time you purchase a DVD or a DVD player or a DVD-ROM drive, anytime you buy any device that plays MP3 files, part of your money spent is paying the owners of the DVD and MP3 license. Some company turns a profit every time you buy a DVD or MP3 player whether or not they manufactured or even designed the device. When you pay a license to Microsoft to purchase Windows Media Center Edition which comes out of the box ready to play DVDs, you're buying the right to watch DVDs on that device.

Most Linuxes are free of cost, but more to the point, they're about freedom of usage. How free are you to play a DVD anywhere? In other words, why should you have to buy the right to watch DVDs that you have either bought from a store, rented, or made yourself? That's not freedom. Which is why most Linuxes won't give you the ability to decode DVDs upon immediate install.

But people shouldn't be discouraged by this. The guys over at VideoLAN have begun distributing a library of code called libdvdcss that decrypts DVDs just fine. And your music, those MP3s and AACs and WMAs and WAVs and whatever else you may have can be listened to by installing the appropriate libraries from the amazing folks developing gstreamer. Installation of these packages is simple enough, either by direct download from those websites or by using whatever repositories your distribution makes available to you.

The second complaint:

"Some piece of my hardware doesn't work."

This is a more legitimate complaint than the first, but I still must object to the reason why the complaint is valid. Microsoft has a long history of making contracts with hardware developers that say that they cannot write drivers for non-Windows operating systems or even disclose the methodologies of the hardware to non-Microsoft developers in exchange for promotion deals. This effectively prevents drivers for Linux from being made.

Unless, that is, a truly dedicated Linux dev decides to reverse engineer the driver from the activities and data transmissions of the hardware. This is difficult to do, and time consuming. These devs are a benefit to us all.

Even with this understanding that the disposition of Linux hardware drivers is dismal, I still can't validate fully giving up on such a problem. Rarely is a piece of hardware rendered completely unusable due to a driver issue. Forums exist for the sole purpose of spreading functional hardware drivers for Linux.

The main complaint used to be that wireless cards never worked. Back in the day, you might have had to use the Windows driver for the card in Linux via a utility like NDISWrapper or MadWifi. Those days are gone. Ubuntu now has built-in drivers for Intel, Atheros, and Broadcom wireless chipsets. These are automatically detected and installed in roughly three clicks of the mouse. Linux is no longer in the disparity it used to be in, but I don't know that I'd call it disparity anyway. Let's not forget that Linux initially grew and spread when people passed around the OS in its sapling form, writing drivers to match their hardware, creating in the process a massive driver base.

The third complaint:

"Installing software is too hard"

This is an almost unforgivable combination of a terminology confusion combined with the false belief that Linux is just like Windows, but better.

A Windows user wants to install a program by putting a disk in their computer and waiting for an installer to pop up onscreen. Then they want to go through seven wizard pages, ignoring all settings, just clicking "Next" a bunch of times. Then they want to wait while it installs, then have to dig through thirty unorganized program listings to find the software, then dodge some links to various readme text files and Internet links to corporate sponsorship websites to finally launch their program. And they want to do this for every single program they install. It's simply too much of a hassle to learn that Linux does things differently.

In Linux, you run a program that was installed when you first put the OS on the system. You search there for the software you want. You check a box suggesting that you want this installed. You do this for all programs that you want installed. Then you click an Okay button and wait while all software is automatically downloaded, all dependencies taken into account, then installed and configured to a predetermined best practice set of settings. Then they get organized by type - Internet, Games, etc. - so you don't have to pick through so much, and then they're alphabetized. The process is simpler, faster, and more organized. It's not harder. It's just not what they're used to. Uninstallation is just as easy.

The fourth complaint:

"Linux is not good for gaming."

Again, we see a confusion of terminology. Linux is actually great for gaming, especially since you don't have so many of your resources tied up in the OS alone. (Side note: generally, I speak of Windows XP here since that's still the version that's most common in the world, but it gets worse with Vista and Windows 7.)

The problem is that Linux isn't popular enough in the world for commercial game companies to bother porting all their games over. It's not financially viable. This, I will admit, is a viable reason to keep a Windows installation around. I myself dual-boot between WinXP and the most recent release of Ubuntu.

That field is changing, however. id Software is porting more and more games to Linux. Some older games are being ported in, which proves that it's doable at the same time that it lays out a process for doing so, a streamline to take care of future ports.

This is not to say that some great games do not already exist for Linux. Take a look at Savage 2 or Sauerbraten or Nexuiz. The graphics are phenomenal, the gameplay is great. The only thing these games lack is a storyline, but the tremendous success of the Unreal Tournament series, Team Fortress, and the Quake Tournament games prove that a storyline is not an absolute requirement of a good game. If you're looking for something with a plot, you can check out the Penumbra series of games.

Linux is great for gaming, some might argue that it's actually better for gaming than Windows, but the games are less available. Just clearing that up.

The fifth complaint:

"I have this program that runs fine in Windows, but it doesn't run at all in Linux."

The people making this claim apparently never looked at the system requirements for the software, and therefore never saw the part where it required Windows. This problem is to be expected. Linux has an entirely different software architecture beneath it because, well, it's a different operating system.

Giving up at this point is a display of short patience and also ignorance to the thought that there might be equivalent software out there for Linux. Need a word processor? Try AbiWord. Need a full productivity suite? Try OpenOffice.org. Need a Visio-style diagramming program? Try Dia.

Do none of those match your specifications? Install WINE and try to install your Windows software that way. The fact that Linux can execute a large chunk of Windows code is more than Windows can stake a claim to.

If all else fails and that software is an absolute necessity, then, yes, there's always Windows. Feel free to use it.

The sixth complaint:

"I asked how to do something, and they told me to type commands. That's not intuitive!"

Chances are this user was told to do it on the terminal because it was

The easiest way to describe the solution in a message board or chat room or

The fastest way to get the job done.

Probably, there's a way to do it through the GUI, but they asked how to do something that's been bugging them, so they were shown the fastest method, if perhaps not the method that they would have liked.

Besides, the terminal's not the scariest thing in the world. Running an apt-get command isn't the same as compiling software from source. Being told to use the terminal once, and being told exactly what to type, is not the most complicated thing one can accomplish on a Linux system, and it's not a constant requirement. Most full-time, die-hard Linuxers will use the CLI very regularly. I know I do. That's because we know it's the fastest way to get things done and we've taken the time to learn it. That's not really expected of a first-time user, especially one who isn't technologically inclined. Next time, the user should specifically ask how to do the task using the mouse instead of the keyboard.

The seventh complaint:

"Linux is not ready for the desktop."

This isn't so much a complaint as it is the sum total culmination of all of the others. People fear new and different things. Human beings don't always react well to change. The natural reaction is to call that change inferior, even against obvious examples of it not being so.

There are several million Linux users worldwide who would disagree with this statement fundamentally, and are proving its wrongness on a day-to-day basis. Millions of people use some form of Linux as their primary desktop OS. In fact, there are millions of people who use Linux every day and don't even realize it. The system is so versatile that it can be tweaked to perform on everything from iPods to Tivos to cell phones. It is backed and assisted by many multi-million dollar corporations like IBM and Google. Believe it or not, Microsoft runs a lot of their web servers with Linux, which goes a long way toward showing their faith in their own product.

But if people give it a try, adjust to changes for the better, and most of all contribute some way to the community that keeps advancing Linux and its derivative software far beyond the scope of Microsoft Windows, it just might work out for them. It already has for millions of users.

Naturally, the tech world goes crazy. I've seen people say such polarized things as "Today marks the knee of the great curve of Microsoft's decline" and "Google's vision is meaningless to consumers." I've seen people say that this is just what the world needs to push Linux into the spotlight and spread its market share, but alongside those, I've seen people criticize the proposed operating system as a direct affront to Linux. In truth, the tech world is full of zealots and fanboys who will say pretty much anything to draw attention to their OS/browser/etc. of choice. Let's look at this logically, level-headed.

Before we can begin to decide how this affects the computing community at large, we have to define what it is. That said, here are some basic facts about the project according to what Google published. It is

Open-source

Lightweight

Targeted at netbooks

Focused on "speed, simplicity, and security"

Capable of booting and being on the net "in seconds"

Running Linux at the core

Running a new window system (not X)

Running the webkit-based browser Chrome on top of that

Not Android

Let's tackle the two obvious questions.

What does this mean for Microsoft?

Quick answer: who knows? Certainly, Microsoft's long-standing campaign of deceit, condescension, and failure to meet promises is beginning to fail them, especially in the light of Apple's advertisement campaigns in the past few years which have been an unabashed, straightforward attack on Microsoft, even if they were largely a heap of fibs themselves. At the end of 2006, it would appear that Microsoft had roughly 94% of the market depending on how you measure it (and if Wikipedia's sources are accurate), while Mac claimed 5-6% and the various Linux distributions carried less than 1% of the pie. At the end of June 2009, those same sources show various Windows OSes occupying a little less than 88% of the market, Mac's share increasing to roughly 9-11%, with Linux still dangling in at a little bit less than 1% (but still more than its previous "roughly 1%").

Chrome OS fits a niche market: the netbook. These are those (almost annoyingly) small computers that are meant to have only enough processing power to put a person on the Internet and do some basic word processing. They are definitely helpful for the technologically disinclined. A person wanting to actually accomplish something impressive will look elsewhere, but netbooks definitely have a good reason to exist. I'm sure that Chrome OS will run quite nicely there. It's a niche that Microsoft will have a hard time filling, even with Windows 7, which is intended to do just that.

Win7 requires 16-20 GB of free space on the hard drive, and that's ignoring any filespace left over for other software. Microsoft Office will then chew up another 1.5 to 3 gigs depending on how much of that software you need. Tack on the high video card requirements and you have a stodgy, slow, and ugly operating system that devours more of the disk than necessary.

Most of the affordable netbooks have much larger disks than that, so the wasted space may not mean as much as it used to. However, the fact that Windows 7 sets up automatic defrags, even on hardware such as solid state drives where the act of defragmentation is both unneccessary and physically damaging, makes it a dangerous operating system to run on a netbook without doing some major tweaking first -- tweaking that the kind of people who create the netbook market probably won't know to do.

So what's worse for Microsoft, really? Is it really Chrome OS that will do them in, or is it Microsoft's own horrendous software? Besides, what Chrome OS proposes to be is something even less than what many Linux distributions already are. Where Ubuntu's most recent bit of awesomeness -- Ubuntu Netbook Remix --offers a full desktop experience with a complete productivity suite, an IM client that works across practically all chat protocols, and where other common net-based software is about three clicks away (blogging clients, microblogging clients, casual games, etc.) all in less than 1 GB, Chrome OS will only offer a browser that isn't very extensible yet. The Chrome browser may execute JavaScript faster than anything else right now, but there are tons of standards that it still doesn't support, and a person's web browsing experience will be less "correct" there than with Firefox 3.5 on any OS at all. Windows 7 can't fill any of those bills.

It looks like it could affect Microsoft in a couple of ways, though.

First, it might expose Linux to more people. Don't let me confuse you with that statement and that emphasis. What I mean is that it will succeed. Trust me. Google has enough money to create muscle in the market. It'll be popular to some degree or another, even if it's only within this niche netbook market. But even though it's Linux-based, and even though it's open source, I sincerely doubt that the terms "Linux" and "open source" will have anything to do with their advertisement plan. They will confuse customers that might otherwise be willing to buy into the concept.

Second, Google's tactic of late has been to simply undercut Microsoft's pricing, which is easy to do given the outrageous dollar value Microsoft places on their operating systems. Being that COS will be Linux and therefore open source, undercutting that cost is almost expected. Linux already does this, but has little to no advertisement behind it, and to tell a potential user that there are hundreds of Linux OSes to choose from doesn't exactly help win over the hearts of the masses. COS will provide a solution to both of these problems, and that will definitely help reduce Microsoft's monopolistic, anti-competitive hold on the computing world as a whole.

So where does that leave Linux?

Linux has, up until recently, been a "geek" thing, and that's a mildly unfair stigma that has only been slightly loosened by more recent, "user-friendly" distros like the Ubuntus, including Linux Mint and other derivatives. This will not change. I keep hearing people make very bold claims that this is either really, really good or really, really bad for Linux on the whole. But one of the founding principles of Linux is freedom of choice. If you wish to not run COS, there is nothing stopping you from using an Ubuntu or a Gentoo or Fedora or Sabayon or PCLOS or any other distribution. Hell, you could even run Windows 7 on it if you so choose. One's decision about what OS to run is exactly that -- one's own decision. The introduction of COS to your miles-long list of options only changes things inasmuch as your list would then become miles long plus one.

In fact, Linux has a chance to improve greatly. Having a popular Linux OS on the market backed by an unbelievably filthy rich corporation provides incentive for hardware manufacturers to release more official and better hardware drivers for the Linux platform. I'm not complaining about the quality of existing drivers, only the lack of drivers for a great deal of hardware. It's one of the main reasons why people quit Linux before they really begin. They can't get audio or their video card's driver can't send X up to the right screen resolution or they really need better Bluetooth support. Granted, Linux has better hardware support than Windows in most cases, at least so far as having it ready at install-time is concerned, but overall it lacks in this department. That's not Linux's fault. You can legitimately blame Microsoft for this. Their long-time practice of colluding with hardware manufacturers has been so deeply entrenched in the technology community that special words have been coined to describe it. Consider "Wintel" for instance, to describe the Brangelina-style marriage of Microsoft to Intel. Having a Linux-based OS in the mainstream could help facilitate a long-needed divorce.

In short, Chrome OS isn't going to change the world. It barely even has a home in the small portion of the market that it intends to occupy. Perhaps it will occupy it, maybe completely. If you consider that the only other major OS suitable for netbooks is not as suitable as Microsoft would lead you to believe, you've got a clear win for Google. But if you think that perhaps Windows 7 is more capable on a netbook than Google's offering, then there's a clear win for Microsoft.

Only one thing's for certain. Microsoft now has real competition, and it's been a long time since they've had to react to that. I guarantee that Microsoft cannot simply purchase Google, continuing their procedure of Assimilate and Deprecate that they've become adept at when facing opposition. And that is definitely a good thing.