Friday, August 12, 2005


On the one hand we see continuous exponential growth in computing capabilities of hardware as doubling of clock frequency, doubling of memory, bandwidth, number of cores etc. On the other hand we seem to be working harder and harder to please the computer than the other way round. Yet another amusing fact is that few people realize that the processor is idle most of the time in-spite of all the bloat-ware we run on it.  A search indexing service like “Google Desktop Search” is an example of a program that utilizes this spare processing power to make the life of user a little more pleasant. Here is a suggestion to take that one level further.

Yet another interesting application is dashboard or implicit query as Microsoft calls it. It actually enhances the user experience by proactively suggesting relevant and useful information based upon what the user is doing at that moment.

The computer deals with a huge set of files. It has no clue about what each file actually represents and its importance with respect to the user. Each action performed by a user implies a lot of things about the relevance of a certain piece of data to that person. However such information is typically never captured.

  1. The importance of a document depends upon the number of times it was seen by the user. Here ‘seen’ is an important word. If the user does not see it, it does not matter in the imaginary universe of the user.. For Eg a configuration file that the user indirectly uses but has never seen, is irrelevant from the user’s point of view… However a configuration file that was edited by the user is very important to him.

  2. The duration for which the document was open indicates its importance to the user.

  3. The importance of a section of a document depends on the amount of time that section was visible on the screen.

  4. The importance of a section of a document depends on the amount of visible area allocated to it on the screen..

  5. The portion of the document that the user edits is more important to him than some portion of a document he just glanced at.

  6. Every single keystroke, every single mouse click, every single meter of mouse movement that was physically done by the user is much more precious than Gigabytes of junk he copies in and out of the system.

  7. The stuff that he dealt with more recently is usually more important to him than the stuff that he dealt with in the distant past.

  8. Error messages that one frequently encounters are more important to the user than a huge list of errors that could possibly be generated.

  9. A folder that a person keeps visiting frequently is more important to him than some subfolder in some installation directory he has no clue about. Here visiting could mean navigating through a file open dialog or using the windows explorer or File Manager or other utility or could be a cd using the command prompt.

In this context I introduce a (possibly) new concept. I call it view rank. The above mentioned heuristics at judging the relevance of data could dramatically improve the relevance of the hints and clues provided.

I call the above heuristics as viewrank. Each section of each file has an associated viewrank. When you use Google Desktop Search you could possibly say “Sort in the order of importance to me.” This would actually sort results in the order of the viewrank of the documents.

How many times have you muttered to yourself… I have seen this somewhere on my computer. I don’t know when and where. Now you can have a feature that says “Search in all documents and files that I have seen at least once and arrange it in the order of my viewrank.” It must be obvious to you that the number of files and documents you have actually “spent time with” is a very small subset of all files that exist. Thus you are much more likely to get the perfect hit. For Eg. You would have spent a lot more time on your resume than a leave letter.