Wednesday, November 25, 2009

Collaborative Sites

I recently found out about a cool software collaboration site: Stackoverflow. There one can get questions answered in a timely manner as well as earning "reputation" credits. Access is free and unlimited akin to a "wiki" site such as Wikipedia.

But what is best is there is an ecosystem of such site based on the same platform ( Stackexchange ):
... and probably much more!

Tuesday, November 17, 2009

Chrome Extension: mDNS Service Browser

As a stepping-stone towards making the browser my main portal to my applications, I have crafted a Google Chrome extension (based on an NPAPI plugin) that lists the services announced through Avahi / mDNS.
It is available here. Note that only Linux based systems are supported.



Wednesday, November 4, 2009

Notes on NPAPI based plugins

I am sharing the following diagram to (hopefully) lessen some pain from folks who intend to write NPAPI based plugins (Firefox, Chrome etc.).


STEP 1: the host browser loads the library corresponding to the MIME type expressed in the embed element tag.

STEP 2: the host browser calls the NP_Initialize function of the library and passes a reference to the public API of the browser (i.e. the NPNetscapeFuncs starting with NPN_ in the Mozilla documentation). The host browser also calls the NPP_New function in order to instantiate a "plugin instance".
STEP 3: the host browser calls the NP_GetValue function (with the variable NPPVpluginScriptableNPObject ) of the library. See step 4.
STEP 4: the plugin calls the NPN_CreateObject (through the reference provided in step 2) to instantiate a "scriptable NPObject". This object serves as proxy to the embed object declared on the source web page.
STEP 5: the web page can interact with the "scriptable object".