Saturday, August 14, 2010

Thoughts on OS

OS design has not changed much from what we read in the text books. This says a lot about progress in Operating Systems. Yes the OS has become much more complex, much more efficient and much more faster, but we have not changed it fundamentally for a long time now. The computing industry as a whole has had a fantastic run in the last two decades but somehow OS was missed.

Here is my vision for the next generation of Operating Systems.

  1. OS is free and can be open source.
  2. Applications can only be installed via Application Store (iPhone/iPad Model). Someone verifiable owns every application that runs on the OS.
  3. Application updates are owned and installed via Application Store. No need to write your own update installer and delay system startup.
  4. Non Application Store owned Applications run in Virtualized Environment. To make sure you can run your hello world.
  5. Applications are all free to install, with may be one month trial period and zero commitment. No need to ask for email address and how you found us to get a license key. OS ensure that your application is not used without user agreement to pay for the services.
  6. Applications are charged by usage. OS defines usage.  Applications define charges. The usage could be how much time the app was running or was being viewed or interacted with or amount of data saved or amount of memory used. 
  7. Applications can use user data, with users permission. Access is defined and controlled by OS. Don't store everything about user in your own format. Use what user has already defined. This could be font sizes or my picture or folder to save things or auto backup policy, etc
  8. Applications can add new system calls and interfaces. Other applications can use those "system calls and interfaces". These higher level "system calls" can be the basis for new Applications. This is the API model. First everyone was making websites and now everyone is exposing API's. What if the API was dynamically available in the OS itself and instead of people writing new websites using the API, used the same API to build native applications.
  9. The higher level system calls can be local as well as remote. Thus Applications would have the choice of implementing these system calls by sending over code to the OS or ask OS to send over the API arguments to the remote service.  
  10. Every one in the API stack is paid by usage. If someone writes a good cypto algorithm and tons of applications use it, he is paid, even though he never created an application in the current sense of software development. My dear dear open source developers would finally avoid putting GNU license in the code and can easily make some money. 
I guess the place I am coming from is that instead of making browser the OS, why not let OS be the browser. It is much better place to implement the functionality that browsers are being called upon to support.

The other problem worth fixing is the licensing. SaaS providers have done a good job but the problem is everyone needs to handle the scalability aspects of it. If OS could handle the subscriptions based pricing, SaaS companies can let the code run on the client machine itself. Downloaded software is the best scalable software architecture I have ever seen.

Yet another problem is the open source free software. I hate it. Well not exactly hate it but it is unfair. Developer should get credit for the software he writes and hence the whole concept of higher level system calls. Write whatever part of the software you are comfortable with and OS will ensure you get the money when someone decides to use it. The app store funda essentially ensures responsibility for your software. It is like a license to drive a vehicle..doesn't prevents accidents but everyone knows whom to blame. More than OS, what I am proposing is a business model for open software development. Don't worry about marketing, don't worry how you will get the money, don't worry how to patch and upgrade the software, don't even worry about scalability -- just write quality software. Reuse what you can from existing "high level system calls" without signing deals and just focus on getting things done for your customer. Amen.

Sunday, August 08, 2010

Home Loan Switching Charges & Floating Interest Rate

Why do they exist in the first place? They conflict with the basics of capitalistic society. The basic idea of capitalism is free trade. I want a product or service and I will pay for it. The fair price is decided by market forces. If someone else provides the same product or service at a cheaper price, I would like to buy from other player. Home Loan Switching charges create a barrier in making such a choice. If this was allowed we would see lot of Home Loan Switching and perhaps better interest rates. Basically make the market fair at least.

Floating Interest Rate is another faux. It is decided by the bank. It can vary from customer to customer. It looks nice to negotiate 8% at the start of home loan, but three months down the line bank is free to make it 11%.  If it were a function of loan amount or duration, I would understand it, but making it an arbitrary measure which is solely control by bank is as stupid as banking can be or as smart as banking can be, depending upon how you look at it.

Come to think of it, I don't like the concept of loan at all. Yes I know how good it is because it lets you buy house and stuff and it will take you long time to save enough money if you do it without loan, etc. The place I am coming from is not their should be no loans, but loans of different variety. Investment is a better word. This is how I believe this should work.


  1. Banks can invest in my home.
  2. They get a share of the house. To start with it could be 80%-90% depending upon the "investment amount" 
  3. If I sell the house before construction is complete or at any point in time decided by me, bank get money proportional to their share in the house.
  4. I can always buy back home shares from the bank by paying money to the bank any time I want and as much as I want.  The price for share depends on the current price of the property.
  5. Until the time I pay back the full amount, bank gets the percentage share of the rental income I get or I can get from the property.

This approach solves few problems.

  1. No interest.
  2. Banks take higher risks and get higher returns and so do I.
  3. Unless sold, the real value of the property is rental. That is all that I have to pay to the bank (as per their percentage)
  4. If at any point, I feel that the property is not working out for me, I can easily sell it off and bank will help me with this, so that both me and bank can have comfortable exits. If the property rates crash, banks suffer as much as me.
  5. Property rates will be reasonable. If the value of property is 10 lakhs, banks don't care it you buy it at 15 or 20 or 50 lakhs. The more the better, because they get more money. When banks end up owning 90% of the property, they will work with the builder to get better prices for the customer.
Hope government makes it a regulation or someone with enough money decided to do it this way. Their is lot to do to make this habitable.

Related - Where is money? and Frequency of choice and Reinventing money

Wednesday, July 21, 2010

Science & Observation

This is how science works:
1) do experiment  & observe the results
2) develop a hypothesis which explains the results
3) done...until someone observes something that cannot be explained

What if we cannot do the experiment? Like switching from democracy to something else? Or making drugs legal? etc. What if the duration of impact of the experiment spans lifetime of an individual and makes it impossible to observe. Any experience whose patterns "size" is bigger than the amount of time we spend in that experience would remain a mystery for us. While stuck in a traffic jam we can wonder what is causing it, but we cannot really know what happened because we will only be able to see anything when the jam is over.  Does a software rewrite makes sense for a startup? If the startup runs out of funds before completing the rewrite or never does a rewrite because of fear that it will run out of funds, the experiment remains incomplete.

The only way to understand such patterns is via communication.  I am using the word communication in the extreme sense. Not restricted to just people talking, but newspaper, history, journals, blogs, tweets, etc. Don't know how theory of relativity looks when we add the extra element of communication between observers into it.

Wednesday, July 14, 2010

Agriculture

Agriculture is a high risk business. It is probably also low returns business. And most of rural India does agriculture for living.

  1. Loan from Government (Private Banks don't give loans to small farmers)
  2. Weather predictions, untimely rains
  3. Lock in, can only grow one thing at one time
  4. Access to electricity, water, quality seeds,  fertilizers, etc
  5. No access to global demand/supply patterns. No collaboration.
  6. Intermediaries involved in final sale. 
  7. Transportation costs, storage costs.
So many things can go wrong in a single cultivation cycle and even if that doesn't happens other conditions  can cause losses. Every (few) years, government ends up waving off the loans to support farmers. Diesel prices are kept artificially low to help farmers. No income tax on income from agriculture. In Punjab government gives free electricity to farmers. It is magical at in spite of all these measures, farmers continue to live miserable lives. Agriculture is an important and big business and yet the farmers who takes all the risk and government pays all the loans from tax payers money and it is the intermediaries who make all the money.

I believe we can do this better. Agriculture Micro VC - AMVC

  1. Like any high risk business, agriculture should be driven by investment and not loan. AMVC invests in farmers every season. The funding depends upon final share of the output. If the final produce is less, AMVC bears the loss. If produce is good, both farmer and AMVC makes money. 
  2. To make it high return business, we need AMVC who could operate at a large scale to cut out the intermediaries. The difference between price to farmer and price to final consumer is anywhere between 3X to 6X. AMVC should represent its member farmers to operate as a BIG farmer who could have much more negotiating power than individual farmers. Moreover the time of harvesting could be decided subjected to deals/sales to cut out the storage requirements and unnecessary transportation. 
  3. AMVC should have access to what the local/global requirements are can control what is cultivated and in how much quantity. Every body cultivating the same thing, only brings prices down and losses for farmers. By helping farmers decide on what to cultivate based on what others are cultivating, farmers can cut down their losses because of high supply/low demand problems.
  4. Since it is AMVC whose money is at stake all the time, it becomes its responsibility to do everything necessary to make sure that farmers are successful, because that is the only way for AMVC to be successful.
I don't know the specifics of the agriculture industry, but I feel AMVC model can help in uplifting farmers and reducing the risk burden they carry all the time. 


Probabilistic Voting

Voting based on majority has one problem. Majority wins, always.

This is not a good thing as the whole idea of voting is representation. Majority based voting will always cut out the minority. Instead, consider probabilistic voting. Instead of making the decision based on majority, if the votes only decide the probability of decision, then the final outcome can be anything except that majority decision will be chosen with high probability. This ensures representation of all classes and over a reasonable number of decisions each class gets probabilistic representation.