Virtualized Runtime Environment

The purpose of this post is to outline a technology innovation that will result in reduced cost, faster time-to-market and multiply deployment .  The idea of writing code once and running the application in different operating systems was conceived and developed by Sun Microsystems.   On the other hand, Microsoft championed the strategy of language choice for developers – Write in any Language and run in Windows platform.  It is important to understand that the market share of Java, Objective-C and .NET has grown substantially over the years.  The past few years has seen a significant growth in mobile operating systems.  There is a growing trend of adoption of smartphones with proprietary operating systems from Apple, Microsoft, Google, Amazon and BlackBerry.  The latest version of major OS namely Microsoft Windows and MAC OS X feature app store for the desktop and mobile environments.

The idea of App Stores originally pioneered by Apple and later adopted by other major players including Microsoft and Google.  There are about 1.2 million apps (approx.) in Apple, Microsoft and Google Play store each.  This reality has created  applications with different vendors and developers having to maintain different code bases.   Today, if a developer (entrepreneur) wants build an app and target the entire market then he typically needs developers with Java, Objective-C  and  .NET skill sets.  At a minimum processor, disk, memory will be there in any computing device irrespective of its form-factor.   This means we should be able to write code in one language and run it any operating system.   The dependency on operating system for application should be removed.  This can be achieved by developing a model similar to Java Virtual Machine(JVM).

Today, entrepreneurs developing apps will have to invest for each operating environment.   If we have a Virtualization Technology as outlined above it will bring down the cost, lower the barrier to entry and fasten time-to-market.   This will also enable software makers  to offer liberal licensing models.   Software developers can iterate quickly and be more agile.

End users can freely decide on their hardware and operating systems without having to worry about application compatibility.    They are powered with consistent functionality across operating systems.   They have the freedom of choosing/changing operating system without the worry of application compatibility.

Thus in this current technology ecosystem lends itself to a natural evolution of  Virtualized Runtime Environment.  As we have seen above the benefits of a VRE are tremendous.

Website Extension Paradigms – Commenting Systems

Website Extension Paradigms are primarily ways of extending functionality of a website by a service of a third-party provider.  This trend has emerged in recent years and is growing rapidly with the explosion of websites offering API support (Click to learn more about API).  This opens the door for innovation in business model by combining data from various APIs in interesting ways, in what are called Mashups. reports that Social, Internet, Telephony, Reference and Government have added more than 2000 APIs in 2011.  Most of these APIs allows you to make a limited number of calls for free and charge for higher usage.  With proliferation of technologies like Apache Hadoop it is now possible for companies to analyze, process and extract intelligence like never before (thanks to companies like Pentaho, Cloudera and Hortonworks).  Companies can now leverage this intelligence and sell it through their APIs.

By Website Extension Paradigms I mean:

  • Extending a website’s functionality by utilizing third-party software and services.  For example, a commenting system.
  • Another form of extension is to host your service on a third-party domain and extend their functionality (Think Facebook Apps).
  • Mashups

I am planning to write a series of blog posts where I will explore different services and platforms that are used in this context.  In this post I will focus on various commenting systems that are in the market today and as a publisher you can use this as a guide in choosing a commenting system for your site/blog.

Some important criterias to consider while choosing a commenting system:

* Real Time comments
* Comment Moderation with multiple moderators if you need
* Anti-spam
* Search Engine crawl-ability
* Social Integration
* Notifications on new comments and replies
* JavaScript librarie(s) that the product uses and make sure there are no conflicts


Realtime comments – Both posting and updating
Inline media embedding – Youtube, Flickr etc
Fully compatible with mobile websites for commenting while on the go.
Comment Storage: Stored in Disqus and can optionally be synced with your blog provider
Akismet: Protection from web spam
Notification: Subscribe via RSS or email
Like button support for both the page and individual comments
Reactions – Pull mentions of your page on Twitter back into the Disqus conversation on your own site
Comment sorting options include popular now, best rating, newest first, oldest first, etc.
Used By: CNN, Time, Fox News etc.


Realtime comments – All comment streams are updated without need for manual refresh
Top Commenters – Moderators can mark users as Top Commenters and those comments will automatically bubble up
A cloud service called Echo StreamServer which stores all comments.  They can be retrieved as Activity Streams
PostRank – Intelligent comment ranking algorithm
Integration with Social Networks
Multiple Sort Orders – Like most recent, most popular comments
White Label Solution – Fully customizable look and feel
Analytics – Get insights.  Slice data by article, data source and date ranges
Integrates easily wherever JavaScript is supported
Subscribe via RSS or email


Author Reputation
Search engine indexing
Automatic SPAM and profanity filters
Automatically inherits your web design
Inserting polls into posts
Integration with popular social networks
Free version available and has most features with Ads


Fully hosted, no download needed
Inserting polls into posts
Data migration from existing system
Comment Ranking
Author reputation
Different versions are available at different price ranges with varying features
Integrates well on Blogger, WordPress, Tumblr, WordPress, Weebly and more
Full moderation over posts

Intense Debate:

Owned by Automattic (Strong WordPress support)
Comment Threading – Reply directly to specific comments with nested replies
Email Notifications – Respond to moderate comments via email
Subscribe via RSS
Guest Commenting – No Account or Sign up necessary
Integrates with Facebook Connect, Twitter, Gravatar, etc.
Trackbacks and Linkbacks are synced
Widgets for comment stats, most popular posts, etc.


Social User Tagging:  Tag Facebook and Twitter friends from inside the comment box
Allow users to Sign In using their Social Networking credentials which includes Facebook, Twitter, Google, LinkedIn and also OpenID
Users can share their comments in their favorite social networking sites
Real-time interaction with comment bubbles, new listener count.
Search engine crawlable
Follow conversations through email
Allows comment ratings
Linkback – Lets the other Livefyre bloggers leave link to their latest post
Integration with Blogger, Drupal, etc. is on their development plan

Facebook Comments:

Part of Social Plugins
Must be associated with a Facebook Application
Look and feel cannot be customized
Optionally post on your Facebook News Feed
No integration to other social networks
Used by Techcrunch

Auto-translate Resource Bundles using Google Translate

Internationalization is one of the common requirements in web applications. One of the challenges faced by a team is the non-availability of translated resource bundles during development (mostly due to logistical reasons). But it is important to test various scenarios during the application development.

In this post I will present a simple idea which utilizes Google Translate to auto-generate translated Java Resource Bundles for the language of choice. Just send a HTTP GET request with the text to be translated to Google Translate URL and read the translated text by parsing the response. In order to translate an entire resource bundle just pass a source bundle (For example, English) and read each property and write to target language resource bundle file.

Here is the URL for translating “welcome” from English to Spanish|es&text=welcome

Here is a snippet of Java code which utilizes Apache Commons HttpClient library :

String url = “ langpair=en|es&text=”;
String text = “welcome”;

HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod(url + text);

String xml = getMethod.getResponseBodyAsString();
xml = xml.substring(xml.lastIndexOf(“<div id=result_box dir=ltr>”));
String translated_text = xml.substring(27, xml.indexOf(“</div>”));

Technorati tags: , , ,

Google Gears: Gears to switch

Yesterday Google unvieled the newest development paradigm for developing offline web applications. David Berlind says Google Gears vies to be defacto tech for offline webapps and could very well be!

I’m very excited and impressed by reading through the developer documentation and demonstrations. The architecture employs a switch based on a installed browser plugin and decide whether to retrieve the data from server or from a local database installed on the client.

I played around with the demo’s a bit and it seems that the browser database seems to be specific to the browser. For instance if you browse a particular site using Firefox and create local copy and then open IE for offline browsing it wont be available offline. I’m curious to research more and see if developers can actually take advantage of the API and bring offline sync support to multiple browsers. Overall I am impressed and excited about the technology.

Also there is a offline version of Google Reader released recently.

UPDATE: Google Developer Day — Google Gears Intro Video

Tags: technology, google, gears

Personal Syndication Platform using Google Spreadsheets

I recently stumbled upon Google Spreadsheet’s worksheet syndication publishing feature. Basically you can publish your spreadsheet as a RSS/ATOM public feed. Also using Spreadsheet GData Client API it is possible to add new entries to your spreadhseet. Leveraging these abilities the possibility of using Google Spreadsheet as a Personal RSS platform seems very straight forward.

Basically one can create a worksheet and set the publishing option to output RSS (or ATOM or any format of your choice) and select an appropriate publishing frequency. Once this is done whatever you add to your worksheet is available for anyone who subscribes. Also there is an option to customize and publish a select range of cells and not an entire sheet.

Now it is possible for Clickables (Google Gadget that I developed few months back) to use spreadsheets and provide persistence bookmarking of shared links. Also, integration with Yahoo Pipes! can bring about a lot of data mashup feeds.

Modular software using AOP

The adoption of Aspect Oriented Programming paradigm in enterprise software is rapid. It is interesting to look at various applications of AOP in enterprise architecture:

  • Apply design patterns as modules
  • Application security architecture
  • Transaction, Logging, Stats, etc.
  • Enforce architectural design standard for application development by leveraging AOP tool support
  • JVM Clustering

AOP allows modularization of application and provides manageability and loose coupling from a software architecture perspective. From a product perspective, it allows to easily plug in features by allowing various implementation of aspects to be plugged-in quite easily.


AOP Software Design Using UML
AspectJ Tools
Spring AOP
Clustering JVM using Terrocotta and AOP

Technorati tags: , , , ,