<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5697778</atom:id><lastBuildDate>Sun, 27 Nov 2011 23:59:33 +0000</lastBuildDate><category>firefox</category><category>semanticweb</category><category>technology</category><category>openid</category><category>energy</category><category>javascript</category><category>evaluation</category><category>java</category><category>opinion</category><category>spring</category><category>poc</category><category>programming</category><category>innovation</category><category>trend</category><category>startup</category><category>video</category><category>strategy</category><category>developer</category><category>environment</category><category>digital</category><category>caching</category><category>blogs</category><category>google</category><title>techtalk</title><description>technical skill is mastery of complexity while creativity is mastery of simplicity &lt;br/&gt;</description><link>http://venkks.blogspot.com/</link><managingEditor>noreply@blogger.com (Venkk Sastry)</managingEditor><generator>Blogger</generator><openSearch:totalResults>146</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/blogspot/techtalk" /><feedburner:info uri="blogspot/techtalk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-1796303583279129106</guid><pubDate>Sat, 24 Jan 2009 13:12:00 +0000</pubDate><atom:updated>2009-01-24T08:36:13.103-05:00</atom:updated><title>APIs in Action</title><description>There are a number of APIs released by various services everyday.   I always "want" to play around with them and understand the possibilities that they provide but most of the time not do so.   &lt;span style="font-style: italic;" class="byline-author"&gt;Ben Lisbakken &lt;/span&gt;&lt;span class="byline-author"&gt;over at Google has utilized his 20% of time to build a &lt;a href="http://google-code-updates.blogspot.com/2009/01/playing-around-with-googles-ajax-apis.html"&gt;playground&lt;/a&gt; for Google APIs.  I am sure lot of people are going to find it useful to understand possibilities and scenarios that Google APIs can enable.  Also, the webapp itself is built on Google App Engine and released as a open source project.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-1796303583279129106?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_zSP1nW63T4:OscEtL6d8s0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_zSP1nW63T4:OscEtL6d8s0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=_zSP1nW63T4:OscEtL6d8s0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_zSP1nW63T4:OscEtL6d8s0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_zSP1nW63T4:OscEtL6d8s0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/_zSP1nW63T4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/_zSP1nW63T4/apis-in-action.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2009/01/apis-in-action.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-2340027539315087527</guid><pubDate>Thu, 01 Jan 2009 15:31:00 +0000</pubDate><atom:updated>2009-01-01T10:34:35.668-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">developer</category><title>MyEclipse HQL</title><description>&lt;p&gt;Though it has been few versions since MyEclipse had support for Hibernate and HQL, I only had a chance to play with it recently.  It has a nice feature set and the HQL editor is tied Dynamic Query Translator which gives on-the-fly translation for HQL queries.  This provides for an easy way to debug queries and validate them.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_39dy6OdSJhg/SVzh48kf29I/AAAAAAAAAWA/UEcH2RsQ5gw/s1600-h/twitterclone%5B3%5D.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border="0" alt="twitterclone" src="http://lh5.ggpht.com/_39dy6OdSJhg/SVzh5igOAZI/AAAAAAAAAWE/QyRuX_7Ge-k/twitterclone_thumb%5B1%5D.jpg?imgmax=800" width="368" height="289" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;In order to open a HQL editor you need to create a  file with .hql extension and also have an active hibernate configuration file.   This took me a while to figure out.  In order create an active Hibernate Configuration use File -&amp;gt; New -&amp;gt; Hibernate Configuration File and setup the connection parameters for the database.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-2340027539315087527?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=hI55ynASg4g:he85MC5uNAs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=hI55ynASg4g:he85MC5uNAs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=hI55ynASg4g:he85MC5uNAs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=hI55ynASg4g:he85MC5uNAs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=hI55ynASg4g:he85MC5uNAs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/hI55ynASg4g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/hI55ynASg4g/myeclipse-hql.html</link><author>noreply@blogger.com (Venkk Sastry)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_39dy6OdSJhg/SVzh5igOAZI/AAAAAAAAAWE/QyRuX_7Ge-k/s72-c/twitterclone_thumb%5B1%5D.jpg?imgmax=800" height="72" width="72" /><feedburner:origLink>http://venkks.blogspot.com/2009/01/myeclipse-hql.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-5578848943261144607</guid><pubDate>Sun, 30 Nov 2008 23:16:00 +0000</pubDate><atom:updated>2009-09-22T17:22:41.942-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">technology</category><title>Enterprise Social Networks</title><description>There is no doubt that with the growing trend in the usage of Social Networks in the consumer space strongly suggests that they are here to stay.   The benefits of the networks as an enabler of online social interactions can be derived to add social intelligence in enterprise context.  Such networks will also facilitate the transformation of organizational structure from traditional hierarchies into networked hierarchies. In this post I will walk through some of the technology options that are available out there for building Enterprise Social Portals/Networks:&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Apache Shindig:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://incubator.apache.org/shindig/"&gt;Apache Shindig&lt;/a&gt; is a Reference Implementation for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OpenSocial&lt;/span&gt; specification.   With this you can expose your existing Social Graph and it acts as a container for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;OpenSocial&lt;/span&gt; widgets.&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SocialSite&lt;/span&gt;&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://socialsite.dev.java.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SocialSite&lt;/span&gt;&lt;/a&gt; is an open source initiative from Sun &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Microsystems&lt;/span&gt; providing a complete end-to-end user interface and an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;API&lt;/span&gt; for social networking.   It supports widgets by providing an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;OpenSocial&lt;/span&gt; container by leveraging Apache Shindig in its architecture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;RingSide&lt;/span&gt; Networks:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.ringsidenetworks.org/display/ringside/Home"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;RingSide&lt;/span&gt; Networks&lt;/a&gt; is an open source offering that enables any website with social networking capabilities by providing implementation for both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Facebook&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;OpenSocial&lt;/span&gt; specifications.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;RingSide&lt;/span&gt; acts as a powerful container hosting social information and as a bridge to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Facebook&lt;/span&gt; social information platform hence providing interoperability.  The only issue with this is its still in Beta.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Liferay&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.liferay.com/web/guest/home"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Liferay&lt;/span&gt;&lt;/a&gt; is also an open source offering which provides both enterprise portal and social collaboration platform software. The solutions provide components for Web 2.0 features like Blogs, Wiki, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Calendar&lt;/span&gt;, etc.   It also provides a way to host social graph and promises &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;OpenSocial&lt;/span&gt; Apache Shindig integration.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-5578848943261144607?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_dZxBzp3quY:9Bw3Mhs2QWI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_dZxBzp3quY:9Bw3Mhs2QWI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=_dZxBzp3quY:9Bw3Mhs2QWI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_dZxBzp3quY:9Bw3Mhs2QWI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=_dZxBzp3quY:9Bw3Mhs2QWI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/_dZxBzp3quY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/_dZxBzp3quY/enterprise-social-networks.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2008/11/enterprise-social-networks.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-5320345872779350066</guid><pubDate>Sat, 05 Jul 2008 12:46:00 +0000</pubDate><atom:updated>2008-12-30T15:24:12.428-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openid</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><category domain="http://www.blogger.com/atom/ns#">startup</category><title>Signing up Users</title><description>&lt;p&gt;I'm planning to write  a series of posts under "Tech Tip".  The purpose of these posts are to share ideas/tips around how companies can leverage technology approaches in their solutions to gain competitive advantage.  I also intend to provide technology implementation details as applicable.&lt;/p&gt;  &lt;p&gt;One of the major goals for a startup is to motivate users to sign up for their service and eventually to sustain the user base.   There are a &lt;a href="http://www.killerstartups.com/"&gt;bunch&lt;/a&gt; of  startups coming up everyday and from an user its quite overwhelming for them to remember credentials for all of them.  As &lt;a href="http://bokardo.com/about/"&gt;Joshua Porter&lt;/a&gt; puts it in his &lt;a href="http://bokardo.com/archives/designing-for-the-social-web-the-usage-lifecycle/"&gt;Usage Lifecycle&lt;/a&gt;, the challenge here is to Sign-up an unaware/interested user. Even early adopters who might be interested in trying your service may not be motivated.  But we can solve this problem by leveraging authentication technology possibilities.  &lt;/p&gt;  &lt;p&gt;It is very likely that your interested user will have one of Hotmail/Yahoo/Facebook/Google/OpenID account.   &lt;/p&gt;  &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3081/2639065214_8ee6bf7e93_o.jpg" width="241" height="213" /&gt; &lt;/p&gt;  &lt;p&gt;By providing your users to authenticate using these services will definitely increase the probability of an enthusiastic user to sign up.  These services have libraries and documentation in their respective developer web site.   &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Clickpass&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.clickpass.com/"&gt;Clickpass&lt;/a&gt; is a startup providing single sign-on service that requires no effort from the end-user but provides the convenience for your site to authenticate using Google, Facebook, Hotmail and Yahoo accounts.  They provide extensive developer documentation and can be found &lt;a href="http://www.clickpass.com/docs/howclickpassworks" target="_blank"&gt;here&lt;/a&gt;. &lt;a href="http://www.techcrunch.com/2008/06/26/clickpass-adds-google-facebook-yahoo-and-hotmail-to-its-openid-gateway/" target="_blank"&gt;TechCrunch&lt;/a&gt; also has coverage about this service.  However there are also views like &lt;a href="http://www.notsorelevant.com/2008-03-11/clickpass-i-dont-get-it/" target="_blank"&gt;these&lt;/a&gt; that you need to be aware of before making your decision.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OAuth&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://oauth.net/" target="_blank"&gt;OAuth&lt;/a&gt; is an open initiative for an open protocol to allow secure third-party website authentication .  Its starting to gain traction and worth keeping an eye on their &lt;a href="http://blog.oauth.net/" target="_blank"&gt;blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb676633.aspx"&gt;Live ID Web Authentication System&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.yahoo.com/java/howto-BBauthJava.html"&gt;Yahoo BBauth&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/accounts/docs/AuthForWebApps.html" target="_blank"&gt;Google Account Authentication API&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-5320345872779350066?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=zcZlMNdvfv4:FHID6AzTr10:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=zcZlMNdvfv4:FHID6AzTr10:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=zcZlMNdvfv4:FHID6AzTr10:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=zcZlMNdvfv4:FHID6AzTr10:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=zcZlMNdvfv4:FHID6AzTr10:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/zcZlMNdvfv4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/zcZlMNdvfv4/tech-tip-1-singing-up-users.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2008/07/tech-tip-1-singing-up-users.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-9111876085073257378</guid><pubDate>Mon, 23 Jun 2008 00:51:00 +0000</pubDate><atom:updated>2008-12-31T15:54:53.109-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">evaluation</category><category domain="http://www.blogger.com/atom/ns#">technology</category><title>Evaluating AJAX Framework</title><description>Today building a new web application involves the essential step of evaluating AJAX frameworks and select an appropriate one.  In this post I will detail the various criteria that should be considered while making a decision.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Adoption Criteria&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This criteria is important for IT managers (or EA strategy) to decide if it would even be necessary for the development team to take a look and evaluate.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Licensing Model&lt;/span&gt;: Under what license(s) is this product offered? How would that affect your organization?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cost&lt;/span&gt;: How much does the framework cost (upfront)? Also consider cost of development tools, support, consulting? How many free updates are there? If the framework is free, is there a PRO version? If so what are the benefits and cost?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Frequency of Releases&lt;/span&gt;: What is the frequency of releases/updates? Is it adequate? This shows how active the framework is among the community?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Technology Maturity&lt;/span&gt;: How long has the framework been around? How stable are the releases? What is the philosophy on backward computability? What is the product road map?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Talent Pool&lt;/span&gt;: Is there talent pool available for this framework? What is the expected learning curve? Input from the developmental team is certainly helpful here.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Development Criteria&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This criteria is will help the developers assess the framework viability.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;UI Components&lt;/span&gt;: Does the toolkit offer rich set of mature components? What is the future road map for new components? Are the components customizable?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Programming Model&lt;/span&gt;: What kind of programming paradigm is supported? Is it strongly typed or dynamic? Is the model familiar to developers? If not what is the learning curve?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Web Framework Integration&lt;/span&gt;: Are there web frameworks that provide some out-of-the-box support? Are there any conflicts (or challenges) in using this toolkit with web framework?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Documentation Quality&lt;/span&gt;: Is there adequate good documentation available? Are there books available? If so what are the reviews?&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Browser Support&lt;/span&gt;: What browsers and versions are supported by the toolkit? What is the road map? Are the supported browsers sufficient for the requirements? What does the community say about this?&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;IDE Support&lt;/span&gt;: Is there IDE support? How much do they cost? How do they fit in with currently used IDE?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;i18n&lt;/span&gt;: Is there support for multiple languages?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Utilities&lt;/span&gt;: Frameworks provide utilities like Browser Manager(Back/Forward Button Support), Drag-n-Drop, Java-to-JavaScript Serialization (for example, DWR). Depending on specifics of the requirements this criteria should be considered. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Maintenance Criteria&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This criteria helps to evaluate and foresee any maintenance challenges that may be encountered.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Community Support&lt;/span&gt;: What is the size of the community using the product? How active and responsive are the online forums? Is the blog updated frequently?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Hosting&lt;/span&gt;: Is there hosting support for the framework JS files? For example, Yahoo UI provides &lt;a href="http://developer.yahoo.com/yui/articles/hosting/"&gt;hosting support&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Profiling&lt;/span&gt;: Is there built-in profiling support? If no are there any external tools that can help? Are there browser related constraints in them?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Beta Components&lt;/span&gt;: The frameworks tend to offer lot of Beta components. For these components its worthy to look at their known issues and assess the risk.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Analyzing and evaluating the frameworks using the above mentioned criteria will help make an informed decision and thereby will help avoid potential future issues. During the evaluation if a framework is missing a particular feature or component and is available in another toolkit you should look to ensure that there would be no integration issues and will peacefully co-exist.   Please feel free to suggest perspective for improving the evaluation process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-9111876085073257378?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=-FYwPB9egFw:SxpaNQqhpZk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=-FYwPB9egFw:SxpaNQqhpZk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=-FYwPB9egFw:SxpaNQqhpZk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=-FYwPB9egFw:SxpaNQqhpZk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=-FYwPB9egFw:SxpaNQqhpZk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/-FYwPB9egFw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/-FYwPB9egFw/evaluating-ajax-framework.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2008/06/evaluating-ajax-framework.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-5077771936104448052</guid><pubDate>Mon, 05 May 2008 00:50:00 +0000</pubDate><atom:updated>2008-07-09T21:48:20.343-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">poc</category><category domain="http://www.blogger.com/atom/ns#">innovation</category><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Jaxer - An innovative paradigm</title><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://www.aptana.com/jaxer"&gt;Jaxer&lt;/a&gt; is an open-source web application development framework providing an consistent Javascript based programming model between the cloud (server) and client. In this post I will provide an architectural overview of this technology and provide a conceptual mobile strategy that this framework can be used for.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Architectural Overview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The core of Jaxer is written in C/C++ and is powered by the same Mozilla engine that powers Firefox 3. There is a wrapper Javascript framework which can be easily extended by developers if needed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aptana.com/system/files/images/JaxerProcess_normal_large.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://www.aptana.com/system/files/images/JaxerProcess_normal_large.png" alt="" style="margin: 0pt 10px 10px 0pt; float: left; width: 320px; cursor: pointer;" border="0" /&gt;&lt;/a&gt;Jaxer provides a plugin as post-processor to the web server and receives an static HTML as input. The core framework is responsible for parsing the input, executing scripts (server-side) and generating proxies.&lt;br /&gt;&lt;br /&gt;The framework allows the developer to mark Javascript functions to be executed in the server using - runat="server" attribute in the script tag. There is also runat="server-proxy" where when the client calls are redirected to be executed in the server, the framework is responsible for injecting the methods.&lt;br /&gt;&lt;br /&gt;From the server-side code there is also access to the Jaxer library and hence access to session, file system, database, network sockets, etc.&lt;br /&gt;&lt;br /&gt;Thanks to Aptana for the image.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mobile in Minutes&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Here I would like to outline an use-case which will enable web properties to quickly create a mobile flavored output using Jaxer. This is intended to be a proof-of-concept and an example for the possibilities enabled by this framework. Lets say you have an existing simple web application and want to enable mobile flavored version modifying the existing application. This solution levereges the server-side processing of Jaxer to identify elements of interest from the HTML and renders a modified output.&lt;br /&gt;&lt;br /&gt;Here the idea is to annotate on the HTML elements of the original output. It could be id="mobile-????". This step is just to identify elements of interest and construct a modified html. Here is a brief code snippet which should provide some direction and simply by injecting this script and marking ids mobile should do the job. This is no way intended to be a full-fledged implementation but to give a direction and server as a proof-of-concept:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;scrpt runat="server" language="JavaScript1.2"&gt;&lt;/scrpt&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;var k = document.getElementById("b");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;var m = document.createElement("body");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;var e = document.getElementsByTagName("a");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;m.innerHTML = 'Mobile rendering: ';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;for ( var i = 0 ; i &amp;amp;lt; style="font-style: italic;"&amp;amp;gt;&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;var l = e[i];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;if (l.id == 'mobile') {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;m.innerHTML = m.innerHTML + ' &lt;a href="http://www.blogger.com/%27+%20l%20+%20%27"&gt;' + l + '&lt;/a&gt; +'';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;k.innerHTML = m.innerHTML;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt; &lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;Infrastructural Support&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div  style="text-align: left;font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;Jaxer can "peacefully" co-exists with your open source technology stack. Jaxer can work with your existing Apache installation and have IIS support in their roadmap. Presently MySQL database is supported but definitely this is an area for improvement. There is also support Tomcat based deployment model and out-of-box support for running in EC2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: left;font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;/span&gt;&lt;div  style="text-align: left;font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: left;font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;Emerging programming models such as Jaxer provide possibilities for more innovative web application extensions. This form of web extensions is extremely useful in enterprise and consumer environments to try-out in a plugin in on-demand.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;strong&gt;&lt;strong&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/technology" class="performancingtags"&gt;technology&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/javascript" class="performancingtags"&gt;javascript&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-5077771936104448052?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=eniD5IMo0Mg:fI-wnRfCugE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=eniD5IMo0Mg:fI-wnRfCugE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=eniD5IMo0Mg:fI-wnRfCugE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=eniD5IMo0Mg:fI-wnRfCugE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=eniD5IMo0Mg:fI-wnRfCugE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/eniD5IMo0Mg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/eniD5IMo0Mg/jaxer-innovative-paradigm.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2008/05/jaxer-innovative-paradigm.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-5671135951948413911</guid><pubDate>Fri, 25 Apr 2008 15:56:00 +0000</pubDate><atom:updated>2008-07-08T19:53:18.423-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">startup</category><category domain="http://www.blogger.com/atom/ns#">semanticweb</category><title>AB Meta: Whats is this thing? but what is that?</title><description>&lt;a href="http://www.adaptiveblue.com/"&gt;AdaptiveBlue&lt;/a&gt; announced &lt;a href="http://www.adaptiveblue.com/abmeta.html#ABMetaSpec" target="_blank"&gt;AB Meta&lt;/a&gt; specification in an effort for web pages to expose data about "things" in a standardized way.   In this post I will briefly outline in simple terms what this means and propose some conceptual extensions that could provide possibilities for more use-cases.&lt;br /&gt;&lt;br /&gt;The purpose of AB Meta specification is to enable web pages (that talk about "thing") to expose their attributes in a standardized way so that programs can understand.   For example consider this page from amazon.com: &lt;a href="http://www.amazon.com/gp/product/0596529325/ref=s9sims_c4_at1?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-4&amp;amp;pf_rd_r=1292MCGKJ88GWBXMHW7Z&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=372728601&amp;amp;pf_rd_i=507846"&gt;Click Here&lt;/a&gt;.  It is the landing page for the book titled "Programming Collective Intelligence".  Taking a closer look at the source of the page today the following META tags can be found:&lt;br /&gt;&lt;br /&gt;&lt;pre id="line287"&gt;&lt;&lt;span class="start-tag"&gt;meta&lt;/span&gt;&lt;span class="attribute-name"&gt; name&lt;/span&gt;=&lt;span class="attribute-value"&gt;"description" &lt;/span&gt;&lt;span class="attribute-name"&gt;content&lt;/span&gt;=&lt;span class="attribute-value"&gt;"Amazon.com: Programming Collective Intelligence:&lt;br /&gt;Building Smart Web 2.0 Applications: Toby Segaran : Books" &lt;/span&gt;&lt;span class="error"&gt;&lt;span class="attribute-name"&gt;/&lt;/span&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt;&lt;span class="start-tag"&gt;meta&lt;/span&gt;&lt;span class="attribute-name"&gt; name&lt;/span&gt;=&lt;span class="attribute-value"&gt;"keywords" &lt;/span&gt;&lt;span class="attribute-name"&gt;content&lt;/span&gt;=&lt;span class="attribute-value"&gt;"Toby Segaran ,Programming Collective Intelligence:&lt;br /&gt;Building Smart Web 2.0 Applications,O'Reilly Media, Inc.,&lt;br /&gt;0596529325,Computer Programming,Machine Learning,Computers,Computers -&lt;br /&gt;General Information,Computers - Languages / Programming,Computer Books:&lt;br /&gt;Languages,Artificial Intelligence - General,Programming - General,Computers / Artificial Intelligence,&lt;br /&gt;Computers / Languages / Programming,Computers / Programming / General,Computers/Artificial Intelligence -&lt;br /&gt;General,Data processing,Economic aspects,Information technology,Knowledge management,&lt;br /&gt;Social aspects,Programming - Algorithms,Programming Languages - Python,Internet programming,Web site development" &lt;/span&gt;&lt;span class="error"&gt;&lt;span class="attribute-name"&gt;/&lt;/span&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt;/pre&gt;As you can see the META tag provides metadata about the book in a unstructured way, so for instance bn.com might provide in a different format (or not at all).   This is the problem that AB Meta is solves.&lt;br /&gt;&lt;br /&gt;AB Meta proposes to leverage META tag and use a standardized format to describe a "thing".  A "thing" could be a book, music, cycle, car, movie, etc.   This &lt;a href="http://blog.adaptiveblue.com/?p=975"&gt;post&lt;/a&gt; from their blog provides a good introduction with examples.  In a AB Meta enabled amazon.com the meta tags could look like this:&lt;br /&gt;&lt;br /&gt;meta name="'object.type'" content="'book'"&lt;br /&gt;meta name="'book.name'" content="Programming Collective Intelligence"&lt;br /&gt;meta name="'book.author'" content="Toby Segaran"&lt;br /&gt;meta name="'book.isbn'" content="&lt;span&gt;&lt;span class="attribute-value"&gt;0596529325&lt;/span&gt;&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;etc..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Extensions&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Here are few extensions (new attributes) which I believe would worth considering:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;OBJECT_TYPE.unique_attr:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The purpose of this attribute is to specify which of the listed attributes universally identify this object uniquely.  For books it could be book.isbn and so&lt;br /&gt;&lt;br /&gt;book.unique_attr='book.isbn'&lt;br /&gt;&lt;br /&gt;Given the growing trend for &lt;a href="http://www.readwriteweb.com/archives/where_to_find_open_data_on_the.php"&gt;open data&lt;/a&gt; I believe this extension will open up lot of new possibilities.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OBJECT_TYPE.context_&lt;/span&gt;attr&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pages could use this attribute to optionally specify under which context they are talking about the object.  For example a user search based on author_name could return a list of books in  this case the context is author.&lt;br /&gt;&lt;br /&gt;book.context_attr='book.author'&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OBJECT_TYPE.ATTRIBUTE_uri&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;This is an optional tag that pages can use to publish an URI that talks  more about the value of a given attribute.   For example for the author of a book it could refer to his wiki page, home page, etc. :&lt;br /&gt;&lt;br /&gt;book.author_uri='http://kiwitobes.com/'&lt;br /&gt;&lt;br /&gt;Though this might not be very frequently used it is useful tool to present contextual data.&lt;br /&gt;&lt;br /&gt;So this answers, what is that?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Conclusion&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;There is no doubt that the initiative will definitely provide a standardized way for the publishers to expose meaningful contextual data.    However the ultimate success of the initiative lies in the adoption by the community.  Here the community primarily being online product vendors and services.&lt;br /&gt;I certainly as always welcome any thoughts/comments on the attributes on their implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-5671135951948413911?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KYJzWaGpPvQ:00db1OnC4f8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KYJzWaGpPvQ:00db1OnC4f8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=KYJzWaGpPvQ:00db1OnC4f8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KYJzWaGpPvQ:00db1OnC4f8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KYJzWaGpPvQ:00db1OnC4f8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/KYJzWaGpPvQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/KYJzWaGpPvQ/ab-meta-whats-is-this-thing-but-what-is.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2008/04/ab-meta-whats-is-this-thing-but-what-is.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-805518440923211461</guid><pubDate>Sun, 16 Dec 2007 22:04:00 +0000</pubDate><atom:updated>2008-07-08T09:05:42.329-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opinion</category><category domain="http://www.blogger.com/atom/ns#">technology</category><category domain="http://www.blogger.com/atom/ns#">trend</category><title>Gearing up for Privacy</title><description>The issue of &lt;a href="http://www.privacy.org/" target="_new"&gt;Privacy&lt;/a&gt; is one of the major concerns in the web today. The most common of such concerns centered around the user data having to live in the cloud with the potential for it to be exposed, stolen or misused by external elements (including the service provider). In this post I share my thoughts on how some of the emerging technologies can help address some of the concerns.&lt;br /&gt;&lt;br /&gt;Emerging technologies such as &lt;a href="http://gears.google.com/"&gt;Google Gears&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/sync/default.aspx"&gt;Microsoft Sync Framework &lt;/a&gt;and &lt;a href="http://labs.live.com/volta/"&gt;Microsoft Volta &lt;/a&gt;provide programming paradigms around online/offline synchronization and an execution context. As you may already know Google Gears opens the possibility of the synchronizing content with browser &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;plugin&lt;/span&gt; to provide seamless offline experience of online content. For example services like &lt;a href="http://www.google.com/reader/"&gt;Google Reader&lt;/a&gt; and &lt;a href="http://writer.zoho.com/jsp/home.jsp?serviceurl=%2Findex.do"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Zoho&lt;/span&gt; Writer &lt;/a&gt;leverage this today in their offerings. Microsoft Sync Framework opens the possibility of data synchronization across any device and data format. While Microsoft Volta promises to decoratively allow developers to execute content both online and offline.&lt;br /&gt;&lt;br /&gt;As stated earlier the concern of the user data having to live in the cloud can be eliminated by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;architecting&lt;/span&gt; applications to load data locally. The web essentially becoming a platform for software delivery while data may be securely stored locally. The user has the choice of storing data in a medium of his choice, for example in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;USB&lt;/span&gt; drive or local hard-drive or just online. Technology support for encryption capabilities to securely store content should be just a matter of time.&lt;br /&gt;&lt;br /&gt;Also the service providers wanting to provide data-sensitive contextual user services/experience may leverage paradigms provided by Volta. This will ensure that any user concerns around Privacy are addressed as well.&lt;br /&gt;&lt;br /&gt;As the concept of web as a platform continues to grow so will the user's concern of Privacy and data security. Emergence of technologies and their application in creative ways may help address such inevitable concerns.&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;&lt;br /&gt;Related:&lt;br /&gt;&lt;a href="http://www.labnol.org/internet/tools/web-applications-compatible-with-google-gears/1889/"&gt;Google Gears Enabled Sites&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-805518440923211461?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jsZXeoIYsgI:RX2RKQ2_0-Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jsZXeoIYsgI:RX2RKQ2_0-Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=jsZXeoIYsgI:RX2RKQ2_0-Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jsZXeoIYsgI:RX2RKQ2_0-Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jsZXeoIYsgI:RX2RKQ2_0-Y:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/jsZXeoIYsgI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/jsZXeoIYsgI/gearing-up-for-privacy.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/12/gearing-up-for-privacy.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-7945936356059164544</guid><pubDate>Sat, 08 Sep 2007 08:24:00 +0000</pubDate><atom:updated>2008-07-08T09:06:07.870-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">developer</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Auto-translate Resource Bundles using Google Translate</title><description>&lt;p&gt;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.  &lt;/p&gt; &lt;p&gt;In this post I will present a simple idea which utilizes &lt;a href="http://www.google.com/translate_t" target="_blank"&gt;Google Translate&lt;/a&gt; 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.&lt;/p&gt; &lt;p&gt;Here is the URL for translating "welcome" from English to Spanish &lt;a href="http://www.google.com/translate_t?langpair=en%7Ces&amp;amp;text=welcome"&gt;http://www.google.com/translate_t?langpair=en|es&amp;amp;text=welcome&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here is a snippet of Java code which utilizes &lt;a href="http://commons.apache.org/httpclient/" target="_blank"&gt;Apache Commons HttpClient&lt;/a&gt; library :&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;/p&gt; &lt;p&gt;&lt;em&gt;        String url = "&lt;/em&gt;&lt;em&gt;http://www.google.com/translate_t?  langpair=en|es&amp;amp;text=";&lt;/em&gt;&lt;br /&gt;   &lt;em&gt;   String text = "welcome"; &lt;/em&gt;&lt;/p&gt; &lt;p&gt;       &lt;em&gt;HttpClient client = new HttpClient();&lt;br /&gt;      GetMethod getMethod = new GetMethod(url + text);&lt;/em&gt;&lt;em&gt;&lt;br /&gt;      client.executeMethod(getMethod);&lt;br /&gt;      String xml = getMethod.getResponseBodyAsString();&lt;br /&gt;      xml = xml.substring(xml.lastIndexOf("&amp;lt;div id=result_box dir=ltr&amp;gt;"));&lt;br /&gt;       String translated_text = xml.substring(27, xml.indexOf("&amp;lt;/div&amp;gt;"));&lt;br /&gt;       System.out.println(translated_text);&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:48e7c1f0-e99e-4df1-8963-fdc00c34577e" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tags/i18n" rel="tag"&gt;i18n&lt;/a&gt;, &lt;a href="http://technorati.com/tags/hack" rel="tag"&gt;hack&lt;/a&gt;, &lt;a href="http://technorati.com/tags/google" rel="tag"&gt;google&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-7945936356059164544?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=QOdMgSpCLTE:Wx1s__urxgc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=QOdMgSpCLTE:Wx1s__urxgc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=QOdMgSpCLTE:Wx1s__urxgc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=QOdMgSpCLTE:Wx1s__urxgc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=QOdMgSpCLTE:Wx1s__urxgc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/QOdMgSpCLTE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/QOdMgSpCLTE/auto-translate-resource-bundles-using.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/09/auto-translate-resource-bundles-using.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-2797384696702493544</guid><pubDate>Tue, 28 Aug 2007 00:39:00 +0000</pubDate><atom:updated>2007-08-27T20:52:33.002-04:00</atom:updated><title>mylivesearch.com -- trawl the web</title><description>&lt;p&gt;I received the much awaited &lt;a href="http://www.mylivesearch.com/" target="_blank"&gt;mylivesearch.com&lt;/a&gt; beta release invite few minutes before.&lt;/p&gt;&lt;p&gt;Here is a screen shot&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh5.google.com/venkks/RtNtn2ZuQ6I/AAAAAAAAAFA/KvbeX8E1bvA/s400/mylivesearch.jpg" /&gt; &lt;/p&gt;&lt;p&gt;The real-time search is obviously slower than the Google search and also not ranked.  Filtering by website feature is pretty helpful.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: I just observed everytime you search for something mylivesearch hits the website explicitly.  I confirmed this using my web analytics (StatCounter -- used for this blog) to test.&lt;/p&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:2160afb6-10c5-4f07-8e70-c6415baa1b88" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tags/mylivesearch.com" rel="tag"&gt;mylivesearch.com&lt;/a&gt;, &lt;a href="http://technorati.com/tags/google" rel="tag"&gt;google&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-2797384696702493544?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=pra4RO6BenY:yg2pVkpMh9Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=pra4RO6BenY:yg2pVkpMh9Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=pra4RO6BenY:yg2pVkpMh9Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=pra4RO6BenY:yg2pVkpMh9Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=pra4RO6BenY:yg2pVkpMh9Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/pra4RO6BenY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/pra4RO6BenY/mylivesearchcom-trawl-web.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/08/mylivesearchcom-trawl-web.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-4642926004069520908</guid><pubDate>Sun, 19 Aug 2007 17:05:00 +0000</pubDate><atom:updated>2008-07-08T19:50:54.828-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">firefox</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">trend</category><title>Google Reader Helper for Firefox</title><description>&lt;p&gt;&lt;a href="http://reader.google.com/" target="_blank"&gt;Google Reader&lt;/a&gt; is one of the most popular web services and I personally use it everyday.   One of the features that I miss using a RSS reader is the ability to view comments.   In this post I would share a simple hack to help with this issue and to more importantly serve as a proof-of-concept for possibilities around web application extensions.   It is written on a framework called &lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/" target="_blank"&gt;Chickenfoot for Firefox&lt;/a&gt; that I recently stumbled upon.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What is Chickenfoot?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Chickenfoot for Firefox is itself a Firefox extension that puts programming environment in the browser's sidebar that allows you to write scripts to manipulate the web pages.  Chickenfoot is a superset of JavaScript and puts the user in control of writing quick extensions to web pages.   There is a detailed quick start tutorial of Chickenfoot &lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/quickstart.html" target="_blank"&gt;here&lt;/a&gt; and the extension can be installed from &lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/install.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Google Reader Hack&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;While reading a post in Google Reader there will be only one expanded view of the post which lives under the &amp;lt;div&amp;gt; with id='current-entry'.  This hack leverages this to identify the post that user is currently reading and loads that page in another tab automatically.  If you're interested in quickly checking/leaving a comment for the post, then you can switch to the other tab and do so immediately without having to click and wait for it to load. &lt;/p&gt; &lt;p&gt;&lt;a href="http://picasaweb.google.com/venkks/Myphotos/photo#5100451726472659794"&gt;&lt;img src="http://lh5.google.com/venkks/Rshx0mZuQ1I/AAAAAAAAAC8/hmG-ii_mUGo/s400/google_reader_chickenfoot.jpg" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Once you have installed Chickenfoot, download the script &lt;a href="http://venkks.googlepages.com/reader_tab.js" target="_blank"&gt;here&lt;/a&gt; and open Google Reader on Firefox and start the script.  If you're familiar with JavaScript then it should be self-explanatory.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Chickenfoot programming paradigm could be used to enhance web experience for user's convenience.   Also the intersection of Chickenfoot with concepts like &lt;a href="http://radar.oreilly.com/archives/2007/08/programming_col.html" target="_blank"&gt;Programming Collective Intelligence&lt;/a&gt; will fuel greater innovation by allowing user to be more in control of the experience.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/" target="_blank"&gt;Chickenfoot For Firefox&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/blog/" target="_blank"&gt;Chickenfoot Blog&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://venkks.googlepages.com/reader_tab.js" target="_blank"&gt;Google Reader Helper Script&lt;/a&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:15d4299a-5049-4e76-a37e-c8316046fecd" style="margin: 0px; padding: 0px; display: inline;" contenteditable="false"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/firefox" rel="tag"&gt;firefox&lt;/a&gt;, &lt;a href="http://technorati.com/tags/google" rel="tag"&gt;google&lt;/a&gt;, &lt;a href="http://technorati.com/tags/technology" rel="tag"&gt;technology&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-4642926004069520908?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=FJnohUekrEQ:RaOtvp9lseU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=FJnohUekrEQ:RaOtvp9lseU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=FJnohUekrEQ:RaOtvp9lseU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=FJnohUekrEQ:RaOtvp9lseU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=FJnohUekrEQ:RaOtvp9lseU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/FJnohUekrEQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/FJnohUekrEQ/google-reader-helper-for-firefox.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/08/google-reader-helper-for-firefox.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-4089633813233324135</guid><pubDate>Mon, 13 Aug 2007 01:05:00 +0000</pubDate><atom:updated>2008-07-08T09:06:49.977-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">evaluation</category><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">technology</category><title>Caching: Memcached and Terracotta</title><description>&lt;p&gt;Applications are generally built with an expected user base but soon might be overwhelmed due to business demand.  This is especially particularly true in the context of consumer facing applications.  &lt;a href="http://en.wikipedia.org/wiki/Cache" target="_blank"&gt;Caching&lt;/a&gt; is one of the most important aspect to improve application performance by storing  object in Cache (memory)  reducing database load.   &lt;/p&gt;&lt;p&gt;Caching in a clustered environment requires a Distributed Caching solution which can support failover scenarios and data reliability.  In this post I would like to explore the capabilities of &lt;a href="http://www.danga.com/memcached/" target="_blank"&gt;Memcached&lt;/a&gt; and &lt;a href="http://terracotta.org/" target="_blank"&gt;Terracotta&lt;/a&gt; as distributed caching solutions.&lt;/p&gt;&lt;p&gt;Memcached is a high-performance distributed object caching system with &lt;a href="http://www.danga.com/memcached/apis.bml" target="_blank"&gt;client APIs&lt;/a&gt; for Perl, PHP, Python, Ruby and Java.  Here are some of its capabilities and limitations (using Java client API):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Requires objects to be Serializable &lt;/li&gt;&lt;li&gt;Object Identity is NOT preserved &lt;/li&gt;&lt;li&gt;Supports cache expiration &lt;/li&gt;&lt;li&gt;Does NOT handle failover scenarios &lt;/li&gt;&lt;li&gt;For a given object selects a server from a pool of cache server based on hash of the key &lt;/li&gt;&lt;li&gt;Easy to configure (through SockIOPool class)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Terracotta is an open-source Java based clustering solution for JVM.   &lt;a href="http://www.terracotta.org/confluence/display/orgsite/WebSearchCacheLanding" target="_blank"&gt;Distributed Caching&lt;/a&gt; can be achieved using Terracotta by using a java.util.HashMap or open-source caching solutions like EHCache, OSCache and JBoss TreeCache.  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Preserves Object identity &lt;/li&gt;&lt;li&gt;Manages memory efficiently through Virtual Heap &lt;/li&gt;&lt;li&gt;Declarative requirement for lock support &lt;/li&gt;&lt;li&gt;Simple configuration file with Eclipse Tool support &lt;/li&gt;&lt;li&gt;Good documentation, support and active development &lt;/li&gt;&lt;li&gt;Due to the nature of its implementation certain classes are not Portable and hence cannot be used &lt;/li&gt;&lt;li&gt;Hard to determine which third-party classes are portable &lt;/li&gt;&lt;li&gt;Does NOT require classes to be serializable &lt;/li&gt;&lt;li&gt;Easy to configure and get started!&lt;/li&gt;&lt;/ul&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:e6d8e3f8-597a-4de4-9a93-33bd8fdea249" contenteditable="false" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tags/cache" rel="tag"&gt;cache&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-4089633813233324135?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=E5f9gsX4la4:XpujIvk8nZw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=E5f9gsX4la4:XpujIvk8nZw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=E5f9gsX4la4:XpujIvk8nZw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=E5f9gsX4la4:XpujIvk8nZw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=E5f9gsX4la4:XpujIvk8nZw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/E5f9gsX4la4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/E5f9gsX4la4/caching-memcached-and-terracotta.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/08/caching-memcached-and-terracotta.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-875426979874790498</guid><pubDate>Thu, 09 Aug 2007 10:14:00 +0000</pubDate><atom:updated>2008-07-09T21:48:05.031-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">spring</category><category domain="http://www.blogger.com/atom/ns#">innovation</category><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Data Services in Spring</title><description>In today's web applications the need for returning model data from controllers in XML/JSON format is quite common.   Mostly these requirements are met by writing custom code in controllers.   In this post I will present technical approach that would enable your applications to return data model in XML/JSON or data format of your choice to the web tier using Spring MVC without modifying your applications.&lt;br /&gt;&lt;br /&gt;Basically the idea is to return XML(or JSON,  etc) whenever we encounter a request to the controller with parameter &lt;span style="font-style: italic;"&gt;returnData=XML.   &lt;/span&gt;This can be accomplished by writing a &lt;a href="http://www.springframework.org/docs/api/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.html"&gt;HandlerInterceptorAdapter &lt;/a&gt;with postHandle method to do the following:&lt;br /&gt;&lt;br /&gt;void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;if ( request.getParamter("returnData") != null &amp;amp;&amp;amp; request.getParamter("returnData")="XML" )&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;// add a XML Serializer to the model&lt;br /&gt;// Find the model object names and add the list to model attribute "xmlModules"&lt;br /&gt;// Set the view name to "xmlView"&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In your xmlView (JSP or Velocity Template) for each attribute in xmlModules use the XML Serializer to generate XML and render it.   There are few applications for this approach:&lt;br /&gt;&lt;br /&gt;1.  Enable front-end to readily use AJAX for existing controllers&lt;br /&gt;2. Use this as a strategy to get a debug view of model data during development&lt;br /&gt;3. Based on some additional key use this to get debug view from production for troubleshooting purpose&lt;br /&gt;&lt;br /&gt;Resources:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://xstream.codehaus.org/"&gt;XStream &lt;/a&gt;for XML Serialization&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://www.technorati.com/tags/java"&gt;java&lt;/a&gt; &lt;a href="http://www.technorati.com/tags/spring"&gt;spring&lt;/a&gt; &lt;a href="http://www.technorati.com/tags/ajax"&gt;ajax&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-875426979874790498?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=xtFZOpeEvOg:lVyO7C_bjnw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=xtFZOpeEvOg:lVyO7C_bjnw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=xtFZOpeEvOg:lVyO7C_bjnw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=xtFZOpeEvOg:lVyO7C_bjnw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=xtFZOpeEvOg:lVyO7C_bjnw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/xtFZOpeEvOg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/xtFZOpeEvOg/data-services-in-spring.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/08/data-services-in-spring.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-1476222895619423131</guid><pubDate>Wed, 08 Aug 2007 12:57:00 +0000</pubDate><atom:updated>2007-08-08T09:06:47.141-04:00</atom:updated><title>Kudos for AOL local</title><description>&lt;a href="http://3.bp.blogspot.com/_39dy6OdSJhg/Rrm_en8taUI/AAAAAAAAAB4/sEJVM0VbeT0/s1600-h/aol.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5096314986187024706" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="143" alt="" src="http://3.bp.blogspot.com/_39dy6OdSJhg/Rrm_en8taUI/AAAAAAAAAB4/sEJVM0VbeT0/s200/aol.bmp" width="192" border="0" /&gt;&lt;/a&gt;I stumbled upon a feature on AOL Local Search which I felt is really innovative. Lets say you search for "pizza" near a particular address and then you drag the map, it automatically searches and plots businesses relevant to the search in the current focus of the map. &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Tags: &lt;a href="http://www.technorati.com/tags/technology"&gt;technology&lt;/a&gt; &lt;a href="http://www.technorati.com/tags/aol"&gt;aol&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-1476222895619423131?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=YtWMRGPP3AI:Cn_DO04KKiA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=YtWMRGPP3AI:Cn_DO04KKiA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=YtWMRGPP3AI:Cn_DO04KKiA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=YtWMRGPP3AI:Cn_DO04KKiA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=YtWMRGPP3AI:Cn_DO04KKiA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/YtWMRGPP3AI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/YtWMRGPP3AI/kudos-for-aol-local.html</link><author>noreply@blogger.com (Venkk Sastry)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_39dy6OdSJhg/Rrm_en8taUI/AAAAAAAAAB4/sEJVM0VbeT0/s72-c/aol.bmp" height="72" width="72" /><feedburner:origLink>http://venkks.blogspot.com/2007/08/kudos-for-aol-local.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-3959195454210957589</guid><pubDate>Sat, 30 Jun 2007 23:44:00 +0000</pubDate><atom:updated>2007-06-30T20:02:26.591-04:00</atom:updated><title>iPhone innovations</title><description>Now that &lt;a href="http://www.apple.com/"&gt;iPhone&lt;/a&gt; is finally released and is now time to watch for new iPhone apps.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.readwriteweb.com/archives/morfik_builds_first_iphone_development_tool.php"&gt;Morfik &lt;/a&gt;, &lt;a href="http://www.backbase.com/pages/iphone/"&gt;Backbase&lt;/a&gt; and &lt;a href="http://ajaxian.com/archives/iphone-development-aptana-and-morfik"&gt;Aptana&lt;/a&gt; have released AJAX based development tool (platform) for building iPhone applications. There is also an impressive list of iPhone applications &lt;a href="http://iphoneapplicationlist.com/index.php"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://www.technorati.com/tags/technology"&gt;technology&lt;/a&gt; &lt;a href="http://www.technorati.com/tags/apple"&gt;apple&lt;/a&gt; &lt;a href="http://www.technorati.com/tags/iphone"&gt;iphone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-3959195454210957589?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jLUJY1UFjiY:zI2GZMFwyGc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jLUJY1UFjiY:zI2GZMFwyGc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=jLUJY1UFjiY:zI2GZMFwyGc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jLUJY1UFjiY:zI2GZMFwyGc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=jLUJY1UFjiY:zI2GZMFwyGc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/jLUJY1UFjiY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/jLUJY1UFjiY/iphone-innovations.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/06/iphone-innovations.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-6795458542265854642</guid><pubDate>Fri, 22 Jun 2007 10:45:00 +0000</pubDate><atom:updated>2007-06-28T07:37:07.214-04:00</atom:updated><title>Click-n-Save Web Page as PDF</title><description>I stumbled upon a service called Save as PDF from &lt;a href="http://www.pdfonline.com/"&gt;PDF Online&lt;/a&gt;. Here is a browser button hack which allows you to convert the current web page. Just drag-n-drop this link into your web browser:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-6795458542265854642?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=w_wMnjEIIZI:hfPN89ao5m0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=w_wMnjEIIZI:hfPN89ao5m0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=w_wMnjEIIZI:hfPN89ao5m0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=w_wMnjEIIZI:hfPN89ao5m0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=w_wMnjEIIZI:hfPN89ao5m0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/w_wMnjEIIZI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/w_wMnjEIIZI/click-n-save-web-page-as-pdf.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/06/click-n-save-web-page-as-pdf.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-6150668760114361108</guid><pubDate>Mon, 11 Jun 2007 20:32:00 +0000</pubDate><atom:updated>2007-06-11T16:38:45.775-04:00</atom:updated><title>Safari - Windows ready!</title><description>Apple today released &lt;a href="http://www.apple.com/safari/"&gt;Safari for Windows&lt;/a&gt;!   The beta version of the  fastest browser is now available for download.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My favorite feature is the privacy friendly single-click Private Browsing.   I checked out the developer &lt;a href="http://developer.apple.com/internet/safari/"&gt;resources&lt;/a&gt; to find resources for plugin development in Windows environment but unable to find as yet :(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tags: &lt;a href="http://www.technorati.com/tag/technology"&gt;technology&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/apple"&gt;apple&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/safari"&gt;safari&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-6150668760114361108?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=rc38Ai2_B5Y:e7OO-u2h__s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=rc38Ai2_B5Y:e7OO-u2h__s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=rc38Ai2_B5Y:e7OO-u2h__s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=rc38Ai2_B5Y:e7OO-u2h__s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=rc38Ai2_B5Y:e7OO-u2h__s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/rc38Ai2_B5Y" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/rc38Ai2_B5Y/safari-windows-ready.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/06/safari-windows-ready.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-7285268502284697856</guid><pubDate>Fri, 01 Jun 2007 15:05:00 +0000</pubDate><atom:updated>2007-06-01T11:09:55.332-04:00</atom:updated><title>Instant Translation</title><description>I stumbled upon Google Translation Browser Buttons:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/translate_buttons?hl=en"&gt;http://www.google.com/translate_buttons?hl=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just drag your frequently used translation requirement buttons into your browser bookmarks bar!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-7285268502284697856?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=cihd2M9-r2w:6aTIGks5w24:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=cihd2M9-r2w:6aTIGks5w24:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=cihd2M9-r2w:6aTIGks5w24:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=cihd2M9-r2w:6aTIGks5w24:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=cihd2M9-r2w:6aTIGks5w24:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/cihd2M9-r2w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/cihd2M9-r2w/instant-translation.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/06/instant-translation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-4858216972261486714</guid><pubDate>Fri, 01 Jun 2007 01:15:00 +0000</pubDate><atom:updated>2007-06-22T06:45:46.473-04:00</atom:updated><title>Mashup Mela!</title><description>&lt;div&gt;&lt;a href="http://www.popfly.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PopFly&lt;/span&gt;&lt;/a&gt; - Microsoft's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mashup&lt;/span&gt; maker was released few weeks back.  I received the beta invite and was good playing around with it.   &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PopFly&lt;/span&gt; is built on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SliverLight&lt;/span&gt; and the interface is quite &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;intutive&lt;/span&gt; with cool drag-n-drop features for creating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;mashups&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Today Google released its &lt;a href="http://editor.googlemashups.com/" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Mashup&lt;/span&gt; Editor&lt;/a&gt; as limited beta.  I'm on the line for invite :)&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Ofcourse&lt;/span&gt; &lt;a href="http://pipes.yahoo.com/"&gt;Yahoo Pipe&lt;/a&gt; pioneered this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;Mela&lt;/span&gt; originally!&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://www.technorati.com/tag/technology"&gt;technology&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/microsoft"&gt;microsoft&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/google"&gt;google&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/popfly"&gt;popfly&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/pipes"&gt;pipes&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-4858216972261486714?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=INtM2cHAYTY:R4AgADGoF2I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=INtM2cHAYTY:R4AgADGoF2I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=INtM2cHAYTY:R4AgADGoF2I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=INtM2cHAYTY:R4AgADGoF2I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=INtM2cHAYTY:R4AgADGoF2I:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/INtM2cHAYTY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/INtM2cHAYTY/mashup-mela.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/05/mashup-mela.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-8116028335423784035</guid><pubDate>Thu, 31 May 2007 12:59:00 +0000</pubDate><atom:updated>2007-05-31T23:12:33.071-04:00</atom:updated><title>Google Gears: Gears to switch</title><description>Yesterday Google unvieled the newest development paradigm for developing offline web applications. &lt;a href="http://blogs.zdnet.com/Berlind/?p=504"&gt;David Berlind&lt;/a&gt; says Google Gears vies to be defacto tech for offline webapps and could very well be!&lt;br /&gt;&lt;br /&gt;I'm very excited and impressed by reading through the developer &lt;a href="http://code.google.com/apis/gears/design.html"&gt;documentation &lt;/a&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/apis/gears/resources/figure_4.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://code.google.com/apis/gears/resources/figure_4.jpg" border="0" /&gt;&lt;/a&gt;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.&lt;br /&gt;&lt;br /&gt;Also there is a offline version of &lt;a href="http://scobleizer.com/2007/05/30/google-brings-developers-offline-with-gears-new-offline-reader/"&gt;Google Reader &lt;/a&gt;released recently.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;UPDATE: Google Developer Day -- &lt;a href="http://www.youtube.com/watch?v=AzCIC8B4CXQ"&gt;Google Gears Intro Video&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Tags:&lt;a href="http://technorati.com/tag/technology"&gt; technology&lt;/a&gt;, &lt;a href="http://technorati.com/tag/google"&gt;google&lt;/a&gt;, &lt;a href="http://technorati.com/tag/gears"&gt;gears&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-8116028335423784035?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=o5rbdSAzTSM:giOTSkIBsmk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=o5rbdSAzTSM:giOTSkIBsmk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=o5rbdSAzTSM:giOTSkIBsmk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=o5rbdSAzTSM:giOTSkIBsmk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=o5rbdSAzTSM:giOTSkIBsmk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/o5rbdSAzTSM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/o5rbdSAzTSM/google-gears-gears-to-switch.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/05/google-gears-gears-to-switch.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-8177248954893431283</guid><pubDate>Tue, 01 May 2007 02:17:00 +0000</pubDate><atom:updated>2007-05-01T06:32:58.445-04:00</atom:updated><title>Light up with Silverlight</title><description>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SilverLight&lt;/span&gt; is the new name for what was called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WPF&lt;/span&gt;/E, Microsoft's cross-browser, cross-platform rendering &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;runtime&lt;/span&gt; for delivering rich interactive media experiences. At Mix 07 the manifestation of Software + Service strategy came to light through the announcement of &lt;a href="http://www.microsoft.com/silverlight/streaming.aspx" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SliverLight&lt;/span&gt; Streaming &lt;/a&gt;service. The service is essentially a companion for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SilverLight&lt;/span&gt; and provides developers with storage and hosting infrastructure.&lt;br /&gt;&lt;p&gt;The &lt;a href="http://dev.live.com/silverlight/"&gt;SliverLight Live Dev&lt;/a&gt; page points to several resources and REST based API for accessing the service itself. There are also references of tools to perform media transcoding. That said SilverLight and the companion service has opened up several possibilities by allowing an efficient time to market and a worry free infrastructure. A transcoding service with an API will be a great add-on and will eliminate the need for users (devs) to maintain inftrastructure for transcoding. &lt;/p&gt;tags: &lt;a href="http://technorati.com/tag/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tag/silverlight" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://technorati.com/tag/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-8177248954893431283?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=p3Wq7fpl1pw:k0370KP_ctg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=p3Wq7fpl1pw:k0370KP_ctg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=p3Wq7fpl1pw:k0370KP_ctg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=p3Wq7fpl1pw:k0370KP_ctg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=p3Wq7fpl1pw:k0370KP_ctg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/p3Wq7fpl1pw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/p3Wq7fpl1pw/light-up-with-silverlight.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/04/light-up-with-silverlight.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-3226470085317903988</guid><pubDate>Sun, 25 Mar 2007 01:09:00 +0000</pubDate><atom:updated>2008-07-09T21:51:03.958-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">startup</category><title>Scribd - the documents</title><description>&lt;a href="http://www.techcrunch.com/2007/03/06/scribd-youtube-for-text-gets-300k"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Scribd&lt;/span&gt;&lt;/a&gt; - the documents avatar of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;YouTube&lt;/span&gt; is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;YCombinator&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;startup&lt;/span&gt;. I'm impressed by the navigational site design and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;of course&lt;/span&gt; the document &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;renderer&lt;/span&gt;. This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;startup&lt;/span&gt; reminds me of one of the open source project called &lt;a href="http://sourceforge.net/projects/e-sharepoint/"&gt;e-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;sharepoint&lt;/span&gt; &lt;/a&gt;which was built with the same vision but never saw completion. I had contributed for e-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;sharepoint&lt;/span&gt; as a developer almost two years back.&lt;br /&gt;&lt;br /&gt;I built a Google Co-op Search for searching e-books on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Scribd&lt;/span&gt; and here is the link for it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://google.com/coop/cse?cx=007158556442307674881%3Acirvbqaziqu"&gt;http://google.com/coop/cse?cx=007158556442307674881%3Acirvbqaziqu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some of the features that I would love to see in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Scribd&lt;/span&gt; includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quote on a selected text and link to it from comments (dynamic highlighting)&lt;/li&gt;&lt;li&gt;Facilitate more user discussions by improving comments feature&lt;/li&gt;&lt;li&gt;Allow users to recommend similar/related documents&lt;/li&gt;&lt;li&gt;Allow Pin-n-Publish of reading list in RSS&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/technology"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tag/startup"&gt;startup&lt;/a&gt;, &lt;a href="http://technorati.com/tag/scribd"&gt;scribd&lt;/a&gt;, &lt;a href="http://technorati.com/tag/google"&gt;google&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-3226470085317903988?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=vl2wy3ctU38:7vo39QkyHok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=vl2wy3ctU38:7vo39QkyHok:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=vl2wy3ctU38:7vo39QkyHok:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=vl2wy3ctU38:7vo39QkyHok:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=vl2wy3ctU38:7vo39QkyHok:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/vl2wy3ctU38" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/vl2wy3ctU38/scribd-documents.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/03/scribd-documents.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-4821106568969294501</guid><pubDate>Sat, 17 Mar 2007 15:14:00 +0000</pubDate><atom:updated>2007-03-17T17:14:31.888-04:00</atom:updated><title>Personal Syndication Platform using Google Spreadsheets</title><description>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 &lt;a href="http://code.google.com/apis/spreadsheets/overview.html" target="_blank"&gt;Spreadsheet GData Client API&lt;/a&gt; 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.&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5042915277263235778" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="254" alt="" src="http://2.bp.blogspot.com/_39dy6OdSJhg/RfwIueWqasI/AAAAAAAAABQ/0mUpH5ujvEc/s320/Google+Spreadhseet+-+Publish.JPG" width="163" border="0" /&gt;&lt;/p&gt;&lt;p&gt;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. &lt;/p&gt;&lt;p&gt;Now it is possible for &lt;a href="http://homepage.mac.com/psurya/venkk"&gt;Clickables&lt;/a&gt; (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.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-4821106568969294501?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=r6xX3KezgTs:c1WbB8U1QPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=r6xX3KezgTs:c1WbB8U1QPY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=r6xX3KezgTs:c1WbB8U1QPY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=r6xX3KezgTs:c1WbB8U1QPY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=r6xX3KezgTs:c1WbB8U1QPY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/r6xX3KezgTs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/r6xX3KezgTs/personal-syndication-platform-using.html</link><author>noreply@blogger.com (Venkk Sastry)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_39dy6OdSJhg/RfwIueWqasI/AAAAAAAAABQ/0mUpH5ujvEc/s72-c/Google+Spreadhseet+-+Publish.JPG" height="72" width="72" /><feedburner:origLink>http://venkks.blogspot.com/2007/03/personal-syndication-platform-using.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-9164778041229063976</guid><pubDate>Sun, 04 Mar 2007 20:36:00 +0000</pubDate><atom:updated>2007-03-04T16:41:32.492-05:00</atom:updated><title>Modular software using AOP</title><description>The adoption of Aspect Oriented Programming paradigm in enterprise software is rapid. It is interesting to look at various applications of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;AOP&lt;/span&gt; in enterprise architecture:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apply design patterns as modules &lt;li&gt;Application security architecture &lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Transaction&lt;/span&gt;, Logging, Stats, etc. &lt;li&gt;Enforce architectural design standard for application development by leveraging AOP tool support&lt;/li&gt;&lt;li&gt;&lt;a href="http://jonasboner.com/2007/03/03/clustering-the-jvm-using-aop-the-inner-workings-of-terracotta-dso/" target="_blank"&gt;JVM Clustering&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AOP&lt;/span&gt; allows modularization of application and provides manageability and loose coupling from a software architecture perspective. From a product perspective, it allows to easily &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;plug in&lt;/span&gt; features by allowing various implementation of aspects to be plugged-in quite easily.&lt;/p&gt;&lt;p&gt;Resources:&lt;/p&gt;&lt;p&gt;&lt;a href="http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200258.pdf" target="_blank"&gt;AOP Software Design Using UML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/aspectj/"&gt;AspectJ Tools&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.springframework.org/docs/reference/aop.html"&gt;Spring AOP&lt;/a&gt;&lt;br /&gt;&lt;a href="http://labs.jboss.com/portal/jbossaop" target="_blank"&gt;JBoss AOP&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.aosd.net/2007/program/industry/I1-ClusteringJVMUsingAOP.pdf" target="_blank"&gt;Clustering JVM using Terrocotta and AOP&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:2407b51b-66fb-4be3-a9cb-6624fa777923" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/software" rel="tag"&gt;software&lt;/a&gt;, &lt;a href="http://technorati.com/tags/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tags/aop" rel="tag"&gt;aop&lt;/a&gt;, &lt;a href="http://technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-9164778041229063976?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=GUfV6Kzu-ek:vObtl2OXUIk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=GUfV6Kzu-ek:vObtl2OXUIk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=GUfV6Kzu-ek:vObtl2OXUIk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=GUfV6Kzu-ek:vObtl2OXUIk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=GUfV6Kzu-ek:vObtl2OXUIk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/GUfV6Kzu-ek" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/GUfV6Kzu-ek/modular-software-using-aop.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/03/modular-software-using-aop.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5697778.post-7480067588640352039</guid><pubDate>Sat, 24 Feb 2007 13:47:00 +0000</pubDate><atom:updated>2008-07-08T19:52:17.169-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openid</category><category domain="http://www.blogger.com/atom/ns#">technology</category><category domain="http://www.blogger.com/atom/ns#">programming</category><title>OpenID Adoption</title><description>&lt;p&gt;As we know &lt;a href="http://openid.net/" target="_blank"&gt;OpenID&lt;/a&gt; is an open, decentralized, free framework for user-centric identity. The goal is to have the user remember one user name and password and login to any site which supports the protocol. It is light-weight and supports SSO.&lt;/p&gt; &lt;p&gt;In the past few days there has been a lot of traction to OpenID adoption with the announcement for its support from the giants &lt;a href="http://journals.aol.com/panzerjohn/abstractioneer/entries/2007/02/15/aol-and-openid-where-we-are/1406" target="_blank"&gt;AOL&lt;/a&gt;, &lt;a href="http://thomashawk.com/2007/02/microsoft-to-support-openid-log-on.html" target="_blank"&gt;Microsoft&lt;/a&gt; and &lt;a href="http://www.techcrunch.com/2007/02/20/kevin-rose-at-fowa-digg-adopts-openid/" target="_blank"&gt;Digg&lt;/a&gt;. So if you have an AOL account then your open id is &lt;a href="http://openid.aol.com/username"&gt;http://openid.aol.com/username&lt;/a&gt; and you can login to &lt;a href="http://www.lifewiki.net/openid/OpenIDConsumers" target="_blank"&gt;any website that supports OpenID&lt;/a&gt;. With the growing number of &lt;a href="http://www.killerstartups.com/" target="_blank"&gt;startups&lt;/a&gt; the adoption rate for OpenID is poised to grow rapidly.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;User Resources&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;To start using OpenID you will need to obtain one. If you already have an AOL account you could use that if you like. Or you can obtain one from &lt;a href="http://www.myopenid.com/"&gt;http://www.myopenid.com/&lt;/a&gt;. For a quick overview of OpenID &lt;a href="http://kveton.com/blog/2007/02/22/openid-in-5-minutes/" target="_blank"&gt;here is a video&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Developer Resources&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;From a developer perspective for you to support OpenID either as client or server there are several resources available as noted below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openidenabled.com/" target="_blank"&gt;OpenID Enabled&lt;/a&gt; - OpenID community&lt;br /&gt;&lt;a href="http://openid.net/wiki/index.php/Libraries" target="_blank"&gt;OpenID Client/Server Libraries&lt;/a&gt; - C#, Java, Perl, C++, PHP, Ruby, ColdFusion&lt;br /&gt;&lt;a href="http://botbouncer.com/" target="_blank"&gt;BotBouncer&lt;/a&gt; - A &lt;a href="http://en.wikipedia.org/wiki/Captcha" target="_blank"&gt;CAPTCHA&lt;/a&gt; service for OpenID&lt;/p&gt; &lt;p&gt;I was looking at &lt;a href="http://code.sxip.com/openid4java/apidoc/net/openid/consumer/ConsumerManager.html" target="_blank"&gt;OpenID4Java API - Consumer side&lt;/a&gt; and is pretty straight forward. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;OpenID and CardSpace&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Here is a &lt;a href="http://www.identityblog.com/?p=659" target="_blank"&gt;post&lt;/a&gt; explaining how these two complementary technologies can work together. Its interesting.&lt;/p&gt; &lt;p&gt;tags: &lt;a href="http://technorati.com/tag/openid" rel="tag"&gt;openid&lt;/a&gt;, &lt;a href="http://technorati.com/tag/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tag/aol" rel="tag"&gt;aol&lt;/a&gt;, &lt;a href="http://technorati.com/tag/microsoft" rel="tag"&gt;microsoft,&lt;/a&gt; &lt;a href="http://technorati.com/tag/cardspace" rel="tag"&gt;cardspace&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5697778-7480067588640352039?l=venkks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KZ76uKn7ID4:T7WngrwxZxA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KZ76uKn7ID4:T7WngrwxZxA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?i=KZ76uKn7ID4:T7WngrwxZxA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KZ76uKn7ID4:T7WngrwxZxA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/techtalk?a=KZ76uKn7ID4:T7WngrwxZxA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/techtalk?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/techtalk/~4/KZ76uKn7ID4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/techtalk/~3/KZ76uKn7ID4/openid-adoption.html</link><author>noreply@blogger.com (Venkk Sastry)</author><feedburner:origLink>http://venkks.blogspot.com/2007/02/openid-adoption.html</feedburner:origLink></item></channel></rss>

