Moving right along, world-class software systems always have an extension language and a plug-in system — a way for programmers to extend the base functionality of the application. Sometimes plugins are called “mods”. It’s a way for your users to grow the system in ways the designer didn’t anticipate.
– Steve Yegge, The Pinocchio Problem
My last post was about indexing features of Google’s Desktop Search. A lot of what we see out of Google’s Inside Google Desktop blog focuses upon the Gadgets. It just happens that Google also published a patent application on their plugin system this last week, too. The gadgets described in this patent document are for both sidebar and web pages.
The inventor listed as author is Satish Sampath, who announced the launch of the Google Desktop Gadget Designer, to help people create and test Google gadgets. People outside of Google.
If you have the programming skills, creating a useful Google gadget might be a nice way to get your name noticed, and provide people with something interesting and useful, or entertaining.
The patent filing describes one potential Google Desktop Search gadget that could be used to provide additional information about the content on the pages that a person visits as they browse the web.
It’s an illustration of an interesting potential use of a plugin for Google’s Desktop Search. If you might be considering making a plug-in for this system, you’ll probably want to look at Google’s page on Creating a Gadget.
If you want a little more insight into how the system works, and what you might be able to do with it, the patent application might hold some ideas for you.
Software Architecture for Displaying Information Content from Plug-In Modules in a User Interface
Invented by Satish Kumar Sampath
US Patent Application 20070044086
Published February 22, 2007
Filed August 21, 2006
A user interface application, such as a sidebar application or web page, receives content from a set of plug-in modules. The user interface handles the display of the content and manages any user interaction with the content, thus abstracting these features from the plug-in modules. The plug-in modules may thus be device-independent and possibly used to display the same or corresponding content in other interfaces and/or other devices. One or more of the plug-in modules may also be designed to obtain and populate their content automatically based on user activity, including web browsing or interactions with documents on the local system.