Thursday, September 28, 2006

Windows, Linux, Cars and Lego's (Part 2 of 5)

Problem #2: Linux is too different from Windows

This next issue arises when people do expect Linux to be different, but find that some differences are just too radical for their liking. Probably the biggest example of this is the sheer amount of choice available to Linux users. Whereas an out-of-the-box-Windows user has the Classic or XP desktop with Wordpad, Internet Explorer, and Outlook Express installed, an out-of-the-box-Linux user has hundreds of distributions to choose from, then Gnome or KDE or Fluxbox or whatever, with vi or emacs or kate, Konqueror or Opera or Firefox or Mozilla, and so on and so forth.

A Windows user isn't used to making so many choices just to get up & running. Exasperated "Does there have to be so much choice?" This question is very common.

Does Linux really have to be so different from Windows? After all, they're both operating systems. They both do the same job: Power your computer & give you something to run applications on. Surely they should be more or less identical?

Look at it this way: Step outside and take a look at all the different vehicles driving along the road. These are all vehicles designed with more or less the same purpose: To get you from A to B via the roads. Note the variety in designs.

But, you may be thinking, car differences are really quite minor: they all have steering wheels, gas-pedals, a manual or automatic transmission, brakes, windows & doors, a gas tank. . . If you can drive one car, you can drive any car, although, to some manual transmissions are a bear.

Quite true. But did you not see that some people weren't driving cars, but were driving motorcycles (yeah baby) instead. . ?

Switching from one version of Windows to another is like switching from one car to another. Win95 to Win98 to WinMe (of which sucked), I honestly couldn't tell the difference. Win98 to WinXP, now that was a bigger change but really nothing major.

But switching from Windows to Linux is like switching from a car to a motorcycle. They may both be operating systems (OSes)/road vehicles. They may both use the same hardware/roads. They may both provide an environment for you to run applications/transport you from A to B. But they use fundamentally different approaches to do so.

Windows/cars are not safe from viruses/theft unless you install an anti virus/lock the doors. Linux/motorcycles don't have viruses/doors, so are perfectly safe without you having to install an anti virus/lock any doors.

Or look at it the other way round:

Linux/cars were designed from the ground up for multiple users/passengers. Windows/motorcycles were designed for one user/passenger. Every Windows user/motorcycle driver (Biker) is used to being in full control of his computer/vehicle at all times. A Linux user/car passenger is used to only being in control of his computer/vehicle when logged in as root/sitting in the driver's seat.

Two different approaches to fulfilling the same goal. They differ in fundamental ways. They have different strengths and weaknesses: A car is the clear winner at transporting a family & a lot of cargo from A to B: More seats & more storage space. A motorcycle is the clear winner at getting one person from A to B: Less affected by congestion and uses less gas.

There are many things that don't change when you switch between cars and motorcycles, You still have to put gas in the tank, you still have to drive on the same roads, you still have to obey the traffic lights and Stop signs, you still have to indicate before turning, you still have to obey the same speed limits.

But there are also many things that do change: Car drivers don't have to wear helmets, motorcycle drivers (Bikers) don't have to put on a seatbelt. Car drivers have to turn the steering wheel to get around a corner, Bikers have to lean over. Car drivers accelerate by pushing the gas pedal, Bikers accelerate by twisting a hand control(Throttle).

A Biker who tries to corner a car by leaning over is going to run into problems very quickly. And Windows users who try to use their existing skills and habits generally also find themselves having many issues. In fact, Windows "Power Users" frequently have more problems with Linux than people with little or no computer experience at all, for this very reason. Typically, the most vehement "Linux is not ready for the desktop yet" arguments come from ingrained Windows users who reason that if they couldn't make the switch, a less-experienced user has no chance. But this is the exact opposite of the truth.

So, to avoid problem #2: Don't assume that being a knowledgeable Windows user means you're a knowledgeable Linux user: When you first start with Linux, you are a novice.

Thursday, September 21, 2006

Windows, Linux, Cars and Lego's (Part 1 of 5)

New Linux users are having some problems making the switch from Windows to Linux. This causes many problems for many people. Many individual issues arise from this single problem.

Problem #1: Linux isn't exactly the same as Windows.

You'd be amazed how many people make this complaint. They come to Linux, expecting to find essentially a free, open-source version of Windows. Quite often, this is what they've been told to expect by over-zealous Linux users. However, it's a paradoxical hope.

The specific reasons why people try Linux vary wildly, but the overall reason boils down to one thing: They hope Linux will be better than Windows. Common yardsticks for measuring success are cost, choice, performance, and security. There are many others. But every Windows user who tries Linux, does so because they hope it will be better than what they've got.

Here lies the problem, it is logically impossible for any thing to be better than any other thing while remaining completely identical to it. A perfect copy may be equal, but it can never surpass. So when you give/gave Linux a try in hopes that it would be better, you were inescapably hoping that it would be different. Too many people ignore this fact, and hold up every difference between the two operating systems (OSes) as a Linux failure.

As a simple example, consider driver upgrades: one typically upgrades a hardware driver on Windows by going to the manufacturer's website and downloading the new driver; whereas in Linux you upgrade the kernel.

This means that a single Windows download & upgrade will give you the newest drivers available for your machine, whereas in Linux you would have to surf to a few sites and download all the upgrades individually. It's a very different process, but it's certainly not a bad one. But many people complain because it's not what they're used to.

Or, as an example you're more likely to relate to, consider Firefox: One of the biggest open-source success stories. A web browser that took the world by storm. Did it achieve this success by being a perfect imitation of IE, the then-most-popular browser?

No. It was successful because it was better than IE, and it was better because it was different. It had tabbed browsing, live bookmarks, built-in search bar, PNG support, ad block extensions, and other wonderful things. The "Find" functionality appeared in a toolbar at the bottom and looked for matches as you typed, turning red when you had no match. IE had no tabs, no RSS (news feeds) functionality, search bars only via third-party extensions, and a find dialogue that required a click on "OK" to start looking and a click on "OK" to clear the "Not found" error message.

A clear and inarguable demonstration of an open-source application achieving success by being better, and being better by being different. Had Firefox been an IE clone, it would have vanished into obscurity. And had Linux been a Windows clone, the same would have happened.

So the solution to problem #1: Remember that where Linux is familiar and the same as what you're used to, it isn't new & improved. Welcome the places where things are different, because only here does it have a chance to shine (And you get to shine to, by trying something new.).

Monday, September 11, 2006

Linux Kernel Delayed By Microsoft's Army of Evil Monkeys

Around the World - Linus Torvalds announced yesterday that the Linux Kernel will be delayed. He blamed the delay on interference from Microsoft's Army of Evil Monkeys. The army has been disrupting the lives of key Linux programmers, and in some cases destroying portions of code. Torvalds himself has been a victim of several Evil Monkey attacks.

Evil MonkeysEvil Monkeys Steve Ballmer denied any involvement by Microsoft in the matter. "We did receive the Army of Evil Monkeys when we purchased evil from Satan, but those monkeys are only temporary employees and are not actual employees of Microsoft. Whatever they do on their own time is their business."

The Department of Justice said, "If this story is accurate, then this is just one more example of how Microsoft is using its monopoly power to stifle competition."

"It has been horrible, horrible," said Linux programmer Andy (last name withheld)., "the evil monkeys were everywhere. Trashing my computer, having monkey business in my bed. I lost several days worth of work."

Internal Microsoft e-mails obtained tell of a secret monkey training camp where the monkeys are trained to seek out and harass Linux programmers. The only comments from Bill Gates have been, "Fly my pretty, fly!"

Saturday, September 09, 2006

Software: It's a Gas

Nathan Myhrvold, the former CTO of Microsoft, is also a bona-fide physicist. He holds physics degress from UCAL and Princeton. He even had a postdoctoral fellowship under the famous Stephen Hawking. Thus, as you might expect, his 1997 ACM keynote presentation, The Next Fifty Years of Software is full of physics and science metaphors.

It starts with Nathan's four Laws of Software:

1. Software is a gas
Software always expands to fit whatever container it is stored in.

2. Software grows until it becomes limited by Moore's Law
The initial growth of software is rapid, like gas expanding, but is inevitably limited by the rate of increase in hardware speed.

3. Software growth makes Moore's Law possible
People buy new hardware because the software requires it.

4. Software is only limited by human ambition and expectation
We'll always find new algorithms, new applications, and new users.

Myhrvold goes on to describe software development as a state of Perpetual Crisis. The size and complexity of software is constantly rising, with no limit in sight. As we develop more advanced software-- and as we develop solutions to manage the ever-increasing complexity of this software-- the benefits of the new software are absorbed by the rising tide of customer expectations.

Software development will never be easy; new software always has to push against the current complexity boundary if it wants to be commercially successful.

This was all written in 1997. Nearly ten years later, are his points still valid? Software is certainly still a gas. Now that we're entering the multi-core era, there is one crucial difference. Historically hardware has gotten more complex because of limitations in the ability of software to scale; now the software needs to get more complex because of limitations in the ability of hardware to scale. The burden of scaling now falls on the software.

Myhrvold then makes an interesting point about the amount of storage required to capture human diversity. If..

* the human Genome is approximately 1 gigabyte of data
* the individual difference between any two humans is 0.25% of their Genome
* we assume a lossless compression rate of 2:1

The individually unique part of the human Genome can be stored in ~1.2 megabytes. Thus, you fit on a 3.5" floppy disk.

In fact, the entirety of human genetic diversity for every living human being could be stored in a 3.7 terabyte drive array. And the entire genetic diversity of every living thing on earth could be stored in roughly the size of the internet circa 2001.

I'm not sure what that means, exactly, but I love the idea that I can fit myself on a 3.5" floppy disk

Saturday, September 02, 2006

Star Trek Next Generation Meets Microsoft

Mr. LaForge, have you had any success with your attempts at finding a weakness in the Borg? And Mr. Data, have you been able to access their command pathways?

Yes, Captain. In fact, we found the answer by searching through our archives on late Twentieth-century computing technology.

Geordi presses a key, and a logo appears on the computer screen.

Riker [puzzled]
What the hell is Microsoft?

Data [turns to explain]
Allow me to explain. We will send this program, for some reason called Windows, through the Borg command pathways. Once inside their root command unit, it will begin consuming system resources at an unstoppable rate.

But the Borg have the ability to adapt. Won't they alter their processing systems to increase their storage capacity?

Yes, Captain. But when Windows detects this, it creates a new version of itself known as an upgrade. The use of resources increases exponentially with each iteration. The Borg will not be able to adapt quickly enough. Eventually all of their processing ability will be taken over and none will be available for their normal operational functions.

Excellent work. This is even better than that unsolvable geometric shape idea.

. . . . 120 Minutes Later . . . .

Captain, we have successfully installed the Windows in the Borg's command unit. As expected, it immediately consumed 85% of all available resources. However, we have not received any confirmation of the expected upgrade.

Our scanners have picked up an increase in Borg storage and CPU capacity, but we still have no indication of an upgrade to compensate for their increase.

Data, scan the history banks again and determine if there is something we have missed.

Sir, I believe there is a reason for the failure in the upgrade. Appearently the Borg have circumvented that part of the plan by not sending in their registration cards.

Captain, we have no choice. Requesting permission to begin emergency escape sequence 3F!

Geordi: [excited]
Wait, Captain! Their CPU capacity has suddenly dropped to 0% !

Data, what do your scanners show?

Data: [studying displays]
Appearently the Borg have found the internal Windows module named Solitaire, and it has used up all available CPU capacity.

Lets wait and see how long this Solitaire can reduce their functionality.

. . . . Two Hours Pass . . .

Geordi, what is the status of the Borg?

As expected, the Borg are attempting to re-engineer to compensate for increased CPU and storage demands, but each time they successfully increase resources I have setup our closest deep space monitor beacon to transmit more Windows modules from something called the Microsoft Fun-Pack.

How much time will that buy us?

Current Borg solution rates allow me to predict an interest time span of 6 more hours.

Captain, another vessel has entered our sector.


It appears to have markings very similar to the Microsoft logo...

[over the speakers]

This is admiral Bill Gates of the Microsoft flagship MONOPOLY. We have positive confirmation of unregistered software in this sector. Surrender all assets and we can avoid any trouble. You have 10 seconds to comply.

The alien ship has just opened its forward hatches and released thousands of humanoid-shaped objects.

Magnify forward viewer on the alien craft!

My God, captain! Those are human beings floating straight toward the Borg ship - with no life support suits! How can they survive the tortures of deep space?!

I dont believe that those are humans, sir. If you will look closer I believe you will see that they are carrying something recognized by twenty-first century man as doeskin leather briefcases, and wearing Armani suits.

Riker and Picard, together [horrified]

It can't be. All the Lawyers were rounded up and sent hurtling into the sun in 2017 during the Great Awakening.

True, but appearently some must have survived.

They have surrounded the Borg ship and are covering it with all types of papers.

I believe that is known in ancient vernacular as red tape. It often proves fatal.

They're tearing the Borg to pieces!

Turn the monitors off, Data, I cant bear to watch. Even the Borg doesn't deserve such a gruesome death!