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!!!

Conclusion:

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.

Wednesday, August 16, 2006

A good article on software patents...

Till now I was searching for a good site that would give me some idea about what are software patents. Its not that I was not aware of it all along. Its just that in the heat of this debate that is currently unsettled, I didn't know what to believe. Somehow I was searching for an article that dealt with the issue somewhat neutrally; and one particle article stuck my eye.

This is probably the third search listing at google when I had searched for "software patents vs no software patents". I never expected that something dealing with "free software" to come up, but it did. This article is just about that. The author uses "free software" as a line of defense. Well most of you may argue the neutrality, but I figure this makes sense. The article can be reached at :-
http://perens.com/Articles/Patents.html

Before I mention more about this subject for future posts I should clarify my point of view. I support the idea behind free software because it supports freedom. It has made me realize that the modern IP system is very restrictive. It doesn't give us that much freedom. The essence of this freedom is something that is hard to realize if you are new to the subject. For other people it my even be hard to believe. But I do believe this freedom can help us develop in a promising direction though I may not be capable of expressing the essence of this freedom in words right now.

Well this article is biased towards free software. If you want to appreciate the argument please try to grasp what the essence of free software has to communicate to us.

Monday, August 07, 2006

Patents and the cult of free software

This issue is a subject of intense debate even now as I speak. But still, software patents exists around the world. Earlier patenting software had no real logic; a simple copyright was enough to protect the author. But later people realised the economic advantages of patenting software. It so happens that these advantages somehow outweighs the disadvantages. The United States Trademark and Patent Office (USTPO) first response to patenting software was that it was not patentable. I guess they held the idea that anything that was reducable to a system of mathematical algorithms was not patentable. Later on that changed.

Software patents are bad for the development of free software. It restricts development in fact! The nature how patents are registered in the patent office makes the situation more complicated. The best story I can think of at this moment is that of Richard Stallman's experience behind developing the GNU/Linux OS. [Read RMS essays]. Stallman gives solutions to solve the problem of software patents. But in my opinion I don't think there is one single solution that would put an end to the restrictive nature of patents!!!

Patents put you in danger. Some of the ideas you conceive while developing software may have been patented without your knowledge. In America, the system of applying a patent is that the patentee must sign up for his patent. This process might take a year. Only after a year it gets approved and the patent licence is issued. In between this one year, anyone who has accidently violated the patent sign up is liable for a hearing from the court and for liabilities. And when the patent goes licenced, the scenario is pretty much the same. You'll get screwed for violating patents! Thats the way patents are...

The subject matter is still under intense debate as I've mentioned before. So well, I'd rather say something that I feel is correct. Patents would sound logical if the case was an invention we are dealing with; for e.g. a new drug, or a new explosive charge. Here the inventor is claiming that he has knowledge on his invention rather than anyone else; and therefore says that I need to be the one that looks after the development of this idea. This way the society beneifts from his invention. Now if the invetion goes into other peoples' hands then it might result in some catastrophe. Imagine asking another person (other than the inventor) to look after a nuclear reactor which has something totally revolutionary in its design. I believe it is for these reasoms that patents must exist.

Sunday, August 06, 2006

A little idea about patents

Ever wondered what a patent is?

I don't have a clear idea, but I have the over all picture.

Patents are just another set of intellectual property rights. Intellectual property rights again are laws that protect ideas that people have, and are genenrally not good to mess with. It is an umberalla term that is used to refer to the object of a variety of laws that includes copyright law, trademark law, etc. If you want to research on this I suggest looking though wikipedia. Click here.

If you have an invention and you know it somehow bebefits your society then you can go ahead and patent it. By doing so you are saying, "this is my invention; it is something revolutionary; I want to be the one to further develop on it. Others may not possess the aptitude to do so. Hence, this way I ensure that the society is benefitted in return."

So this is how the philosophy of patents work.

Now is it right to own software patents?

Wednesday, July 19, 2006

Why free software exists: Part 3

Free software makes sense

Copyrights were once significant. That was a long time ago when the printing presses became popular. With the technology to make copies of books a bit faster people started making profits out of selling more copies behind the authors back. Sometimes these books were ill-printed; they might have contained some errors. These little things can eventually scapegoat the author, and not the publisher. Moreover the author derives his or her incentive to write if he or she was rewarded for what he or she wrote. But that time what happened was quite reverse; they didn't get paid and hence their incentive was destroyed. Hence these authors approached the law and thus copyrights became significant.

Today we live in world where information technology has advanced to a great degree. It means that copying and distributing has become even more easier compared to the past. People download music files, e-books, and software and other stuff from the Internet. They pass it on to their friends; and thus the proliferation goes on. Licenses prohibit them to do so; but honestly no one really heeds to these licences. But there is a potential threat of being punished by international laws as long as such things go on.

The idea of free software wasn't really introduced to obviate such a threat. It was introduced so that people recognise their freedom, and what really these proprietary licenses are doing to restrain it. But proprietary software exists and will continue to exist. It is something which came first, i.e. before free software. Hence there must be situations where you must resort to proprietary licenses. Well, I haven't thought about that yet, and moreover this post isn't meant to deal about that subject either.

I will look to discuss these things in the future, and I will also look into extending the concept of free software over fields other than software. But next I will discuss about free software.

Why free software exists: Part 2

Distribution and its problems

Let say you are a good singer. You want to be paid for any song you sing, right? You want people to recognise you through your song. And therefore you go to the studio, do your recording, get publicists, and sell copies of your album. Your publishers make the copies for you. If the recording company has made profit from selling copies of your album, then they pay you a good sum. But what if they sold copies behind your back and made off with the profit? Worse, what if someone else got hold of your album and sold copies of it? What if they sold it in a fashion that doesn't even credit you even remotely? Your identity is at a crisis; people might use some other name (preferably theirs) rather than your name even though you sang the song, and the other person may have not.

Would you want to sing again?

Clearly not. But as long you have a copyright you can at least fight back. You can go ahead and claim that your copyright was infringed (your identity corrupted) and then take some legal action on the other person. I guess these are truly what copyrights are meant for. But there is another side to this; you have to see it from the publishers angle.

The publisher's motive is usually to make profit; and this is ensured as long as he or she can sell more copies. But what if someone else had the power to make a copy of the album and sell or distribute that for free or a lower rate. Clearly the publisher is at a loss. No one would want to buy copies from him. And slowly the publisher's business comes to a close.

This is again where copyrights come to play. It a copyright says something like:-

This is your copy. Unauthorised production of copies, broadcasting, and/or performance is prohibited.

The above statement sums up all I've said above. But now, consider the publisher's perspective again. Although public performance or broadcasting is illegal as per the copyright law, people still continue to do these things. It's a very common occurrence here; any marriage function I go to people play the music loud. And that's not all; people also make copies by themselves. We live in the world where we possess the technology to produce copies in short time. There is a proliferation going on in public; we can't really check it.

Until here I've been talking about music; but you must realise software is not much different. These things happen with software packages too. And it's not ever a rare phenomenon. Another good example other than software packages is books. You can get to buy books from side shops which are mainly unauthorised. They try to sell the books for a lower rate. It may not be of good quality however, but people go for these books. So in turn people are engaged in the business of making illegal copies of books and selling them behind the publishers back. It's a loss for the publisher; he can't sell his copies. No one would buy them.

The act of infringing the copyright is called piracy or copyright theft. But really who seems to be at loss here. The author isn't usually at loss! He at least gets the kudos for his work. It's really the publishers who are at real stake. In book piracy cases pirates usually print copies preserving the authors name as well as the publishers name. This way both gets recognised. If it were not so, then the pirates are in for real trouble. However this may not be the real reason why pirates are doing such a thing. They probably think the people who buy the book are clever. They won't buy books from unfamiliar authors or publishers.

Distribution poses to be a problem as far as software is concerned. Software cannot be distributed unless it is copied in a sense. The software has to be installed for first use and in this sense it is equivalent to copying. It is therefore that you might see most software licenses prohibit distribution. Books or music cds don't restrict distribution because that way it serves the purpose of what the book was actually made for. This is the reason why you see libraries lending books for people to read.

We can never have software libraries! Because most licenses prohibit copying and distribution. But yet we still see that copies are being made; they are being distributed. We have no control on this. Whether the purpose or motive behind this phenomenon is good or evil it will go on. And what more, know that this statement will be a major blow to all proprietary license holders, but the only reason why proprietary software packages are being popular are because of such things happening everyday.

Why free software exists: Part 1

Modifiable software

In the most basic sense software is a computer program that assists us at doing a task. For e.g., MS Word is software that allows you to write documents; Adobe Photoshop is software that allows you to edit image files, and so on. Software is inherently flexible; which means changing/adding some feature (for e.g. adding a spell checking feature to your plain text editor) only requires change in the program's source code. The source code is actually a file which contains instructions telling the computer what to do; but however it is in a language that we human beings can read, provided we know the language; the computer cannot understand this language. The source code is converted into computer readable format (or machine language) so it becomes easy for the computer to carry out the instructions. This is where things like the compiler and the assembler come into play. The compiler reads the source code; and if the code is free of errors it translates the file to assembly language. Assembly language is another language which intermediates our source-code-language with the machine's language. The assembly language converts assembly code into machine readable format. This format is usually in 1s or 0s; and it is commonly referred to as the binary system or machine code. The machine code is bundled into a unique file called an executable (.exe).

We cannot do much with an exe file, except run the application. Because it is machine code; we don't read machine code. But incidentally this is the way most software applications are distributed. The problem with such software applications comes when you want to change something. Most software products that are sold by companies go through a life-cycle called the software life cycle. At one-point in this cycle the product is upgraded: certain new requirements are added, some are removed, and so on. This is also called evolution. What happens during evolution is that the developing team (which may consist of entirely new members or members who have worked on the product before) pool together and incorporate new suggestions given by people. They may have to work with the original source code which they already possess. Then the story is the same as before when the product was created from scratch

So if you wanted something to change or be added we have to be virtually dependent on the original developers of the software. You don't have the freedom to change it if the product is proprietary-licensed. Nor, can you seek other developers (from a different company) to rectify/evolve the product. Because they don't have the source to work with. I guess this is one limitation of proprietary software packages.

If you wanted to help a friend with adding a feature or fixing an existing feature wouldn't you want to do it? Even if you are a good developer, you can't possibly read machine code! This is freedom that doesn't come with the software package. And usually these software packages are known as proprietary software; proprietary because it comes along with a proprietary license. This license usually says you cannot distribute or make copies of the software. If you do then you are violating the licence; you may be arrested or tried in court!

A proprietary license has another issue: what if you somehow got hold of the source code? What if you were able to modify the software source code? What if you could have the power to change the software functionality yourself? I guess it wouldn't be a morbid problem if you've used it for yourself. The problem comes when you distribute the software. Once this issue reaches the hands of the concerned company who had created the software could claim that their intellectual property right has been violated and thus you can be punished for that.

Why free software exists: Introduction

Here I am going to tell you about my idea about how and why the idea of free software came about. You’ll see that my lines of reasoning are somewhat same as that used by Richard Stallman in his essays/speeches. But some part of my idea has a logical reasoning which is a product of my own understanding after reading Stallman. I think I may have contributed a little bit more.

Stallamn’s essay mainly deals with his lifetime experiences and brings about the concept of free software simultaneously with the development of the GNU/Linux operating system. Reading his essays will give you a proper foundation, but I suggest all of you, irrespective of whether you are a computer expert or not, you must come to discover faults with the current system of proprietary software licenses on your own. But in the end you must understand the choice is however yours in deciding between the two.

I’ve divided this topic into a series of posts:
  • Part 1
  • Part 2
  • Part 3

Tuesday, July 18, 2006

The purpose of this blog...

I've created this blog to share my ideas about free software. Free software is any software that comes with a gnu license which allows you to freely make copies of the same and distribute it at your will. This licence also allows you to modify the source code and customize the software to cater your own needs. The concept of free software was initially developed by a group called the free software community. It was a small online community that existed not long ago who believed that the modern software protection laws didn't make sense, and that they needed to revolutionize these laws somehow to suit the modern generation.

The idea of free software is a popular topic thanks to the work of the Free Software Foundation (FSF) headed by Richard Stallman. Their main mission is to propogate the concept. As a result of this, you have people around the world delivering free seminars and other campaigns to publish the idea of free software.

Later in this blog you will find posts dealing with varoius issues dealing with free software, some definitions, and my personal views.

On a last note I'd rather say that free software isn't about software that is sold free. Selling it for free is a personal or an organisational decision. The meaning of "free" in it says that after acquiring this software you have realtively more freedom as against similiar proprietary software packages.

Ultimately free software is about freedom, not price