Tuesday, December 15, 2009

Google Gears gone!

Google has decided to stop development of Gears in favor of HTML 5. This is definitely the right move from Google towards standards.

People who do not know what Gears is all about, here is a quick summary. Gears is a browser plug-in with programming APIs to support data storage on the browser without connection to server. It is used by Gmail, Google Reader, and many other applications to provide "offline" capabilities. HTML 5 provides several of these features as part of the standards.

Almost no browser today fully support HTML 5, but the promise of HTML 5 is surely something all of us are looking forward to.

Monday, November 30, 2009

Chrome OS Project Released

Google released Chromium OS project. In another year they promise initial release!

Primarily it is a Linux OS with custom firmware and a single application which is a custom Chrome browser!! All other applications are within the browser, accessed through a URL. So, in essence, you access any website that works under Chrome and you can mark that as an "application" or just browse as you do. Of course, some neat enhancements are done to Chrome browser (which is the container for all apps) to support windows, windows groups, etc.

Unfortunately "all" data will be in the cloud. I am not sure I like that fully. I think if they want to be successful, they should also support some local storage (USB, SD Card, etc.). Most productivity data can be in the cloud. But, not supporting any local storage may not be a good strategy.

Google promises that the boot time (they call Fast Boot!) will be about 3 secs!!! Devices that are specialized (netbooks, kiosks, etc.) could really come alive using a light weight, fast, and secure OS that can seamlessly integrate to the web.

I still wonder why Google is trying to develop 2 separate OS though. Why not use Android for larger screen devices? It has all the necessary elements such as a nice touch enabled UI, productivity apps, full SDK, a clean security model, all kinds of network connectivity, built-in browser, and more. Android is also based on Linux. Why not simply make Android run on an x86 machine with larger screen resolutions? Why another OS?

I would love to see Android running on a cheap Atom based machine that costs less than $200 with a 12" screen that can be fixed onto my fridge that can call, keep track of notes, reminders, manage contacts, and everything else including custom apps!

Check out the demo video http://www.youtube.com/watch?v=ANMrzw7JFzA and track its progress on their home page at http://www.chromium.org/chromium-os.

Wednesday, September 16, 2009

Microsoft Doloto

Those who have built rich, highly interactive, Ajax applications, tools like these are surely a boon. As we know, next generation interactive web applications are built primarily using XHTML, JavaScript, CSS. Number and size of these files grow rapidly as the application grows. This is where tools like Doloto comes in handy.

Microsoft research has put up a new tool called "Doloto" to tune the download performance of these files especially JavaScript. This tool profiles the application, converts the method calls into stubs, and as these are actually called, downloads them. This allows large applications to not download full files before it can even start and does a lazy download. If you are a developer who builds highly interactive, rich, Ajax based applications, check this tool out.

Interview with Chairman UIDAI

Nandan was interviewed by Thapar as part of CNN-IBN's program "Devil's Advocate". Thapar surely asked all right questions except the UK card part. I have spoken to several people and everyone believes no such program can succeed unless people find a good reason to have them. In UK, no one knows why they should have a national ID. Same goes in US too (they eventually are not doing any similar projects except in the case of immigration or FBI).

In India, we keep aside 1000's of crores for pro-poor programs and we don't even know who is supposed to get. Only if we know who the people are, we can hope to reach them effectively. UID project attempts to identify these "face-less" people of India and provide these benefits to them directly through a micro-banking account. This can save huge sum of money for government and we can make sure it reaches the right people. We currently pay pensions for people who have died long back and we provide ration cards for "ghost" residents! I think UID will allow most of these systems (PDS, NREGA, LIC, PAN, etc.) be more efficient and hence be a self-sustaining system.

Here is the interview video link. have fun watching!

Cloudloop - a Universal API for Cloud Storage

It was expected sooner or later. With all the rush and hype towards cloud computing, it is important that a common API layer for access to resources in the cloud is developed. That's exactly what Cloudloop has done. Currently applications wanting to write applications that can access cloud file system need to write different code for different providers and having an abstraction layer above specific implementations make it much easier for these applications. Currently this API is restricted only to storage in the cloud. There are several providers such as Amazon, Microsoft, etc. who today who provide cloud storage and Cloudloop provide a clean standardized API layer on top of these providers.

For the people who do not know what cloud computing is, it is a mechanism by which software applications and computations are done in the cloud or simply on computers connected on the Internet compared to servers inside your private network. Of course, this is a minimalist definition.

I really do hope to see lot more such APIs evolve and eventually a standardized cloud computing platform. I am sure they will evolve soon since no one wants to develop applications for the cloud and get tied into one of the providers. This is no different from the way J2EE standard evolved and made the life of application developers easy compared to life the 90's where we were writing different code different distributed computing platforms.

Sunday, September 6, 2009

Interesting Patents

These days anything can be patented, like "Method of Swinging on a Swing", or "Method to watch TV, talk to your wife, and work at the same time" (by the way, I am planning to patent that!). World patent system, especially USPTO, has become an overworked and revenue driven institution that require a complete overhaul.

This week I came across 2 interesting patents - one from Google and one from IBM. Google patented the classic "search page" with a big text box in the middle with minimal buttons. Yes, this is for an HTML page with a text box and couple of buttons. Be careful creating simple HTML pages, you may be in violation of something!

Second was more interesting. IBM patented a gadget such as TV remote that can Tweet and participate in other social conversations. Yup, you don't even need to type in anything. With a click of a button, you can post what you are watching to your favorite social networking website. I am sure, this will surely start an avalanche patents such as "cars that can tweet where you are going", "microwave that can tweet what you are cooking", and so on. See the patent automatic blogging while media viewing.

As long as patent lawyers exist and they drive the reforms, I doubt we can see any improvement on mad rush for patents and lawsuits. I am all for patents to drive innovation and do believe credit should be given to inventors. But, I am totally against patent enforcements and lawsuits. It's time for an "Open Source Patent" system.

Start-up Experience

Last time, way back in '96, I landed up in Boston just before spring to be part of a start-up. We were about 4 people in office sitting around and dreaming big. My role was to imagine, design, and architect our eCommerce product for sell side and buy side collaborations. Devdutt, our CEO, was surely ahead of time in ideas and he kept me on my toes to get the system done in 3 months (I had to come back to India end of 3 months!). Amazingly enough we were able to achieve all that including a sale to Rockport (Now part of Reebok).

Even with all the issues, I think start-up environment somehow inspires people to produce way beyond what is normally accomplished in large companies. Our office was not fancy at all and we barely had the luxury to indulge in expensive employee activities as large companies do. We had no typical frills such as gym or game room, but, we still ended up spending long hours at work. It was sheer excitement of creating something new from scratch believing in the ideas.

Now, I find myself again in very similar environment (except the fact that I have grown older!). Our office, a corner of an apartment, is where we come together for work, sitting around couple of makeshift tables, and going through intense discussions. Unlike last time around, we are better equipped in terms of laptops, broadband connection, and heavily collaborating electronically (thanks to free email, chat, and open source tools!). We are surely having fun and doing all that we can (even with lots of constraints) and trying to pull off an enormous task in a short period of time. I am getting a distinct sense of déjà vu!

Sunday, August 30, 2009

Interview with Nandan

An NDTV interview titled "Nandan's New Identity" aired on 29th Aug 09. In this candid interview, Nandan, chairman of UIDAI, talks about his experience so far, his objectives, and the approach he is planning to take to implement such an ambitious project. Watch the video.

If you can't see the video embedded above, watch it on NDTV site.

Saturday, August 29, 2009

Data Privacy

Privacy is a significant issue when it comes to personal data. We worry about it all the time. But, in these times, everything seems to be out in the open. Marketing agencies get hold of all our profiling data (demographics, transaction history, etc.) and pitch new products every day. Now when we talk about creating a common database of billion plus people as part of UID effort, first question that comes to our mind is "how safe will be my data".

It is imperative that privacy is taken seriously and built into the architecture to secure the data. But, at the end of the day, do the bottom of the society really care of their data privacy. I feel that educated upper class has the basic needs taken care and we have the luxury of debating all these. But, for the poorest of the section, it simply does not matter, at least for now. Eventually, when their basic needs are met, they will surely start worrying about these issues. But, that is several years away.

But, one way or other, when designing a system such as UID, data privacy should be of utmost importance from a system design perspective and cannot be compromised. Securing the data, avoiding tampering, and most importantly completely protecting data from leaking out are all part of architecture design we need to go through. Other aspects such as laws and policies surrounding the use of UID data are also critical.

Monday, August 24, 2009

Addressing Standards

Have you noticed that, in various forms used in this India, we capture addresses in varying formats and structures? For example, address fields in Passport form is quite different (in format, structure, and even terms) from those in, say, PAN application form or Voter ID form. That is because we have not yet standardized address structure.

This issue is significant whenever we capture addresses in a database. Of course, we can always have generic address fields. But, that neither allows us to compare one address to another nor it supports automatic address verification against a master set of address database. That means there is absolutely no clean way to say if two addresses are same.

Several countries have standardized addresses and made it completely machine readable and interpretable. For example, in United States, USPS (Postal Department) has gone through extensive exercise to standardize delivery addresses. Zip codes which went from a 6 digit number to a 6+4 system were part of this. Street names, town names, state codes, etc. are all standardized. See an example address (courtesy USPS):

Building have assigned numbers and building types such as apartment, building, etc. were identified by predefined codes (such as APT, BLDG, etc.). See Publication 28 on their website if you are interested!

UPU (Universal Postal union), established in 1874, is the largest physical distribution network. At the time of this writing, there are about 190 countries who are members of this network. UPU has taken effort to standardize the addresses (domestic and international) and the specification, called S42, along with PATL (Postal Address Template Language) are available for various countries to adopt. It is quite extensive and talks about next generation addressing including "Geo" addresses. Countries are expected to create a template for specific use and mapping those template fields to the S42 standard fields. This specification is quite detailed.

Indian postal department is a member of UPU and is on its way to create next generation addressing and extended pin codes. It may take few years to come to effect. But, we are absolutely in the right path. And as we implement this huge UID database with billion plus addresses, we surely need to be aware of these.

Friday, August 21, 2009

Whats in a name

"What's in a name? That which we call a rose
By any other name would smell as sweet." - Romeo and Juliet

Juliet tells Romeo that name itself is meaningless and she loves the person for what he is and not for what his name stands for. Now you must be wondering what this has to do with UID! Actually nothing much except the fact that I wanted to write about one of the issues we are dealing with as part of UID.

Indian names can be from a single word to many words and naming styles vary from region to region. So, how do we map these to a standard structure such as "First Name - Middle Name - Last Name"? Why do we need to map, you may ask. If we do not map names, addresses, etc. to machine interpretable data, we will end up with the same mess as other existing systems. For example, if we capture name as a free flow text where a resident can fill anything, "Ram Lal Sharma" will be different from "Ram Sharma" from "R.L.Sharma" from "Ram Lal S." and so on. And treating these are different can end up with many records of same person because system interprets them as different.

That precisely is the reason we need to be able to structure names as much as possible. Of course, since we have no clear definition of what goes in First Name or Last Name fields, it is still possible for residents to swap them (managing uniqueness is altogether a different issue which I will one day talk about). But, if we have fully expanded and structured names, we at least have some hope of doing "fuzzy" comparisons to identify matches.

More than the technology issue, how does one person actually know what to fill (the upper strata of the society, the educated ones, have it all easy!) in these fields? We need to demonstrate with examples and suggest how to go about mapping their names. Eventually, since UID is expected to cover everyone and become part of birth certificate, we hope that people will start thinking names in this fashion.

We cannot consider name as part of a primary identifier for a person. What do we do with one word names, say, "Krishna" with no middle or last names? What do we do when they change their names, say after wedding? Or change because of some one told them that changing name from "Karthik" to "Kaarthick" will bring them good luck! All these need to be thought through as we build the system.

One thing is clear. Although we cannot depend on the name for any logic, we still need to try getting as much structure in place in all these attributes still supporting all the quirks. Good fun indeed!

Tuesday, August 18, 2009

UID Numbering in Indian Context

Now that Nandan has talked about some details (see my earlier post) on UID numbering, I wanted to share some interesting thoughts on numbering.

As he said, ID itself is going to be a random number. But, how random? I suppose we will surely create non-sequential, random numbers from a large and sparse domain (total set of all possible numbers with a particular number of digits). We surely don't want one up numbers for everyone in a village, do we? Why Random? We believe that this number should not be derived from any personal information.

Should it have alphabets too? We decided not to have alphabets (and hence Nandan's reference to number). It is just easier since most folks in India don't read English and alphabets just look like another picture to them!! We can as well use a picture of an elephant or a flower, they wouldn't care. Numbers are also tough for pure native speakers. But, we need to make some decision, I suppose.

How big the number should be? Especially if we want non-sequential, non-reusable, random number to cover for next 100 years?! World population is predicted to be at around 9 billion in next 30-40 years, if we have more than about 12 digits, we should be really good. We are still in design. So, no details I can share yet.

Now comes the real fun part. Everyone wants (especially our VVIPS) an "interesting" number. What interests them can be different too. For example, I have heard that no one wants a number that adds up to 8 in Tamil Nadu for some numerology related issue. This can be daunting if we have all these people coming back and requesting for another number. What about other "good looking" numbers such as 1234... or 1111... etc. If we can't avoid VVIPS insisting on these, may be UIDAI can officially "sell" these special numbers and make some money!!

In India, we seem to find a meaning in a random number. So, it's going to be a challenge indeed!

SpringSource gone!!

WOW! This was indeed the news I am not sure how to interpret. SpringSource is acquired by VMWare (see http://blog.springsource.com/2009/08/10/springsource-chapter-two/) for about $400 million! I recently narrowed down on Hyperic application management solution and by the time we looked they were acquired by SpringSource. Now, by the time we made up our mind on OEM, they are gone too!!!

At a top level, this seems to be appropriate for VMWare to add all those capabilities. But, not sure if all its offering makes sense to VMWare stack. Anyway, I hope Hyperic is retained and extended to support full VM stack management.

I wonder where this ends. Before we realize, consolidation is happening...

Monday, August 17, 2009

Bhuvan from ISRO

ISRO has launched Google Earth equivalent called "Bhuvan" (see http://bhuvan.nrsc.gov.in/index.html). It provides several features such as
  • 2D and 3D visualizations
  • Fly to a place and 3D fly through
  • Various navigation options
  • Multi-layer (compared to single layer in Google Earth) and supposedly zoom up to 10 meters!!! Google Earth restricts at 100 meters.
  • Lots of custom 2D and 3D drawing options such as Polygons, Text, overlay of other 3D models, freehand marking, etc.
  • Updated every year unlike Google Earth.
Users need to register on this site and install an IE plug-in (.NET based), yuck! But, that's the only option at this time. I really do hope we will see other browser support without plug-ins. You should surely check it out.

I am impressed (and somewhat concerned) that they are giving views up to 10 meters! I really need to think twice before walking around on my terrace!