Sunday, April 15, 2007

Why free software exists: Part 6

Problems with IP

People claim that their technology business only benefits them if there is some way to protect their assets from being publicly misused. Today if you had come out with a new idea sooner or later other people would want a piece of it. How they put the idea to use is totally to their discretion - their self-will. But if an idea is free, in the context of a modern society, other people have it so that they can protect it for themselves and somehow mint profit out of it. This is just one of the ways your ideas can get stolen, and later you think you can't do anything about it, except fight it out with a lawyer. This is business or the way of life in most technological sectors. You can think of many companies that do this - they are really famous for their reputation they have thus far created. If the idea of free software came into existence probably twenty years back, then life would be different.

Protecting ideas is a 'good thing'. Ideas getting stolen is a 'bad thing'. This is so because protecting ideas and funding them to develop ideas that build on those ideas will further develop your business. However in cases where secrecy is a requirement (and it cannot be compromised) then protecting ideas is a noble move. But the whole point is that this kind of protecting ideas is something harmful in field of free software. And if you subscribe to these ideas in any way (i.e. use a computer, or an os, or software, etc) you are allowing those people to take control of something in your life. And with relevance to the scope of this blog that something refers to your computer system.

But if you look deeply into it what does it really mean? Why are technocrats concerned about protecting their assets or ideas? Why are they ever bothered about protecting in the first place? This is actually a problem with the modern human society, and the people that live in it. If you want to believe it, people are inherently protective!

Now why do I say that protecting ideas is bad? Hmm, I think I am being a bit judgmental here. I am not saying that protecting ideas is a bad thing. I believe that where it is necessary to protect ideas it is necessary to protect ideas; otherwise it is harmful to society. It can even tamper technological development.

Now look at all of this from another perspective. We want the world 'we' live in to be 'free'; and of course, not everything should be free. Life would not be practical if everything was free. At least of the sake of technological development the ideas that are being implemented should not be concealed from the public. In reality they are being concealed. The motive here is to gain some sort of monopoly over something. If we discouraged this monopoly there would be chaos. In other words there would be a lot of things to choose from. For e.g. if the technology behind constructing microprocessors was free (in the sense everyone could manipulate to their own will) the consumer would be besieged with choices on what processor to buy. Now switch to the marketers point of view: Once he sells his product to a customer, the customer will most probably hunt down the marketer saying that the product (whatever) has got complaints and it needs to be serviced. The marketer would not play the hiding game here; he sees profit in this. But if the technology was free, then the marketer would probably never see that customer again. The customer would have found some other person to solve the complaint. (Remember the customer has choice which makes life even more complex). IP exists to solve the chaos from the marketers point of view.

But what these laws never thought of were the customers or the consumes - us. It seems for a marketer every customer can become a competitor if technology was something tossed around like a salad. customers really care about technology? Does technology mean anything to them? The answer is no. People are blind about any technical detail. They involve themselves with the technology to the extent that they can get their jobs done. Then you might want to ask the ethical question: where would the idea of technology tossing work?

In university circles. This is actually why linux OSs never had an impact with non-technical customers like the way Windows had. But even the idea of technology tossing is some what protected in university groups. I mean that there is always some conflict when some information from one university leaks out to another university. But if we consider one university circle there is some relative development; i.e. technology tossing happens!!! Sometimes some ideas even break the meanest of software patents; they often ridicule them! This is one such social circle we all need to take a closer look at; and then form rules so that we can implement them over a bigger social circle.

Wednesday, April 11, 2007

Why free software exists: Part 5

Intellectual property

In law, intellectual property (IP) is an umbrella term for various legal entitlements which attach to certain names, written and recorded media, and inventions. The holders of these legal entitlements are generally entitled to exercise various exclusive rights in relation to the subject matter of the IP. The term intellectual property reflects the idea that this subject matter is the product of the mind or the intellect, though the term is a matter of some controversy.

See Wikipedia, Intellectual property, (optional description here) (as of Apr. 11, 2007, 08:33 GMT).

The subject matter of IP is really vast; it includes copyrights, patents, trademarks, etc. In short IP refers to creations of the 'human' 'mind'. You have to treat human and mind separately, and together. The word human refers to a human being who has an identity. And the word mind refers to his or her creation that is actually a result of intellectual processing; meaning some thought has gone into whatever that person has created. And the phrase 'human mind' has both the meanings attached to it. [Did you noticed the way I treated the phrase 'human mind'? In reality most IP documents have to be interpreted in a similar manner; it actually creates a hell lot of problems!]

The source code you write is special; it is just like a song you write. It is your product. Everyone wants whatever they created to become known to other people. Actually this emotion is a part of us trying to be social. We all expect to be rewarded in some way, or at least get recognized. If you would have kept the song (or source code) to your self then this emotion will never be satisfied. Hence your motivation to create another similar piece of work will be lower than the previous one you had.

You would find it exhilarating if someone (or a few people) heard your song and said it was good. You would also appreciate the fact that they know you made the song; hence in the future they'd ask you about your future songs. But if its software you make, and it turns out to be successful, people will ask you to add more features to it! They don't look at you and say, 'Wow! Whats the next application you are going to make?'. They would be interested in the next version, rather than your next application. This is how software wins.

But lets say that you have incorporated some truly genius idea into your application, that actually helps people at what they had expected the software to do. You are happy about the work you did, but do people know that this is what you did? Your marketing manager is only interested in selling this product. Do you think you are able to convince him or her that the idea that you have used in the program deserves recognition? Well, if your idea came out from a research lab, then probably your manager would understand. Because if he did not grant you the publicity you deserve he knows that you won't work for his research anymore. Who knows, that could be the fall of his career?

But lets be practical. Ideas don't come out of labs only. Ideas come out of your head. It is a special lab if you want to think of it that way! Sometimes you need to make your ideas open to all. If the idea is flawless or perfect, then you will be recognized for it. All of this would morally point to or suggest that we have to make the source code free to be scrutinized. Only then people will know, 'Yeah, so this is what he actually did! Its amazing.'

This is what Stallman means when he says, that free software is what scientists would generally accept.

But instead if you were to work the other, truly evil, way, then everything you do would still sound fair. What would your incentive to create be? Profit? Money? I forget which. In modern society this is a serious issue we all need an awareness of. A lot of Indian companies can still learn from this...if it is not too late. Learn what? All of that is deferred to the next post in this series.

Tuesday, April 10, 2007

Why free software exists: Part 4

The 4 Freedoms.

You can say that Richard Stallman (the founder or guru of free software) propounded these laws to promote his community. The community of free software users. Of course to understand why these laws or rules were framed you have to understand the history behind the making of the GNU/Linux OS, and you have to understand how proprietary software or proprietary OSs eat your freedom. To many free software disciples, proprietary software is evil. Even Stallman thinks so. However I don't actually think we can really dispense with proprietary software being evil! [I'll tell you why later, in a different post or series].

The evil of proprietary software

The term proprietary connotes ownership. Which means proprietary software always have an owner (or owners). But the owner dictates the product. The success of the product (whatever it is) depends upon how you are able to utilize it, or in other words, how the product is of utility to you. And while our way of life and thinking allow us to only use the product and get satisfied with its service, we have no problem. The owner is happy; you are happy. However software is a little different. It can change. All it takes is modification of the source code! This is why we say that software is flexible. But consider the question: for whom is software actually flexible? Is it users like you and me who know programming or how to modify the program, but who do not own the product (group A)? Or is it for users that simply use the product who have no idea about how to modify the product (group B)?

The above questions consider two groups of people. People who know how to modify the product, and people who know only how to use the software. The irony is that proprietary software is never really flexible for either group. Then for whom is this product flexible? The obvious answer to that is 'for the owners' or 'the developers' of the software. So software being flexible is actually an illusion to the afore-mentioned two groups.

There is a negative side to this, i.e. software having owners. Proprietary software is never really distributed with the source code. The owners will say that if software is mostly for people who only care about using software (i.e. the 2nd group of people I've mentioned before) why should we supply source code? They will never understand it! This is the defense most proprietary owners would give. The danger is that some owners can misuse the freedom of how you want to use our computer. They do it mostly with the intention of profit or gaining recognition. And this happens, behind our backs! Most of us are really swayed by the term "free" over the internet. That is if anything is available for free, we have the tendency to download it and use it. What we download have licenses that convey the fact of proprietary ownership. These products may behave in such a manner we never really know. Sometimes detecting this behaviour is impossible. You have a host of other proprietary programs that run or reside in your pc; finding the culprit program is a mammoth task. And you and I have experienced most of the problems: POP ups (in spite of downloading pop-up blockers), updates we never really want, but get us in trouble, spyware, viruses...etc.

All these problems exist because the source code is not available to us. If we had the source code we learn it and find out what a program actually does. Even if you did not know how to read source code, you don't have to worry. What you can do is get a trusted person to do it for you, like your developer friend, or you could hire a professional. And, if you have come to learn of an undesirable feature you can in fact ask the other person to remove it!

Now consider the case of product upgrades. Since proprietary software does not have source code shipped with it we cannot really change anything. But the developers of the product can. Because they have the source code. This would naturally mean that if you wanted something added into the product you would have to literally depend upon the developers, and you are at his or her mercy. And suppose the developer just vanished from the surface of earth, then you are completely helpless. For the community of free software workers this is a major problem. It is not that the source code is not available. We have ways to decompile the program and see the inner workings. (Only thing is that we don't get it in the language it was originally created). We could reverse engineer; but that's entirely a different issue. For anything proprietary I think reverse engineering is an ethical issue! [:)] Because, the proprietary license says that you cannot modify a program. What if your intention was to help a friend? No, you must know we cannot do that! It is punishable by law. You are not even allowed to give that person a copy of the software application you have, that might be able to help that person a lot. Being able to help a friend is something that makes the free software community survive.

We all know most proprietary OSs and applications are plagued by viruses. Viruses are programs that run inside your computer, mostly without your knowledge, and hinder your normal use. Because of the fact that proprietary OSs are proprietary, creating such viruses are much easier. Who can find out? Where as in the case of gnu licensed OSs viruses are generally less. There could be a lot of sides to the statement. (I would want to discuss the different view points in another post or series). However I guess all of us agree to the fact that viruses are easier to stay hidden with proprietary OSs and applications! If you are a person using a free software application you have the ultimate responsibility to validate the source code; see if it has any flaws or viruses in it. This is because the source code is free. But if you are someone who is not that educated about computers or programming, hire a professional; ask him or her to test the source code. Sit along with that person until the whole process is over. Be sure of the fact that there are no viruses or bugs. This way even you can learn more about interacting with the product. This exercise would become useful when you actually use the product to solve your need. You could even do this with proprietary software, but you still would not know what is happening inside!

The rules of the community

Somehow these rules are self-serving; meaning they help the community of free software users to live in harmony. They are four simple laws wherein every point has a fundamental reason.

  1. Freedom 0 - Freedom to run the software. To be able to do anything or satisfy purpose you would need this freedom.
  2. Freedom 1 - Freedom to learn and study the source code, and adapt it to your needs. This is nice because even before using the product we can actually get a vague idea of how it can be used. We can also asses if software application meets requirements.
  3. Freedom 2 - Freedom to make copies and distribute them. This does not necessarily mean you give it for zero price, mind you! This will actually helps others benefit from the source code you have obtained.
  4. Freedom 3 - Freedom to improve and make modifications to the software and release it so that other people can benefit and somehow be able to customize it for their use. Again this is aimed at helping your neighbour.

I have worded these four laws differently. Actually you can get the original thing from under the title "What is Free Software?". I hope now you have a basic idea of what free software is. It is not simply because of proprietary software, free software exists. I believe there is another purpose (an even greater one). And of course there must be a post that sorts some confusion people have about free software. So keep tuned to this series in the future.

Tuesday, April 03, 2007

A business model...

Most of the software companies today face a problem. It is not a serious issue, but it is a problem in the face of free software, especially if you think of migrating everything to free software. If you are a good disciple of what free software teaches us, then you'd understand that using proprietary software along with free software is not something that grants us that much freedom. Of course the usage of the term freedom is quite vague in the last sentence. What I mean is that if you are a programmer, developer, or a system administrator you will think of things that could generally help or improve for e.g. workflow, sales, etc. These proprietary products that run in your free system will remain to be proprietary through out your life. You have the option to upgrade that product but that will again be something that is proprietary. The problem with that product being proprietary is that you have no control to modify the product. This is a major setback for a business that thinks free software.

But there are a lot of obstacles in the way. It is not a good marketing decision to market free software because of how the gnu license controls the product, especially its copying and distribution. You need not always rely on a vendor to obtain the software; your friend can give it to you if he or she has a copy. If this is the case the company will not get any profit/incentive for each copy sold. This is probably where all proprietary companies have a problem. Hence they won’t easily adopt a business model that supports free software (or a free software business model). However in reality, even if this idea of free software never came to exist, the proprietary people would still have a problem – piracy.

The people who use software are always those who know the computers inside out; they are not programmers. However their use of a particular product is vital for accomplishing their purpose. If for some reason they find that there is some problem in the product they expect support for it. They would want the bugs fixed, or a new feature added, or anything that would improve their productivity. Even if these are problems with a commercially available product, people (i.e. the users) will have this sort of demand. If the company that owns the product provides the necessary support and the company is indeed successful to service the users of the product, then naturally all the users will recognize the company and the product.

Here we all should note one thing. By simply making the product and marketing it, a company cannot achieve recognition. People begin to appreciate the product only when support is issued. And this naturally means servicing customers. Hence it is in servicing customers that companies make profit. It does not come from selling the product alone. And if you look at the expense graph, more money is involved during the support stage, i.e. after the product goes into the market and while the customers are serviced. (And it goes without saying that this money is dependent upon the success of the product).

If you wrote a book and tried to publish it, and it became successful, then you would want to pursue the vocation of writing books (provided the issue of piracy never bothered you too much). But if you wrote software and licensed it as free software you would fall and crumble. So if you are looking for a job, don’t write free software. But few people do it. They don’t do it for charity; they do it for recognition.

Until now you must be wondering if there is a business model that supports free software. Well, there is. If you have been closely reading, you’d have the opinion that it is not the product that gains recognition; it is the support that goes with it. So if it is free software or proprietary this rule applies.

So why not build free software for contract?