I have been presenting my thesis about 'the problem of solving problems' over the last few months through this blog. So far I had discussed about the following premises - a) Change is possible b) If problems are solvable, they can be solved c) If there are willing people, they can change the world. Interested people are the prerequisites for the solution to this problem of solving problems. But there are other required factors as well.
Necessary Factors
When we talk about solving problems we are talking about studying problems, finding solutions, trying out solutions, making changes, changing systems and about implementing solutions. In addition to interested and capable people you need infrastructure and resources for doing these. If we have these to aspects on top of interested and capable people, what we have arrived at is a generic solution to the problem of solving problems in the world.
If we bring together interested people and give them sufficient resources, infrastructure and time this generic system should be able to tackle problems one by one. This does not mean that they will be able to solve all the problems. They should be able to solve those problems that are solvable with human effort/intervention.
Money as the prime mover
If we look at the three factors - People, Resources and Infrastructure - we can see that one would stand out from the rest. The factor is one specific type of resource viz. hard cash. If you have money then you can bring in line all the other factors.
Yes, Yes, I hear the skeptic crying out loud that all the money in the world cannot solve all the problems in the world. I sympathetically agree with him. All the problems in the world cannot be solved but those that can be theoretically be solved can be.
Again the skeptic might argue that money alone will not bring about change, and that you need interested people. Yes, I agree, but I have to add that interested people with money is always going to be better than interested people without money. Also there are quite a few interested people out there, who are not in the business of making change because of the requirement in their lives to go after money for sustenance.
The simple logic behind the solution
I am not stating that this is the only way to solve all the problems in the world. I have only examined the whole puzzle from a generic perspective and have defined a system that can possibly work towards solving problems in the world. The solution is really a rational/logical restatement of the obvious.
If a problem is solvable, it can be solved. If a problem can be solved then you have to bring in the parameters required to solve the problem. The generic parameters are Labor, Resources and Infrastructure. If you have one specific type of resource, viz. capital, you can line up all the three parameters. So create a system that can supply you the capital that can in turn supply the three parameters required for solving the problem. Now you have a generic scientific system for solving problems.
If there are other intangible parameters required to solve the problems, then if these parameters are controllable then they can be controlled with the three basic parameters already defined. If the other parameters are not controllable then they can't be controlled by the three basic parameters. If these parameters that cannot be controlled determine whether the problem is solvable or not, then the problem is not solvable by human intervention, which is a contradiction to the first assumption. Simple isn't it.
Wednesday, July 15, 2009
The problem of solving problems
Posted by
The Minking Than
5
comments
Bookmark:
Labels: Philosophy, Zyxware
Monday, June 29, 2009
Economics of Friendships and Relationships
I went to a friends marriage the other day. I look forward to such functions as I see them as opportunities to touch base with lot of friends at the same time without a lot of effort. Of course it is also one of the social obligations that is expected from me as a constituent of the society. Not that I meet all social obligations but this, I try to do normally. Lot of friends turn up and a far greater number don't. Now why would some turn up while others don't?
Simple question right? It is however a very profound question and it is probably not possible to answer this question 100% objectively. I am still trying to figure out some of the different aspects of this puzzle. This discussion is only meant to be a place where I am jotting down some of the thoughts related to this topic.
The simple answer to that question is that some could not turn up because they had some other engagement that same day. OK that brings to the fore the aspect of priorities. Some could not turn up because they had tasks that had higher priorities than the marriage. If they had to come for the marriage they would not have been able to meet these other schedules. Now missing an engagement is a cost that the person could not bear for the sake of coming and attending the wedding.
I didn't bring actual monetary economics into the picture. You could bring that also. Some might not attend the function because it would be monetarily too expensive for them to bear. So the cost could be comprised of a sum of all these other different factors - personal commitments, official commitments, family commitments, monetary aspect etc. So it can be stated that the person who did not attend the wedding did not do so because he was not willing to bear the cost of attending the function.
Objectively looking at it, coming to a wedding does not serve any real purpose. Even if you skip it nothing is going to matter as long as there is the priest (or whoever is the registering authority) the bride and the groom. But the example of a wedding can be replaced with other scenarios where the person who is requesting for something or requesting to get something done actually benefits by the presence or action of the person.
I am interested in looking at three classes of relationships here - a) Friendship - a class which is not really bound by any formal social obligations or expectations b) Family - a class which is bound by lot of formal social obligations and expectations c) Others - some bound and some not bound based on the origin of the relationship.
Now look at people as building blocks of a complex system called the society. Each of these people will be connected with their neighbors in the system through relationships. The relationship could be classified as friendships, family relationships and or other relationships (geographical, professional etc). If you look at life of each individual it can be considered a set of tasks that they perform. There are some tasks that people expect/request/demand from other people in the society. Whether or not they perform such tasks would depend on the above cost that we have discussed.
One of the parameters that affect the decision making is obviously the relationship between the two people. A person might travel 2000 miles by flight to attend his sisters marriage but probably wouldn't do that for his friend's sisters marriage.
The decision as to whether one performs a task is nothing but a check against a costing function where the relationship is a parameter. The task will be performed if the cost of the task is below a certain threshold decided by the above hypothetical function.
Given that all other parameters for this costing function remains the same the decision about performing the task would therefore depend on the relationship. If we extend this reasoning we can theoretically find limits of the cost above which a person would not perform a given task given a relationship. Or in other words you can put a value to a relationship in the contexts of tasks/actions expected of you.
Unless there is a task involved the relationships wouldn't matter. Only a task would bring in the aspect of the costing involved in performing the task. The final decision on whether or not to do the task would indicate the cost/weight of the relationship in the context of that task.
Now that I have brought in the concept of costing for relationships let me bring in another aspect. Given such a task where you can theoretically find the threshold costs for different people above which you wouldn't perform the task, you could actually sort these people in an order defined by this costing. What we have here is a relationship index given the task. The index could vary with the actual task in question but given a task you could have an index.
The reasoning does not really put absolute values to relationships independent of tasks but gives a mechanism to sort and classify relationships based on the decision making of individuals regarding the tasks that they were expected/requested to perform. Theoretically if you track the decision making of a group of individuals across a long period of time you should be able to make a decision making matrix which can be used to predict the decisions that individuals in the group will make for tasks expected/requested of each other.
Disgusting is it? Well think about it. I can easily bring out worst case scenarios to prove my point. You might easily give a tenner to friend in need. Would you do that with 10 times that amount, what about a million times that amount? What about giving all you have for your friend? Oh would you? What about dying to save your friend? Did I find a limit here.
Not that I have to, there would be people who would actually be willing to die for their friends. For them, their own death itself would not have been a sufficiently high cost to not perform the action. My point is just that there would be limits. Because even in such cases as people willing to die for their friends they probably wouldn't be willing to do that for everybody they know.
I have brought up some interesting questions/issues here. What is the cost of friendship? What is the limit of the cost you are willing to bear for a friend? What is the limit of the loss you are willing to bear for a friend? What are the corresponding limits for your friends? Based on these costs who would you call a friend? What about a relationship? How close is a close relationship with a given individual?
I had wanted to write about this topic for quite a long time. It is touchy because people would not find it appropriate to say aloud the thoughts that I have discussed here. People unconsciously make decisions based on some of the principles mentioned above but would consider it very cold hearted or materialistic - the above discussion. I would simply call it rationlistic or rather mechinistic because it determines how the complex machinery of human society grinds and moves forward.
Posted by
The Minking Than
9
comments
Bookmark:
Labels: Economics, Philosophy, Psychology
Wednesday, April 22, 2009
Who will change our society?
Who will bring about these changes in the society?
I had earlier written about changes in our society being essential, inevitable and more importantly drivable. Again I had discussed about problems that exist in our society and categorized these into those that can be solved and those cannot be solved. Solving the problems would involve some kind of changes which are ultimately drivable. Now the only missing piece of the puzzle is "Who will bring about these changes that will solve the problems in our society?"
Most of the problems that we look to solve in our society are complex and large because of the simple fact that we are a planet of 6 billion people. Some of these changes that we are looking at are humongous at first glance, for example that of eliminating corruption, and sometimes even look impossible or highly unlikely. By one of the corollaries of the law of diminishing efforts, early contributors to a sufficiently large and lengthy task end up contributing more than later contributors. So people end up being hesitant to take up/contribute towards solving such big problems during the initial phases of such causes.
This has been one of my favorite topics for debate and one for which I get people to debate with very easily. It is easy to find people who look at the size and improbability of these problems and identify them as not worth spending their time and effort on. But they do not realize that it is because of decisions like these that these tasks look improbable and huge. Also for such big problems the actual requirement of efforts might be smaller than the perceived amount of effort required. Another corollary of the law of diminishing efforts states that the amount of perceived amount of effort required decreases non linearly with an increase in the amount of actual effort put in towards such complex and large tasks.
Very few people decide to take up such causes. The numbers are pathetic in the so called educated sections of the society because the amount of risk that such people have to take are very high. A person with a potential to earn millions of dollars in income would stand to lose the opportunity to earn that money if he/she tries to pursue improbable looking objective of solving such complex problems in the society. I believe that there would have been more takers if these problems didn't look so complex in the first place, but that is not to be.
Now it is not a sin or even a definable mistake or act of selfishness on these people's part to not take up causes or not give up prospective careers to work for the good of the society. I believe that everybody is, and should be, free to take up whatever career choices they wish to make in their lives. Besides the society always needs people who will work hard to earn their millions and simultaneously generate value and meet the needs of the society. Also it is plain statistics at work. For every thousand people, you only need a handful, to actively pursue such causes like solving the problems we face in our society, and statistics ensures that for every thousand there would be a few who resonate with such causes.
Now here is my proposition. If we can increase this above percentage of people, then these problems would get solved faster. If we increase the efficiency of these people, these problems would get solved faster. If we increase the resources available for these people for solving these problems, these problems would get solved faster. Doesn't that sound logical?
Ever since I started thinking about this I have been trying to figure out ways to get it to happen. I have been talking to everybody who I think would resonate with such causes about how it can possibly happen. What I have realized is that most people want this to happen but most of these are not willing to put in effort to make it happen. Of the very few who are willing to put in efforts even fewer are willing to take it up as a cause to live for. The consolation is that there would be a lot of supporters for such causes if and when they gather momentum and the perceived required effort drops drastically.
I, for one, have decided that, I am going to invest my life for this cause. Now that I had defined the objective I wanted to find the best possible method that I should take to work towards this objective. Like I mentioned before, if we have more people, infrastructure, technology and resources, then we could achieve these objectives faster. Of these, getting the non-human aspects together is easier than getting the human aspect ready.
If you have money then you can theoretically mobilize the other aspects but for people you have to inspire them and make them buy this vision. If 5 in 1000 is the number that you are looking at, then you have to reach out to 1000 people before you find your 5 people. Also you have to network heavily between these few people to be able to effectively work out strategies and move towards the objective.
The tough part about the vision is that there is little or no money in pursuing it. Only those people who are bold enough to think beyond money, will be able to take it up as a career. Only those who enjoy taking huge, complex and improbable tasks would enjoy such causes. Only those who can die for a cause would achieve it. And it is such people that the society needs to work for such causes. Anybody can do that. It is all a decision and only a decision. A decision that you are going to put efforts towards the cause and that you are going to achieve it. Are you game?
Posted by
The Minking Than
9
comments
Bookmark:
Labels: Philosophy, Zyxware
Sunday, April 12, 2009
Is there a completely selfless deed?
People all around us like and praise selflessness and dislike and denounce selfishness. Why do people do that? How do you know if an act is selfless or selfish? For that matter how do you define selfishness and selflessness? Can there be an act that can be defined as an act of absolute selflessness? Let us see.
What is selfishness? Selfishness can be defined as the quality or state of showing exclusive regard to one's own interest or happiness. It is that supreme self-love or self-preference which leads a person to direct his purposes to the advancement of his own interest, power, or happiness, without regarding those of others. Absolute selfishness would imply acts where only the actor benefits.
What is selflessness? Selflessness can be defined as the quality or state of showing absolute disregard to ones own self. By this definition such a person would direct his purpose exclusively for the advancement of other's interest, power or happiness without regarding those of his own. Absolute selflessness would mean that such acts would give no returns of any kind to the actor.
Leaving aside the definitions how does the society judge if an act is selfish or selfless. The answer is pretty straightforward. An act is judged as selfless if the actor gets less out of the act than the society or other people around the actor does. This can normally be accentuated if the actor had alternative choices where he could have gotten more out of the alternative acts and the others would have gotten lesser from those. All other acts are considered selfish :-)
In terms of cost (and efforts which is a cost) when a person incurs cost for the benefit of another person it is considered selfless. If not it is selfish. Normally society is not that harsh and judges based on alternative options available and the 'selflessness ratings' of such options. Also when acts can only possibly yield rewards to the actor, for example preparing for exams, the acts are considered neutral on the selflessness index. However a person declining to help another person during exam preparations will still be considered selfish by the society.
Let us take a closer look at a selfless act. Any act can be considered to have both a physical (or external) result and a metaphysical (or an internal) result. Consider having come through an exam with A+ grade. The physical result is in you getting enough questions correct to get an A+ and the metaphysical result is the 'happiness' or 'satisfaction' that you feel inside your mind. For a selfless act we have defined that the person gets less than what he gives. But this only applies to the external cost vs result. What about the internal results. What if the person enjoys each and every one of his selfless acts more than what the recipients of the fruits of the act does? Would these acts be really selfless? Wouldn't such acts be considered as being done by the person for his own sake without actually caring about others? If such a reasoning holds true couldn't all supposedly 'selfless' deeds be considered selfish where the actors were doing it for the sake of the internal result?
Even if it were partly true, i.e. if the person gains some internal returns but were doing the act for the recipients sake or that the recipients received more than the actor, the person would be getting something in return for the supposedly selfless act. Now getting something in return should imply that the act was not fully selfless like we have defined before. Shouldn't that imply that there is no such thing as a fully selfless deed?
There is an interesting aspect about this argument. This can be extended to every deed and we can claim that we are rewarded internally for every deed that we do and hence all of these are selfish and the true reward of all these deeds is the 'happiness' or the state of mind that the person achieves through the action itself. This can be extended again to state that the objective of every action is ultimately the internalized 'happiness' or the above mentioned state of mind. I am still not very clear about this angle but it is an interesting thought.
If we take out the philosophical perspective that every selfless deed can indeed be selfish then we can take a look at why people praise such deeds. In a society where only the fittest is supposed to survive why would an act where the actor bears the cost and somebody else enjoys the fruit get promoted.
I feel that this adoration for selflessness is a trait that has evolved in society to reward 'selfless' deeds that are valuable for the continuation of the species. There are two types of selfless deeds that I think are relevant here. One is where the actor does something very beneficial to the society at his cost and another is an act where the actor does something which the society expects somebody else to do for him if such a situation arises.
An example for the first would be where somebody, in a medieval society, risks his/her life to fight off natural dangers, for example marauding animals, at their personal risk. Cumulation of such acts would have provided protection to the society as a whole but sometimes at the cost of the individuals similar to how a worker bee sacrifices her life for the hive by stinging invaders.
An example for the second would be where a person spends time and effort by rushing to accident scenes and providing care to accident victims. A cumulation of such acts would act like an insurance policy for every individual in the society. The individual who acts might not really be doing it for the insurance aspect, and in fact mostly wouldn't even be thinking about these aspects. It is like a transparent social security net woven by societal evolution.
'Selfless' acts also serves to balance out the costs in the society. Persons capable of bearing some extra costs, by doing the selfless deeds and bearing such costs, enable people who are not capable of bearing such costs (or being not in a position where they could bear such costs as in the case of accident victims) enjoy the fruits of such actions. This again is another perspective of the social security net mentioned above.
The society is banking on the theory of diminishing efforts. By incentivising selflessness, the society is hoping to get more people to do such deeds thereby making the cost of such deeds smaller and smaller for each individual and ultimately reach a perfect state (which it never will) where every individual will only pay the proportion of cost that he is bound to pay. The biological reasoning could be that the species have a better chance of survival against other species if individuals of the species stand together and grow together.
So through the adoration people are incentivised to do such 'selfless' deeds for which individually they might not get a direct benefit proportional to the cost (or effort which is also a cost) they bear. Let us join in and do such 'selfless' deeds and hope that the secret agenda of our society moves forward towards its target and of course ensure the continuation of the inherently selfish species homo sapiens sapiens :-).
Posted by
The Minking Than
11
comments
Bookmark:
Labels: Philosophy, Social Science
Saturday, March 7, 2009
Problems in society, causes, solutions
This is the second of the series of articles that I am writing to build and present the complete hypotheses behind Zyxware. In the first article I had covered the concept of change. In this we are going to look into the problems that we face in our society, their causes and the solutions to these problems from a very high level and generic perspective.
If we look around the world we live in and observe closely, we can see that we live in a world full of problems. No I am not talking about a pessimistic view of life, but rather an objective view of life. Yes, there are lot of good things that we can cheer about, and sometimes even be proud of, but there are probably as many problems out there as well. Nobody wants to change whatever is good but people would like to see whatever is bad, changed/removed. So we will look in detail about these problems that people face in their lives.
We face lot of different problems in our lives, for example, power shortages, bad roads, bad infrastructure, corrupt officials, anti-social elements, communal problems, bad weather, drought, disease outbreaks, global warming, food shortages, unemployment, poverty, malnutrition etc... and the list goes on like this. The idea is not to list all the problems in the world but to figure out some way to study these problems.
If we look at these problems we can easily classify them according to the following binary logic :-
1) Caused by human action/inaction
1A) Intentionally caused by human action/inaction
1Aa) Caused with malign intent towards another human
1Ab) Caused without malign intent towards another human
1B) Unknowingly caused by human action/inaction
2) Caused independent of human action/inaction
2A) Can be solved/mitigated/prevented by human action
2B) Cannot be solved/mitigated/prevented by human action
So the simplified linear classification would be
All the problems that we see around us can be classified according to the binary logic shown above and would fall into any of the six classes shown in the simplified linear classification. The objective of this classification exercise is to identify types of problems that can be solved and types that cannot be solved.
In the simplified list given above, we can see that type 1, 2 and 3 problems are caused directly by human action/inaction. Since the causal agent is human beings, these problems should be solvable by human intervention. Now type 4 problems are not caused by humans but these can be solved through human intervention. So we can seen that except for type 5 problems which are caused by non-human agents and not solvable through human intervention, all other problems are solvable by some kind of action by humans themselves.
Let us look at a few examples that we can easily see around us and classify them.
Consider the problem of societal violence that exists almost all across the world in varying degrees. This is a problem that is caused by human action with a malignant intention to harm others. There could also be problems caused by human inaction with an intention to harm others. A good example would be partisan authorities turning blind eyes to communal violence. Both these examples can be tackled both in the short term and in the long term by taking mitigating steps to root out their causes in the first place - eg: lack of education, unemployment, poverty etc.
Corruption is often described as the cancer of the society. Corruption is probably the single biggest deterrent to progress and growth in developing countries like India. However people who are engaged in such acts do not necessarily do it with an intention to harm the general public, which includes themselves. Other than a greed for money there might not be any other desire that drives corruption. Such cases of corruption therefore falls under category two.
Corruption is an intentional act. Also ineptitude and inaction from authorities are also good examples of problems in this category where the problem is an inaction rather than an action. Corruption can be tackled by bringing in transparency in transactions and by inviting and encouraging citizens to take active involvement in the functioning of the machinery. This would also be able to solve the second set of problems mentioned above.
A very good example of a problem caused by human beings without, mostly, realizing the consequences of their action is the massive deforestation happening across the rain forests of Africa, South Americas and East Asia. The cause of this problem is the human consumption of wood and wood products(primarily paper). Most people who are guilty of wastage and excesses might not even realize the indirect consequences of their actions. It is true that our dependence on paper cannot be stopped in a single day but excesses and wastage cannot be condoned any day. We might never be able to totally stop our usage of paper but we can always reduce, reuse and recycle to reduce the overall usage.
Retarded growth of nations or slow progress of nations, poor health conditions of populations etc can themselves be considered as problems and these can be, more often than not, attributed to inaction by relevant authorities. Yes there might be financial and other resource limitations that might add to the causes but ultimately these problems exist because of human inaction. Such inaction could be classified as type 3 problem. A planned and sustained drive to educate people is a simple way to improve the overall health of the population. This would also in the long term, help the nation to grow and progress.
The outbreak of any disease in an area is an example for a type 4 problem caused by non-human agent viz. microbial organisms. However with modern medical facilities and drugs most of the known diseases can be cured. There are those that cannot be cured but medical sciences are fast catching up on these. Another example is the dearth of drinking water caused due to fluctuations in climate patterns. This problem is something that has successfully been solved through artificial irrigation/drinking water supply schemes for the past several millennia.
A natural disaster like a tornado striking a city or a tsunami running over a coastal town are good examples of type 5 problems that are caused independent of human action/inaction and those that cannot really be solved by human actions. However with the growth of science and technology the effects of some of these unsolvable problems can really be mitigated. For example with proper early warning systems people can be evacuated before the tsunami strikes a town.
Finally, I should remind the reader that the view that all problems can be solved is very simplistic. Some problems, even those caused by humans (or for that matter caused by non-human agents), even if theoretically solvable, might not be practically solvable because of the different complex, often inter-dependent constraints that exist in our system. The objective of this exercise was to shine a light at this logical classification of problems and to bring to the fore the fact that there are problems that can be solved, avoided or mitigated through human action and there are those that can't be. For those that can be, we should really be able to solve them, if we put our mind to it.
Posted by
The Minking Than
1 comments
Bookmark:
Labels: Philosophy, Zyxware
Tuesday, March 3, 2009
Making money with Free Software
When people hear about 'Free Software' it would be surprising if they wouldn't wonder how anybody can make money from 'free' software. In fact most do and quite a lot of them have asked these questions out loud. It would be a worthwhile exercise to delve into the working of Free Software economics and for that we need to examine the concepts of Free Software itself. In addition to the economics we will also take a brief look at how it changes software development perspectives, how it enhances career opportunities, how it helps the local economy and how it is relevant for a developing country like India.
What is Free Software
The 'Free' in 'Free Software' is actually 'Free as in Freedom' and not 'free as in free of cost'. To distinguish between these two words, the 'Free' as in Freedom is normally F-capitalized and the second 'free' all-small-case. So Free Software is all about the Freedom that comes with Free Software. According to the Free Software Definition(http://www.gnu.org/philosophy/free-sw.html) published by the Free Software Foundation(http://www.fsf.org) 'Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software'. What does this mean?. It means that when you get a software either for free or for a price you get four basic freedoms, viz. the following.
If there is a question as to how this can really work then it has already been answered practically by the successes of the hundreds of Free Software out there. One good example is the GNU/Linux operating system which has grown big and capable enough to challenge other established proprietary operating systems.
The History of Free Software
Software industry as we see today did not exist in the 60s and 70s. During those days software development primarily happened in academic and research institutions. People who developed software were academicians who shared software and its source codes like they did with traditional knowledge. For them software was just another form of knowledge. People developed software, shared sources, shared fixes, made fixes and updates and then shared them as well. Software grew just like science did through sharing and accumulation of contributions.
All this started changing when commercial software development companies entered the market. But for commercial software sales to happen people had to stop distributing source code. Initially these companies got the developers to develop software for them and they were paid for their efforts. But in return they had to sign an NDA by which they were not allowed to share the software and its source codes with anybody else. Since there was money involved, developers started joining this commercial fold and the earlier freedom in sharing software slowly started disappearing.
Next the commercial vendors introduced the concept of licensing in software. Under such proprietary licenses the users of the software were not supposed to modify the software, reverse engineer it or access the sources or share the sources if they had access to it. Slowly they brought under the licensing regime large portions of software and sources out there. People could not make and share modifications if the software they were working on were proprietary. Earlier the flow of knowledge as software was happening freely but soon commercial companies were controlling this. Additionally it also took away the freedom that the developers enjoyed erstwhile and quite a lot of them were unhappy about this.
Most were unhappy but one man decided that he should do something about this. He was Richard Stallman of the Artificial Intelligence Lab at MIT. He decided that in addition to the commercial licensing system out there there must be a system that maintained the freedom and harmony enjoyed by software developers in the pre-licensing era. He then went about and created the concept of Free Software, its most popular license - GNU GPL, and a non profit foundation - Free Software Foundation - to promote Free Software. In addition he started one of the biggest Free Software projects out there, that of the Free Operating System - GNU('G'NU is 'N'ot 'U'nix), as a Free replacement to the Unix operating system which had become proprietary. One man's decision to stand against the giants, akin to Gandhiji's decision during India's freedom struggle, has proved to be monumental in the history of software development.
What makes a software, Free Software
It is nice to talk about the freedom behind Free Software but how do you pass this Freedom with a piece of software. A proprietary software or non-Free Software restricts the freedom of its users by the license it grants to its users. Most software users would be familiar with the End User License Agreement that comes up during the installation of these software. Through these licenses the proprietary software companies enter into a contract with the user that allows the user to use the software provided he/she agrees with the license. This is why there is an 'I Agree' button or checkbox during the installation of such applications. The license agreed to by the user makes him adhere to the restrictions mentioned in the license.
So any software with a license that violates or restricts any or multiple of the four freedoms mentioned above would make the corresponding software non-Free or proprietary. The Free Software camp uses the same strategy of licensing to ensure the Freedom that the software grants to the user. Unlike in proprietary software licenses the Free Software licenses, specifically grants the users the above mentioned freedoms. The Free Software Foundation has maintained a list of such Free Software licenses at http://www.gnu.org/philosophy/license-list.html. The most popular of these Free Software licenses have been the GNU GPL or GNU General Public License under which a very large number of applications have been released. The GNU GPL in addition to ensuring the freedoms for the users of the software also ensures that these freedoms get transferred to subsequent users down the line if the first user decides to distribute the software.
The price of Free Software and how Free Software Companies make money
One of the basic tenets of Free Software is that, the user who gets hold of a copy of a Free Software application, irrespective of whether the application was available free of cost or was available for a price, has rights to distribute the software either free of cost or for a price. Now this brings into the picture the possibility of an interesting price competition. Suppose a user who buys a Free Software application decides to sell the application cheaper than the seller from whom he/she bought the application and one of his/her buyers decides to do the same thing and if this goes continuously the price could theoretically drop to zero. This is not just a theoretical possibility but this is what normally happens to Free Software applications.
So how can a company who decides to develop their software under a Free Software license make money under such crazy price competition structures. There is no real 'best' way of doing this as the Free Software market is still a fast evolving market which has not quite reached anywhere close to maturity. Even then there are quite a few established ways of making money with Free Software. A few notable ways are 1) Offering Support 2) Multiple Licensing 3) Dual Versioning 4) Customization Services 5) Hosted Services. These different models are based on variations in licensing and on the services that are being sold with/to-complement the application.
The strategies mentioned above are only some of the popular methods in use. There are other ways in which companies generate revenue from the Free Software market and different strategies are still being tried out. It is a fast evolving market and only time will tell as to what is the limit of possibility in this domain. But one thing is sure, there is money in Free Software and there is quite a lot of it. It might be worthwhile to remember that one of the recent Free Software company acquisitions, that of MySQL by Sun Microsystems touched a billion dollars.
The cost of Free Software Development
Whether you are developing Free Software or proprietary software you have to invest time and effort in planning, designing, implementing, testing, fixing, updating and maintaining software. Each of these activities require some investment of time and effort towards it and time and effort equals money and this monetary value constitutes the cost of development of the software. Proprietary software companies recover this cost when they sell their software to their users. Now the cost of development of a software is always a finite amount and mostly calculable. So ideally the price of proprietary software has to fall with every sale as a part of the cost is being recovered with every sale. But this does not happen and the users keep on paying at a constant rate for this diminishing cost for ever which might sound a bit unfair for the user. Free Software business models makes a different and more fair pricing structure available for the users.
As mentioned earlier the Free Software price war would normally bring the price of the software to zero even before the cost of the software development is recovered by the company/developer. So obviously there must be some other way of covering the development costs and Free Software development models have found probably the ideal one. When a developer or a company releases a software as Free Software he/she/the-company is effectively inviting the large user/developer community out there to use the application, test the application, fix the issues with the application, and modify the application. This is totally different from the captive development paradigm used in proprietary software development. In this system a percentage of the cost of the software development, be it testing or bug fixing or new development, is being borne by the community in return for the right to use the software which they get when the software is released as Free Software. However the company/developer will still have to incur some costs in the process of software development, especially during the early stages and even through out the product life-cycle. The company or the developer would then have to recover whatever additional costs and their operational margins through one of the business models discussed earlier.
If this can be extended in an ideal system the complete cost of development will be borne by the community and the need of a company can be eliminated completely. Something similar is indeed happening with Free Software applications maintained and developed by communities. A good example would be the Drupal CMS mentioned earlier. However we do not live in an ideal system and a company with vested monetary interests can still drive Free Software development far more aggressive and normally better than typical community based Free Software development.
Technical Advantages of Free Software
When people write software, be it proprietary software or Free Software, they WILL introduce errors and bugs. It is because, well because they are human and humans make mistakes. Free Software development normally works through the contributions of users who are developers themselves. As opposed to this proprietary software development is and will always be done with a limited number of developers. During Free Software development there are too many eyes looking at a given piece of source code during a given period of time to let mistakes to pass through easily and this works much better than in proprietary software development, where there are far fewer people looking at a given piece of code. Supposedly the source code for the Linux Kernel is the most read piece of software source in the history of software development, the numbers running into millions. As opposed to this the leading proprietary operating system development team would be perhaps 10000-15000 strong and the kernel team would be far smaller.
So the first technical advantage of Free Software is its resilience to mistakes. It is not that Free Software does not have errors or bugs, but that they get mopped up pretty fast. Here is the second technical advantage of Free Software - the short life cycle of an error. Even when a proprietary software development team identifies an error they might not want to publicize the error unless the errors result in security issues. These would then normally be taken care of in the next update cycle. As opposed to this in Free Software development, if and when a capable developer comes across a problem it wouldn't take much time before the problem gets fixed in the repository. Now this fix would then be available to users who would like to get it fixed. Again the contrast increases if the errors where noticed by a normal user. For a proprietary software the error will have to go through the proper support cycle before it can reach the developer who might then just schedule the fix for the next update. This would happen only if the user decides to pay for support and report the error. In the case of Free Software all it would need for the error to get fixed would be for one of the many users to just let the community know that the error exists and someone in the community would take care of the issue just like in the first case mentioned above.
Economical Advantages of Free Software
The main economic advantage of Free Software is that it reduces or in fact takes out the financial entry barrier for the use of software. Software is only a tool for processing information. So taking out this barrier allows people from all sections of the society to take advantage of the power of Information Technology to advance their lives. It also opens up opportunities for entrepreneurs to set up shops with very little initial investments. This advantage of low initial investment does not have to apply to small entrepreneurs alone. It applies to enterprises of any size and of both public and private nature.
To really understand the importance of the economic advantage mentioned above we just have to calculate the cost of computerizing an entire country like India, computerizing as in - getting computers with required software to all the people and all government departments and agencies, and compare the costs of this process based on proprietary software versus that based on Free Software. The differences would be massive and such huge amounts of public money can always be put to other developmental activities if it can be spared.
As explained earlier proprietary software makes constant recovery of a diminishing cost. What this does is that wealth get accumulated at distinct points in the society without proper dissipation of labor or generation of value. There is nothing unfair about this as the transactions are purely voluntary. However concentration of wealth with few individuals or enterprises is never good for the society and it does not have to promote such systems. It is not that it has to fight such systems, or make it difficult for such systems to survive, but just that it does not have to spend public money in promoting such systems. So when government establishments invest in Free Software they effectively ebb the concentration of funds via the proprietary software channel.
The Free Software perspective towards Software Development
Unlike proprietary software development where information is withheld by the developing company from its users and subsequent developers Free Software is all about Free and Open information. This applies not just to Free Software but to Free and Open Technologies as well. With so much free-of-cost information out there it becomes less lucrative for book publishers, authors, training institutions to create content and offer training for Free Software and Free and Open Technologies. This in turn brings in the necessity for Free Software developers to do a lot of learning on their own and with assistance from the community. In addition, Free Software makes available billions of lines of code for the developer to see and learn. By learning directly from the work of the masters, the Free Software developers have an opportunity to become masters themselves. Add to this the fact that the Free Software community is a community based on meritocratic principles, there is a big peer pressure to learn, but there will always be people out there who will be able to guide new developers through this path.
Such a system creates developers who are self-sufficient - because they have to learn to do a lot of things on their own, competent - because they have to compete with other capable developers in the community and get peer reviewed on their code quality on a regular basis, ready & capable of learning - because they have to learn a lot of things on their own and they have to be efficient in doing it to be able to make use of their learning, with lot of initiative - because you have to be self-motivated and have lot of initiative to contribute to projects where you may not have any financial incentive. The proof that this is happening is that Free Software developers are in hot demand in big product companies like Google, Adobe, Yahoo etc and they get hired not because of their college background or because of their academic projects but by virtue of their profile in the Free Software community.
In addition to creating world class quality developers Free Software promotes an attitude of sharing of knowledge and a passion to contribute towards projects that benefit the public at large. Such an attitude enriches the society that he/she is part of. Additionally the level of development that we see around us would not have been possible if our forefathers had kept information to themselves instead of sharing it like they did. Human society has come this far only because people have shared common information, passed on knowledge to generations and collaborated on socially beneficial activities. So the basic attitude promoted by Free Software strengthens one of the core values based on which our society has grown to the present state.
Free Software and Career Opportunities
There are hundreds of Free Software companies out there looking for capable talent. These companies scout the market specifically for people who have strong profiles in the Free Software community. In addition there are even more non-Free-Software companies out there who are eagerly looking to hire capable Free Software developers because of their capabilities. Like explained earlier the Free Software perspective to software development that the developer acquires through participation in Free Software projects increases the market value for such developers. So just by being a Free Software developer, one can increase the prospects of getting better jobs than the competition. This implies that, even if the developer does not get a Free Software job per se, Free Software effectively increases the marketability of the developers and also their market value. If however they get a job in one of the Free Software companies out there, eg: RedHat, Sun etc, it could be considered a bonus in the above scenario. In either case the Free Software exposure adds an edge to the developers in their careers.
In addition to full fledged careers there are lots of bounty programs that invite people to come together for Free Software projects and contribute to the development and at the same time get paid for it. One of the most popular of these has been the Google Summer of Code project that invites students to take up Free Software projects mentored by the different organizations that Google has partnered with for this program. Through such programs people get a chance to get a feel of Free Software development and the pleasure of getting involved. These kind of involvements usually help the students/developers in their careers as the eligibility criteria for such projects are proof enough of their capabilities and such experiences are valued highly in the job market.
Free Software from the perspective of developing countries
For a developing country like India, one of the main attractions towards Free Software is of course the low initial investment. Software for a complete department or an organization can virtually be procured free of cost if it is Free Software. Yes there would be costs down the line for customizing, maintaining and supporting the software but the low initial investment part is always going to be an advantage for developing countries.
In addition to the cost factor there is another major attraction for Free Software. Once the software is procured by a department or an organization they will have to get somebody to customize and maintain the software for them. Who else could do this better than a local company. So such a system creates opportunities for local business to thrive and generate revenue out of Free Software. This becomes especially more relevant when the alternative proprietary software are developed by companies outside of the developing country. So paying for Free Software in such contexts will ensure that valuable capital in the developing country remains within the country to power the growth of technology inside the country instead of being pumped out of the country for the purchase of proprietary software.
Challenges for Free Software into the future
There is little or no organization between the different Free Software communities out there. For regular Free Software development this is not really a requirement. In this age of heavy government level lobbying, Free Software stands to lose in front of corporate interests of proprietary software lobbyists, unless the spread-out communities rally and voice their opinions. Free Software Foundation and associated organizations are doing a good job with this but there still requires national level community initiatives to prevent restrictive policies becoming laws.
It is true that Free Software communities breed geniuses but that is not really a requirement to be a part of the community, either as a developer or as a user. GNU/Linux distributions like Ubuntu has done quite a lot in this direction by mellowing the only-for-geeks image of GNU/Linux. This policy has to diffuse into the communities also to make them more newbie friendly and more welcoming for new users.
More generic training and support related enterprises should pop up before Free Software applications can be widely embraced by the general public. Without proper support and training infrastructure it will never become an attractive proposition for governments or private sector establishments to move to Free Software.
Conclusion
Free Software community has been slowly tackling each of the above challenges and many other problems one by one and has been gradually making inroads into the global software market over the 25 years the concept has been alive for. The progress has been pretty rapid over the last five years and at this rate it is going to redefine the way people and companies think about and develop software. Additionally the concepts behind Free Software has been translated to other domains and it has been gaining acceptance among non technical communities as well. A good example is the explosion of Creative Commons licensed artistic and creative content that is being made available online. If the trend continues it will not be long before the future arrives and Free Software becomes the norm. Let us wait and watch.
Edit:
Added a new section on history of free software. Thanks Ashik S. [09/03/05]
Added info about GSOC. Thanks Praveen Arimbrathodiyil [09/03/05]
Updated the history section with suggestions from Askhik again. [09/03/07]
Posted by
The Minking Than
9
comments
Bookmark:
Labels: Economics, Free Software
Wednesday, February 25, 2009
Change - Inevitable, Essential, Drivable
I have been planning to do this for some time but never got around to doing it. Now that I am down sick, I think I have just the right kind of peace and quiet time to sit and write down the full set of hypotheses behind Zyxware. This is going to be the first of a few articles through which I am going to explain the grand hypotheses and this one is going to cover the first axiom - Inevitability, Essentiality and Drivability of Change.
If you have noticed the mission statement of Zyxware, it says - "Be the change you wish to see in the world". A statement often quoted as Gandhiji's but originally exhorted by Budha. The central aspect of this statement is the change that we wish to see and then the exhortation to try to act to bring about the change through ourselves. Now what is this change?
The world we see around us is a very complex state machine. You can imagine it as a huge machine where an uncountable number of processes are in motion and an uncountable number of agents in action. Naturally there are some aspects about the way some of these processes and agents work that are good and some that are bad. There are some aspects that cause harm to the people involved while there are others that actually help people. There are some aspects that make life convenient for people while there are others that make life less convenient. Overall if you look like this you can see that there are different aspects of the world that are positive and negative from the perspective of humanity at large.
Now the world is not a static system. It keeps on changing. These changes can again be categorized as either positive or negative based on their direction. Positive changes make things better while negative ones makes them worser. We are more concerned about these changes because this is where we have some control and where we have some choice. The state the world is in is already past and, we can't change that; but the state the world is going to be in is to a certain extent controllable and within our sphere of choice.
Irrespective of whether we control these changes or whether we choose these changes they happen. That is because of the uncountable forces acting to drive these changes more or less randomly in the complex state machine that the world is. Randomly because the concepts of good and bad as applicable to us humans does not really have to bias the occurrence of a change as long as humans don't interfere with the change. From another perspective we can see that the changes are inevitable because the world is not a steady state system in equilibrium and the forces of entropy alone can continuously drive these changes.
Again the changes that are being discussed here does not really mean changes that are driven independent of the people involved. On the contrary most of the changes that we are concerned with are driven by people, mostly unknowingly or mostly passive, though there are others that are driven knowingly and actively.
We are not living the best lives that we can live in this world because of the problems and the negative aspects that we have talked about before. This means that it can be better, which would again mean that there can be changes that can make our lives better. Given a choice people would opt for a better life than a worser life. So that means that people want their lives to become better which would imply that they would want changes that would make their lives better which would again mean that these positive changes are essential. A corollary would be that people would not want the negative changes to happen.
Not all changes are within our control although there would be quite a large number that are within our control. Changes resulting from human decisions are almost always within human control. These changes that are the results of human decisions can be controlled by changing the decisions that leads to these changes. There are also another category of changes that are merely solutions to problems that can be deduced from the problems themselves. Getting these solutions or changes done would in such cases be just a matter of the people responsible deducing these solutions and then implementing them. Such changes are fully under our control and are completely driven by our initiatives.
Now if such changes are within human control then why are people not driving positive changes. There is no real answer to this but a simple explanation would be that you have to spend effort and resources to bring about these changes and that generally people would not want to spend effort and resources for such causes where the returns on investment is far higher for the society than for the individuals who put in the efforts.
The explanation about classification of aspects of the world and changes in these as simple positive or negative is too simplistic because it does not always have to be like that. A single change could have both positive as well as negative implications. The simplistic view is taken to give an idea about the differences between different aspects of the world and the changes that occur in these aspects. Additionally the simplistic classification as positive and negative also makes easier the explanation about the requirement to selectively drive positive changes and prevent negative changes.
Conclusions
Posted by
The Minking Than
0
comments
Bookmark:
Labels: Philanthropy, Philosophy, Zyxware
Monday, January 5, 2009
How to promote activism over Internet
As part of my campaign for social change, I have slowly been getting involved in different types of activism in the recent past, Free Software being one of them. Being a technologist, I have been trying to use Internet as the medium to promote the causes that I have been standing for. Although it has been used effectively elsewhere, I have realized that it is not so straightforward nor easy in Kerala/India. It is not that people are not interested in the causes, nor that they don't have Internet access, but that they are probably not aware that they can contribute to the causes over the Internet. In this article I discuss on how to effectively contribute to and hence promote activism of any kind over the Internet.
Emergence of Internet as THE new age media
Internet has emerged as one of the most, if not the most, powerful mediums of communication of this age. Two aspects of this power is in the scalability and the low cost of entry for somebody in using this medium. If you can reach out effectively over the Internet, the cost and effort in reaching out to a 100 people wouldn't be that different from the cost of reaching out to a million people - hence the scalability aspect. Add to it the fact that the absolute value of this cost is far lower than traditional mediums and you have a killer medium, you have the low cost aspect.
During the initial days of the Internet, people used it primarily to view content available on the Internet generated by a few. So there were a few content providers and a large number of content consumers. This was quite like traditional media like television and newspapers, where the content consumers far outnumber the content providers. People also used Internet as a plain one-on-one communication medium as through emails, text chat, voice chat, video chat etc.
The emergence of the concept of user-generated content corrected this imbalance, and opened up the possibility of everyone who can get online becoming an information provider. What this did was to take out the control of a few people over the information that was available over the Internet enabling people to offer alternative and dissenting versions on topics already offered and also offer information on topics not covered/censored by established media.
Why Internet?
How can this help activism? How can this help a particular cause? The single sentence answer is that you can contribute towards activism for a given cause by generating content related to the cause and through this content letting more people know about the cause. Activism and social causes are really movements by a minority in the society who want to bring in changes into the system. Traditional information providers would normally be reluctant to act as channels for broadcasting information about such minorities because of market forces and market interests.
This is the gap that Internet can fill by acting as a neutral medium of information exchange. By being a neutral but meritocratic medium, Internet also offers the possibility and the opportunity, for people with initiative, to magnify their efforts and reach out very efficiently to a very large audience. Thus even when traditional media does not cover a specific item, Internet can effectively take this information to the masses.
Theory aside there are certain strategies that you can follow to do exactly this. But before we look at the strategies, there are certain attitude prerequisites required to be able to effectively embrace these strategies. We will take a look at the attitude aspect first.
Attitude you have to build for contributing to causes over the Internet
1) Build an attitude of inquisitiveness and collect facts and information related to the topic - Such an attitude helps not just the social causes you stand for, but also in moulding responsible and intelligent human beings out of you. Additionally, this attitude is probably the most important attitude that you require to progress in your life, in your career and wherever you are. Life is a continuous exercise of learning, you die the moment you stop learning.
2) Be bold and state your opinion - Once you have the required information about the topic you should be able to think about the topic and build your opinion and conclusions about the issues under consideration. The next step would be to take this out into the open through what ever online systems you can reach and then engage in healthy discussions around these. Only through discussions and deliberations will we be able to sort out differences and take decisions to embrace change and move forward.
3) Take initiative to spread the word - The contribution that we are talking about primarily means contributing towards spreading the word about the cause. When you stand for a cause or approve of a cause, you do not help the cause in any way if you remain a silent listener. You can claim to be an active supporter of the cause only if you engage in spreading the word about the cause. Outside the web such an activity will require reasonable physical exertion which could be claimed as an excuse for not contributing. But on the web there is practically very little effort that you need to put to get the word around. So it is just a question of your initiative. Take initiative and spread the word.
4) Build a strong online profile for yourself and make your voice be heard - Even though the web is a level playing field, those who play well will always have an edge over those who don't. So learn the tricks of the trade and play well to be able to magnify the effect of your contribution. If you have good visibility on the web, the chances of you being heard will be higher. So put some effort in building your online profile. Once you have this visibility, you can use it to promote causes you stand for.
Specific strategies you can use for contributing to and promoting causes over the Internet
1) Participate in Online Communities, Mailing Lists - Participating in online discussions over forums, mailing lists, irc channels are the easiest way to contribute towards the causes. Healthy discussions will encourage people to think more and to get clarity on the different aspects of the causes they are standing for. This clarity will further help in clarifying the issues for people who are not already in these lists. People very often oppose causes because they do not have very clear ideas about the causes themselves. So participating in such online discussions will help in breaking a lot of these mindset barriers of these causes. Even if you do not find a community/cause you would like to stand for, you can still participate in groups where you naturally are a member of like your alumni mailing lists, your professional mailing lists etc. You can then use the access to these lists to further the causes you stand for by letting your friends in these other lists know about the causes.
2) Use Social Networking Sites for your cause - Online Social Networking is a phenomenon that has gained quite some popularity in the recent years. Such communities and systems like orkut, facebook, myspace etc give access to collection of individuals who share similar ideas and passions. Interested people can create communities around causes they like and connect with people who share similar interests. So without requiring the physical effort of actually meeting each other these communities allow such people to efficiently collaborate for causes. You can decide to pursue your own causes using these systems or join causes for which communities already exist. Alternatively you can also become part of other communities like your alumni groups, company groups, career groups, professional groups etc and then use the access to these groups to spread information about the causes you stand for and the groups they can join to contribute.
3) Effectively use Social Bookmarking and help the items get public attention - Social Bookmarking is yet another way of sharing with your friends, links to pages that you think deserves attention. Social bookmarking also gives you the option to categorize the links so that your friends will just have to look out for links related to areas that they are interested in. In addition to letting your friends know of the links, social bookmarking also manages to classify using democratic means the content that are being bookmarked by people. It classifies and at the same time identifies popularity of the content that are being bookmarked by virtue of the number of bookmarking a particular link. So if you want to promote a website/page with information about the cause you care for, bookmark it in your favorite social bookmarking system.
4) Blog about the event, activity, activism - A blog is no longer a personal web log, it is your personal online news channel. There will always be people around you who will monitor your blog, i.e. once you have a blog. If you are really good with your blog you can even reach out to millions of people across the world. In any case you can use the blog to let these people know about the causes you are standing for, the issues you are facing around these causes, the kind of support that you need from these people etc. A blog also gives you an opportunity to point your readers to relevant blog posts on other blogs and other websites that you think they should also get to know.
5) Mail your friends about the causes you are standing for - This is probably the most expensive way of contributing (in terms of time spent per target person) to a cause but the return on investment of time could be equal or higher based on whom you decide to mail. You might want to pursue this strategy with people whom you think could massively impact your cause. For example writing about a legal cause to a friend in the legal practice who can let his friends in legal practice know about the cause. You would also want to pursue this strategy to let critical officials know about your causes. When you mail people it would always be good to point them to some permanent URL on the web where the recipient can go and get more information.
6) Link to other blogs and sites where the topic is being discussed - The internet is a huge mesh of web pages interconnected by hyperlinks or links. The importance of web pages are decided by several factors like the content on the page, the title used, the organization of the content, the number of pages that link to that page etc. There are questions about the relative importance of each of these factors. However, of these, only one is directly within your control i.e. the number of links to a page. If you see a website or a page which you think need to be promoted you have to link to it from your blog or website. It is like voting for the page and saying that - yes you agree with it. You could also vote for a page and say you don't agree by linking with negative terms in your link. The more links that a page gets, the more people will get to know about the cause and the more easier it becomes to promote the cause. So when you see something that you agree with and want to promote, blog about it and link to it.
What we have discussed here is not the exhaustive set of attitudes and strategies that you require to actively campaign online. But these would give you an indication of what all you could do online. Use this as a starting point, read more and figure out yourselves how best you can contribute given your time and resources. So as the zen saying goes - find your own way. If you have questions or suggestions, feel free to comment to this article and I can try to answer them in the best way I can. Before I close this discussion, I have to issue a warning note, you should be very careful in implementing these strategies as there is very little margin between online campaigning and spamming.
Suggested Reading
http://en.wikipedia.org/wiki/Online_forums
http://en.wikipedia.org/wiki/Electronic_mailing_list
http://en.wikipedia.org/wiki/IRC
http://en.wikipedia.org/wiki/Social_network_service
http://en.wikipedia.org/wiki/Social_bookmarking
http://en.wikipedia.org/wiki/Blog
http://en.wikipedia.org/wiki/Backlink
Posted by
The Minking Than
1 comments
Bookmark:
Labels: Activism, Information Technology