Posts tagged: Open Source

Customisation

Being an avid Linux user for users, I am seriously spoilt in terms of being able to customise everything / anything to be more the way I want it to be…

Two main reasons for this is that most software that comes on Linux is highly customisable to start off with. The second reason is that if you don’t like something, you can change it.

There is also the nice thing that most things that you think would be cool or useful in software is already available in some form since someone else thought so too, but before you did and has had the chance to spend some time building it.

I love this so much so that I have often put together a quick linux box for doing things that one could easily replace with an embedded device like a router. I have swayed between the two options based on how much I want simplicity vs flexibility.

One of my favourite responses to someone telling me that we need something that we don’t have is – “we’ll build one”… The software customisation / writing has turned into a metaphor that I apply across more and more things. You need a new table with custom bits – let’s build it. You need a classic car with all the modern gizmos – you know what – let’s just build it.

This has its pro’s and cons. For one, it feels like anything is possible. It also becomes very frustrating to work with limited, limiting, or closed source software (esp when you just want to fix a quick bug that really irks you). It also eats up all your time as you try and do all the things you want… just because you can…

Striking a balance is hard especially when a client asks if it is possible to do something very specific. The answer is of course yes and there is a question that goes with that response. At what value does it become cost effective and provide a good Return On Investment(ROI)

Proprietary FSF

I have always a big fan and proponent of the FSF and having recently been interested in researching for a project came across a document covering Why you shouldn’t use the Lesser GPL for your next library

What the document basically suggests is to limit what proprietary software developers can do by licensing libraries as GPL instead of LGPL.

This is no longer free(as in speech, not beer) software. Why?

Freedom means the ability to use something without restriction. If I cannot use a library in a proprietary product, that is removing an important freedom.

This attitude is likely to alienate the “commercial” or proprietary developers further from FSF/GNU.

In fact, doing this is just not fair and not in line with how I view is the concept behind the FSF. The point is to write software / libraries and share that with the world so others may build upon what you have done. Stand on the shoulders of giants in a way…

It makes perfect sense for software to be GPL since you don’t want somebody to pick up a GPL software, build something on top, and sell it without source.

However, if libraries are released under the GPL instead of LGPL, it means that I can not link against that library to write a non-GPL compatible application.

The GNU Website states

“Free software is a matter of the users’ freedom to run, copy, distribute, study, change and improve”

Additionally, the Quick Guide to GPLv3 states that

Nobody should be restricted by the software they use. There are four freedoms that every user should have:

  • the freedom to use the software for any purpose,
  • the freedom to change the software to suit your needs,
  • the freedom to share the software with your friends and neighbors, and
  • the freedom to share the changes you make.

This has always been my impressing of the purpose of GPL. Now, how does this work with Libraries? A little differently… :-(

From my perspective, if I have the freedom to use the [library] for any purpose, that means that I can write an application that uses that library without having to worry about licensing issue.

However, this is not the case. There is a clause that states that the software cannot be used in a larger software project that has a license incompatible with the GPL. This includes linking the library into another software application.

Therefore, I do not have the freedom to use the software for any purpose.

Freedom cannot be uni-directional. If GNU/FSF are trying to muscle out developers of proprietary software, all they are doing is alienating themselves further…

I run a technology firm that uses a heck of a lot of open source software. In fact, I am posting this from an ubuntu desktop running firefox from a VServer. I am probably using a dozen open source applications to do this simple straightforward act.

There is in fact, not a simple closed source application at any point through this.

The main problem that I see with this is that it makes Open Source so much more zealot(ous) and FSF, GNU and OSS becomes fundamentalists. The attitude is not one of freedom and inclusion but of exclusivity and marginalisation.

The worst part is the price that is asked of developers who want to use an Open Source library. The price is the acceptance and propogation of an idea (Freedom or else).

Compared to the cost of conversion to another idealogy (Free Software Idealogy), the cost of a few hundred, thousand, or even millions of dollars / pounds for a piece of software seems dirt cheap.

I understand that each developer has the freedom to choose which license to use for their products/libraries. My question is how can an organisation that claims to be a proponent of freedom encourage the removal of freedoms?

I would like to ask how this shift is any different from religious fanatics who tell you that their god is the one true god and there is nothing else.

Evil Linux

I received an interesting link in my email this morning. The story (which thinks that sauce and source are the same thing btw)  covers a school in the United States that has banned the use of Linux because “anything that wasn’t Windows was illegal and immoral.”

I could only ponder about the sheer stupidity of this teacher and wonder about the next generation of students brought up under this ignorance.

I grew up with Microsoft, with DOS 3 as my first Operating System and went through DOS 5, 6, Windows 3.1, 95, NT, 98, & ME.

I also played around with BeOS, and various versions of Mac.

I was then introduced to Linux turned into an open source zealot and wiped out my Windows installation in anger. Since then, while my primary operating system is Linux, I still have Windows running on my Laptop and have both Windows & Linux on my home computer.

I have since worked with Windows 2000, XP, 2003 & Vista. I love what Microsoft does with these products. They do innovative things, pick up features from other products that are useful and try to simplify things.

My Laptop came pre-installed with Windows and I never went to the effort of installing Linux and I use my home computer to play games, which (whether I like it or not) just handles games so much better.

As per the old joke, It is the software engineers job to make software as idiot proof as possible. It is the job of the universe to create bigger and bigger idiots. So far the universe is winning.

Linux & Open Source software (in general) takes a different approach to software. It should be easy to use and manage software but it also expects you to understand (or at least think about) what you are doing or trying to do.

Microsoft seems to be under the impression that this is not necessary. The user does not need to know what they are doing – they just need to know what is to happen. e.g.

Lets take a simple operation – deleting a file. Before Windows 95, this used to be a simple, difficult to undo operation. Windows 95 brings in the concept of the Recycle Bin (or Trash), a concept that was available on the Mac platform for quite some time.

After this point, you no longer delete a file on Windows – you move it to the Recycle Bin, which will delete them from the disk when the number of files in there exceeds the set capacity.

Now, from a users perspective, what they are doing is deleting a file – in fact, thats what the menu item says – Delete. But what happens is completely different. The file disappears from their folder. What they aimed to do – “make this file disappear” has happened. However, the file has not been deleted.

Windows has effectively lied to the user since it is “smarter”. If the user later discovers that they deleted the wrong file, it can be recovered easier. However, that is not the point.

Microsoft software, are in general rife with such miscommunications. I find this fairly insulting and this was one of the main reasons that I started using Linux.  If you ask it to delete a file – it deletes it. If you want to move something to recycle bin, it can do that too.

To go back to the original point, the ignorance shown by the teacher in this school is exactly the kind that Microsoft panders to. Microsoft allows (nay encourages)  its users to be as “simple” as possible and let Microsoft worry about the rest.

Don’t get me wrong. I think that Microsoft do a fantastic job in making software accessible and easy to use but it should also help educate it users on what they are doing and help them think about what they are trying to do. Don’t pretend or try to do their thinking for them. Thats their job.

“Give a man a fish; you have fed him for today. Teach a man to fish ; and you have fed him for a lifetime”

WordPress Themes