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?

Saturday, November 11, 2006

The Virtual Path - [THIS IS YOUR SPACE ! ! ! ]

This is not my lazy self trying to make the most of it. There was a series before with the title The Virtual Path. Not quite the appropriate name to give this post (or the previous one!). However, the purpose is clear: what are the things we have to take care of while developing applications that abide by the idea of "free software"?

I know there are a lot of problems or hinderances while developing "free software" applications. It is another matter. Don't worry about them here. This is a place where you get to express what you think is best for developing "free software" applications. For a start, let me tell what I think:

Well, I see people contributing their ideas in their work. (This is with respect to coding). This piece of code will be distributed to other people and so on and so forth. So if you have access to this source code it must be critical that "you" must know who originally wrote the source code. I have not come about this idea thinking about intellectual property or anything related to it. This is a must because people must know about who wrote the program. There may be ideas that others may not have understood why it has been added. To handle such problems it becomes necessary for the original author of the source code to include information about how to reach him or her. This way other people (I assume other programmers) can ask the author and get their doubts clarified.

Although they needn't always ask the author about it in the long run, but I feel it is important. Hence something in the code that refrences the author's identity and a mode of communication is a must.

Now its ur turn.

PS: You can use the comments link you see just after this post. Just click and type in ur ideas...

Saturday, September 16, 2006

The patent problem revisited.

I have been asking doubts over a forum about the system of software patents. I have clearly expressed the idea that it restricts freedom to program something that ideologically trivial. Hence all free software programmers are forced to take evasive measures that harm the cult of free software.

But there seems to be no end to this misery. Patents will exist. Be that good or bad! But what is it that really matters? There is no real drive - a coalitive effort - which would actually bring the masses to light. Everyone is busy in their own ferry. (I mean would a business person have insight in what I speak?). But the problem seems to be aggravated from a another perspective too. And from what I learn it regards the philosophy of free software. The argument from that angle becomes significant when you start thinking of standards to software or a system.

When you create software and you GPL it, you are literally inviting other people to view its source and to make modifications on it. You also hope that all subsequent modifications will keep standards that you had originally thought of. But in practice this may not happen. It can be that people can even abuse your idea, or use it for some other purpose, or change the whole software. This happens because the GPL gives you this freedom. Now you may ask how will your software survive? How will the idea you've put in benefit others?

I value this freedom. I think the gpl is good in spite of this small handicap. Because I believe that software will become accepted among the masses this way. But why do I believe it?

Well, the essence of this freedom dictates the fact that anything can happen to your software as it proliferates among the masses. (The worst case being someone making it proprietary). But then if you do want standards maintained, then I guess that you should somehow make people aware of the fact about what they should be; and more importantly even you should be convincing enough while you educate people that anything can happen. Because at some point of time even they might develop on your idea, and they might see the big problem (that is if they have not understood about the value of this freedom).

Sunday, September 03, 2006

Complications Speak Out Loud...

I have been trying to assess what if all companies adopted the GPL as the norm?

The answer to that I think is quite complicated. Because I have to work in a software industry to find out!!! But I took the time to discuss with a friend. He had no idea about the philosophy of free software, and the GPL. I gave an intro to him. He seemed to appreciate the idea for a while...But one question bugged him. I need to get paid for what I work, right? Then how can the GPL support this valid incentive? Hm, it seemed to be a problem. Well, it is a valid question in one sense; apparently my friend was musing on the idea of "free" as in zero price. And eventually that lead him to conclude that he won't get paid for the work he does...! That seemed odd to me at first. But then I thought, well, there is a way to get paid!!!

There is always a concept of demand coming into the picture. As long as there is demand companies can ask for a price or charge for the service they perform. This, I guess somehow precipitates to become the salary for an employee. And who will provide the funding? The customers or the one who has made the demand! The customers can be a corporation or generally a body of people.

This is just my version of a simple explanation. It cannot however substitute what is actually happening out there. Because I really don't know what is actually happening out there! But I can tell you this much...people don't see that much returns as when licenced through the GPL...

And, yes, its all a choice - a decision at the management level.

However, I will give you a picture about what I think:

If an organization XYZ figures that it needs a particular implementation of some computer-aided-assistance and, that they don't find any existing in-house solutions for it, they may then decide to procure the software system through a committed organization (for e.g. ABC). The XYZ people reach the ABC organization and tell them what they need. This way ABC works on the developing the system for them. How the money or ABC's profit scheme fit into this picture? Well, I leave it for you to figure.

This is what happens usually. You don't need to be a manager or someone who works in a software firm to figure this out. The decision to make this a free software or a libre software system is however not at all connected with this. The money that goes into the picture is the same; it flows the same. The service done by ABC is one and the same.

But if free software were the norm, we might have to think a bit differently. For ABC to develop the system, its relatively easy, I guess. Suppose ABC is a new corporation then what they have to do in order to develop the system in my opinion is search for a solution in the Internet. There must be some idea or the other hanging loose. This way they don't have to waste time coding for the system. Most of the code they can acquire, out-house. Only those components which need be developed specially are developed in-house. So there are two things ABC needs to do:

1. Search the Internet
2. develop what they cannot find.
3. integrate all of this into a final system and validate the whole thing.

ABC can ask charges for these above services. XYZ will pay - they need the system, right? How ABC does all this is up to you to figure out.

Now the next phase - evolution.

The normal scenario: that of proprietary software firms.
XYZ has to depend on ABC to further evolve this product. Because ABC developed it! And they would be more than happy to work on the product. By now the knowledge that has gone into developing the system is in-house. So what the in-house team has to do is learn the product and somehow incorporate the changes.

Now what if the ABC company suddenly shut down - ran out of business? XYZ has a problem. Who will evolve the product for them? Checkmate!

The GPL scenario: of course the software system is company specific. I don't think users like you and I have business with it. So lets rule out the possibility of this software system going into the piracy cycle. Suppose if ABC shuts down. What XYZ can do is approach another organizationPQR) to evolve it for them. All the documentation that has gone into the software development is given to them. And, now its a issue of how they develop the evolved system.

And for whatever reason what if the developers of PQR find something they don't understand? - There is always the Internet!!!


All I wanted to emphasise was on freedom of using the GPL (GNU Public Licence). But, again I don't want people to think this can substitute all business scenarios. But somehow I believe the GPL slowly will, but the GPL has miles to go before that can happen.