Sunday, February 27, 2011

When You Are Born To Be Great!

Hello guys,

I am a great fan of reading since my childhood. I remember the very first book that I read was (Panchatantra or کەلیلە و دیمنە in Kurdish) and I was only 6. When I grew up a bit, I got a book as a gift from my elder brother. The title of the book was (Boray Qaplan (بۆرەی قەپڵان)) which was also the name of the hero of the novel. The novel was written by a Kurdish writer (Aziz Mala Rash). What a pity, there is no translated version of the book.

I admit that, this book shaped my behavior to a great extent, I don't know why, but I still want to be like the hero of this book, and everyone who is like the hero is my favorite idol.

By now, you may wonder, what makes me talk about this book and the hero, in a blog post, which is supposed to be dedicated for free and open source movement! Well, I don't know why but I think, (Boray Qaplan) and Richard Stallman are so much alike.

Richard Stallman, the person behind GNU project and FSF
Boray Qaplan, was bear living in Erbil. his parents were murdered, when they were attacked by a gang of lions. The only surviver amongst them was the poor then recently born bear. This massacre affected him a lot, and made his coming days like a disaster, it was really difficult for him to protect himself from the many dangers in the wild. 

His way of surviving, and living as much as he can, was to hide himself during the day, and appear during the night. When he became stronger, he started to appear during the day time too. But, his major problem was, he could never eat meat again, because whenever he was trying to eat meat, the very sad scene of his killed parents was recalled in his mind. Eventually he became a vegetarian. 

When he got even stronger and older, he saw a rabbit, and remembered the tasty meat of him (from his early days on this planet). and he decided to break his own rule and eat meat for the first time since the bloody night in his childhood. He easily hunted the poor rabbit, and tried to eat him, but the sad scene was recalled once more, and he decided to let the rabbit go. From that day, he decided to support the poor animals, and stand against the strong animals in the area. Since then the weak animals in that area could stand against the dangers of the wild, lions and tigers. The book goes further, and I wish (at least) every Kurd read it once.

If we look at the story and Richard Stallman's life, we can easily see that they both were born to be great and change maker. Richard Stallman was a great programmer (or hacker), just like Boray Qaplan was a great hunter. They both had a moment, which changed their entire life and thinking, for Boray Qaplan, this moment was the bloody night, while for Richard Stallman this moment was, the time when they couldn't make the printer work the way they wanted:

In 1980, Stallman and some other hackers at the AI Lab were refused access to the source code for the software of the first laser printer, the Xerox 9700. Stallman had modified the software on an older printer (the XGP, Xerographic Printer), so it electronically messaged a user when the person's job was printed, and would message all logged-in users when the printer was jammed. Not being able to add this feature to the Dover printer was a major inconvenience, as the printer was on a different floor from most of the users. This experience convinced Stallman of people's need to be free to modify the software they use.[18] (from Wikipedia)
And as a result, they both tried to change their situation, Boray Qaplan established a safe area for weak animals, while Stallman founded Free Software Foundation and started GNU project. They both could live in their unfair world, and get benefit from the jungle law, as they could easily find themselves in the powerful side, but they both chose to fight for freedom.

Cheers :)

Thursday, February 10, 2011

Why We Open Source Our Programs

Hello guys,

It has been a while since I last posted something to my blog, that was due to me working intensively on my master thesis. I promise once I am done with the thesis, I will post my experience about it.

The other day, I got an email from one computer science student, asking me:
"I want to know why somebody would like to work free for the development of Oss softwares? Who provide the money to open source contributors? What is their profit to give their own developed software' source code to others freely."
I must confess, this is the most frequently asked question about free and open source programs. Seriously, what makes those developers spend their valuable time, on some free and open source programs? Why don't they get employed in some software company and work there for a good salary? Or, simply put some price on their programs and put them on the web, to collect some easy money!

There are so many goals behind developing for free and open source programs, starting from doing it for the sake of freedom to doing it as part of business. Yes, you can still do your business with open source programs, like a bunch of companies do.

GNU project, an example for developing open source softwares, for the sake of freedom
A project like GNU (and other related projects, like: GNOME, GIMP and others) are all done by community and for the community, there is not only a single person behind them, there are no companies behind them, they are done by the community, and you can see their footprints simply everywhere.

When Richard Stallman started the free software movement, he was an employee at the MIT institute, but his morals didn't allow him to continue like that, and made him one very unforgettable personality in the history of the computer, he started the first step towards the free world and the free society! You can read his essays by following this link.

Richard Stallman, the person behind GNU
When Ghandi started the revolution in India, he wasn't aiming for good money to get when his mission is completed, but he simply fought for freedom! Freedom is the thing that everyone should fight for. Egyptians are protesting and leaving their works to get freedom.

It is immoral, when you write a program and sell it to someone, then tell him, if you lend it to your neighbor, I sue you! Or, if you wanted to change the code the way you want, you have to pay me more (even though, the customer might be able to add it on his own)! Or, you have to 100% trust that I am not phishing you, and the software that I wrote for you has no back doors.

Freedom, in software is (from:

  1. The freedom to run the program, for any purpose (freedom 0).
  2. The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help your neighbor (freedom 2).
  4. The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
It is not a shame to collect money by programming, I would say it is a good practice too. Developers need money, in order to be able to continue developing their programs. There are plenty of ways to collect money while you are developing for free and open source software programs.

Companies like (RedHat, Novell and Canonical) depend heavily on open source software and they can still survive and grow. Instead of selling the software that they produce, they sell the services that they provide with the software. By services I mean, maintenance service, technical support among others.

Would you believe that, most of the big companies have their open source programs, either directly or indirectly, Google has Android, Chromium browser and Chromium OS. Apple has WebKit the engine behind Safari and Chrome (and Chromium) browsers. Nokia has Qt framework and together with Intel work on MeeGo And finally, Oracle has MySQL, Java, Netbeans and among others.

Free and open source software, is not some unachievable goal, it is already here, if you look at Ubuntu's software center you can see the impressive number of the good free and open source softwares there. Someone like me, uses almost no proprietary software and I lack basically no software.

Practically speaking, it is quiet easy to gain money by programming for open source software, you can put a donation button somewhere on your website, and the good people around the world will make you happy! You may be surprised, but a project like Wikipedia is run by donations only!!

Last but not least, when a programmer uses a software and see it lacks some feature that he needs deadly, most likely he will download the source code, study the code, add the feature, commit the code back to the repository, and as a result everyone will get the same functionality. That is why, open source is from everyone and to everyone.