<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="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" gd:etag="W/&quot;C0YDSH44eyp7ImA9WhRaFEg.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971</id><updated>2012-02-16T22:59:39.033-05:00</updated><category term="stax" /><category term="quartz" /><category term="jsf" /><category term="lru" /><category term="UIComponentTag" /><category term="java" /><category term="cloud computing" /><category term="cache" /><category term="jaxb" /><category term="US Government" /><category term="soa" /><category term="resteasy" /><category term="UIComponentELTag" /><category term="jax-rs" /><category term="UI" /><category term="tagcloud" /><category term="xmlseealso" /><category term="cloud" /><category term="icepush" /><category term="datagrid" /><category term="scheduled jobs" /><category term="scheduler" /><category term="icefaces" /><category term="jobs" /><category term="tag cloud" /><category term="amazon" /><category term="spring" /><category term="least recently used cache" /><category term="amazon sqs" /><category term="html5 notification html 5 feature sample" /><category term="Tag Cloud Component" /><category term="Service Oriented Architecture" /><category term="user interfaces" /><category term="linkedhashmap" /><category term="comparing EC2 with AppEngine" /><category term="app engine" /><category term="custom component" /><category term="google" /><category term="jax-ws" /><title>Technology speaks</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://techlabs.thoughtclicks.com/" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>16</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/atom+xml" href="http://feeds.feedburner.com/TechnologySpeaks" /><feedburner:info uri="technologyspeaks" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkEBSXk4eyp7ImA9WxFUE08.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-7336921098157214061</id><published>2010-06-23T16:24:00.000-04:00</published><updated>2010-06-23T16:24:18.733-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-23T16:24:18.733-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="app engine" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="comparing EC2 with AppEngine" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud computing" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Comparison of Amazon EC2 &amp; Google App Engine GAE/J</title><content type="html">&lt;p&gt;After spending few weeks with some of the Cloud services and reading the comparisons between them, I felt tempted to jot down my own views about atleast two of them.&lt;/p&gt;&lt;p&gt;Firstly, hands down to Google for providing such a brilliant service for free. It gives developers great opportunity to try new things and bring it infront of the people without investing huge amount on that. It also helps Small Business Enterprises to not invest huge into infrastructure and develop application on such a robust platform which is highly scalable without you need to get into the network setup and infrastructure. Not to leave Amazon EC2 services which are a great advantage for people/enterprise who wants to launch a product without investing on the network infrastructure and still being scalable and add more systems when demand increases.&lt;/p&gt;&lt;p&gt;Now on the comparison side, in my view two services are totally different, they may give you the same advantage of you not investing huge into the infrastructure, but they both have their own usages. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: EC2 service give you access to the boxes in the cloud with the operating system and you do the whole setup required for your application, or you can use the AMI(&lt;em&gt;Amazon&lt;/em&gt; Machine Image) and yes even in the AMI’s you can configure your own security if desired.&amp;#160; whereas on the same lines Google doesn’t do that instead you create the application and just ask the App Engine SDK(which also comes an Eclipse plugin) to deploy it, it will deploy the application to one or more of the Google Cloud infrastructure instances and you can access the same once you login into your App Engine url. So in a nutshell, you have full control over Amazon EC2 and you can scale any computer instance to n-instances, whereas App Engine abstracts the instances from the developer and uses SDK for an interface between the developer and the Systems.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Lockin:&lt;/strong&gt; Here i would like to bring third player Salesforce.com into the picture and then compare all of them. Also as previously mentioned you have complete control over the Amazon EC2 system which might or might not be completely true incase of App Engine as appengine provides lot of services which uses its proprietary api which if used locks you into App Engine, but it has its own advantages which I will discuss later. Similarly Salesforce force.com is mostly locked in as you use its own api to develop and deploy the their cloud. Salesforce has its own custom language and its own SQL/ORM layer.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Q0kK583AV2Y/TBfYKwkywmI/AAAAAAAAAzc/70cHS50lYy8/s1600-h/img-enterprise-cloud-force-google-app-engine-amazon%5B45%5D.png"&gt;&lt;img style="display: inline" title="ThoughtClicks - Comparision of App Engine, EC2 &amp;amp; force.com" alt="ThoughtClicks - Comparision of App Engine, EC2 &amp;amp; force.com" src="http://lh6.ggpht.com/_Q0kK583AV2Y/TBfYLz4fpDI/AAAAAAAAAzg/4VO62a03vJ4/img-enterprise-cloud-force-google-app-engine-amazon_thumb%5B43%5D.png?imgmax=800" width="559" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cost Factor:&lt;/strong&gt; This is one of the important factor need to be considered when deciding between these two choices. Google App Engine has a free quota which is sufficient for applications with around 1 million page views. You can also enable the billing account once you go beyond that point &amp;amp; billing account is also reasonable, Price is based on CPU/hr, Outgoing/Incoming bandwidth, store data &amp;amp; number of emails exchanged etc. &lt;a href="http://code.google.com/appengine/docs/billing.html#Billable_Quota_Unit_Cost" target="_blank"&gt;Google App Engine Billing Quota Unit Cost&lt;/a&gt;. On the other hand Amazon EC2 Services comes with a cost which is again nominal but no free stuff instead pay as you go. You can look at the &lt;a href="http://aws.amazon.com/ec2/pricing/" target="_blank"&gt;pricing plan for Amazon EC2 here&lt;/a&gt;. but on top of EC2, if you persist some data you need to pay have EBS volume and it again comes for&amp;#160; cost after 1GB and costs $0.10 per GB-month &amp;amp; $0.10 per 1 million I/O requests, which is again very reasonable.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Services Infrastructure:&lt;/strong&gt; Here Google App Engine gets an edge as it provides lot of ready to use services which comes very handy when you want your application to be up &amp;amp; running quickly, This all doesn’t comes for free instead if you use any of these services they are totally&amp;#160; based on proprietary api which locks you in Google App Engine. Some of the commonly used services are as follows.     &lt;br /&gt;
1) &lt;u&gt;Memcache&lt;/u&gt; – Ready to use cache already available on App Engine Servers, you can use JSR 107 api to&amp;#160; &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; add or remove objects from this cache, so this comes as a nice feature without lockin.     &lt;br /&gt;
2) &lt;u&gt;XMPP&lt;/u&gt; – Can be used to talk to any XMPP enable clients like jabber etc.(Proprietary API)     &lt;br /&gt;
3) &lt;u&gt;Task Queues&lt;/u&gt; – This can be used like jms queues to handle tasks without user keep waiting. (Proprietary     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; API)     &lt;br /&gt;
4) &lt;u&gt;Mail&lt;/u&gt; – It is again one of the feature which can be used using Java Mail api     &lt;br /&gt;
5) &lt;u&gt;Cron jobs&lt;/u&gt; – You can also run cron jobs in your application(Proprietary API)     &lt;br /&gt;
6) &lt;u&gt;Authorization&lt;/u&gt; – App Engine also give you OAuth out of the box and it can be very easily implemented in     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; your application.     &lt;br /&gt;
As far as i know Amazon, on the other hand doesn’t provides any of its services readily on the system except the mail or maybe cron, but it doesn’t either limits you from creating any such service the way you want.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Reliability:&lt;/strong&gt; As far as my knowledge both are very reliable options except last year in june when once Appengine was down for more then couple of hours. and both have &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Datastore:&lt;/strong&gt; Appengine at present heavily relies on &lt;a href="http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/en/us/papers/bigtable-osdi06.pdf" target="_blank"&gt;Bigtable&lt;/a&gt;, for which developer needs to think from a totally different angle then how we all are use to using relational databases. It has a JPA &amp;amp; JDO api to access it but it doesn’t supports all the JPA &amp;amp; JDO feature specially the relations part of it. Google also have recently announced that they will soon be launching the App Engine for business with proper SQL Support but again as Amazon it comes at a cost. where as on Amazon EC2 it all boils down to you choice of SQL database you want to use. You can use Oracle, My sql etc which gives you quick and easy development of backend code. &lt;/p&gt;&lt;p&gt;One of my experience using Google App Engine is that it a great resource for a person to kickstart stuff but once product get matured you might want a little bit of more control then provided. Having used Google App Engine for quite some time now, one of the major drawbacks i felt with Google App Engine atleast on the free version is that it recycles the applications very aggressively. Incase your application has very less traffic then you application has very high chances of being brought down when not in use and restarted when the request comes in, this leads to slow response on the initial requests. Developers including me have already requested Google to find different solutions for this. Out of which one is “&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2456" target="_blank"&gt;Pay to reserve a JVM&lt;/a&gt;” Please help us by starring this issue.&lt;/p&gt;&lt;p&gt;Also Please keep in mind that Google App Engine does not support complete Java stack instead it does support the &lt;a href="http://code.google.com/appengine/docs/java/jrewhitelist.html" target="_blank"&gt;complete JRE Class whitelist&lt;/a&gt; which enables you to &lt;a href="http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine" target="_blank"&gt;play around with the following Java EE Technologies&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;For any issues or support related to App Engine or EC2 you can contact us at: &lt;a href="mailto:cloud@thoughtclicks.com"&gt;cloud@thoughtclicks.com&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/5268267436084065971-7336921098157214061?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jRn7VDZ6iGlNMYr19tbzVjpx9gM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRn7VDZ6iGlNMYr19tbzVjpx9gM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jRn7VDZ6iGlNMYr19tbzVjpx9gM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRn7VDZ6iGlNMYr19tbzVjpx9gM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/yCviz-l7too" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/7336921098157214061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2010/06/comparison-of-amazon-ec2-google-app.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/7336921098157214061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/7336921098157214061?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/yCviz-l7too/comparison-of-amazon-ec2-google-app.html" title="Comparison of Amazon EC2 &amp;amp; Google App Engine GAE/J" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Q0kK583AV2Y/TBfYLz4fpDI/AAAAAAAAAzg/4VO62a03vJ4/s72-c/img-enterprise-cloud-force-google-app-engine-amazon_thumb%5B43%5D.png?imgmax=800" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2010/06/comparison-of-amazon-ec2-google-app.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFRnwyeCp7ImA9WxFVF00.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-3745153692470565171</id><published>2010-06-04T16:24:00.006-04:00</published><updated>2010-06-16T11:50:17.290-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-16T11:50:17.290-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="html5 notification html 5 feature sample" /><title>HTML 5 Notification Feature</title><content type="html">HTML5 is going to be the De facto for the web application and sites like facebook, twitter &amp; not to mentioned Google chrome extensions which is going to extensively use Notification to replace all tab alert based extensions with notification api from HTML 5.&lt;br /&gt;
&lt;br /&gt;
The new Notification API allows websites to send notifications directly to your desktop which can be facebook chat alerts, email alerts with first few lines of email etc. The below post will explain you three different methods which can be used to achieve this functionality. in simple steps. You can try these methods in one html page on any html5 ready browser as Chrome/Safari etc.&lt;br /&gt;
&lt;br /&gt;
First step will be to check if the notification support is there in the browser, which you can do with the following method.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:js"&gt;if (window.webkitNotifications) {
  //Notifications are supported!
}else{
  //Notification is not supported.
}
&lt;/pre&gt;&lt;br /&gt;
Next step would be to check if user has granted you the permissions to receive notification from your website or your webapp. If you don't have the permissions yet you can request the permission and this whole permission request does makes sense as otherwise there will be popups all over. You can do this with the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:js"&gt;if (window.webkitNotifications.checkPermission() == 0) {
  //You have permissions 
}else{
     window.webkitNotifications.requestPermission();//requesting the permissions
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Note&lt;/b&gt;: webkitNotifications is the present name of the method as it is a draft, once it goes live this method name will be changed to Notifications&lt;br /&gt;
&lt;br /&gt;
Once the user has granted the permissions you can call window.webkitNotifications.createNotification method with the icon, notification title &amp; notification content as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:js"&gt;window.webkitNotifications.createNotification('tclicks-icon.png', 'Notification Title', 'Notification content...');
&lt;/pre&gt;&lt;br /&gt;
That's all you need to do to get the notifications on desktop. Happy Notifying !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-3745153692470565171?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zHFQPgAKYED9Aq8lBnw6SWtHU3g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zHFQPgAKYED9Aq8lBnw6SWtHU3g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zHFQPgAKYED9Aq8lBnw6SWtHU3g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zHFQPgAKYED9Aq8lBnw6SWtHU3g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/ZvSHI_KaBPc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/3745153692470565171/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2010/06/html-5-notification-feature.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/3745153692470565171?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/3745153692470565171?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/ZvSHI_KaBPc/html-5-notification-feature.html" title="HTML 5 Notification Feature" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2010/06/html-5-notification-feature.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cHQXo8eSp7ImA9WxFXEk0.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-1473909568508943655</id><published>2010-05-17T23:12:00.003-04:00</published><updated>2010-05-18T13:50:30.471-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-18T13:50:30.471-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="icepush" /><category scheme="http://www.blogger.com/atom/ns#" term="user interfaces" /><category scheme="http://www.blogger.com/atom/ns#" term="datagrid" /><category scheme="http://www.blogger.com/atom/ns#" term="UI" /><category scheme="http://www.blogger.com/atom/ns#" term="icefaces" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>Icefaces - Developing user interfaces became so easy</title><content type="html">I have blogged about icefaces in past and since then icefaces has changed a lot, with lot of new components added to the already rich ajax based library.&lt;br /&gt;
&lt;br /&gt;
Being a server side developer the best thing i liked about icefaces is that it can create rich ajax enabled user interfaces without knowing a single line of java script. so icefaces is definitely a useful framework when you want to leverage your existing team of java developers to make a web interfaces.&lt;br /&gt;
&lt;br /&gt;
The fact is you can achieve all this icefaces provides you with any other javascript framework but the time and resources utilized in that is much more and never forget the nightmare of debugging JavaScript at-least for the Java developers if not for the ui folks.&lt;br /&gt;
&lt;br /&gt;
Some of the interesting things added in recent releases of Icefaces in 1.8.x and Icefaces 2.&lt;br /&gt;
&lt;br /&gt;
1) &lt;b&gt;Rounder Corners&lt;/b&gt; - If you have worked with user interface, I am sure you know about how to get the rounded corners either with the images or with jquery and all that. So icefaces does help you in that and does the whole stuff behind the scenes with one simple tag, which can be defined as follows, for which more details can be found at the following url - &lt;a href="http://composite-component-showcase.icefaces.org/icefaces-composite-comps-showcase/docs/tld/ice-cc/roundCorners.html"&gt;Icefaces rounded corners&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;&lt;ice-cc:roundCorners id="id" bgcolor="orange" fgcolor="#FFF" corners="all"/&gt;
&lt;/pre&gt;&lt;br /&gt;
2) New scopes introduced to the library which bridges the gap left in jsf2.&lt;br /&gt;
&lt;br /&gt;
3) &lt;b&gt;Expandable Table&lt;/b&gt; - Once of the good user interfaces features should be, it should show only that much data to the user which is required and should not display the whole dataset on the page as the page will look very cluttered and busy. Icefaces has given a component for rendering such useful layout with expandable table. You can have a look at the details of the same at the following url. &lt;a href="http://composite-component-showcase.icefaces.org/icefaces-composite-comps-showcase/docs/tld/ice-cc/expandableTable.html"&gt; Expandable Table &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4) &lt;b&gt;&lt;a href="http://composite-component-showcase.icefaces.org/icefaces-composite-comps-showcase/showcase.iface?rvn=1"&gt;Rich Data-grid table&lt;/a&gt; &lt;/b&gt; - now has an inline editing enabled in it if required. Not sure how much work or java-script you need to write if you want to write this component yourself.&lt;br /&gt;
&lt;br /&gt;
5) &lt;b&gt;IcePush&lt;/b&gt; - Not to mention one of the biggest benefit which icefaces provide is AjaxPush which a strong framework supporting both synchronous and asynchronous types. IcePush can also be integrated with any other web frameworks if required.&lt;br /&gt;
&lt;br /&gt;
6) &lt;b&gt;Google Maps&lt;/b&gt; - In one of my previous projects, i also had a requirement where we had to show the map to the user for the location of offices. Icefaces google maps tag came in so handy. you can either pass the address as a string or pass longitude and latitude as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;&lt;ice:gMap id="gmap" address="#{gmap.address}" /&gt;
Or
&lt;ice:gMap latitude="56.6" longitude="102.56" /&gt;
&lt;/pre&gt;&lt;br /&gt;
other properties you can pass with the map is zoom level, type of the map as satellite or hybrid etc. Also you can add any of the controls as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;&lt;ice:gMapControl id="largeControl" name="GLargeMapControl" /&gt;
&lt;ice:gMapControl id="scaleControl" name="GScaleControl" /&gt;
&lt;ice:gMapControl id="mapTypeControl" name="GMapTypeControl" /&gt;
&lt;ice:gMapControl id="overviewMapControl" name="GOverviewMapControl" /&gt;
&lt;/pre&gt;&lt;br /&gt;
Here is the brief comparison of icefaces with other ui framework in terms of AJAX Push, &lt;a href="http://blog.icefaces.org/blojsom/blog/default/2009/03/17/Ajax-Push-ZK-versus-ICEfaces-More-than-Meets-the-Eye/"&gt;Icefaces Comparison with Echo 2, ZK etc &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I myself also tried looking at GWT after such a buzz around it, but as a java developer who have never worked with &lt;b&gt;Swing&lt;/b&gt;, i was not bought by the concept of coupling your ui pages so tightly with the java classes and defining labels and everything in the classes. JSF concept still goes far better then that.&lt;br /&gt;
&lt;br /&gt;
Some of the other things in which icefaces gives you an edge is extending its component or even writing your own. For eg. In one of my previous projects we had the requirement in which we had to show the table to the user and once the user click on any column in the table the table should slide down and it should show the complete details of that column including the image from the details. Below is the brief code for the same which can help you in achieving this.&lt;br /&gt;
&lt;br /&gt;
Writing a component can be done as follows.&lt;br /&gt;
Start with writing a component class by extending the UIInput or UIOuput in this case. Then override the following method in case you are writing for output. Also encode ever children in the loop as done below.&lt;br /&gt;
&lt;pre class="brush:java"&gt;public void encodeBegin(FacesContext facesContext)
 throws IOException {
  ResponseWriter responseWriter = facesContext.getResponseWriter();
  DOMContext domContext = DOMContext.getDOMContext(facesContext, this);
  Element parentTd = (Element)domContext.getCursorParent();
  parentTd.setAttribute(HTML.STYLE_ELEM, "background-color:blue; background-repeat:repeat-x;border-bottom: medium none");
  Element tbody = (Element)domContext.getCursorParent().getParentNode().getParentNode();
  Element tr = (Element) domContext.createElement(HTML.TR_ELEM);
  tbody.appendChild(tr);
  String id = getClientId(facesContext);
  tr.setAttribute(HTML.ID_ATTR, id);
  Element td = domContext.createElement(HTML.TD_ELEM);
  tr.appendChild(td);
  td.setAttribute(HTML.BORDER_ATTR,"1px");
  td.setAttribute(HTML.COLSPAN_ATTR, "5");//TODO
  td.setAttribute(HTML.BGCOLOR_ATTR,"#ffffff");
  
  Node oldCursorParent = domContext.getCursorParent();
  domContext.setCursorParent(td);
  domContext.streamWrite(facesContext, this,
    domContext.getRootNode(), td);
  
  Iterator children = getChildren().iterator();
  while (children.hasNext()) {
   UIComponent nextChild = (UIComponent) children.next();
   if (nextChild.isRendered()) {
    DomBasicRenderer.encodeParentAndChildren(facesContext, nextChild);
   }
  }
 }
   &lt;/pre&gt;&lt;br /&gt;
Once you have create the component class you need to define the component type &amp; class in the faces-config and create a custom tag in custom-taglib if you are using facelets &amp; you are ready to use the tags you created in your xhtml or jspx.&lt;br /&gt;
&lt;br /&gt;
There are various other ways of writing a component which can be used also you can create a different renderer for different components.&lt;br /&gt;
&lt;br /&gt;
Not to ignore icefaces can be very well used with iphone or other mobile devices which leaves you flexible enough to extend your application to mobile platform.&lt;br /&gt;
&lt;br /&gt;
But what i am eagerly waiting for now is final release of Icefaces 2 which is presently in alpha. Icefaces 2 is drastically new framework with lot of enhanced ajax capability and the use of JSF 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also very soon I will cover the integration of spring with icefaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-1473909568508943655?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zm9PI7AEPHSP8gTNeVk1AFkcb28/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zm9PI7AEPHSP8gTNeVk1AFkcb28/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zm9PI7AEPHSP8gTNeVk1AFkcb28/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zm9PI7AEPHSP8gTNeVk1AFkcb28/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/c7J1BHlidGI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/1473909568508943655/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2010/05/icefaces-developing-user-interfaces.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1473909568508943655?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1473909568508943655?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/c7J1BHlidGI/icefaces-developing-user-interfaces.html" title="Icefaces - Developing user interfaces became so easy" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2010/05/icefaces-developing-user-interfaces.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8HRXk8eyp7ImA9WxBbF0s.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-1740314755638468188</id><published>2010-03-16T12:43:00.002-04:00</published><updated>2010-03-16T14:07:14.773-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-16T14:07:14.773-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="least recently used cache" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="linkedhashmap" /><category scheme="http://www.blogger.com/atom/ns#" term="cache" /><category scheme="http://www.blogger.com/atom/ns#" term="lru" /><title>LRU Cache implementation with LinkedHashMap</title><content type="html">If you are reading this article then you might have reached here hunting for implementation of LRU Cache. Below is simple code which can help you in understanding the LRU Cache and its implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;import java.util.LinkedHashMap;
import java.util.Map.Entry;

/**
 * @author ThoughtClicks Inc
 *
 */
public class LRUCache extends LinkedHashMap {

 private static final long serialVersionUID = 1L;
 private final int capacity;
 private long accessCount = 0;
 private long hitCount = 0;

 public LRUCache(int capacity) {
  super(capacity + 1, 1.1f, true);
  this.capacity = capacity;
 }

 @Override
 public Object get(Object key) {
  accessCount++;
  if (super.containsKey(key)) {
   hitCount++;
  }
  Object value = super.get(key);
  return value;
 }

 @Override
 public boolean containsKey(Object key) {
  accessCount++;
  if (super.containsKey(key)) {
   hitCount++;
   return true;
  }else{
   return false;
  }
 }

 protected boolean removeEldestEntry(Entry eldest) {
  return size() &gt; capacity;
 }

 public long getAccessCount() {
  return accessCount;
 }

 public long getHitCount() {
  return hitCount;
 }
}


&lt;/pre&gt;&lt;br /&gt;
To use the above cache you just need to call the constructor of the above LRUCache with the maximum size of your cache and then just set the value as you do in a hashmap.&lt;br /&gt;
&lt;br /&gt;
Have fun !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-1740314755638468188?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-YSV4XNXdrPUwDZr8eKCSRcoJCs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YSV4XNXdrPUwDZr8eKCSRcoJCs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-YSV4XNXdrPUwDZr8eKCSRcoJCs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YSV4XNXdrPUwDZr8eKCSRcoJCs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/bEfsgL7IGQ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/1740314755638468188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2010/03/lru-cache-implemenation-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1740314755638468188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1740314755638468188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/bEfsgL7IGQ4/lru-cache-implemenation-with.html" title="LRU Cache implementation with LinkedHashMap" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2010/03/lru-cache-implemenation-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYNRn4yfCp7ImA9WxBTFEg.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-3944665582509341849</id><published>2009-12-10T09:58:00.003-05:00</published><updated>2009-12-10T10:16:37.094-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-10T10:16:37.094-05:00</app:edited><title>Validation in JAXB 2 vs JAXB 1</title><content type="html">The release of JAXB 2 brought lot of advantages to the developer like putting annotations on the objects etc, at the same time it has given a liberty to the user about how does he/she wants to handle the validation using the JAXP validation APIs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Validation in JAXB1&lt;/span&gt;&lt;br /&gt;If JAXB detects error or inconsistency in the data received and it is unable to recover it throws an UnmarshalException.&lt;br /&gt;&lt;br /&gt;eg:&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;JAXBContext jc = JAXBContext.newInstance( "com.thoughtclicks" );&lt;br /&gt;Umarshaller u = jc.createUnmarshaller();  &lt;br /&gt;u.setValidating(true);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Validation in JAXB2&lt;/span&gt;&lt;br /&gt;Developer has the choice of what and how to handle the incosistency in error validation.&lt;br /&gt;&lt;br /&gt;eg:&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;JAXBContext jc = JAXBContext.newInstance( "com.thoughtclicks" );&lt;br /&gt;Umarshaller u = jc.createUnmarshaller(); &lt;br /&gt;SchemaFactory factory = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);&lt;br /&gt;Schema schema = factory.newSchema(new File("order.xsd"));&lt;br /&gt;u.setSchema(schema);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Either you can use the default validation handler like&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;u.setEventHandler(new DefaultValidationEventHandler())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;or you can have your own custom validation handler and set that to the umarshaller&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;public class CustomValidationEventHandler implements ValidationEventHandler{&lt;br /&gt;      public boolean handleEvent(ValidationEvent ve) {            &lt;br /&gt;        if (ve.getSeverity()==ve.FATAL_ERROR ||  &lt;br /&gt;                               ve .getSeverity()==ve.ERROR){&lt;br /&gt;            ValidationEventLocator  locator = ve.getLocator();&lt;br /&gt;            //log the message&lt;br /&gt;            System.out.println("Message is " + ve.getMessage());&lt;br /&gt;            //log the error reference&lt;br /&gt;            System.out.println("Column is " + &lt;br /&gt;                  locator.getColumnNumber() + &lt;br /&gt;                  " at line number " + locator.getLineNumber());&lt;br /&gt;         }&lt;br /&gt;         return true;&lt;br /&gt;       }&lt;br /&gt;    &lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You are all set to handle the validations.&lt;br /&gt;&lt;br /&gt;Good luck !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-3944665582509341849?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OmFgGltMn00nyjWO2OG0x3rlCxQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OmFgGltMn00nyjWO2OG0x3rlCxQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OmFgGltMn00nyjWO2OG0x3rlCxQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OmFgGltMn00nyjWO2OG0x3rlCxQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/-gSe1FkVohw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/3944665582509341849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/12/validation-in-jaxb-2-vs-jaxb-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/3944665582509341849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/3944665582509341849?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/-gSe1FkVohw/validation-in-jaxb-2-vs-jaxb-1.html" title="Validation in JAXB 2 vs JAXB 1" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/12/validation-in-jaxb-2-vs-jaxb-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8CQHs_eip7ImA9WxNREkw.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-4011146982665151740</id><published>2009-09-04T15:55:00.006-04:00</published><updated>2009-09-06T00:54:21.542-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-06T00:54:21.542-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="scheduler" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="scheduled jobs" /><category scheme="http://www.blogger.com/atom/ns#" term="quartz" /><category scheme="http://www.blogger.com/atom/ns#" term="spring" /><category scheme="http://www.blogger.com/atom/ns#" term="jobs" /><title>OpenSymphony Quartz Scheduler in Spring</title><content type="html">Spring offers a very seamless integration with Quartz to create some scheduled tasks. Below i will explain the steps in which you can do that.&lt;br /&gt;&lt;br /&gt;To get started what you need is a spring.jar downloaded along with a download of Quartz jar files.&lt;br /&gt;&lt;br /&gt;Spring simply gives you extension of all the core classes provided by Quartz which includes:&lt;br /&gt;1. org.springframework.scheduling.quartz.JobDetailBean - which extends QuartzJobBean&lt;br /&gt;2. org.springframework.scheduling.quartz.SimpleTriggerBean - which extends SimpleTrigger&lt;br /&gt;3. org.springframework.scheduling.quartz.SchedulerFactoryBean - which implements the main scheduling functionality.&lt;br /&gt;&lt;br /&gt;So by using these three classes you can write scheduled jobs very quickly. All you need to do is defined three beans in your spring - config file. The definition is as follows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Declare the job:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&amp;lt;bean name="sendmailsjob" class="org.springframework.scheduling.quartz.JobDetailBean"&amp;gt;&lt;br /&gt;  &amp;lt;property name="jobClass" value="com.thoughtclicks.SendEmailsJob" /&amp;gt;&lt;br /&gt;  &amp;lt;property name="jobDataAsMap"&amp;gt;&lt;br /&gt;    &amp;lt;map&amp;gt;&lt;br /&gt;      &amp;lt;entry key="to" value="rahul.juneja@thoughtclicks.com" /&amp;gt;&lt;br /&gt;    &amp;lt;/map&amp;gt;&lt;br /&gt;  &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now add the job class as follows.&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;public class SendEmailsJob extends QuartzJobBean {&lt;br /&gt; @Override&lt;br /&gt; protected void executeInternal (JobExecutionContext ctx) throws JobExecutionException {&lt;br /&gt;  String touser = (String) ctx.getJobDetail().getJobDataMap().get("to");&lt;br /&gt;  sendmail(to);//this will send the mail to the user defined in the to address.&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You have a choice of fetching the properties from the context i have done in the previous code or you can also add the properties in the bean for the same and provide getter and setters and Spring will do the injection for you and provide the populated properties.&lt;br /&gt;&lt;br /&gt;now you need to define the trigger using the job you created above.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&amp;lt;bean id="emailTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"&amp;gt;&lt;br /&gt;    &amp;lt;property name="jobDetail" ref="sendmailsjob" /&amp;gt;&lt;br /&gt;    &amp;lt;property name="startDelay" value="0" /&amp;gt;&lt;br /&gt;    &amp;lt;property name="repeatInterval" value="10000" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now finally you need to define the scheduler for scheduling this very trigger, which can be done as follows.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&amp;lt;bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&amp;gt;&lt;br /&gt;    &amp;lt;property name="triggers"&amp;gt;&lt;br /&gt;        &amp;lt;list&amp;gt;&lt;br /&gt;            &amp;lt;ref bean="emailTrigger" /&amp;gt;&lt;br /&gt;        &amp;lt;/list&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After the steps defined above once you start the application including the spring config the job you just created is started automatically and will run in every 10 seconds as defined in the trigger with property "repeat interval" &lt;br /&gt;&lt;br /&gt;You can also use your existing methods to be called by the scheduler rather then creating the whole new scheduler bean and the only change you need for that is creating the job as follows.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&amp;lt;bean name="sendmailsjob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&amp;gt;&lt;br /&gt;  &amp;lt;property name="targetObject" ref="existingbeanallreadydefined" /&amp;gt;&lt;br /&gt;  &amp;lt;property name="targetMethod" value="methodsendMail" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you need any further code or tips. you can drop me an email at rahul.juneja@thoughtclicks.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-4011146982665151740?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1bd25K4L65XjY4u0sYjbDumgWfw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1bd25K4L65XjY4u0sYjbDumgWfw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1bd25K4L65XjY4u0sYjbDumgWfw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1bd25K4L65XjY4u0sYjbDumgWfw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/1jM6qaSCvdc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/4011146982665151740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/09/opensymphony-quartz-scheduler-in-spring.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/4011146982665151740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/4011146982665151740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/1jM6qaSCvdc/opensymphony-quartz-scheduler-in-spring.html" title="OpenSymphony Quartz Scheduler in Spring" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/09/opensymphony-quartz-scheduler-in-spring.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MNRX8-cSp7ImA9WxNTEkw.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-255747395849980687</id><published>2009-08-13T22:51:00.009-04:00</published><updated>2009-08-13T23:11:34.159-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-13T23:11:34.159-04:00</app:edited><title>Rest and JSON in JQuery - Twitter Gadget</title><content type="html">I am sure you guys must have seem lot of gadget floating around the web for twitter, yahoo, google and what not.&lt;br /&gt;&lt;br /&gt;Did you ever thought that writing a small gadget is such a small and minutes job with jquery and the apis exposed by these social networking sites like facebook and twitter. I just tried hands on one of the those and it was quick to get this twitter gadget ready to be shared.&lt;br /&gt;&lt;br /&gt;Simple JSON script like the one below can do the whole trick for you.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;$(document).ready(function(){&lt;br /&gt;  var tweeturl = "http://twitter.com/status/user_timeline/&lt;br /&gt;                         rahuljuneja.json?count=5&amp;callback=?";&lt;br /&gt;  $.getJSON(tweeturl, function(data){&lt;br /&gt;    $.each(data, function(i, item) {&lt;br /&gt;     $('&lt;p&gt;&lt;/p&gt;').addClass(i%2 ? 'even' : 'odd')&lt;br /&gt;     .html(item.text)&lt;br /&gt;     .prependTo('#tweet');&lt;br /&gt;   });&lt;br /&gt;  });&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-255747395849980687?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hYqgBSzHOGOUrlh8zD60xqVibeg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hYqgBSzHOGOUrlh8zD60xqVibeg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hYqgBSzHOGOUrlh8zD60xqVibeg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hYqgBSzHOGOUrlh8zD60xqVibeg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/3fnC3DpW9ng" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/255747395849980687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/08/rest-and-json-in-jquery-twitter-gadget.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/255747395849980687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/255747395849980687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/3fnC3DpW9ng/rest-and-json-in-jquery-twitter-gadget.html" title="Rest and JSON in JQuery - Twitter Gadget" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/08/rest-and-json-in-jquery-twitter-gadget.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8BQ3w5fSp7ImA9WxJaGUw.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-5097726152609211184</id><published>2009-08-09T18:16:00.011-04:00</published><updated>2009-08-10T09:27:32.225-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-10T09:27:32.225-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jax-ws" /><category scheme="http://www.blogger.com/atom/ns#" term="xmlseealso" /><category scheme="http://www.blogger.com/atom/ns#" term="jax-rs" /><category scheme="http://www.blogger.com/atom/ns#" term="jaxb" /><category scheme="http://www.blogger.com/atom/ns#" term="resteasy" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>Interface handling in REST and JAXB</title><content type="html">It is a very common scenario when you are writing a class implementing and interface and your parameters to the classes are interfaces.&lt;br /&gt;&lt;br /&gt;eg:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt; &lt;br /&gt;public interface Person {}&lt;br /&gt;&lt;br /&gt;@XmlRootElement&lt;br /&gt;public class Employee implements Person {}&lt;br /&gt;&lt;br /&gt;@Path("/persons")&lt;br /&gt;public class MyEmployeeResources {&lt;br /&gt;  @PUT&lt;br /&gt;  @Consumes("application/xml")&lt;br /&gt;  public void putEmployee(Person person) {...}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;In the above example you will get an error with Jersey or RESTEasy as they both don't know the implementation of Person are JAXB class, hence they don;t have the context of JAXB.  &lt;br /&gt;&lt;br /&gt;Really cool alternative to this was to use @XMLSeeAlso annotation. something like below&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt; &lt;br /&gt;@XmlSeeAlso(Employee.class)&lt;br /&gt;public interface Person {}&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;This way JAXB creates the JAXBContext of Person, because it knows that it can be unmarshal with Employee or Student class.&lt;br /&gt;&lt;br /&gt;Similarly @XMLSeeAlso can be used with JAX-WS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-5097726152609211184?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pHPqfXyXkulVYrIlj4g9i_xUI3U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pHPqfXyXkulVYrIlj4g9i_xUI3U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pHPqfXyXkulVYrIlj4g9i_xUI3U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pHPqfXyXkulVYrIlj4g9i_xUI3U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/5E0h2J-yBC8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/5097726152609211184/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/08/interface-handling-in-rest-and-jaxb.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/5097726152609211184?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/5097726152609211184?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/5E0h2J-yBC8/interface-handling-in-rest-and-jaxb.html" title="Interface handling in REST and JAXB" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/08/interface-handling-in-rest-and-jaxb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIERH8_eyp7ImA9WxJaFEU.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-1638569447811363071</id><published>2009-07-19T02:18:00.007-04:00</published><updated>2009-08-05T09:55:05.143-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-05T09:55:05.143-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="UIComponentELTag" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="UIComponentTag" /><category scheme="http://www.blogger.com/atom/ns#" term="tagcloud" /><category scheme="http://www.blogger.com/atom/ns#" term="custom component" /><category scheme="http://www.blogger.com/atom/ns#" term="tag cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Tag Cloud Component" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>Tag Cloud Component in JSF</title><content type="html">After spending couple of hours and playing around with some jsf component features tweaks i was able to develop a Tag Cloud Component.&lt;br /&gt;&lt;br /&gt;Here are few things this you might clear some confusions which i faced when writing this component in jsf.&lt;br /&gt;&lt;br /&gt;Firstly, you need to decide do you need a seperate class for renderer or you can render in the same component class if you are not planning to reuse the renderer for other things.&lt;br /&gt;&lt;br /&gt;Second writing jsf component will be a little more simpler if you are using jsf-facelets.&lt;br /&gt;&lt;br /&gt;Now if you are doing this is Jsf 1.1 then while writing the tag class you need to take care that any attributes defined should be declared as String no matter what is the input/Output type of the component. whereas same thing if you are doing in 1.2 then all attributes has to be defined as ValueExpression. &lt;br /&gt;&lt;br /&gt;eg: if you are creating a tag for TagCloud Component in jsf 1.1 look at the following code.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt; &lt;br /&gt;public class TagCloudTag extends UIComponentTag {&lt;br /&gt;&lt;br /&gt;public String labelsMap = null;&lt;br /&gt;&lt;br /&gt; public String getlabelsMap() {&lt;br /&gt;  return labelsMap ;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void setlabelsMap(String labelsMap) {&lt;br /&gt;  this.labelsMap = labelsMap ;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // Associate the renderer and component type.&lt;br /&gt; public String getComponentType() {&lt;br /&gt;  return "com.thoughtclicks.component.TagCloudComponent";&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getRendererType() {&lt;br /&gt;  return null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; protected void setProperties(UIComponent component) {&lt;br /&gt;  super.setProperties(component);&lt;br /&gt;  if (!(component instanceof TagCloudComponent)) {&lt;br /&gt;   throw new IllegalStateException(&lt;br /&gt;     "Component "&lt;br /&gt;       + component.toString()&lt;br /&gt;       + " not expected type.  Perhaps you're missing a tag?");&lt;br /&gt;  }&lt;br /&gt;  TagCloudComponent tagCloud = (TagCloudComponent) component;&lt;br /&gt;  if (labelsMap!= null) {&lt;br /&gt;   if (isValueReference(labelsMap)) {&lt;br /&gt;    ValueBinding vb = getValueBinding(labelsMap);&lt;br /&gt;    tagCloud.setValueBinding("labelsMap", vb);&lt;br /&gt;   } else {&lt;br /&gt;    throw new IllegalStateException(&lt;br /&gt;      "The value for 'tagCloud' must be a ValueBinding.");&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void release() {&lt;br /&gt;  super.release();&lt;br /&gt;  labelsMap= null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private ValueBinding getValueBinding(String valueRef) {&lt;br /&gt;  ApplicationFactory factory = (ApplicationFactory) FactoryFinder&lt;br /&gt;    .getFactory(FactoryFinder.APPLICATION_FACTORY);&lt;br /&gt;  Application application = factory.getApplication();&lt;br /&gt;  return application.createValueBinding(valueRef);&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Similarly, if you are writing the same component in jsf 1.2 then you will need to change the attribute labelsMap to ValueExpression also don;t forget you need to extend "&lt;span style="font-weight:bold;"&gt;UIComponentELTag&lt;/span&gt;" instead of UIComponentTag and corresponding changes to set properties method.&lt;br /&gt;&lt;br /&gt;For any other supporting code you can write me at : &lt;a href="mailto://rahul.juneja@thoughtclicks.com"&gt;rahul.juneja@thoughtclicks.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-1638569447811363071?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gziPwywsUT28zuM97R_fjWG5gLE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gziPwywsUT28zuM97R_fjWG5gLE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gziPwywsUT28zuM97R_fjWG5gLE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gziPwywsUT28zuM97R_fjWG5gLE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/CYbG2bSy3U4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/1638569447811363071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/07/tag-cloud-component-in-jsf.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1638569447811363071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1638569447811363071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/CYbG2bSy3U4/tag-cloud-component-in-jsf.html" title="Tag Cloud Component in JSF" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/07/tag-cloud-component-in-jsf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MFSHwzcSp7ImA9WxJUGUU.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-7998589638807369866</id><published>2009-06-09T22:51:00.004-04:00</published><updated>2009-07-19T02:36:59.289-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-19T02:36:59.289-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="US Government" /><category scheme="http://www.blogger.com/atom/ns#" term="Service Oriented Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud computing" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>US Govt. approach towards SOA</title><content type="html">It is interesting to see that Obama administration is quickly adapting latest IT trends and also promoting them to be used by other users.&lt;br /&gt;&lt;br /&gt;White house blog :&lt;br /&gt;&lt;blockquote&gt;Allow citizens to build their own applications on top of government online services; for example, using a "Services Oriented Architecture" approach;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;More information can be found at: &lt;a href="http://www.whitehouse.gov/blog/Discussion-Phase-Transparency-Data/"&gt;Data Transparency via Data.gov&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some people might say SOA is loosing its flavor during this downturn but i think SOA jointly with cloud computing is going to be a winner out of this "R".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-7998589638807369866?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B_NqDGdxxbakY3RXEjY4zHa79KE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B_NqDGdxxbakY3RXEjY4zHa79KE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B_NqDGdxxbakY3RXEjY4zHa79KE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B_NqDGdxxbakY3RXEjY4zHa79KE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/t2AlRkVA3_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/7998589638807369866/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/06/us-govt-approach-towards-soa.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/7998589638807369866?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/7998589638807369866?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/t2AlRkVA3_A/us-govt-approach-towards-soa.html" title="US Govt. approach towards SOA" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/06/us-govt-approach-towards-soa.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4NRX0-cCp7ImA9WxJTF0o.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-2401932428591209425</id><published>2009-04-26T15:58:00.003-04:00</published><updated>2009-04-26T16:16:34.358-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-26T16:16:34.358-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="stax" /><category scheme="http://www.blogger.com/atom/ns#" term="app engine" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon sqs" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud computing" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>World of Cloud Computing</title><content type="html">Large number of options available in Cloud computing including Amazon EC2, Stax, Google App Engine did encourage me to get into this wide and fast growing world of Cloud computing.&lt;br /&gt;&lt;br /&gt;Since last some days i have just been exploring this amazing and recently growing world of cloud computing. I did try developing couple of small apps with Stax, Google App Engine and i was surprised the way these folks have opened a new world of options for small organizations or individual developers who wants to use the large infrastructure and don't want to invest huge amount of money in the beginning.&lt;br /&gt;&lt;br /&gt;After this recent release of Google app engine supporting Java, its not leaving anybody unaware about this new arena, which can help anybody and everybody from a small software garage shop or large companies.&lt;br /&gt;&lt;br /&gt;I was surprise to see what all can you do with huge infrastructure backing you and you pay only what you use with no strings attached.&lt;br /&gt;&lt;br /&gt;Amazon Simple Queue Service (Amazon SQS) was one of the most interesting platform I encountered which is highly scalable, hosted queue for storing messages as they travel between your business networks. But one thing i was wondering about was the security. How secure are they ? They definitely comment being very secure but what's the guarantee that these messages are not intercepted by the hosting provider.&lt;br /&gt;&lt;br /&gt;But definitely these options help new developers to develop some applications which they can expand in future.&lt;br /&gt;&lt;br /&gt;Good luck to all this cloud computing and hope this lands up in strong cloud in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-2401932428591209425?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i5jA_u5BfGmMrPIA_lhGgarN3aM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i5jA_u5BfGmMrPIA_lhGgarN3aM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i5jA_u5BfGmMrPIA_lhGgarN3aM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i5jA_u5BfGmMrPIA_lhGgarN3aM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/lrb5uJN853s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/2401932428591209425/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2009/04/world-of-cloud-computing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/2401932428591209425?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/2401932428591209425?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/lrb5uJN853s/world-of-cloud-computing.html" title="World of Cloud Computing" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2009/04/world-of-cloud-computing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUMQHo_fCp7ImA9WxRUEk0.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-8698199224782338493</id><published>2008-11-20T13:01:00.004-05:00</published><updated>2008-11-20T13:04:41.444-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-20T13:04:41.444-05:00</app:edited><title>Morgan Stanly Web 2.0</title><content type="html">The other day, I was going through this presentation and was just thinking is this number thingy true or I must say, its just another presentation material stuff.&lt;br /&gt;&lt;br /&gt;Have a look at it, its interesting&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_725248"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/hblodget/mary-meeker-web-20-presentation-presentation?type=powerpoint" title="Mary Meeker Web 2.0 Presentation"&gt;Mary Meeker Web 2.0 Presentation&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=techtrendsweb2110508-1225933600339539-9&amp;rel=0&amp;stripped_title=mary-meeker-web-20-presentation-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=techtrendsweb2110508-1225933600339539-9&amp;rel=0&amp;stripped_title=mary-meeker-web-20-presentation-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/hblodget/mary-meeker-web-20-presentation-presentation?type=powerpoint" title="View Mary Meeker Web 2.0 Presentation on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/trends"&gt;trends&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/web"&gt;web&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-8698199224782338493?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/S9CW0Kkxa7Eeudi0wg1oCRNBWhY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S9CW0Kkxa7Eeudi0wg1oCRNBWhY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/S9CW0Kkxa7Eeudi0wg1oCRNBWhY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S9CW0Kkxa7Eeudi0wg1oCRNBWhY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/vhNakVVSYkY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/8698199224782338493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2008/11/morgan-stanly-web-20.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/8698199224782338493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/8698199224782338493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/vhNakVVSYkY/morgan-stanly-web-20.html" title="Morgan Stanly Web 2.0" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2008/11/morgan-stanly-web-20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcAQno5cSp7ImA9WxJREUk.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-1174803644115405510</id><published>2008-11-10T12:51:00.010-05:00</published><updated>2009-05-12T11:27:23.429-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T11:27:23.429-04:00</app:edited><title>Icefaces rocks in JSF &amp; the AJAX world.</title><content type="html">I have been using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Icefaces&lt;/span&gt; since 1.6.1 came into release. and have been really impressed the way it has helped us in speeding up our development process.&lt;br /&gt;&lt;br /&gt;In my last project when playing a project lead, i was asked to choose some sleek User &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Iterface&lt;/span&gt; and as a result i looked at some of the libraries including Tomahawk and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Richfaces&lt;/span&gt;. At the same time i just heard about another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;opensource&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;JSF&lt;/span&gt; framework, "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Icefaces&lt;/span&gt;" which now has taken over these in terms of look and feel, ease to build and what more.&lt;br /&gt;&lt;br /&gt;The different custom components in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;icefaces&lt;/span&gt; library which we used and really made our User Interface rich were panel &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;popups&lt;/span&gt;, connection status being a very small component it makes your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;UI&lt;/span&gt; so much user interactive.&lt;br /&gt;&lt;br /&gt;Not to mention the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;extension&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Datatable&lt;/span&gt; with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;datapaginator&lt;/span&gt; which makes the paginated table displays so neat and quick. We also did extended the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;JSF&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;datamodel&lt;/span&gt; and made the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;datatable&lt;/span&gt; pagination on the database side for some of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;datatables&lt;/span&gt; in the application. but it was quick, integrating all this with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;datapaginator&lt;/span&gt; provided by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Icefaces&lt;/span&gt;. Sorting the tables and giving options to user to select how many rows he wants on one page was all developed.&lt;br /&gt;&lt;br /&gt;Making interactive graphs and charts was again one of the cool enhancement provided by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Icefaces&lt;/span&gt; by extended &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;jCharts&lt;/span&gt;. Customizing the charts and generating them on the fly was so easy and quick. It &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;definitely&lt;/span&gt; saved us lot of time.&lt;br /&gt;&lt;br /&gt;I did use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Autocomplete&lt;/span&gt; component of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Icefaces&lt;/span&gt; which was good and quick, but had to customize to my needs.&lt;br /&gt;&lt;br /&gt;Overall my experience with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Icefaces&lt;/span&gt; has been rocking and would &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;definitely&lt;/span&gt; would use&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-1174803644115405510?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DJ1FgyZ9CmHgMO2AuxPXu9HGM0k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DJ1FgyZ9CmHgMO2AuxPXu9HGM0k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DJ1FgyZ9CmHgMO2AuxPXu9HGM0k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DJ1FgyZ9CmHgMO2AuxPXu9HGM0k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/dAdj5t_P3wo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/1174803644115405510/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2008/11/icefaces-rocks-in-ajax-and-jsf.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1174803644115405510?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1174803644115405510?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/dAdj5t_P3wo/icefaces-rocks-in-ajax-and-jsf.html" title="Icefaces rocks in JSF &amp; the AJAX world." /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2008/11/icefaces-rocks-in-ajax-and-jsf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIBRX87fip7ImA9WxJRFE8.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-5904446386397576868</id><published>2008-11-09T01:38:00.005-05:00</published><updated>2009-05-15T17:22:34.106-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-15T17:22:34.106-04:00</app:edited><title>The Technical face of  M &amp; A (Mergers and Acquisitions)</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;As any new technology comes into existence with some objectives for business. so SOA is not an exception and it helps in aligning business and IT together.&lt;br /&gt;&lt;br /&gt;In present scenarios where every other day one or the other business is involved in M &amp;amp; A. Integrating the technology platforms of different companies comes as a big challenge to the IT department of the company. SOA along with BPEL is one solution to overcome this technical challenge.&lt;br /&gt;&lt;p&gt; The process-oriented approach to SOA requires a language for relatively simple&lt;br /&gt; description of how web services should be composed into business processes.&lt;br /&gt; Of course it would be great if such descriptions could also be executed, which&lt;br /&gt; would allow us not only to define abstract process definitions, but to write&lt;br /&gt; exact executable specifications of processes. BPEL is such a language. Actually&lt;br /&gt; it is the first language which:&lt;/p&gt;Allows us to define abstract and executable processes&lt;ol&gt;&lt;li&gt;Is supported by the majority of big shops.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Software exists (from several vendors) on which such&lt;br /&gt;     processes can be executed (BPEL servers) and developed (BPEL designers).&lt;/li&gt;&lt;/ol&gt;BPEL has been in existence since 2003, but recently it started gaining momentum because of Big acquisitions and mergers. It covers the very important paradigm called orchestration. There is another one called Choreography which is covered by other&lt;br /&gt;   standards, such as WSCI (Web Services choreography Interface) and WS-CDL&lt;br /&gt;   (Web Services Choreography Description Language). Choreography has not gained&lt;br /&gt;   support from the industry which would be comparable to BPEL.&lt;br /&gt;&lt;br /&gt;The major players for BPEL has been IBM, Oracle BPEL engine and not to forget its jdeveloper support in designing the BPEL model, its fantastic. There are other open source namely ActiveBPEL which are widely adopted by the community.&lt;br /&gt;&lt;br /&gt;BEA and JBOSS also have been actively promoting it but they support BPM(Business Process Management) as a whole, and BEA again is no more the independent entity so as Oracle now they support BPEL engine separately as well.&lt;br /&gt;&lt;br /&gt;Who are the leaders is still undecided ? but BPEL emerged as a smart solution to the companies in mergers and acquisitions.&lt;br /&gt;&lt;br /&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/5268267436084065971-5904446386397576868?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0aZWjLubjbqT9xoTXJdtB0CGVCs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0aZWjLubjbqT9xoTXJdtB0CGVCs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0aZWjLubjbqT9xoTXJdtB0CGVCs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0aZWjLubjbqT9xoTXJdtB0CGVCs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/-nMqQSqgFHM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/5904446386397576868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2008/11/technical-face-of-m-mergers-and_09.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/5904446386397576868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/5904446386397576868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/-nMqQSqgFHM/technical-face-of-m-mergers-and_09.html" title="The Technical face of  M &amp;amp; A (Mergers and Acquisitions)" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2008/11/technical-face-of-m-mergers-and_09.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMMQn4zcCp7ImA9WxRWF0s.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-1260973018977749423</id><published>2008-11-02T12:56:00.002-05:00</published><updated>2008-11-03T22:14:43.088-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-03T22:14:43.088-05:00</app:edited><title>Is SOA the future or just the hype</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;SOA(Service Oriented Architecture) has been around for a while now, but is it worth the hype around it? SOA is the real buzzword in the technology space.&lt;br /&gt;&lt;br /&gt;BPEL, ESB, DSP are some of the various buzzwords around the SOA space.&lt;br /&gt;&lt;br /&gt;Applying the SOA paradigm to a real-time system throws up many&lt;br /&gt;problems, which include response time, support of event-driven,&lt;br /&gt;asynchronous parallel applications, complicated human interface&lt;br /&gt;support, reliability, etc.&lt;br /&gt;&lt;br /&gt;SOA can be implemented with various technologies but webservices is always the most preferred choice for integrating. People have been using webservices for long time, but integrating the services or better say orchestrating (in  SOA terminology) was always a challenge. In past integration of most of the systems was done with Adapters and other business integration tools like WBI(Websphere Business Integration) where BPEL(Business Process Execution Language) came in a savior.&lt;br /&gt;&lt;br /&gt;One Question which always runs through my mind while working on any SOA infrastructure is, Is it going to be worth the expenditure and again funding. Who is going to fund between different departments as it is more of a enterprise wide re-engineering.&lt;br /&gt;&lt;br /&gt;And last but not the least, acquisitions of companies like BEA is making more proprietary.&lt;br /&gt;&lt;br /&gt;The answers to these questions can only be guessed or answered by the future.&lt;br /&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/5268267436084065971-1260973018977749423?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qCDQWbaZHDdHwC54O-FXOtrAMl4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qCDQWbaZHDdHwC54O-FXOtrAMl4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qCDQWbaZHDdHwC54O-FXOtrAMl4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qCDQWbaZHDdHwC54O-FXOtrAMl4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/qkaqZ6Yc7X8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/1260973018977749423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2008/11/is-soa-future-or-just-hype.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1260973018977749423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/1260973018977749423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/qkaqZ6Yc7X8/is-soa-future-or-just-hype.html" title="Is SOA the future or just the hype" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2008/11/is-soa-future-or-just-hype.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UDQ3Yzeip7ImA9WB5QE0k.&quot;"><id>tag:blogger.com,1999:blog-5268267436084065971.post-174281622164605294</id><published>2007-07-01T21:48:00.000-04:00</published><updated>2007-07-01T21:54:32.882-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-01T21:54:32.882-04:00</app:edited><title>wscompile or java2wsdl ?</title><content type="html">Which is the preferred way of creating webservices. I mean the two are totally different as wscomile of used to created all the wsdl and mapping document according to   &lt;a href="http://jcp.org/en/jsr/detail?id=109"&gt;JSR-109&lt;/a&gt; where as the other option of creating is axis implementation.&lt;br /&gt;&lt;br /&gt;I am not very sure which helps  in which situation except one is the industry standard and other is not but as per awareness the WSDL created by Java2WSDL of axis also follows the JSR-109 specs.&lt;br /&gt;&lt;br /&gt;And definately the news specs JSR-181 is coooool it nothing to be done explicitly everything is done with annotations its gonna rock&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5268267436084065971-174281622164605294?l=techlabs.thoughtclicks.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/742AFFfuA5M02KzS4uxRo31ZPdg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/742AFFfuA5M02KzS4uxRo31ZPdg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/742AFFfuA5M02KzS4uxRo31ZPdg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/742AFFfuA5M02KzS4uxRo31ZPdg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnologySpeaks/~4/-19WVCu0ybI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://techlabs.thoughtclicks.com/feeds/174281622164605294/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://techlabs.thoughtclicks.com/2007/07/wscompile-or-java2wsdl.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/174281622164605294?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5268267436084065971/posts/default/174281622164605294?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnologySpeaks/~3/-19WVCu0ybI/wscompile-or-java2wsdl.html" title="wscompile or java2wsdl ?" /><author><name>Rahul Juneja</name><uri>http://www.blogger.com/profile/15525659400983010345</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://techlabs.thoughtclicks.com/2007/07/wscompile-or-java2wsdl.html</feedburner:origLink></entry></feed>

