J-F Bilodeau's Blog @ chronogears.com

Friday, December 19, 2008

Java (does|doesn't) suck

I use Java programs all the time: jEdit, Eclipse and ArgoUML just to name a few. As a programmer, Java has served me well for over a decade, and I've never once wrote a piece of Java code of which the performance was unacceptable.

However, I keep hearing other user complain and snicker about the performance of Java. Though I try to defend the performance of one of my favourite programming language, I continue to hear the same chant again and again.

Once and for all, let me say: Java is not slow. If you don't believe me, come to my Java Performance Tuning course. I'll be happy to write equivalent Java and C code and time the execution of both.

An article on Phoronix.com brought to light something that I never expected. It would seem that Java on Windows Vista actually runs slower that Java on Ubuntu. I have to admit that this was a great surprise for me! I always assumed that Windows being the larger market for Java it would be optimize for the platform. However, that doesn't seem to be the case.

Maybe that's why there are still a lot of folks out there who are disillusioned by the performance of Java.

From prior experience, I suspect that Java application take up much less memory on Linux than Windows, but I haven't investigate that yet.

Labels: , , , ,

Thursday, December 11, 2008

The State of the Operating System Market

Here's exiting news. For the first time in 15 years, the Windows market share fell below 90%. On the upswing is Mac OS X with 8.87% of the market, and Linux at 0.83%. Source

These numbers are important for a number of reasons. For starters, Microsoft is gradually loosing it's grasp on the operating system market. Apple is doing a fantastic job of nipping Microsoft's monopoly.

As for Linux, you may noticed that it enjoyed 0.93% market share in August. I suspect this has been due to the release of UMPCs like th Eee PC. As the fad cooled down, chances are the sales cooled down as well. However, while visiting Future Shop on the weekend, I saw five UMPC with two of them running Linux. That's a 40% market share for Linux just there ;). As I predicted earlier, the rise of cheap computers will continue to hurt Microsoft as they are struggling to compete against free and open operating systems.

To put the numbers in perspective, here's a little report I put together with my trusty OpenOffice Calc:


A couple of interesting trends to notice.

Windows has been steadily loosing ground. This year alone, they've lost 2% of their market share. The year before that, 1.94%. Ouch! I can see why Microsoft was in a rush to deliver Vista. They needed something to help them regain the ground that they are loosing to other operating systems.

Apple has more than double their market presence over nearly five years. I personally attribute this to Mac OS X and Steve Job's marketing genius. Mac OS X is a true Unix operating system with a gorgeous interface slapped on top of it. This means that newcomers to computer have a system which is simple and inviting, while power-users have a solid Unix machine to hack. Personally, I feel that this has been a stroke of genius on Apple's part. Instead of re-inventing the wheel, or adopting Windows, they took advantage of FLOSS to custom build a rapidly growing operating system that is leaving Windows in the dust.

Linux is still barely a blip on the radar, but is still growing. Between this year and last year, Linux enjoyed a growth of 30%. I feel that this is important, since Linux is already well established on the server, but is struggling to gain traction on the desktop. I'm of the opinion that this increase is due to the UMPC explosion earlier this year. Linux is slowly by steadily spreading to the desktop.

What remains to be seen is how next year will play out. Windows 7 is due out in mid 2009, and sounds like Microsoft may actually get this one right. I don't expect to see the same level of anticipation as there was with Vista, since Windows 7 sounds like the Windows Vista that customers where expecting to get in the first place.

Linux has definitely penetrated the market. It is becoming more and more of a household term but retains a mythical aura. It has become one of those buzzwords that folks like to throw in conversation.

I'm a very poor prophet of the future, but I would like to predict some exciting movements next year. I believe that Mac OS X will continue to climb. I suspect that Linux may drop a bit, now that the UMPC buzz is dying down. Windows may regains some of it's share. I would even go so far as saying that Windows' market share will remain stable next year — that is, no significant drop or rise.

However, in the years to come, as cell phones are starting to overlap desktop computers in terms of functionality, I suspect that this is where we will see Linux shoot up. Reading about the buzz on Windows 7, I'm getting the impression that Microsoft is positioning Windows to be a competitor not to Linux or even the Mac OS X, but for the iPhone. Unfortunately, I don't think they are going the right way about it. Microsoft's vision seems to be focused on the tablet PC. Windows XP running on a tablet PC was introduced in 2001 by Bill Gates. However, seven years later, tablet PCs failed to make a dent in the market.

The reason tablet PC have not replaced laptop is due their limitation. As cool as they look, they are nowhere near as useful as a regular laptop. For instance, most do not have a keyboard, or a cover for the screen. Also, a tablet PC cost considerably more than a regular laptop. As for competing with cell phones, a tablet is simply too bulky to haul, and whip out whenever you need it. Thus, the tablet PC is not the best of both world. It's just an expensive toy.

I have no doubt that multi-touch displays a-la-iPhone will become de facto in a few years. But once again, Microsoft is playing catch-up since Apple has already invested heavily in the technology, and has already benefited from the fruits of their research. Linux is also multi-touch aware, and I'm looking forward to seeing what the community builds with the technology.

One more OS to note is OpenSolaris. When Sun Microsystem initially decided to open-source their flagship operating system, I was skeptical. My original impression is that Sun was hoping to breathe back life into the venerable but ailing SunOS before it sputtered and died. To my surprise, it looks like OpenSolaris could quickly become competition for the likes of Ubuntu. As much as I like Linux, I'm please to see solid competition on the horizon. I would go as far as to say that OpenSolaris is an operating system you may want to keep your eyes on.

Labels: , , , , , , , , , , ,

Thursday, September 25, 2008

Is Google Harming Linux

Google is a huge supporter of Linux and open source. They strive to ensure that their products work on Windows, Mac and Linux. However, it recently hit me that their cross-platform development may actually be harming the image of my favourite OS: Linux

Recently, Google released the Chrome browser. In my opinion, the fine developers at Google did a marvelous job re-inventing the browser on every level. After trying-out the browser, I must say that I am more than impressed. There is only one detail that annoys me: Chrome is only available on Windows. Google promises that it will eventually make its way into Linux and the Mac. But when?

This is what is harming Linux (and the Mac to some degree). I personally feel that it was a mistake to release Chrome for Windows only. That seems to communicate that development on Linux is very difficult compared to Windows. I agree that there are important differences between both operating system, but there is a slew of open-source cross-platform libraries that could have been used to permit a simultaneous release between Linux, Mac and Windows.

Google is not alone in that. The MyEclipse IDE, which runs on Linux, Mac and Windows, has some features that are either stripped down, or unavailable outside of Windows. Again, that communicates not only a lack of love towards my favourite OS, but it furthers the impression that Linux is a difficult platform to develop for.

It's true that Windows has a huge market share compare to the Mac or even Linux. Thus, there is more money in the Windows world. However, the Windows market share is slowly being eroded by Apple and even Linux. I'm a very poor prophet of the future, but current trends seems to indicate that alternative operating system will become very important. For example:
  • UMPC - Ultra-Mobile PCs. Many come with Linux pre-loaded thanks to the smaller foot-print.
  • Cell phones — Again, Windows is not very prominent there
  • The rising Apple market share
  • One word: Vista

I'm willing to bet that in not too long, development for alternate operating system will be seen as a necessity. This type of situation is not uncommon. I remember the web about 10 years ago. It was considered normal by web developers to code their HTML for Internet Explorer specifically. Today, that is a big no-no. I don't remember seeing one of the infamous 'Best View With...' button on a website in so long. Thank you W3C!
Another issue to keep in mind is the current distrust that many organizations and governments have with Microsoft. The OOXML fiasco has harmed ISO's reputation in a way that it may never recover, and Microsoft's tactic of committee stuffing has been well documented. The EU still have their eye on the behemoth, and even my province of birth is challenging Microsoft's dominance.
Microsoft may be the next IBM. They will not disappear tomorrow, or even after tomorrow, but their relevance and influence over the market will lessen over time. This will open the playing field for alternative operating system.
As a software house, you have two choice:
  1. Edge your bet on the Microsoft platform, and ignore the alternatives
  2. Develop products with cross-platform compatibility in mind

Which one are you going to choose? If you choose option 1, then get ready to fork out money into the four to five digits (at least) to buy the Windows development stack. That will typically include Windows (XP, Vista or Server), Visual Studio, Microsoft Office and so on.
On the other hand, most of the cross-platform development tools are open-source with optional corporate support if desired.

Labels: , , , , , ,

Friday, August 8, 2008

Ghost Software

I'm having another Microsoft day. Yay me!

Here I am, installing Windows again. Why does it have to be an all day event? Beyond the Blue Screen of Death, undecipherable error messages and the most annoying Genuine Windows (dis)Advantage, I finally got to my software update.

The fun part is that Windows is asking me to install two updates for Office 2007. I don't have Office 2007 install. What's the deal? Same thing with SQL Server 2005.

Looks like I have ghost software on my machine.

Labels: ,

Thursday, June 26, 2008

How Microsoft Won and is Loosing



Steve Ballmer had it right. Developer developer developer!

The prime reason why Windows won over OS/2, the MacIntosh and even MS-DOS was thanks to the mighty influx of application that crept up for the OS. And the only way that those applications existed was thanks to developers.

Thought the Windows API are not the most graceful API I've encountered, they were reasonably well documented. I learned the Win16 and Win32 APIs mostly by reading the MSDN help files.

Using the simple tactic of ensuring that developers would favour the Windows platform early on, Microsoft achieved dominance in the operating system market.



But what is happening today? Balmer has been singing a different tune for the past few year. Since the rocketing rise of Microsoft's stocks capped in 2000, the behemoth is now struggling to pierce new markets while retaining their heavy monopoly.

It's interesting to see Microsoft running like a chicken with it's head cut off. Vista is a disaster, they are still loosing money in their search and gaming division and .NET is barely making a dent in the Java marketplace. Let's not even mention their iPod killer: the Zune.

If it wasn't for the near monopoly on Windows and Office, Microsoft would be hemoraging money faster than the speed of sound. BANG! Bankrupcy before they know it.

I think the reason is pretty clear. Microsoft is now spitting in the face of the very people that brought them to where they are: the developers.

Balmer himself said that he would like open source innovations to happen on Windows. However, he seems (or chooses) to be clueless about the free software philosophy.



Balmer can push all he wants, but he should realize that developers are usually intelligent folks. Many open source developers are quite brilliant. I do believe that most developers can smell bullcaca when it is spewed out of someone's mouth.

Genuine honesty free of marketspeak is not something you often hear from Microsoft!



It's certainly not by forcing proprietary software or standards down the FOSS developer's throat that Microsoft is going to win any friends. Neither is it going to give developers the desire or even the posibility to innovate.

Personally, I like computers to work for me and not the other way around. That's one of the many reasons I don't use Windows &mdash I cannot stand an OS that thinks it can tell me how I should work.

Labels: , , , , ,

Thursday, May 29, 2008

What is Windows?

What is Windows? Yeah, I know, it's supposed to be an operating system, but I'm completely confused as to what is Windows.

Here's the situation. My work laptop is back. Of course, I promptly installed Ubuntu 8.04. Now, Ubuntu, like most Linux distribution is much more than an operating system. You get the rock-solid Linux kernel, the GNU tools, and a full-fledge desktop environment. By full-fledged, I mean that I have my office suite, Internet browser, email program, photo management and photo editing software, games, and other miscellaneous doodads. The whole thing takes a little over 2G. Oh, and none of those programs are crippled trialware.

Now comes the fun part: installing Windows Vista Ultimate!

Installing Vista is actually straight forward. Similar to Ubuntu, you just pop in the installation CD and reboot. Unfortunately, there's not 'live DVD' for Windows, so you can't try it on your hardware before you install it. That would have been really nice, as you'll see later.

Moving ahead, I went through the necessary motions (like entering the insanely long activation code). Vista installed. Vista rebooted. Vista came up. It took a little longer to install than Ubuntu but not too much, especially considering that the whole thing takes 10G of disk space already!

Now, for the fun part: Pop! pop! pop! pop!

That's the sound of all the popups that came up after the installation — or at least that would be the sound if my sound worked.

Windows Activation was one of the biggest annoyance. It complained that it had to phone home and validate with Microsoft that I'm allowed to run Vista — but it cant! Why? Well, both my wired and wireless network cards do not run.

Now, I should specify that the laptop is about half a year old. The version of Windows Vista comes with SP1, which means that it should be up to date, right?

So, here I am with 10G of hard disk space eaten up by an operating system that threatens to cripple its functionality if I don't phone home, but the operation system cannot phone home. Ouch! I can't even download the drivers, since I can't connect to the Internet.

We'll skip over the hunt for drivers and move ahead to the next interesting part about Windows Vista Ultimate. For the price, it contains remarkably little. I mean, I've got a web browser that passes as a poor imitation of Firefox, a crippled word processor called WordPad that supports only RTF or plain text and a paint programs that reminds me of my DOS days. My computer is barely powerful enough to support the whizzbang visual effects and is better without it.

(Do I need to mention that the 'whizzbang' effects are turned on in Ubuntu?)

So, here's my question to anyone who wishes to answer it: what the heck is Windows? What is the 10G for? What am I paying so much money for?

I mean, it can't be for the glitzy user interface, since that's been available long before Windows Vista (Mac OS X, XGL). It can't be for the load of default applications that are installed on it, since it's pretty naked for an operating system. It can't be for development purpose since I can't seen to find a single compiler on it, much less a decent text editor. It can't be for its hardware support since it was missing drivers for at least 7 devices on my older laptop. It can't be for it's performance, since Ubuntu is more responsive, boots faster and uses less memory.

I'm starting to suspect it's for games, since a lot of games are written for Windows. Is Windows Vista a really, really expensive virtual game console? Actually, I just learned that it's probably not the case. I just tried to run Civilization IV on Vista, and it told me that it had compatibility problems. It doesn't sound like it's the best operating system for games.

The other possibility is that people want to run Microsoft Office. Yes, Microsoft Office is a nice office suite, but I've been using OpenOffice.org since the StarOffice days. True, OpenOffice does not have all the features of Microsoft Office like talking paper clips or online activation, but it serves me marvelously well — and it has a real drawing toolbar instead of the silly ribbon. That ribbon may be great for Office neophytes, but is a total hindrance for power users.

But I digress. Let me close by saying that it's true that the best things in life are free.

Labels: , , ,

Tuesday, May 20, 2008

Windows Vista is No Help

Since my work laptop is being repaired, I have the pleasure to work on another laptop running Windows Vista. I feel like I'm working on a poor imitation of Mac OS X that has been designed by a marketing committee. Actually, the whole thing feels like it was designed by multiple committees, each striving to do their best job, but always having to compromise to meet the needs of another committee. Unlike the Mac OS, or a Linux Desktop, it has no personality — no soul. I think that Vista should win the Best Jumble of Ideas with the Worst Implementation Possible award.

Here was my surprise this morning. I was working in Microsoft Access 2007, when I accidentally hit F1. For those who may not know, the F1 key is typically used to bring up the help.

And help it did bring me indeed. Here's the screenshot:

Windows Help and Support: Why can't I get help from this program?

Wow. So, I can't open Office 2007's help on Windows Vista. Did two committees forget to meet?

Here's the official reason why Windows Help is no longer included in Windows:

Ever since Windows 3.1, Microsoft included the Windows Help program (WinHlp32.exe) with new releases. WinHlp32.exe is used to view 32-bit Help files that have the .hlp file name extension. Starting with the release of Windows Vista and Windows Server 2008, Microsoft has decided to no longer include in WinHlp32.exe as a component of the Windows operating system. Microsoft made this decision because WinHlp32.exe has not had a major update for many years, and it does not meet Microsoft’s standards for all new Microsoft programs. Microsoft realizes that this may cause some difficulties for customers who want to upgrade to Windows Vista or to Windows Server 2008 but still rely on 32-bit .hlp files. Therefore, Microsoft is making WinHlp32.exe available as a download from the Microsoft Download Center. (Source)


So, an incomplete product is considered a higher standard than a product that is used by millions of people but has not been updated by the very company that made that product. Wow. I'm sure if I were a Microsoft customer, I'm sure I would feel content knowing that Microsoft is watching out for my best interest. I mean, I'm sure glad Microsoft invested in transparent title bars (that I had to turn off) instead of updating such a crucial component to Windows.

Which brings me back to an earlier question: What the heck is Windows anyway?

Labels: , , , , ,

Friday, May 16, 2008

Microsoft Windows for (Nearly) Free?

This is a follow up to Microsoft Windows for Free?

Shortly after I wrote this entry, a couple of interesting events occurred. As I predicted, Microsoft went ahead to compete with Linux on ultramobile PCs (UMPC) like the Eee PC. They are now offering Windows XP Home for $32 US. It's not free, but it's getting close to cheap. Actually, it's not free in either sense of the word, since Microsoft dictates what it considers a UMPC. The maximum specs are: 1G of RAM, 80G of hard disk space, single-core processor running at 1Ghz, screen size of 10.2 inches and no touch screen capability. Anything higher than that requires the vendor to buy Windows XP at their regular price.

That's fair. It's their product, so they can choose how it's licensed. However, I fail to see how they plan to compete with Linux on this field with those restrictions. Furthermore, the $32 US is only for Windows. This means that if you want Word or Excel, be ready to fork out more money. I'd be surprise that Microsoft would allow the vendors to ship Windows with OpenOffice prepackaged. Have fun playing Minesweeper!

With Ubuntu, I have a full fledged desktop with my office suite. The full install that takes up less disk space than Windows — And the $32 stays in my pocket.

Another interesting event is the fact that One Laptop Per Child (OLPC) recently announced that they would support Windows XP on the XO laptop. What a shame. To me, that alienates the whole concept of the XO — learning. How can they learn in a closed, controlled and censored system that greatly limits their freedom. Some of those children who are growing up in a dictatorship are denied yet another freedom. That is a massive loss for them.

Those poor children are denied freedom in the world of computing to further entrench the monopoly of an American company. I cannot help but wonder what goes on in the mind of folks who are more concerned with buying yet another, bigger yacht on the back of those children.

I remember in the early days that OLPC decided that the XO should only use free software (as in free speech). Thus, both Windows and Mac OS X were refused early on. Steve Jobs, president of Apple, went as far as offering Mac OS X for free (as in beer) for the XO, but was denied, since he would not free (as in speech) the software.

In their 'philanthropic' move, Microsoft is charging about $3 for Windows XP. Of course, that does not include Office or anything like that. Just Windows (Yay! Minesweeper!). Furthermore, to allow the XO to dual boot between Windows and Linux, the machine will cost an additional $7 to make.

Since Microsoft is all about their image, I was surprised that they did not offer Windows for free as Steve Jobs did with Mac OS X. I mean, $3 per copy isn't going to register a blip on Microsoft's revenue radar. So, why?

The only thing I can see is anti-thrust. Microsoft is having enough problems with the EU and the Department of Justice, that they may be reticent to offer Windows for free out of fear that it will be perceived as an anti-competitive move.

Though I may be painting Microsoft as a nasty, greedy ogre, we have to remember that they cannot force people to buy their products. They are doing a fantastic job of both painting their software as the 'only' option and — more importantly — hiding the true monetary cost of buying (and using) Microsoft software.

As long as the average consumer remains ignorant of both of those aspects, they may never realize that there are alternatives — much less of the need for those alternatives.

Labels: , , , , , , , , ,

Sunday, May 11, 2008

Ubuntu Vs. Windows Vista

Wow. What can I say? I actually had a chance to work on Vista. Really! Since the hard disk in my work laptop died, I was given another portable pre-installed with Windows Vista.

What an experience. It's an HP dual core 1.9GHz 2G laptop with an nVidia graphics card. It should fly, right? Well, it flew about as gracefully as a turtle on it's back in the middle of the highway.

For comparison, I'm currently writing this blog from an older Gateway machine running on an AMD Turion 64 (single core), 1G of RAM with a Radeon XPress 200M. running (for now) Ubuntu 7.10. The machine was out of commission since I dropped an entire cup of coffee into the DVD drive. Thankfully, the folks at Farstar Networking in Alexandria did a fantastic job resurrecting it for a fraction of the cost I would have assumed it would have been.

However, back to Vista. For starters, after I had booted, the machine was already sucking up >700MB of ram. That leaves less than 1.3G to run my applications. That's not overly bad, since I've go to 2G on the HP, but my Gateway has only 1G. So, forget about running Vista on it. In Ubuntu, running the Gnome desktop with Compiz, Apache, MySQL, Firefox 2, Thunderbird and a system update, I'm not quite at the 475MB watermark.

I've heard a lot of folks complain about the performance of Vista. I finally had a chance to experience this first hand. Yuk! Is it ever SLOW. I could not even drag a window without the system studdering. Furthermore, I got kind notification from Norton Anti-Virus that my subscription was expired, and I should renew. What's that about my credit card number? I forgot what it's like to run an OS where you need an anti-virus. Let's not get into the endless array of continual popups.

Here's my first major gripe: No package manager. HP installed tons of crap on the laptop, including a (I would assume) redundant wireless connection manager, a trial version of Norton, tons of little application that are — supposedly — there to improve the user experience, and god knows what else. Time to clean the system!

I crack open the Add/Remove program, click on the first application, hold down control, and click on the next. Guess what? You can't! In Windows, you can only uninstall a single application at a time. Furthermore, it takes forever to remove the tiniest of application. Oh, and let's not get into the reboots. Remember, I'm cleaning this up because I need to get some work done. How much fun is it when all of a sudden, all your windows starts to close one after an other, and the machine reboots. Oh, I just love it when my operating system controls me. Sure! I love being a slave to the machine. Kiss your freedom goodbye.

On the other hand, I want to upgrade my Eee PC to Ubuntu 8.04. Unfortunately, I lacked disk space. No problem. I cracked open Synaptic package manager, selected a number of application for uninstallation, clicked Apply, and waited while the applications were removed. By the time the applications were removed, Windows Vista had finished booting, and was almost at the desktop. Of course, that was just one of the many reboots I had to do with Vista. None so far on the Eee PC!

Vista is slow. I asked one of my Windows Guru how I could turn off Areo. After digging around a bit, my guru showed me the option where I could chose the Windows Basic theme instead of Areo. What a difference this makes!!! I can move my Windows without feeling like the system is about to go into terminal shock. Here, on my Gateway, I've got Compiz working with the wobbly windows and all the fun graphic effects. It works great &mdash smooth as silk. Oh, and the Gateway is Windows Vista Capable. Not Ready, which means that Areo would not even work on the machine. My Eee PC is running eeeXubuntu with Compiz as well. It's pretty!

As a last point, one of my coworker asked about an 'upgrade path' from Vista Home to Vista Premium. He needed to upgrade Vista so he could run SQL Server Reporting Services (if I'm not mistaken). The software does not run on Windows Home. Not because Windows Home is incapable of running it, but because Microsoft thinks you should not. That is why I love free software. I come from a country that enjoys freedom of expression, movement, religion, etc. I cannot imagine myself relinquishing any of those fundamental freedoms for any price. It's the same thing with software.

I'm a free person. I refuse to pay for proprietary software that limits your freedom when there are perfectly good (better!) free solution out there.

In closing, my Eee PC quietly upgraded to Hardy Heron (Ubuntu 8.04). One reboot was all it took. I then reinstalled whatever applications I had removed. No reboots. Everything works. Don't you wish it was the same in Windows? (To be fair, the wireless card did not come back up. But it took two minutes of googling, and found a simple solution)

While I'm writing this on my Windows-Vista-Incapable Gateway laptop running Ubuntu 7.10, I'm upgrading to Hardy Heron. Can you work on your machine while you are upgrading your Windows version?

If the answer is no, I would then ask you: why not?

Oh, and you paid how much for Windows Vista? And that does not even include an office suite???

<SHOCK>!!!!</SHOCK>

Labels: , , , , , , , , , ,

Monday, May 5, 2008

Thank you Microsoft!

Microsoft is considered by many open source advocates to be the arch-enemy of Linux and free software. I think it's fair to say that Microsoft fears the success of Linux and the free/open source movement. They are doing their best to make compete. However, free software is not their traditional competitor.

Because GNU/Linux is free (as in speech), and is freely (speech & beer) available to anyone, they cannot buy it out and close it as they have done with some past competitor. Because free software is developed by a (tightly or loosely knit) community that may or may not receive corporate sponsorship, they cannot hinder the development. Because the software is free (as in beer), they cannot compete in terms of price. Even Internet Explorer is more expensive than Firefox. Though it may be a 'free' download, remember that you must buy Windows to have Internet Explorer. Thus, as part of what you pay in Windows, you also get Internet Explorer. In other words, Internet Explorer is just another (unfortunately inseparable) component of Windows — not a free download.

Finally, Microsoft cannot compete in terms of freedom. Their End User License Agreement (EULA) determines what you can and cannot do with their software. In the free software world, the license protect both your freedom to use the software, and the freedom of the software.

So, how is a multibillion dollar corporation to compete against the penguin and the likes? FUD is their answer. FUD stands for 'Fear, Uncertainties & Doubt'. Or, in Microsoftspeak, 'Get The Facts.'

In the hopes of driving people away from Linux and free software, Microsoft created a site called getthefacts.com. The site is a direct attack on free software. Though the so-called 'facts' presented by Microsoft are an assault on both intelligence and reason, I think that the biggest looser of the site is Microsoft and a major victory for Linux. For starters, I think that any reasonably intelligent person understand that asking a Honda salesperson what they think of the Ford Focus over the Civic will not get them an unbiased, objective answer. Why should it be any different with Microsoft?

What MSFT may not realize is by setting up getthefacts.com, they have provided immense exposure to GNU/Linux and the free software movement. The website presented free software as a true competitor and alternative to Microsoft products. Folks that had never heard of Linux before are now becoming aware of it thanks to Microsoft. Furthermore, IT directors who rely on Microsoft to keep them up to date with the industry are kindly informed of alternatives to Windows and Office.

For this, I say Thank You Microsoft. There is nothing like corporate backing to promote free software. After all, it's time that Microsoft catches up with the market, and joins the ranks of Novell, IBM, HP, Apple, etc who are all users and backer of free software.

Labels: , , , , , , , , , ,

Saturday, April 19, 2008

Poking a bit of fun at Windows Vista

I was googling stuff while preparing my next article, when I came upon these two hilarious YouTube videos.

The first one shows how desperate Microsoft is to sell Vista to the enterprise market. The next is just too plain hilarious.

Hope you enjoy!



Labels: , , , ,

Friday, April 18, 2008

If it breaks, who do I blame?

A question I get in almost every seminar I present on topics like open source or Linux is: if the product fails, who can I yell at?

In other words, they are looking for a massive, faceless corporation they can call to complain (and sue). In the open source/Linux world, who can you scream at?

I think it's a valid concern ranging from home users to operators managing the information technology infrastructure of million dollars businesses. But is free software really that much of a risk compared to proprietary software?

If you download and install any piece of software licensed with the GPL, you will notice that the license boldly states that the software comes with no warranty whatsoever. In other words, if it breaks, you have no one to sue. Should you go back to proprietary software then?

If a warranty and support is the only reason to use proprietary software, well, you're in for a nasty surprise.

Let's take a look at a couple of commercial licenses:

To paraphrase the Microsoft Windows Home edition EULA, you have no warranty. Should the software not meet your needs, you have 90 days to ask for a refund. Should it cause your computer to meltdown, your claim is 'limited to the greater of the actual damages you incur in reasonable reliance on the Software up to the amount actually paid by you for the Software or US$5.00.'

I would love to peak at the Microsoft Office 2007 License, but it's in an EXE file. Strange that you need Windows to be able to see a license. Oh well, if Microsoft wants to be incompatible with the rest of the world, that's their choice.

The Adobe Photoshop CS3 license is not much more promising. Again, you have 90 days to ask for a refund. After that, you're on your own.

I'm assuming that if you feel that running proprietary software is preferable over open source, then you probably pay for an anti-virus. Here's the McAfee EULA. Aside from the warranty lasting only 30 days, the rest sounds awfully familiar. I don't know about you, but after a while, all licenses starts to sound the same, don't you think?

Just for giggles, let's take a look at one more license from a company that 'thinks different.' Can you guess who? Here's a link to their licenses. Any surprises over here? Not in terms of warranty, but looking at section 2.B, there's a mention of open source software included with the product. So, it seems that some software vendors do take a byte out of the forbidden fruit called open source.

So, are you still convinced that proprietary software offers better protection? But what about service and support agreements, you say? Microsoft will happily lighten your wallet in exchange for a phone number that you can call if you're up the creek without a paddle.

Here's the kicker. If you are in a situation where support is a requirement, that is readily available to you. You need help with your Ubuntu setup, call Canonical. You heard that PHP is a great web development language but want support, call Zend. What's a website without a database in the back end. Let's install MySQL and call Sun Microsystems for a support agreement.

If this is too many companies, you could look at one-stop single-vendor support from shops like IBM, Sun or even Novell.

And hey, if you're looking for friendly, personable support in Ontario or Quebec, call Farstar Networking.

By considering free and open source software as an alternative, not only do you get the complete source code to your application (which you don't with Microsoft), you can also get support. The choice is yours.

I'm hoping that this is a bit of a wake up call. I've seen a number of article discussing the virtues of single-vendor or multiple vendor-solutions. However, it sometimes seems like Microsoft is the only single-vendor solution out there. They may also seem to be the only one who is on solid financial grounds. If that's your opinion, be aware that when you buy Windows of Office, you are subsidizing their Internet and game division, which is known for losing money.

It may be surprising to know that Microsoft is not the only company that is making a profit. Open source is a billion dollar market that Microsoft has not been able to tap. Others are already tapping it.

So, next time you have a need for a new server or home computer, before you hit your quick dial button to Microsoft Sales, how about you place a few calls around. You may be surprised as to how much you can save in the short and long term.

And you can still have someone to blame if it doesn't work. Except you get to keep the code. What more could you want?

Labels: , , , , , , , ,

Wednesday, April 16, 2008

Microsoft Windows for Free?

How is Microsoft to compete? I mean, Mac OS X Leopard is $129 CAD, Mandriva Linux is about ~$80 CAD and Ubuntu is free.

Windows Basic, on the other hand is (GASP!) $199 CAD! And it does not even come with an office suite. You definitely get more bang for you buck with Ubuntu.

This brings me to two big questions.

The first one is: What exactly is Windows? I get a fat DVD which will eat a sizable chunk of my diskspace. It lack drivers for some older and even newer devices, and the closest thing you have to a functional word processor is WordPad. Whoopdidoo. I fell like I'm really getting value for my big, fat $200 dollars. Well, I guess that's Microsoft privilege to charge whatever the hell they want for their operating system. That's the beauty of having a near monopoly.

The second question I have is: How is Microsoft going to compete? Computer are getting dirt cheap. The Asus Eee PC is changing the way people think of laptop in terms of size and price. At the rate prices are going down, more than half of the computer's price will be for Windows Vista Basic. Even now, it is possible to buy a laptop at FutureShop for less that $500 CAD. How much of that $500 goes towards Windows?

At the rate things are going, Microsoft is going to have to dramatically reduce the price of Windows. I personally feel that $200 for a 'basic' version that allows me to surf the web and the privilege to install spyware, is highly unjustified. Especially when I can get a complete system that includes my office suite and development tools for practically nothing.

Or maybe the high price tag is to help support emerging markets? Since Microsoft is so altruistic, they will charge the develop world more to help subsidize Windows for the poor. What a nice robin-hoodish, humanitarian approach...except for the fact that the Robin Hood we are talking about here has more gold in his coffer than all the rotten sheriffs in the world. Furthermore, this Robin Hood is gladly charging the poor.

Once again, since they have a monopoly, it's only natural that they choose how much they charge. For years, it was easy to hide this Microsoft Tax, since a computer typically went for thousands of dollars. Now that computers are barely half a grand and that the price of Microsoft Windows keeps increasing, this tax is quite noticeable. People will quickly realize that an Asus Eee PC preloaded with Linux actually offers a lot more out of the box than the same Eee PC loaded with only Windows.

That brings me back to my first question: What the heck is Windows anyways? What am I paying $200 for?

Labels: , , , , , , ,

Tuesday, April 15, 2008

Hold the Mono, please

Does Microsoft innovate? I think so, but not as much as people think. They are very good at taking existing ideas, and adapting them to work only on their products.

This leads me to the .NET Framework, their competitor to the Java programming language. Java is a programming language that has been around since 1995 and has enjoyed tremendous success in the computing world. Its success is due to a number of factor. Personally, I feel that Java succeeded because it used and encouraged a number of best practices, like forced exception checking, strongly typed language and taking full advantage of object orientation as well as design patterns. Furthermore, Java evolved through the Java Community Process. The JCP is a process managed by Sun Microsystem, the creator of the Java programming language, that allowed interested parties to participate in the development of the language. This means that Java is not the brainchild of solely Sun Microsoft, but also that of IBM, Borland, Novell, and many other organizations. Because many organizations actively participated in the development of the project, this encouraged adoption.

Today, the success of Java is undeniable. There is one company, however, who is directly threatened by Java, and that is Microsoft. One of the early promise of Java was write-once-run-anywhere. That is, you write your computer code once, compile it, and then you can run it on Windows, Mac OS X, Linux, your cellular phone or whatever else you'd like! This is a reality today. I do a lot of Java development, and use a lot of Java programs on Linux, the Mac and Windows.

It works. Microsoft does not like this. They would prefer that applications are written for Windows and stay on Windows.

To achieve that end: enter the .NET Framework. Microsoft created .NET as a response to Java. To compete, they create a language that superficially resembles Java called C#, and a framework that is tooted as write-once-run-anywhere. They even went a step further and got part of the .NET framework standardize with the ECMA.

Just like Java, the success of .NET is undeniable. Let me be the first to say that Microsoft actually came out with some cool ideas. I like LINQ and I think that Workflow Foundation will be an important set of API in the future.

However, I will not develop open-source application with .NET for two reasons:

1. It is not free software. Java has recently been freed by Sun Microsystems. Yay! I hope that this will continue to speed the adoption of Java on Linux. However, .NET is not free. Microsoft owns a number of patents on .NET and has yet to provide a license to their intellectual property that is compatible with the GPL. Until Microsoft opens .NET, I will not touch it with a ten foot pole on Linux.

2. It is not write-once-run-anywhere. It's true that I can create a .NET application on Windows and run it on Linux. However, please repeat after me: .NET is not write once run anywhere. Saying that .NET works on Linux is bullcaca.

For starters, there is a project that is sponsored by Novell (and indirectly, by Microsoft) called Mono which permits the development of .NET applications on Linux. However, repeat after me: .NET is not write-once-run-anywhere. I need to get that into your head. Sure, it looks like it's portable, but here are the problems you will encounter:
  • The API to write GUI (windowed) application is meant to run on Windows. Whatever application is created on Windows with .NET will look good on Windows, but look like crap on Linux. Futhermore, Mono has its own GUI API that is incompatible with the one provided by Microsoft. This means you either create your .NET application to run on Windows or Linux. Say bye-bye to portability. Score 1 for Microsoft!
  • Microsoft is introducing more and more Windows specific API. Just the names of the APIs should give you a clue: Windows Presentation Foundation. Windows Communication Foundation. In other words, Microsoft is making sure that your write-one-run-anywhere investment is glued to the Windows platform.
  • The is no community process. This means that Microsoft has sole control over the direction of .NET. Don't go whining to Microsoft that your gorgeous .NET application looks like crap on Linux and does not work on your Mac. They don't care. Actually, that's a lie. They do care. They care that it runs on Windows and only on Windows. You can expect more and more Microsoft Windows specific API on .NET masquerading as 'open,' 'portable' APIs.
  • You are creating .exe and .dll files. Unlike .class or .jar files in Java, These files are Windows specific. They contain MS-DOS and Windows code. In a Java application, there is not a single line of platform-specific code. That means that Mono has to be able to load a Windows executable on Linux. For something that is supposibly portable, it sure carries a lot of Windows with it.
  • But Linux already has strong support for .NET with Mono! you say? So, why not use Mono? The reason is simple. It's a Microsoft technology. It belongs to Microsoft, and should they decide your Mono application is eating away at Windows market shares, prepare to receive a kind letter from Microsoft politely indicating that since you are using their intellectual property, you owe them $$$.
  • Though I doubt that Microsoft will ever collect open source developer for the use of their so-called intellectual property, I think that the real problem will be that Mono on Linux will forever play catch-up with .NET on Windows. Who wants to use a 'write-one-run-anywhere' technology that is one or two years behind on some important platforms? Either you write a Windows-only application in .NET, or look at alternatives.

.NET exists solely to further Microsoft's agenda. Anyone that chooses to use Mono on Linux is kindly helping Microsoft achieve that agenda. Yes, there are some cool ideas in the .NET framework, but most of those ideas are copied from existing languages. For example, I've been using workflow management API and designers long before Microsoft came out with the Workflow Foundation API.

Before you consider Mono, please take a look at what's available on Linux already. You want true write-once-run-anywhere? Java is one solution. Not good enough? What about Python? Pascal? PHP, C/C++? Need I go on?

Linux is where it is today not because of heavy-handed sales tactics or razzle-dazzle marketing, but by its own merit. Let's continue to develop Linux through it's own merit.

We will not innovate if we follow the Microsoft path — that is, mostly copying what others are doing.

As for me, I think my plate is delicious as it is. I'll hold on that Mono sauce, thank you very much!

Labels: , , , , , , , , , ,

Sunday, April 13, 2008

Enjoying the Asus Eee PC

Having just received my Eee PC, I'm still getting familliar with it's capabilities. The keyboard requires getting used to, but I'm getting better. As long as I don't have to use the right shift key too much, I can almost achieve the same typing speed as on a regular keyboard ;) All joking aside, once you get used to the keyboard, it's actually quite pleasant.

I got the 8G model, which means that I have a whooping 8 gigabytes of 'hard disk' space. While this is tiny compared to a regular hard-disk, which is usually over 100 gigabytes for a laptop. However, for my needs, I think that 8G, or even 4G should be enough. Since the Eee PC supports SD cards, I'm using a 4 gigabyte card for my /home partition (for Windows users, think My Documents).

The pre-installed operating system is a custom version of Xandros Linux (which is based in Ottawa). Though the default is fine for most people's need, I wanted something that gave me more -- so I installed eeeXubuntu. I removed the default Gnome games, Abiword and
Gnumeric to save space, and them promptly installed:

I've got ~640M of space left (which ought to be enough for anybody) on my system partition. Not too bad, considering I've got a practically complete portable development system.

One of my goals is to get Morrowind working with Cedega. So far, no joy, but I'm not about to give up. I know some folks got it working, so I'm sure I can as well.

If you are going to install eeeXubuntu or Ubuntu, be aware of the Eee Wiki. One of the coolest trick I found is how to enable the ALT+F11 key to make a window take the full screen. That really takes advantage of the 800x640 screen resolution. There are many more cool tricks on the page. Check it out!

Software for Windows seems to take up much more room than software for Linux. If anyone plans to run Windows on the Eee PC, I would like to recommend they consider using Google Docs. It is a word processor, spreadsheet and presentation package that runs in a web browser like Internet Explorer or Firefox. Using Google Docs does not require you to install and special software. As long as you are connected to the Internet, you can use it. Futhermore, Google Gears should eventually allow you to run online application offline.

Actually, I'm using Google Docs one my Eee PC right now to author this article. So far, the Eee PC turns out to be a fun, yet useful machine. My wife is starting to strongly hint that I'm spending too much time on it. Oups! I think I should wrap up this article, and spend some quality time with her! See ya!

(Hum... I'm a bit disappointed with the Google Docs' HTML exporter. I wish it did XHTML)

Labels: , , , , , , , , , , ,

Thursday, April 10, 2008

Got my Eee PC!

I got my Eee PC yesterday. Need I say more?

So far: Wow!

I'm currently installing eeeXubuntu on it. As most folks commented, the screen and the keyboard is small, but the rest is just great.

You can bet the next entry will be from my brand spanking new Eee PC running Xubuntu. I'm sure I'll quickly get used to the tiny screen and keyboard. I mean, my first serious graphic applications ran in 320x200 and my first computer had 16K of ram. The Eee PC has plenty of juice for my needs!

This blog is written using Slax because I needed to burn an ISO, and Windows does not come with any tools to burn ISOs. For that matter, the Windows installation has over half a dozen devices it does not recognize, including the sound card. Slax detected everything ;).

Labels: , , ,

Saturday, April 5, 2008

Linux for Windows Administrators

If you are familiar with administrating Windows, but are curious to know about Linux, this article may be of interest to you.

This article is not for the everyday user who wants to get started with Linux. If systems administration is not your thing, but would like to learn some of the differences between Windows and Linux, I would recommend reading Is Linux Like Windows?. However, those who have a background in Windows system administration, please read on!

I'll warn you right now. Linux is not like Windows. It's a different operating system that stands on its own merits, and does not strive to duplicate the functionality of the operating system you are familiar with. Linux is based on Unix, which has been around since 1969. Its resilience is testimony to its success.

To help you migrate your skills to Linux, I've broken down the article in key topics that will help transition your Windows skills to the (rough) Linux equivalent. There is no 1-to-1 equivalent to the tools. There is a learning curve. Once again, it is a different operating system, and you may have to 'unlearn' some of the things you have learned.

Linux IS Supported
Let's tackle one of the biggest myth I hear from Windows system administrator. They assume that because Linux started (and continues) as a community project, it is not commercially supported. Let's get this out of the way: Linux is supported by a number of large company. Here's a few companies that supports Linux in one way or another: IBM, Novell, Red Hat, Canonical, Sun Microsystems and HP.

Just like Microsoft, you can enter a service agreement with any of those vendors. The difference is, with Microsoft, you buy the product and the support. With Linux, you (typically) just buy the support.

Command Line vs GUI
I won't lie to you. If you really want to learn to administer a Linux machine, getting familiar with the command line is a plus. However, if you have any experience administering Windows, you probably find yourself inside the command prompt from time to times anyways.

One of the reason that you may need to use the shell (command line) is due to the fact that the GUI is optional. As opposed to Windows, the graphical environment is just another program that can be started and stopped. Most administrative tasks in Linux can be done by the mouse. However, you may find that the command-line is necessary to rescue some system, or, as you get more familiar with it, you'll probably find yourself working faster and enjoy more control over your system. At least, I know I do!

There are many commands available to you. Each of those commands are separate programs that you are running. Most command will allow you to get help on the syntax by using either the -h parameter, the man or info commands. For example, to get help on the ls command, you can use either:
ls -h
man ls
info ls
(Hit the letter 'q' on your keyboard to exit out of man or info)

The Root User
The Linux equivalent to the administrator's account is called the root account. Logging-in as root gives you complete control over the machine. Using the root account is considered dangerous, and is disabled by default in many distributions.

To perform administrative task, the sudo command is used. Sudo (Super User Do) allows users to execute programs with elevated privileges. For example, the mount command needs to be executed by root. Thus, being logged in as a regular user, I can use sudo mount [...] to execute that command as the super user (root). Depending on your configuration, you may be prompted for a password before the command can be executed.

Another useful command is su (Substitute User, Switch User or Super User depending on who you ask). By using su, you can effectively 'become' another user, as if you had logged in as them. For example, executing su root or even just su would log me in as the root account. Of course, you may be prompted for a password.

File System Structure
Don't look for your C: drive. It does not exists. Linux uses a virtual filesystem. Everything starts from the root directory (not to be confused with the root user), which is represented by the forward slash (/). You can try:
cd /
ls

to see a list of all the files and directories in the root. The directory names are typically short. Here's a quick guide to orient you:
  • /home &mdash The user's home directory. Similar to Documents and Settings
  • /etc — The system's settings. Similar to the registry
  • root &mdash The root user's home directory. Similar to My Documents for the Administrator's account.
  • /dev &mdash The devices available to the machine. The closest equivalent I can think of is your Device Manager.
  • /boot — The files needed to boot the kernel. Similar to ntldr
  • /bin — User commands like ls or cd
  • /sbin — System Binary. Includes system's administration commands like ifconfig or mount
  • tmp &mdash Temporary files
  • var — VARiable files, like your system log, mailboxes and printer queues.

This is not a complete list, however, it should get your started.

Mounting Devices
One important directory that I left out is /mnt or /media. The Unix virtual filesystem allows you to 'mount' drives anywhere you want.

For example, in Windows, if a system has two drives, it is represented by two separated drive letter (ie: C: & D:). In Linux, those drives are 'mounted' into the file system. You 'C:' drive may be the root, and your 'D:' drive may be /var. So, the moment you enter the /var directory, you are now on another drive. This allows your to transparently (re)distribute your drives without having to reconfigure a single application. For example, if the /home directory is getting full, I can easily copy the content to another drive, and mount /home to that new drive. Everything will continue to work as-is. However, any files being read or written under /home will be done on the new drive.

To see where the devices are mounted, use the mount command.

File Systems
Forget about NTFS or FAT32. Though Linux supports them, the preferred file system is usually ext3 (third EXTented filesystem). Similar to NTFS, this file system is journaled. There are other file systems available like ZFS, XFS and ReiserFS. Ext4 is currently in development.

Linux support more filessytems than Windows or MacOS X combined.

Everything is a File
Unix popularized the idea that 'everything is a file.' That is, to access your hardware and services, 'virtual' files are used.

The /dev folder contains virtual files that represent the devices on your system. For example, you may see a file called mem which represent the ram of your machine. Other files may include /dev/cdrom0 — your first CD-ROM, /dev/sda — your first SATA or SCSI drive, /dev/sdb, your second SATA drive, and so on. IDE drives are represented by /dev/hda, /dev/hdb, and so on. Partition on the drives are numbered. For example, /dev/sda1 is your first partition on the first SATA drive. /dev/sda2 is the second partition and so on.

Accessing a block device like /dev/sda gives you direct access to the disk. That is, you can read and write at any position on the disk. This is very dangerous of course, since you are by-passing the normal directory structure, and accessign the bits and bytes of the disk directly.

To view the content of a disk normally, it needs to be 'mounted' to a directory. For example, if I would like to mount the second partition of my first disk as the /home directory, I would execute the following command:
sudo mount /dev/sda2 /home
The /home directory is now mapped to the second partition of the disk. I'm able to view and work with the files and folders located on that partition. To unmount it, use:
sudo umount /home
The /home directory is no longer mapped to the second partition.
Another example would be accessing the content of CD-ROMs, USB flash disk or floppy disk:
sudo mount /dev/cdrom0 /media/cdrom
sudo mount /dev/sdb1 /media/usb
sudo mount /dev/floppy /media/floppy

Settings
In Windows, you have the registry, which you are not allowed to edit, but everyone does anyways ;)
Linux is very different. Most of the system's configuration is under the /etc directory. There are many files in this directory, and most of them are text file. A few important files include:
  • fstab — File System TABle. This file documents how your drives and partitions are configured at boot.
  • passwd — The user accounts of the system
  • groups — The groups associated with the user accounts.
  • hosts — Practically the same thing as the Windows hosts file.
Of course, there are more. Feel free to open them in your favourite text editor.

Another nifty trick is to use the & after a command. This allows you to launch a command in the background. For example, the updatedb may take a while to execute. By using the &, I can continue working, while updatedb is running in the background.
sudo updatedb &
You can also temporary interrupt an application by hitting CTRL+Z on the console. This does not terminate the application (like CTRL+C), but suspends it. To continue executing the application, use fg (ForeGround) to return to the application, or bg (BackGround) to allow the application to execute in the background. (If you've used fg to return the application, you can continue to use CTRL+Z to suspend it at anytime!)

Package Manager
Most modern Linux distributions have a package manager that takes care of installing, uninstalling and upgrading any applications you have installed.

For example, on my Ubuntu box, to install a LAMP (Linux, Apache, MySQL & PHP), I can run:
sudo apt-get install apache mysql php
The package manager will download the necessary files and install the programs for me. To configure the programs, I can download additional GUI tools, or edit the appropriate files under /etc. No more messing around with CDs and/or activation keys!

Starting and Stopping Services
Services can be managed from the GUI, but should you desire to start and stop services from the command line, you'll find them in the /etc/init.d directory.
For example, to start the Apache web server, I could use:
sudo /etc/init.d/apache start
Typically, those services support the start, stop, restart and status parameter. Furthermore, be aware that the /etc/init.d/apache command is just a shell script. You can see the code used to start and stop the service. It's just another program.

Log File
To see your logs, take a look under the /var/log directory. They should be all there for you. Some of the important logs are:
  • messages — Various messages from the system are recorded there
  • auth.log — Authentication log
  • security — Self explanatory
  • cron — Scheduled tasks
  • Xorg.log.0 — XServer (GUI) log.
There are others of course. Most of the log files are just text. Learn to use the search feature of your favourite text editor!

It's Free
Linux is a free operating system. By free, we mean free as in free speech. This is important, because it allows you to use and customize the operating system to your liking. This is the main reason why Linux is used anywhere from routes to super computers.

To learn more about free software, I would recommend reading Free Software 101.

Linux has a lot to offer. It is succeeding not by marketing forces, but through its own merits. Many large players use and support Linux. Most of the top players on the Internet use Linux or another free operating system to host their sites. From my end, I use Linux everyday, both as a desktop operating system and in my servers. This has offered me tremendous savings as well as opening possibilities that proprietary (non-free) operating system cannot offer.

I hope you will give Linux a go, and get a feel for it. If you have any question, please drop me a comment.

Have a great day!

Labels: ,

Wednesday, April 2, 2008

A Linux Dude Installs a SharePoint Server

Today, I had the dubious pleasure of having to install SharePoint 2007 on Windows Server 2003. Yay!

I'm a Linux user. I enjoy working with Ubuntu amongst other distros. I can setup LAMPs (Linux, Apache, MySQL & PHP|Perl|Python) with my eyes closed. I mean, I spend more time waiting for my package manager to download the packages than I actually spend configuring stuff. All the tools I need are immediately available at my fingertip.

A colleague of mine who is well versed in the Windows world kindly setup Windows Server 2003 on a laptop. He even installed drivers (they don't come with the OS?) and service pack 2. Now, it's my turn!

So, how does one install a package on Windows?

I easily found the 'Add or Remove Program', but quickly learned that it was more along the lines of 'Remove Programs'. I mean, I could only find the option to remove existing packages. There was no option to search for packages to install or how to configure your application repositories.

That's when I remembered that most Microsoft programs come on CDs. I found a CD for SharePoint 2007 in the office. This may not be so hard after all.

Now, with the laptop in one hand and the SharePoint 2007 CD in the other, I'm ready to rock! I slap in the CD, and wait for an install program to pop-up.

Instead, Internet Explorer 6 pops up with a security security warning. Click OK, and I'm brought to a little webpage that contains a confusing collection of links. After I find the link to the SharePoint installation program, it opens Windows Explorer, exposing a file called setup.cmd.

That looks kosher, so I double click on it. Oups! Looks like I need the .NET Framework 3.0, SQL Server 2005 as well as IIS 6.

So, how does one go about installing SQL Server 2005, .NET 3.0 and IIS 6? Why can it not take care of it's dependencies like my package manager on Ubuntu? This seems like a lot of trouble just to install a web application. One of the things that makes Windows so difficult to use it the lack of a solid package manager. Microsoft really needs to work on that before I can take Windows seriously. I feel like I'm back in the stone age where I have to manually download and compile stuff. I can already tell that installing SharePoint 2007 is not going to be a walk in the park.

I didn't chance Add or Remove Program again. I went straight for the CD. Going trough the setup was reasonably painless. However, I'm surprised as the number of steps (screen, windows, whatever) one has to go through just to install a database server. Why can't Windows keep things simple?

Now, onto the .NET framework 3.0. Before I started to look for yet again another CD, I though to myself mdash; there has to be an easier way! Thankfully, I've had enough experience with Windows to know about Windows Update. It took me a moment to find it in the Start menu. There were nearly two dozen updates. This is not concerning to me, since in Ubuntu, I may get dozens of updates for all my installed application (and I have a lot!). However, I'm concerned that the vast majority of my update are security related — and these are only for the OS.

Interesting, Internet Explorer 7 is a recommended update, but .NET 3.0 is an optional update. Nevertheless, I select all recommended updates as well as .NET 3.0. Click the button, and KABOOM! All the updates fail to install. The carefully worded error message recommends that I try again, otherwise, look up troubleshooting in the help.

I try again...and again...and again to no avail. Even a single update fails. So, I click on the convenient URL that links to the help. As convenient as the link seemed, the help was not.

Being in foreign territory, I turn to my Windows guru. After reproducing my steps a couple of time, He recommends a reboot.

Miraculously, rebooting worked! The updates downloaded and installed without problem mdash; except that I had to reboot twice more. I guess they were mostly kernel updates. How often do you have to reboot Windows? I have some server that have been live for over a year without reboot. I wonder if I could do the same with Windows...

I've also noticed that Internet Explorer required a couple of clicks to installs, and performed some work at boot-up. I wonder what kind of browser needs to spend about a minute setting itself up after a reboot?

Alright, so after a few reboots, I now have the .NET framework 3.0 installed. Now, to IIS 6.

This one took a bit of searching around. I found it where I kinda expect to find it but could not see it at first. There a 'button' on the left side that says 'Add Windows Component.' The button brought me to a dialog that I remember from the days when I first installed Windows 95. Digging in there, I found IIS 6.0. Thankfully, I love Java. When I saw Application Server as a category, I immediately clicked on it to see if JBoss or Glassfish was included. My first surprise is that there were not. My second is that IIS is considered an application server. I would have though it's a web server. But who am I to argue with Microsoft?

I select IIS 6.0 (including ASP.NET, which is not included by default), and clicked install. Windows prompted me for the original CD. I could not find a way to change the software repository to use the web instead of the CD. That's kind of annoying. Does that mean I have to carry my Windows CD everywhere I go? I mean, thats three CDs I'm going through.

The installation actually went smoothly. No annoying popups or anything like that. Just like Ubuntu, it installed and configured the server for me. Yay! So now I can install SharePoint!

I double clicked on setup.cmd again. This time, SharePoint complained about having to enable something in IIS 6.0. The popup kindly explained what I needed to do. So, I followed the instruction, which brought me to some kind of wizard. As luck would have it, after the third step, the wizard asked me if I wanted to remove some stuff. I said no, and retraced my steps to make sure I had done everything correctly. The same thing happened second time through. I do wish that Windows was less cryptic so that I could understand what I'm going through. There's a lot of popup windows over popup windows, and the interface is a bit inconsistent. I took a deep breath and continued forward.

Once again, I was prompted for the original Windows CD. After I slap it in, Windows starts installing this 'Active Directory.' It must have been a large package, because it took a long time. Furthermore, it asked me to reboot again! I can setup (even compile) an entire LAMP server with a fully functional GUI from the ground up and never have to reboot. What is it with Windows and rebooting every time you change something?

At this point, my coworker are wishing me good evening. Well, I've had enough of this Windows fad for the day, so I go home, and start blogging. While I'm blogging, I'm going to do something fun. Hardy Heron is out in beta, so I might as well upgrade!

I launch my good-ol' package manager, and click Upgrade to Hardy Heron. The upgrade warns me that it may take a long time to download all the necessary packages, but at least I can continue working while I upgrade my OS. I wonder if upgrading to the new Windows Server 2008 is going to be as easy?

It's always fun trying new operating system. Though Windows seems solid, it still has a number of frustrating quirks. Installing applications should be easier, and the consistency of the interface could be greatly improved. I'm concerned about the need to reboot so often &mdash especially when adding a desktop application like Internet Explorer. There is absolutely no excuse to force a reboot after the installation of a desktop component on a server machine.

I wish Microsoft would borrow a thing or two from Linux and make Windows truly easy to setup and use.

Labels: , , , , ,

Thursday, March 27, 2008

Why Should You Consider Linux?

I'm a lucky man. I've married a beautiful woman with wonderful critical skills. She kindly pointed out to me that I may explain this free software and Linux thing, but nowhere do I emphasize the reasons why I think you should consider Linux.

Let me remedy that.

I believe there are many good reasons why an individual or a business should look at open source software and the GNU/Linux operating system in particular. In this article, I will address a range of potential users, from the end-user (everyday user) up to the IT professional. Some of the reasons will be technical, others social or even personal.

1 - It's Fun
I have a lot of fun with Linux, whether it's trying new software packages like Blender, Eclipse or even Alien Arena, trying a new distribution, or recompiling my kernel for the Nth time. There's so much I can do that I never get bored. Also, none of it is illegal, since the software I use is free as in free speech.

2 - It's Secure
Linux had security built into it from the ground up. Windows had security added long after it was created. Windows XP SP2 and Windows Vista are the first Windows versions to offer true desktop security.
One of the things I loved right away about Linux was the fact that applications cannot be modified or erased by end-users. In Windows, there's nothing stopping you from erasing part of the Microsoft Office or Windows folder. Yikes!
But it's not just a question of whether or not you are able to delete an application folder. The code, being opened, undergoes continual verification. Security problems are usually quickly discovered and corrected. It would be very difficult for someone to add a backdoor to any part of the code in Linux without it being noticed very quickly.

3 - It's Virus Free
Currently, there is not a single virus in the wild that can affect Linux. What I like about this is not just the peace of mind that it offers, but the fact that I do not need to install an anti-virus. You can if you really want to, but I generally tell Linux users not to bother.
(Having worked in the anti-virus industry myself, I'm of the opinion that anti-virus softwares are sometimes as obtrusive as the viruses themselves)

4 - It's (Mostly) Free
You can get a good thing for nothing. Open source software is an example of that. Linux is free (as in $$$) to download and use. The only financial commitment on your part is your Internet time, and maybe the cost of a CD.
Did I mention that you can then give the CD to whoever you want? That's right. It's not just legal to share Linux, it's also widely encouraged. For those that do not have a fast Internet connection, or who cannot burn CDs, Ubuntu offers free shipping of their excellent Linux distribution.

5 - Supports Many Hardwares
A few years ago, the situation was inversed. Windows had more drivers for more hardware. Now, it's starting to change. Windows is dropping support for older hardware, and according to the news, Microsoft will not install Service Pack 1 on Windows Vista machines that use unsupported drivers. Furthermore, when installing Windows and new peripherals, it is often necessary to hunt down and install drivers from the web. From personal experience, it is possible to plug in just about any hardware in Linux, and it's typically detected and ready to use.
Not every hardware is supported by Linux, but then again not every hardware is supported by Windows.
(Gripe: Many drivers in Windows are megabytes, if not hundreds of megabytes in size, and can take over your system. This is typically not the case in Linux — HP, I'm looking at you!)

6 - Supports Older Machines
Distributions like Vector Linux and Xubuntu work great on older hardware that simply will not run Windows Vista or even Windows XP. So, if you need to update from older versions of Windows but your current hardware does not support it, you could consider moving up to Linux instead.

7 - It's Stable
I have Linux machines hosting websites, mail servers, database servers, etc, live on the Internet. I kinda forget they exist because they just work. I rarely have to install patches or upgrade software.
How long have you kept your Windows machine running without reboot? Days? Weeks? Months? In my case, I've had servers up for over a year. Some almost two years. I've lost track.
Here's food for thought. In Linux, the only thing that forces a reboot is to load a new kernel. This is something I discovered the first time I installed Gentoo Linux. After I got my kernel compiled and loaded, I continued to build my machine — I compiled a GUI (Gnome), MySql, OpenOffice, sound driver and a whack-load of other stuff. Only after I had loaded my sound driver did I realize I never rebooted once, yet I had a fully loaded, fully functional machine. I was sold!

8 - It's Flexible
Why is it that Internet leaders like Google, Amazon and Wikipedia run Linux? I'm willing to bet that one of the reasons is its flexibility. Since Linux is free software, an organization can endlessly tweak it to suit its very specific needs. The success of Linux's flexibility is also noticeable in the fact that it is available anywhere from hand-held video-game consoles to cell phones to 85% of the world's super computers (Did you notice that Windows' super computer presence is barely 1%. Now, why would that be?).

9 - Free as in Free Speech
Following the idea of flexibility, we should not forget that Linux is free — as in freedom. It is your operating system. You can use it to do whatever you want. Don't be fooled into thinking that Windows gives you the same freedom. I challenge you to compare the terms of the GNU GPL to that of the Windows EULA. Decide which one gives you more rights.

10 - Community
There is a vast and expanding community behind Linux. It started as a community project that is now sponsored by large corporations like IBM and Sun Microsystems.
This community is visible in forums, newsgroups and mailing lists. Though the discussions can sometimes get nasty, most participants desire one thing: to continue the betterment of Linux. This community crosses all national and cultural boundaries.
To get a sense of the community, I invite you to take a peak at Ubuntu forums. You can freely browse without having to register.

11 - Altruism
Linux is developed by countless volunteers around the world. True, some developers make a living writing code for Linux, but without this mostly anonymous army of developers, testers, writers, translators and users, Linux would not be where it is today.
By using it, you are starting to free yourself from Microsoft's illegal grasp over the software world and are rewarding the community that helped bring Linux to where it is today. I'm sure there's nothing more rewarding to those countless individuals than to know that their contribution, minor or otherwise, is appreciated. Furthermore, you are encouraging freedom in the world of computing.

12 - Helping Developing Countries
I live I Canada, and I enjoy a wonderful quality of life, and I only realized how spoiled I am when I had a chance to visit Guinea in Africa. I realized that most folks who are considered 'poor' in my country would be considered quite wealthy in Guinea.
This said, not everyone in the world can (and should) pay Microsoft's tax. The added cost of Windows and Microsoft Office represents a large portion of a new computer.
OMGWTFBBQ!!!!!! I just went to the Microsoft website to check the price of Windows and Office for comparison. $259 for Windows Vista Home and $499 for Ultimate??? I must be living in isolation, because I can't imagine anyone wanting to pay that much just for fancy graphic effects (that Linux already offers). Half a grand for Ultimate? What is Microsoft thinking? I remember paying $99 for Windows 95 fourteen years ago, and I felt that the changes between Windows for Workgroup and Windows 95 was worthwhile. But $259 for a crippled and crippling operating system?
And if that's not bad enough, what about $539 for Office 2007? I don't even want to look at the price of Office Ultimate. (Ok, I did look at the price. Ouch!)
I'm sorry, but that's a total ripoff. This is what happen when a greedy company acquires not one but two monopolies. Do you realize how much of your taxes go to Microsoft? I shudder to think...

Ok, back to the point I wanted to make:

Helping Developing Countries - Second Try
Projects like the One Laptop Per Child are allowing children in developing nations to expand their horizons and join in the wealth of information that is available on the Internet.
I think that the XO is a wonderful piece of work, and I wish that even Canadian children could get a chance to work with it. One of the features of the XO I find amazing is the ability to view and modify the source code of the application they are working with. Talk about a total learning experience!
Such great philanthropic projects are only available thanks to free(dom) software like GNU/Linux, Open Office and many others. Not only is the software free as in free beer, it is free as in free speech.
By using Linux and participating in the communities, you help refine an already excellent product so that the whole world can take advantage of what computers have to offer.
Some Microsoft users point out that Microsoft and the Bill & Melinda Gates Foundation do participate in philanthropic projects — but why are they trying their darndest to stop the propagation of Linux to developing countries? It doesn't sound like they care much about what's best for those children to me.

13 - Popular
You have probably already used at least one device that runs with Linux or some open source software without realizing it. It's everywhere. The moment you hop on the Internet, the information that makes its way to your machine probably passes by half a dozen Linux machines along the way.
By the way, Asus, Dell and even Walmart have started selling PCs with Linux preloaded. Compare the prices with PCs that come with Windows preloaded. Do I need to spell out why those machines are less expensive?

14 - It's Easy
Yes, you read that correctly. You no longer need to be a hard-core computer programmer who is not afraid of bits and bytes to use Linux. Quite the opposite. Thanks to great projects like Ubuntu as well as desktop like Gnome and KDE, using Linux is as easy &mdash if not easier than Windows.
Now, just to make sure we understand each other: I'm stating that Linux is as easy to use as any other modern operating system. I'm not saying that Linux is like Windows. In other words, there is a learning curve — just like there is for Windows. To get you started, please read Is Linux Like Windows?

There you have it — some of the reasons why I'm a die hard Linux user, and reasons why I think you should consider Linux as well. If you are already a Linux or open source user, why do you use it? Did I miss anything?

In a future post, I would like to show you how you can try Linux risk free.

In the meantime, spread the word. It's time that everyone realizes that Microsoft is not the only player in the world of computers and that there are alternatives to their products. If you think that Microsoft is the best thing since sliced bread, please do your research. You may find that beneath Microsoft's glossy packaging, there's a lot of ugliness. But just to be fair, here's the same for Linux.

Hope you have a great day!

Labels: , , , , , , , ,

Sunday, March 23, 2008

Is Linux Like Windows?

This is a follow-up to the article on 'What is Linux?'
I'll cut to the chase, and answer right away - no.
It is possible to set up Linux so that it looks very much like Windows, but under the hood, it is not Windows. We have to understand that Linux is very flexible and customizable. Someone with some technical knowledge, time and determination can install a Linux system exactly the way he or she would like. Those who are interested in truly learning Linux from the ground up can take a look at Gentoo or Linux From Scratch. This can be a great technical learning experience, but it is very technical.
If you would like a gentler introduction to Linux, I would heartily recommend Ubuntu.
Ubuntu is a free Linux distribution (distro amongst the initiate). A Linux distribution is a full-fledged, pre-packaged collection of software. Distros makes it easy and convenient to install and use the GNU/Linux operating system. Currently, Ubuntu is one of the most popular distributions due to its ease of use, stability and continued support. It is not the only popular distribution. If you are interested, you can also visit and/or try any of the following:

This is only a sample of some of the many distributions available. All of the above can be installed with minimal difficulty.
However, as mentioned above, Linux is not the same as Windows. It does not strive to be a carbon-copy of Windows, but an operating system that stands on its own merits.
Let's take a look at the important differences you will encounter between Linux & Windows.

No C:\ Drive
Yes. That's right. There is no A: drive, no C: drive and your DVD-ROM is not your D: drive. Your 'C:' drive is called the 'root directory.' Everything starts from the root directory. Also, where Windows uses the backslash (\) Linux uses the forward slash (/).
Here's a little cheat-sheet to help you get started:
C: drive/
My Documents/home/<<your name>>/Documents
Desktop/home/<<your name>>/Desktop
Settings/home/<<your name>>/
CD-ROM / DVD-ROM/media/cdrom
USB Flash Drive/media/<<drive name>>

Mac OS X users may recognize the above structure. Just replace /home/ by /Users/ and /media/ by /Volumes/.

Linux does not use file extensions
In Windows, a file ending with .doc is assumed to be a Word document and a file ending with .exe is an executable. In Linux, the extensions are usually meaningless, especially for executable files. So, firefox.exe becomes firefox, oowriter.exe becomes oowriter, and so on.

Files are case sensitive
In Windows, there can be only one file called letter.odt. It can be called letter.odt or LETTER.ODT, but it will be the same file.
In Linux, letter.odt, Letter.odt and LETTER.ODT are three different files. Furthermore, be aware that if you are asked to enter a command, it may be case sensitive.

No Viruses
Yes, you did read that correctly. There are no viruses in the wild for Linux. This means that you do not need an anti-virus. Should your friend or coworker kindly send you an email virus, you are immune. No need for McAfee or Norton.
I'm not saying that Linux will never have viruses, but I strongly doubt that it will develop the rich virus ecosystem that is present on Windows.

Windows Applications do not work on Linux
Many Windows applications have their equivalent in the Linux world. Actually, many of the applications used in the Linux world are becoming available in the Windows world as well.
Another cheat-sheet to get you started (free of charge!):

Microsoft OfficeOpenOffice.org
Internet ExplorerFirefox or Iceweasel
OutlookEvolution
Outlook ExpressThunderbird
Adobe PhotoshopThe GIMP

By the by, most of these programs are available for Windows if you would like to give them a spin.

No need to download programs
In the Windows world, to install an application like WinZip, it is necessary to go to the WinZip.com website, download the setup executable, run the installation program and then we can use the program.
In most distributions, there is a 'package manager' that does the work for you. In Ubuntu, the Add/Remove Program takes care of everything for you. Just select the program(s) you would like, click Install, and it's done. That's right -- no need to run around the web, manually download setup programs and doing the installation yourself.
Ubuntu Add/Remove Programs

It's Secure
Windows XP Service Pack 2 and Windows Vista are starting to take security seriously. However, Linux has been written with security from the very beginning. This means that you don't immediately have access to every component of your system by default. Linux may refuse to show you a file or run a program. This is for security reasons.
Should you need access to a secure resource, you may be prompted for your password or the 'root' password. Be aware that once you enter the root password, you have complete control over your system. If you want to, you can render your system complete unusable. Note that you can do the same with Windows, except that Windows will not prompt you for your password.

It's Free
Free as in free beer. Yes, you can get something for (nearly) nothing. I add nearly because you need an Internet connection, and maybe a blank CD. Also, some of your time may be required.
Linux is also free as in free speech, and that's the part that is truly valuable for me. Windows is controlled by Microsoft — not by me. Mac OS X is controlled by Apple — not by me. Linux is controlled by — me! — and you!
That's freedom!
However, I know that too much freedom can be intimidating. That's where distros come in handy. They pick the most common option, and pre-package everything for you so that you get up and running quickly. However, once you get the hang of your environment, you can start tweaking stuff, and customizing stuff.

So, how does one get started with Linux? Well, stick along, and in a later post, I would like to show you how you can try Linux risk free!

In the mean time, you are welcome to continue your research. I would recommend Wikipedia as a great place to start. If you can, talk to other Linux users, and find out what they have to say. I personally think it's a great operating system, and I'm excited that you are interested in knowing more.

— and no, I don't make money selling Linux. This is a labour of passion and love.

Labels: , , , , , , , , , ,

Saturday, March 22, 2008

What is Linux?

Talking to Microsoft Windows users I find the conversation usually goes the following way:
  1. They spout out what little they know about Linux from a Microsoft perspective, trying to sound like they actually know what this Linux thing is.
  2. There is a silence in the conversation.
  3. I'm asked the question: 'Is Linux really that different from Windows?'

It's a simple question, but I find it a tough one to answer. What makes it difficult is the fact that most users equate GUI (Graphical User Interface) with the OS (operating system).
Before moving along, let's make sure that we understand the difference between a GUI and an OS. For starters, Windows is an operating system that includes a GUI. Mac OS X is an operating system that includes a GUI. Linux is an operating system that may or may not include a GUI.

So, what's an OS?
The simplest way to think of an operating system is in terms of hardware vs. software. The hardware consists of the parts of your computer that you can touch. Software is the logical, invisible part that makes your hardware do things. Software is simply a series of instructions that your computer follows. The software is typically packaged up in 'programs,' like OpenOffice, Microsoft Office, Firefox, etc...

Computers are really dumb and don't think. They blindly follow whatever instructions they are given.
This said, the operating system is a program that exists to control access to hardware and software resources like your memory (RAM), hard-drives, network, display, keyboard, mouse and so on.
Thus, a program like OpenOffice needs to ask the OS which keys were pressed on the keyboard. OpenOffice also needs to ask the operation system to draw letters on the screen. Behind the scenes, OpenOffice also needs to ask the operating system to allocate memory, load and save information to the hard disk, and send printing instructions to your printer.
The application communicates to the operating system using services or APIs (Application Programming Interface).

In turn, the operating system will rely on a 'kernel' to translate the service request to commands that the specific hardware of your machine can understand.
The following diagram displays the relationships between some applications and the operating system.
Operating System Layers
Let's go back to the original question: What is Linux?
The answer is: Linux is a kernel. No more. No less. It is the fundamental piece of code that controls the resources on your machine. Windows has a kernel. Mac OS X has a kernel. Pretty much every operating system has a kernel.
However, a kernel provides API that computer programmers use to write programs. End users do not interact directly with the kernel. To allow users to interact with their computer, a set of tools are provided with the operating system. In the world of Windows, you are familiar with the Start menu, the Control Panel and the Windows Explorer. These are some of the operating system's tools that one uses everyday to control the machine. These program are part of the operating system, but run on top of the operating system APIs. Such tools are sometimes called shell programs.

Linux is only a kernel. It does not include a shell or programs. However, Linux is most commonly packaged with a combination of free programs from another--as of yet incomplete--operating system called GNU. Because it borrows from the GNU project, you may hear people refer to the operating system as GNU/Linux.
With the combination of the GNU tools and the Linux kernel, we now have a complete operating system.
Well, it's complete in terms of functionality, but the average, everyday user would not consider it complete due to the fact that you do not have a GUI at this point. In other word, there are no graphics, icons, mouse, etc. Just 'cryptic' commands typed on a white on black screen.
So, the answer to the question: Is Linux like Windows seems to be no for multiple reasons.
  1. The Linux kernel has comparable functionality to the Windows kernel, but exposes the API differently. Thus, programs written for Linux do not work on Windows, and vice-versa.
  2. Windows is an operating system, while Linux is just a kernel (a part of the operating system).
  3. Linux is free software that is open to anyone to see and modify. Windows is proprietary and is closed -- no touchy the kernel!

There are more differences to discuss, but I would like to finish this post with the following point to consider. Linux is not a GUI. In other words, it is not the program that controls what you see on the screen and how you interact with your machine. It is the glue that ties together your hardware with your machine. The nitty-gritty technical details are very different from Windows.

BUT, we haven't talked GUI. In the world of Linux, there is not one GUI, not two GUIs, not three GUIs, but dozens of GUIs available. Linux has been used anywhere from digital video recorders to supercomputers to your average, every day desktop machine (like mine ;)).
In future installments, I would like to discuss how Linux can look and behave in a fashion that is familiar to Windows users. However, I will continue to emphasize that Linux is not like Windows...and why that's a good thing!

Labels: , , , , ,

Friday, March 21, 2008

Free Software 101

Is Free Software software for free? If you are confused about the meaning of Free Software, then this article is for you.

To start with, let's demystify the word 'free.' Free software is often described by Richard Stallman as 'Free as in free speech, not as in free beer.' We are talking freedom and not cost here. This implies that the software can be used for just about any purpose.

To put this in context, I wonder how many people have read the license for the proprietary (non-free) software they install on their machines. Whenever you install a program, you are requested to agree to a license. This can be a legally binding contract that determines what you can and cannot do. Typically, those contract distills down to a simple fact: The vendor chooses what you are allowed to do, and you're not allowed to sue the vendor for any reasons.

Let's take a look at parts of the Windows Vista Home's EULA (End User License Agreement). Here are some semi-random snippets:

2.a Licensed Device. You may install one copy of the software on the licensed device. You may use the software on up to two processors on that device at one time. Except as provided in the Storage and Network Use (Ultimate edition) sections below, you may not use the software on any other device.
In other words, you cannot install Vista on more than one computer. In you have three computers, you need to buy Vista three times.

8. [...] you must comply with any technical limitations in the software that only allow you to use it in certain ways. [...] You may not work around any technical limitations in the software reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
In other words: You can't 'fix' it or look under the hood.

9. MICROSOFT .NET BENCHMARK TESTING. The software includes one or more components of the .NET Framework 3.0 (“.NET Components”). You may conduct internal benchmark testing of those components. You may disclose the results of any benchmark test of those components, provided that you comply with the conditions set forth at http://go.microsoft.com/fwlink/?LinkID=66406.
Interesting but fair. To release information about benchmarks, I need to do it the was Microsoft wants me to do it. But what about freedom of speech?

25. LIMITATION ON AND EXCLUSION OF DAMAGES. You can recover from Microsoft and its suppliers only direct damages up to the amount you paid for the software. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.
In other words, if Vista dies and wipes out all your corporate data, you can only get a refund for Windows. Yay!

4. USE WITH VIRTUALIZATION TECHNOLOGIES. You may not use the software installed on the licensed device within a virtual (or otherwise emulated) hardware system.
That's an interesting one. You cannot run Vista Home with VMware or VirtualBox. Why? Hint: It's not a technical reason. Second hint: Draw an S and place a vertical stroke through it.

The above as some example of limitations placed on you if you choose to install and use Windows Vista Home.

Most software that you install on your machine is going to carry some restriction. I hope you take the time to read was you are agreeing to when you click the 'I Agree' button. Just like commercial software, free (as in speech) software have their license.

The most common free software license is the GNU GPL (General Public License). It is used with the Linux kernel (the 'heart' of the Linux operating system), most of the command-line tools used in the Unix world, including Linux and Mac OS X, Open Java 7, MySQL and countless other software.

The goal of the GNU GPL is to provide the 'four freedom' of free software. Here are the four freedoms:

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study and modify the program.
  • Freedom 2: The freedom to copy the program so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
(NB: Computer programmers like to start counting at zero instead of one)

The four freedoms work together to ensure that any software that is licensed as free software (ie: GPL), continues to remain free software.

Freedom 0
The first freedom is pretty straight forward: The freedom to run the program for any purpose. In other words, Microsoft Windows Vista Home is not free software because I cannot run it for any purpose. For example, I cannot run it in a virtual machine -- Microsoft chooses what I can and cannot do with Windows. On the other hand, I can run the Linux kernel just about anywhere I like. Proof: the Linux kernel is used in everything from digital cameras to routers to super computers. Oh, and it serves me marvelously as a desktop and server operating system

Freedom 1
The second freedom is one of my personal favourite - The freedom to study and modify the program. I can look under the hood! I cannot emphasize how much I learned from looking at other developer's code. Furthermore, if something does not work for me, I can fix it. This is why the Linux kernel is found in places like digital cameras and supercomputers. We are allowed to modify it.

Freedom 2
Freedom 2: The freedom to copy the program so you can help your neighbor. Yes. You read that right. You are allowed -- and encouraged -- to copy the software. Can you do this with Windows? Legally? I do not advocate copying software illegally. Quite the opposite. However, I'm always happy to 'help my neighbor.'

Freedom 3
And finally, Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. This may sound like a given, but some program come with the source file, and you are allowed to modify it, but cannot release the modification to the public. An example of that is the Torque game engine by GarageGames.

Linux Torvalds initially offered his kernel for free under the GNU GPL, giving any developers who were interested the four freedoms mentioned above. In the very first posting, Linus said "It is NOT protable [...], and it probably never will support anything other than AT-harddisks, as that's all I have :-(." Interestingly, Linus predicted that his kernel would never evolve beyond the 386 of the days. Today, the Linux kernel is available practically everywhere. Had Linus removed any of the four freedoms, chances our his kernel would be a forgotten piece of code today.

The four freedoms are the heart of free software. However, it does not mean that free software is without restriction. Some of those restrictions will be explored in my next entry: Free Software 202.

Labels: , , , , , , , ,

Thursday, March 20, 2008

MS-DOS - Vista Edition

MS-DOS Lives!

Using Windows is usually a frustrating experience. However, sometimes, it does provide me with glee.

In January, while setting up Windows Vista and Visual Studio 2008 in VirtualBox, I got an error message that cracked me up. The following image has not been doctored or generated in any ways.

Invalid MS-DOS function
How do you like that? Invalid MS-DOS function? I thought MS-DOS was totally gone from Windows ages ago. Here's the full screenshot. Click to zoom in.



(Yes, I was running KDE 4.0 beta. It's kool!)

Have a great day!

Labels: , , , , , ,