J-F Bilodeau's Blog @ chronogears.com

Wednesday, June 17, 2009

BSOD(roid)

I published my first Google Android application today: BSOD(roid). The application is an adaptation of the BSOD XScreenSaver hack that simulates crashes from various operating systems. I've squeezed in 20 crashes for about a dozen operating system. If you have an Android phone, please give it a try! It's free and licensed under the GNU GPL.

BSOD(roid) Menu
Windows 3.1 BSOD


Get Application
Source code

Positive reviews!

Labels: , , , ,

Sunday, June 1, 2008

Good News All Abound

Yay!

OOXML has been formally appealed by South Africa, Brazil and India. Microsoft has announced that they will support ODF 1.1 in Office 2007. However, they will not even support OOXML until the next version of Office.

To keep up with the good news, Internet Explorer 8 will finally be standards compliant. As a web developer, this is such a relief! No more double standards for web pages.

Furthermore, thanks to the success of the Eee PC, Linux is becoming more and more ubiquitous. Desktop Linux is, in my (no so) humble opinion at a level that is above that of Windows and the Mac. Not only do you have choice, but if you compare the ease of use of Gnome or KDE, I think that Linux is a powerful contender. The only obstacle that remains is education. Windows users need to unlearn things like C:\ drives or the pain of running setup programs.

Finally, even Novell is reporting success in the Linux front. I took the plunge and installed Novell's openSUSE, and thus far I'm greatly enjoying it. As much as I like Ubuntu, I would hate for a single Linux distribution to become the 'defacto standard,' just like I would hate to see Gnome or KDE displace one or the other. Choice and competition are good.

I'm so excited to see real competition gearing up in the world of informatics. I'm afraid that the Microsoft monopoly has set us back a number of years from where we could be in terms of technology. For example, it if hadn't been for Internet Explorer slowing the adoption of standard HTML, then CSS, where would the web be now?

Oh well. That's water under the bridge. Now that we are freeing ourself from the Microsoft stranglehold, who know what real innovation we are going to see in the world of computing.

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: , , , , , , , , , ,

Monday, April 21, 2008

Beware the Microsoft Poison Pill

As someone who uses mostly free and open source software, I can't help but be wary and cynical of Microsoft's position toward open standards.

If you are wondering why many of the members of the open source community feels that way, here are some facts:

Microsoft is well known for their Embrace, extend and extinguish (EEE) tactic. The moment a standard comes out that is supported by the industry, Microsoft launches their old tactic. They will 'adopt' the standard. Make changes to it that will only work with their software, ensuring that the standard becomes a Microsoft-only standard. Then, when the competition is mostly dead, they drop support for it.

Here are some notorious examples:
  • Refusing to support CSS standard for nearly a decade to ensure that webpages had to be formatted specifically for Internet Explorer.
  • Attempting to break Java's write-once-run-anywhere promise by adding Microsoft-only extensions.
  • Support for Unix applications using POSIX
  • Support for OpenGL to which Microsoft created a competing standard: Direct3D.

Each of the above technologies were once embraced by Microsoft, and most of them have been mostly abandoned. There are many more examples.

Another notorious tactic is to release multiplatform products to accelerate their acceptance as a 'standard,' then abandon support for those products. Examples include:
  • Internet Explorer for the Mac and UNIX.
  • Windows Media Player for the Mac
  • 'Sponsoring' Silverlight on Linux through Moonlight.

In the words of PJ from Groklaw, 'People aren't as dumb as Microsoft needs them to be' and I'm very thankful for that. Sure, there are folks that are strong partisans of Microsoft, paid or not. However, I think that the majority of the world is starting to realize that Microsoft is not all the gold and glitter they pretend to be. The EEE tactic is starting to backfire at Microsoft. For example, Opera has recently filed a lawsuit against Microsoft. In their press release they make mention of the "Embrace, Extend and Extinguish" strategy by name.

But EEE is not the only tactic that Microsoft uses, especially recently. I may not be a fan of Microsoft, but I don't think they are stupid. They are not where they are today in the marketplace out of blind luck (neither are they where they are because of technical superiority). The other tactic used by Microsoft which infuriates me is their total refusal to embrace standards. Be careful, I'm talking about embracing, not extending. Microsoft has split the market countless times by creating their own proprietary standards.

Examples of established standards Microsoft is refusing to support are:
...and the list goes on.

Some may argue that to remain competitive, Microsoft should not have to adopt competing technologies, but that's a fallacy. For starters, many of these standards existed before Microsoft created their competitors. Also, if Microsoft is not required to support 'competing' standards, their competitors should not be required to support Microsoft's proprietary standards either. Hint hint: Mono & Moonlight.

The latest trumpet blow from Microsoft is Open. You've got the Office Open XML, the Open Specification Promise, Microsoft Open License, Microsoft Open Value and even (GASP!) the Open Source Heroes. Now, how many of these so-called open initiatives actually are compatible with the free/open source software philosophy? As usual, Microsoft dances around the real issue: GPL compatibility.

So, how is this new tactic different from EEE? It's not. And that what I want people to realize. Microsoft is in the stage of Embracing and Extending open source. They are attempting to create a powerful divide between the 'Microsoft Open Source' and real free software (à la GPL) so they can move in for the Extinguish stage. I cringe every time Microsoft uses the word 'open' just as I cringe when someone pronounces my first name like that of a popular denim wear. It's not right to my ear. It's an abuse of the language that I'm familiar with. Furthermore, unlike Alanis Morrisette's poetic use of the word ironic, Microsoft is purposely muddying the water of the language to spread a thin layer of FUD jam to conceal their poison pill.

So, next time Microsoft slaps together a marketspeak sentence with the word open strewn in, look up Embrace, extend and extinguish, and think twice before you hop on the bandwagon, because it is not going in your direction. The Microsoft Open Bandwagontm is headed in one direction only — towards 1 Microsoft Way, and the ride can be very bumpy.

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: , , , , , , , ,

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: , , , , , , , , , ,

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: , , , , , , , ,

Saturday, March 22, 2008

Free Software 201

If you haven't read my previous entry, Free Software 101, I would recommend you do so before moving onto this one.

In this article, I would like to continue the discussion on the definition of free software. Previously, we explored the four freedoms attached to free software. For a software to be called free, it needs to meet those criteria.

Some software are given away, like the giftware license of the Allegro game library. Others are said to be public domain, in the sense that they do not have a copyright, and thus, have no limitations in terms of use.

Software that falls under the 'giftware' license or public domain may have the four freedoms. Any individual or organization can use the source code for any purpose, including proprietary and commercial software. Their use and the changes that they bring to the code does not have to be given back to the community. Thus, the new implementation of the software and its users looses the four freedoms.

To protect those four freedoms, the Free Software Foundation, founded and headed by Richard Stallman, created the GNU GPL (General Public License). The goal of the GPL is to ensure that any softwares licensed so would not lose their four freedoms.

This is the license that is used in countless open-source softwares like the Linux kernel, the MySQL Database and the Java programming language. Even Wikipedia uses the GPL to protect the content of their articles. A quick search on SourceForge found over 79,000 projects that uses the GPL.

The GPL is written so that anyone can use it -- both the developer of the original code, and the end user of the code. Agreeing to the GPL pretty much binds you to the four freedoms. That is, you can use the code, view the code, copy the code and share your changes, but you cannot remove those four freedoms from your work.

The GPL allows you to sell a product that includes GPL code as long as you do not remove those four freedoms in any way.

There is more to the GPL than what I've discussed here. For instance, the GPL protects the copyright holder by offering no warranty and the GPL version 3 addresses software patents. However, what I believe is important here is the spirit of the license. If you are considering using GPL code in a commercial project, you may want to consult a lawyer or contact the Free Software Foundation to clarify your right (I'm a coder Jim, not a lawyer). However, keep in mind that there are thousands of successful commercial products out there that uses GPL code. The Asus Eee PC readily comes to mind.

The GPL is one of many licenses that are designed to preserve the four freedoms. Such licenses are known as copyleft licenses. The symbol for copyleft is a reverse copyright (©) but has no legal meaning. Copyleft licenses are also known as viral licenses, since your use and derivative of the work is bound by the same terms as the original license, like a computer virus that infects every executable it touches. The analogy may be less than savory and also misleading. Installing a GPL software like OpenOffice on a machine does not spread the GPL to all your programs. However, using OpenOffice's code in a development project does bind you with the GPL. Whatever use and modification you bring to that code must retain the four freedoms. That is, you could not commercialize a new office suite based on the OpenOffice source code without releasing the source.

Does that mean you could not create a commercial software product based on GPL code? There are many commercial products that include GPL code. As a matter of fact, many commercial applications were later released under the GPL.

Examples include the Linux kernel, which is used in a number of software packages, such as paid-for distributions like Mandriva Linux. Another example is TransGaming Cedega, a program that runs most Windows games on the Linux platform.

There are many advantages to open sourcing software under the GPL, or another open source license. However, I will leave this discussion to another post.

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: , , , , , , , ,