<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8471069</id><updated>2011-11-27T16:20:48.897-08:00</updated><category term='portlet'/><category term='flockbrowser'/><category term='webservice'/><category term='patterns'/><category term='iframe'/><category term='testing dst'/><category term='pattern'/><category term='portal'/><category term='top10'/><category term='design'/><category term='SOA'/><category term='BPEL'/><category term='gartner'/><title type='text'>J2EE, portal, SOA, etc.</title><subtitle type='html'>I am a software engineer and work on J2EE related stuff and sometimes on .NET as well. This is my blog where I post my thoughts and experiences on various topics.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://java101.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>rohit.pasari</name><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>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8471069.post-6991158904536367317</id><published>2008-03-23T19:04:00.000-07:00</published><updated>2008-03-23T19:20:00.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='portlet'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><title type='text'>MVC or application portlets (JSR 168/286, Struts, JSF, Springs, etc)</title><content type='html'>This category of portal integration pattern is when portlets are developed in-house as full fledged applications. This could be from simple to complex ranging from 1 view to multiple views. Portlet developer implements all the tiers of standard MVC (Model-View-Controller) pattern. Code can be written using standard JSP, JSTL, Java as well as several popular frameworks like Struts, JSF, Spring, etc but make sure whatever framework you choose is supported/integrated with portal product that you are using.&lt;br /&gt;&lt;br /&gt;When developing portlets make sure to implement using standard portlet API JSR 168. The newer portlet 2.0 standard JSR 286 has also been improved but may have limited support by vendors. It is best to avoid using propritory portlet framework like IBM portlet API which is now deprecated with IBM Portal 6x.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-6991158904536367317?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/6991158904536367317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=6991158904536367317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6991158904536367317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6991158904536367317'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/mvc-or-application-portlets-jsr-168268.html' title='MVC or application portlets (JSR 168/286, Struts, JSF, Springs, etc)'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-38883003357481705</id><published>2008-03-16T19:44:00.001-07:00</published><updated>2008-03-16T19:44:23.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='portlet'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Web service client/SOA/BPEL portlets - Portal Design Pattern</title><content type='html'>These comes in several flavors.&lt;br /&gt;&lt;br /&gt;Lets say you have a web service that you want to expose on the portal. You can than create a web service client portlet - lot of IDEs may let you drop the service WSDL and auto-general all the code letting you place the input to the service as HTML UI elements as well as custom layed output. It will auto-generate the html code and all the backend plumbing code. Just package as the war file and deploy. An example of this can be "Package Tracking Portlet" which simply takes a tracking number and returns the results in the portlet.&lt;br /&gt;&lt;br /&gt;A variation of the above is when you just want to display the results and there is no input which is based on users profile that is passed to the service - this can be custom coded or auto-configured depending on the sophistication of the IDE. In custom code you would have to do quite a bit of tweaking where you have to make the results page as the home page of the portlet and behind the scenes submit the 1st/input page to the service.&lt;br /&gt;&lt;br /&gt;SOA portlets are basically giving UI interface via portal to your SOA solutions. The portlet can be calling one service that choreographs multiple services or you can have a portlet that calls multiple services.&lt;br /&gt;&lt;br /&gt;BPEL portlets are the ones generated as implementation of human task in a business process flow.&lt;br /&gt;&lt;br /&gt;  &lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&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/8471069-38883003357481705?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/38883003357481705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=38883003357481705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/38883003357481705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/38883003357481705'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/web-service-clientsoabpel-portlets.html' title='Web service client/SOA/BPEL portlets - Portal Design Pattern'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-3465396618906149975</id><published>2008-03-15T12:57:00.001-07:00</published><updated>2008-03-16T11:15:42.208-07:00</updated><title type='text'>JSR 286 Approved</title><content type='html'>Great news for portal developers and vendors alike :)&lt;br /&gt;&lt;div style="FONT-SIZE: 1px! important; MARGIN: 0px 1px; LINE-HEIGHT: 0px! important; PADDING-TOP: 1px; BACKGROUND-COLOR: #c3d9ff"&gt;&lt;/div&gt;&lt;div style="FONT-SIZE: 1px! important; MARGIN: 0px 2px; LINE-HEIGHT: 0px! important; PADDING-TOP: 1px; BACKGROUND-COLOR: #c3d9ff"&gt;&lt;/div&gt;&lt;div style="MARGIN: 0px 10px; OVERFLOW: auto; WIDTH: 100%; FONT-FAMILY: sans-serif"&gt;&lt;h2 style="MARGIN: 0.25em 0px 0px"&gt;&lt;div class=""&gt;&lt;a href="http://feeds.feedburner.com/~r/portlets/~3/250582522/jsr-286-approved.html"&gt;JSR 286 Approved&lt;/a&gt;&lt;/div&gt;&lt;/h2&gt;&lt;div style="MARGIN-BOTTOM: 0.5em"&gt;via &lt;a class="f" href="http://portlets.blogspot.com/"&gt;JSR 168 JSR 286 Portlets &amp;amp; Enterprise Portal&lt;/a&gt; by Punit Pandey on 3/7/08&lt;/div&gt;&lt;br style="DISPLAY: none"&gt;You would be happy to know that the &lt;span style="font-size:0;"&gt;JSR&lt;/span&gt; 286 is approved and the final version should be available soon. By the time, you can have a look at final draft &lt;a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr286/index.html"&gt;here&lt;/a&gt;. I am sure &lt;span style="font-size:0;"&gt;JSR&lt;/span&gt;286 will prove a big leap forward in success of Java Portals. I congratulate spec lead Stefan Hepper and all expert group members for the efforts and hard work. &lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/portlets?a=cFSm6b"&gt;&lt;img src="http://feeds.feedburner.com/~a/portlets?i=cFSm6b" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/portlets/~4/250582522" width="1" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-3465396618906149975?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/3465396618906149975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=3465396618906149975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/3465396618906149975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/3465396618906149975'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/jsr-286-approved.html' title='JSR 286 Approved'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-1738905029154525508</id><published>2008-03-02T20:01:00.001-08:00</published><updated>2008-03-02T20:01:34.858-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='portlet'/><category scheme='http://www.blogger.com/atom/ns#' term='iframe'/><title type='text'>Iframe portlets - portal design pattern</title><content type='html'>Iframe portlets can be used to expose existing internal web applications and even external sites - as a matter of fact any web site as a portlet. Below are high level steps:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a basic portlet using the portlet IDE that comes with your portal, like RAD (rational application developer) for IBM portal. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;In its most simple format there is just enough code to use the html &lt;span style="font-style: italic;"&gt;iframe&lt;/span&gt; tag. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;This tag takes url as one of the parameter which is where you specify the site url.&lt;/li&gt;&lt;li&gt;Some additional parameter that can be used are height/width of the iframe - so if you have more than one portlet on the page than use these to adjust accordingly.&lt;/li&gt;&lt;li&gt;To add more - you could use the out of the box help/edit feature of the portlet and even let the user specify the url of the site.&lt;/li&gt;&lt;/ol&gt;This approach lets you integrate existing applications very easily with your portal and is probably used a lot. &lt;br /&gt;&lt;br /&gt;  &lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&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/8471069-1738905029154525508?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/1738905029154525508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=1738905029154525508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/1738905029154525508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/1738905029154525508'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/iframe-portlets-portal-design-pattern.html' title='Iframe portlets - portal design pattern'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-6969096410872393039</id><published>2008-03-02T19:41:00.001-08:00</published><updated>2008-03-23T19:16:09.752-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><title type='text'>Portal Integration Patterns</title><content type='html'>There are several portal integration patterns that I would like to talk about over several blog posts. This is to expose applications/functionalities that people can use on portal. Some of them are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;Iframe portlets&lt;/li&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;Web service client/SOA/BPEL portlets&lt;/li&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;MVC or application portlets (JSR 168/286, Struts, JSF, Springs, etc)&lt;br /&gt;&lt;/li&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;Launch applications via portal&lt;/li&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;WSRP (Web Services Remote Portlet)&lt;/li&gt;&lt;li style="FONT-FAMILY: Georgia"&gt;Fun/productive/vendor portlets&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Georgia;"&gt;Web Clipper portlets&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="FONT-SIZE: 8px; TEXT-ALIGN: right"&gt;Blogged with &lt;a title="Flock" href="http://www.flock.com/blogged-with-flock" target="_new"&gt;Flock&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/8471069-6969096410872393039?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/6969096410872393039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=6969096410872393039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6969096410872393039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6969096410872393039'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/portal-integration-patterns_02.html' title='Portal Integration Patterns'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-5546970092368726074</id><published>2008-03-01T08:59:00.001-08:00</published><updated>2008-03-02T19:42:21.803-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gartner'/><category scheme='http://www.blogger.com/atom/ns#' term='top10'/><title type='text'>Gartner Top 10 for 2008</title><content type='html'>I am very interested in social networking and enabling apps on mobile devices in an enterprise setting from this top 2008 list from gartner &lt;a href="http://www.networkworld.com/news/2007/100907-10-strategic-technologies-gartner.html?page=3"&gt;http://www.networkworld.com/news/2007/100907-10-strategic-technologies-gartner.html?page=3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&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/8471069-5546970092368726074?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/5546970092368726074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=5546970092368726074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/5546970092368726074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/5546970092368726074'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/03/gartner-top-10-for-2008.html' title='Gartner Top 10 for 2008'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-6756747520965577017</id><published>2008-02-23T17:37:00.001-08:00</published><updated>2008-03-02T19:44:21.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flockbrowser'/><title type='text'>integrated with flock ;</title><content type='html'>Trying out the new social browser flock and so far looks great&lt;br /&gt;&lt;br /&gt; &lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&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/8471069-6756747520965577017?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/6756747520965577017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=6756747520965577017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6756747520965577017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/6756747520965577017'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2008/02/integrated-with.html' title='integrated with flock ;'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-9089424340775342060</id><published>2007-11-25T19:35:00.001-08:00</published><updated>2007-11-25T19:35:17.843-08:00</updated><title type='text'>Enterprise tips 1</title><content type='html'>Two interesting points -&lt;p&gt;1. Consumers at home are enterprise users from 9 to 5.&lt;p&gt;2. IT should become from enabler of business apps to enabler of  &lt;br&gt;business innovation.&lt;p&gt;$ Rob Levy - CTO BEA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-9089424340775342060?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/9089424340775342060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=9089424340775342060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/9089424340775342060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/9089424340775342060'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2007/11/enterprise-tips-1.html' title='Enterprise tips 1'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-4743765881026718883</id><published>2007-11-03T10:46:00.001-07:00</published><updated>2007-11-03T10:46:57.081-07:00</updated><title type='text'>Portlet &amp; J2EE</title><content type='html'>JSR286 is going to be part of J2EE 5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-4743765881026718883?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/4743765881026718883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=4743765881026718883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/4743765881026718883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/4743765881026718883'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2007/11/portlet-j2ee.html' title='Portlet &amp; J2EE'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-8165801343055833222</id><published>2007-03-03T23:17:00.000-08:00</published><updated>2007-03-03T23:18:13.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing dst'/><title type='text'>Testing for DST change in 2007</title><content type='html'>I believe testing at below different points in time should suffice.&lt;br /&gt;&lt;br /&gt;1.      When the daylight patches are applied by the sys admins, the application teams should go in and test from basic to full functionality. But if time pressed below testing should do:&lt;br /&gt;a.      Application home page comes up fine&lt;br /&gt;b.      Test one or two critical time related functionality (date formatting, time related calculations, etc).&lt;br /&gt;2.      New rule Spring DST time, March 11th: Early morning (if possible 2:01am) testing.&lt;br /&gt;3.      Old rule Spring DST time, April 1st. Early morning (if possible 2:01am) testing. (if the 2nd one above works than this is more of a sanity check).&lt;br /&gt;4.      New rule Fall DST time, November 4th: Early morning (if possible 2:01am) testing.&lt;br /&gt;5.      Old rule Fall DST time, October 28th. Early morning (if possible 2:01am) testing. (if the 4th one above works than this is more of a sanity check).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-8165801343055833222?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/8165801343055833222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=8165801343055833222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/8165801343055833222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/8165801343055833222'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2007/03/testing-for-dst-change-in-2007.html' title='Testing for DST change in 2007'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-117134053643685284</id><published>2007-02-12T20:07:00.000-08:00</published><updated>2007-02-12T20:22:16.446-08:00</updated><title type='text'>SOAs don't enable mashups?</title><content type='html'>If you have a SOA infrastructure than you have soap xml messages over http or may be mq messages. So you can use these to orchestrate/choreograph sercices but this is composing at the system/backend integration level. Mashup is more of an integration at the UI level. It expects the services to be available as javascripts. Think JSON/REST. So what do you have to do with those SOA services? For the ones that make sense to be available to do mashups currently you would have to expose them as javascript and having nothing to do with SOA related services. So what do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-117134053643685284?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/117134053643685284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=117134053643685284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/117134053643685284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/117134053643685284'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2007/02/soas-dont-enable-mashups.html' title='SOAs don&apos;t enable mashups?'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116568951699370078</id><published>2006-12-09T10:38:00.000-08:00</published><updated>2006-12-09T10:38:37.713-08:00</updated><title type='text'>Fimoculous.com - misc - Best Blogs of 2006 that You (Maybe) Aren't Reading</title><content type='html'>&lt;a href="http://www.fimoculous.com/archive/post-1825.cfm"&gt;Fimoculous.com - misc - Best Blogs of 2006 that You (Maybe) Aren't Reading&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I went ahead and subscribed to #1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116568951699370078?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116568951699370078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116568951699370078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116568951699370078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116568951699370078'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/12/fimoculouscom-misc-best-blogs-of-2006.html' title='Fimoculous.com - misc - Best Blogs of 2006 that You (Maybe) Aren&apos;t Reading'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116327524627901023</id><published>2006-11-11T12:00:00.000-08:00</published><updated>2006-11-11T12:00:46.706-08:00</updated><title type='text'>IBM - IBM WebSphere Portal Version 6.0 Tuning Guide</title><content type='html'>&lt;a href="http://www-1.ibm.com/support/docview.wss?rs=688&amp;amp;uid=swg27008511"&gt;IBM - IBM WebSphere Portal Version 6.0 Tuning Guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116327524627901023?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116327524627901023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116327524627901023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116327524627901023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116327524627901023'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/11/ibm-ibm-websphere-portal-version-60.html' title='IBM - IBM WebSphere Portal Version 6.0 Tuning Guide'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116312828560682011</id><published>2006-11-09T19:11:00.000-08:00</published><updated>2006-11-09T19:11:25.806-08:00</updated><title type='text'>New features in SharePoint 2007</title><content type='html'>&lt;div&gt;I have been using SharePoint for sometime and it's really cool. The newer version promises to be better. I am hoping to be able to try it out as soon as we upgrade.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;a href="http://dotnet.sys-con.com/read/294609.htm"&gt;http://dotnet.sys-con.com/read/294609.htm&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/8471069-116312828560682011?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116312828560682011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116312828560682011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116312828560682011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116312828560682011'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/11/new-features-in-sharepoint-2007.html' title='New features in SharePoint 2007'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116087340860031275</id><published>2006-10-14T17:50:00.000-07:00</published><updated>2006-10-14T17:50:08.600-07:00</updated><title type='text'>Trixie -- IE's version of Firefox's greasemonkey</title><content type='html'>&lt;a href="http://www.bhelpuri.net/Trixie/"&gt;Trixie&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116087340860031275?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116087340860031275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116087340860031275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116087340860031275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116087340860031275'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/10/trixie-ies-version-of-firefoxs.html' title='Trixie -- IE&apos;s version of Firefox&apos;s greasemonkey'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116087325270981957</id><published>2006-10-14T17:47:00.000-07:00</published><updated>2006-10-14T17:47:32.770-07:00</updated><title type='text'>Dive Into Greasemonkey</title><content type='html'>Found this excellent introduction to Greasemonkey.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diveintogreasemonkey.org/toc/index.html"&gt;Table of contents [Dive Into Greasemonkey]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116087325270981957?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116087325270981957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116087325270981957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116087325270981957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116087325270981957'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/10/dive-into-greasemonkey.html' title='Dive Into Greasemonkey'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116032949958786630</id><published>2006-10-08T10:44:00.000-07:00</published><updated>2006-10-08T10:45:38.660-07:00</updated><title type='text'>Free book on "1001 best things said about work (and the workplace)"</title><content type='html'>I have read only few quotes but already fell in love.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thejoyofnotworking.com/ebook/1001BestThingsSaidaboutWork.pdf"&gt;Click here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116032949958786630?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116032949958786630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116032949958786630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116032949958786630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116032949958786630'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/10/free-book-on-1001-best-things-said.html' title='Free book on &quot;1001 best things said about work (and the workplace)&quot;'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-116024123476950419</id><published>2006-10-07T10:13:00.000-07:00</published><updated>2006-10-07T10:13:54.953-07:00</updated><title type='text'>Ajax and REST, Part 1</title><content type='html'>&lt;a href="http://www-128.ibm.com/developerworks/java/library/wa-ajaxarch/"&gt;Ajax and REST, Part 1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-116024123476950419?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/116024123476950419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=116024123476950419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116024123476950419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/116024123476950419'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/10/ajax-and-rest-part-1.html' title='Ajax and REST, Part 1'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115967732368940918</id><published>2006-09-30T21:35:00.000-07:00</published><updated>2006-09-30T21:35:24.450-07:00</updated><title type='text'>Best Practices for Applying AJAX to JSR 168 Portlets</title><content type='html'>&lt;a href="http://developers.sun.com/prodtech/portalserver/reference/techart/ajax-portlets.html"&gt;Best Practices for Applying AJAX to JSR 168 Portlets&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115967732368940918?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115967732368940918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115967732368940918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115967732368940918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115967732368940918'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/best-practices-for-applying-ajax-to.html' title='Best Practices for Applying AJAX to JSR 168 Portlets'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115913758434443593</id><published>2006-09-24T15:39:00.000-07:00</published><updated>2006-09-24T15:39:44.756-07:00</updated><title type='text'>GigaOM » FON selling $5 Wireless Router</title><content type='html'>I am blown away by this social sharing of WIFI connection company FON.com&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mobile.gigaom.com/2006/09/19/fon-selling-5-wireless-router/"&gt;GigaOM » FON selling $5 Wireless Router&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115913758434443593?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115913758434443593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115913758434443593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115913758434443593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115913758434443593'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/gigaom-fon-selling-5-wireless-router.html' title='GigaOM » FON selling $5 Wireless Router'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115855041055748815</id><published>2006-09-17T20:33:00.000-07:00</published><updated>2006-09-17T20:33:30.656-07:00</updated><title type='text'>Go2Web20.net - The complete Web 2.0 directory.</title><content type='html'>Feeling hard to keep up with hot web 2.0 sites. Your one stop shop is below web site :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.go2web20.net/"&gt;Go2Web20.net - The complete Web 2.0 directory.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115855041055748815?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115855041055748815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115855041055748815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115855041055748815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115855041055748815'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/go2web20net-complete-web-20-directory.html' title='Go2Web20.net - The complete Web 2.0 directory.'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115811647275230315</id><published>2006-09-12T20:01:00.000-07:00</published><updated>2006-09-17T01:00:43.900-07:00</updated><title type='text'>Portal study by Aberdeen Group</title><content type='html'>I have been thingking about trying out the JBOSS portal sometime and glad to find out that it is the #1 open source portal as per the below report. Another big surprise for me is that SAP &amp; Oracle are ahead of IBM in responsiveness to customer requests. But surprisingly the report failed to mention the #1 portal amongst high profile vendors.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aberdeen.com/c/report/research_briefs/RB_JBossAdoption_RK_3400.pdf"&gt;report&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115811647275230315?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115811647275230315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115811647275230315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115811647275230315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115811647275230315'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/portal-study-by-aberdeen-group.html' title='Portal study by Aberdeen Group'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115792533614488041</id><published>2006-09-10T14:55:00.000-07:00</published><updated>2006-09-10T14:55:36.186-07:00</updated><title type='text'>10 Avoidable IT Interview Flubs</title><content type='html'>Lot of these points make sense. Happy interviewing :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eweek.com/article2/0,1895,2011140,00.asp?kc=EWNAVEMNL090106EOAD"&gt;10 Avoidable IT Interview Flubs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115792533614488041?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115792533614488041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115792533614488041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115792533614488041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115792533614488041'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/10-avoidable-it-interview-flubs.html' title='10 Avoidable IT Interview Flubs'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115781945281394627</id><published>2006-09-09T09:30:00.000-07:00</published><updated>2006-09-09T09:30:52.813-07:00</updated><title type='text'>Gartner's 2006 Emerging Technologies Hype Cycle Highlights Key Technology Themes</title><content type='html'>So you thought that there is only Ajax enabled web 2.0 to figure out. Well that is just one of the many emerging technologies as per gartner and I feel it makes sense. Happy surfing and learning :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gartner.com/it/page.jsp?id=495475"&gt;Gartner's 2006 Emerging Technologies Hype Cycle Highlights Key Technology Themes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115781945281394627?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115781945281394627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115781945281394627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115781945281394627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115781945281394627'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/gartners-2006-emerging-technologies.html' title='Gartner&apos;s 2006 Emerging Technologies Hype Cycle Highlights Key Technology Themes'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115781931153162433</id><published>2006-09-09T09:28:00.000-07:00</published><updated>2006-09-09T09:28:31.576-07:00</updated><title type='text'>Carson Workshops Summit - The Future of Web Apps</title><content type='html'>Looks like an interesting conference for what is this thing called "web 2.0" but fees of $295 is a bit high for me :(&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.carsonworkshops.com/summit/"&gt;Carson Workshops Summit - The Future of Web Apps&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115781931153162433?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115781931153162433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115781931153162433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115781931153162433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115781931153162433'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/carson-workshops-summit-future-of-web.html' title='Carson Workshops Summit - The Future of Web Apps'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115715992952810635</id><published>2006-09-01T18:18:00.000-07:00</published><updated>2006-09-01T18:18:49.586-07:00</updated><title type='text'>Google Research Publication: BigTable</title><content type='html'>&lt;a href="http://labs.google.com/papers/bigtable.html"&gt;Google Research Publication: BigTable&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115715992952810635?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115715992952810635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115715992952810635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115715992952810635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115715992952810635'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/09/google-research-publication-bigtable.html' title='Google Research Publication: BigTable'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115708055137518042</id><published>2006-08-31T20:15:00.000-07:00</published><updated>2006-08-31T20:15:52.160-07:00</updated><title type='text'>Roles: Composable Units of Object Behavior</title><content type='html'>&lt;a href="http://www.oreillynet.com/onlamp/blog/2006/08/roles_composable_units_of_obje.html?CMP=OTC-6YE827253101&amp;amp;ATT=Roles+Composable+Units+of+Object+Behavior"&gt;Roles: Composable Units of Object Behavior&lt;/a&gt;: "A significant new part of Perl 6’s object model and type system is the addition of roles. Part of their origin is an implementation in Smalltalk (there called traits). They also solve some systemic problems of other OO systems. Why are they useful and how do they work? What is a Role? A role is a named collection of behavior — a set of methods identified by a unique name. This resembles a class or a type, in that referring to the role refers to the combined set of behaviors, but it is more general than a class and more concrete than a type. Put another way, a role is an assertion about a set of capabilities. For example, a Doglike role identifies the important behavior that any doglike entity will possess: perhaps a tail attribute and the methods wag() and bark(). Even only this much is a great advantage to using roles. Presuming you have a method that needs something Doglike, you can ask “Does the class or object I receive behave in a"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115708055137518042?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115708055137518042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115708055137518042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115708055137518042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115708055137518042'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/roles-composable-units-of-object.html' title='Roles: Composable Units of Object Behavior'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115648034812229884</id><published>2006-08-24T21:32:00.000-07:00</published><updated>2006-08-24T21:32:28.133-07:00</updated><title type='text'>Enterprise build system</title><content type='html'>I am involved in providing an enterprise build system at my workplace. We are using maven/cvs. We have something that works but with lot of room to improve. Below article lists some features that are interesting on this topic.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;:: zutubi :: articles :: The Road To Build Enlightenment&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.zutubi.com/products/pulse/articles/buildenlightenment/"&gt;:: zutubi :: articles :: The Road To Build Enlightenment&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115648034812229884?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115648034812229884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115648034812229884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115648034812229884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115648034812229884'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/enterprise-build-system.html' title='Enterprise build system'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115639013832301916</id><published>2006-08-23T20:28:00.000-07:00</published><updated>2006-08-23T20:28:58.366-07:00</updated><title type='text'>Top 5 business maxims that need to go - Part II</title><content type='html'>I am very moved by these 5 business ideas that must go as I must admit that I did believe in at least 2 of them so much....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://positivesharing.com/2006/08/more-bad-business-advice-that-needs-to-go/"&gt;Top 5 business maxims that need to go - Part II&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115639013832301916?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115639013832301916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115639013832301916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115639013832301916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115639013832301916'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/top-5-business-maxims-that-need-to-go.html' title='Top 5 business maxims that need to go - Part II'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115621644334402845</id><published>2006-08-21T20:14:00.000-07:00</published><updated>2006-08-21T20:14:03.366-07:00</updated><title type='text'>Software by Rob : Personality Traits of the Best Software Developers</title><content type='html'>I can't believe it!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.softwarebyrob.com/articles/Personality_Traits_of_the_Best_Software_Developers.aspx"&gt;Software by Rob : Personality Traits of the Best Software Developers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115621644334402845?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115621644334402845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115621644334402845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115621644334402845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115621644334402845'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/software-by-rob-personality-traits-of.html' title='Software by Rob : Personality Traits of the Best Software Developers'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115621620975672931</id><published>2006-08-21T20:10:00.000-07:00</published><updated>2006-08-21T20:10:11.286-07:00</updated><title type='text'>Airfare Predictions, Find Cheap Airline Tickets - Farecast</title><content type='html'>Interesting website that can be used to track air fares.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.farecast.com/"&gt;Airfare Predictions, Find Cheap Airline Tickets - Farecast&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115621620975672931?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115621620975672931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115621620975672931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115621620975672931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115621620975672931'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/airfare-predictions-find-cheap-airline.html' title='Airfare Predictions, Find Cheap Airline Tickets - Farecast'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115613333378644491</id><published>2006-08-20T21:05:00.000-07:00</published><updated>2006-08-20T21:08:53.796-07:00</updated><title type='text'>Java #3</title><content type='html'>&lt;strong&gt;Signature of main()&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The signature of main method in java is as shown below:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;public void static main(String [] args)&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115613333378644491?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115613333378644491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115613333378644491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115613333378644491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115613333378644491'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/java-3.html' title='Java #3'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115612621940993446</id><published>2006-08-20T19:10:00.000-07:00</published><updated>2006-08-20T19:10:19.990-07:00</updated><title type='text'>[copied from google operating system] Google's Master Plan</title><content type='html'>&lt;a href="http://googlesystem.blogspot.com/2006/08/googles-master-plan.html"&gt;Google's Master Plan&lt;/a&gt;: "Maybe we should stop trying to guess the next Google services. What's next for Google is right here on a big whiteboard from their GooglePlex. The photo was taken last year by Niall Kennedy and includes a small part from their master plan. As you can see many projects that don't have a tick in the whiteboard have been launched.A bigger and more comprehensive image is available here, but it's not very clear.As you can see, there are a lot of verticals and new domains: travel, health, TV, games, reviews, marketplace, dating, real estate, jobs, mortgage, pets, music and many ambitious projects like redesigning TCP/IP, and HTTP and creating a new generation of web based on BitTorrent.Other pieces from the puzzle (half jokes, half serious projects):   "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115612621940993446?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115612621940993446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115612621940993446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115612621940993446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115612621940993446'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/copied-from-google-operating-system.html' title='[copied from google operating system] Google&apos;s Master Plan'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115592047006605084</id><published>2006-08-18T10:01:00.000-07:00</published><updated>2006-08-18T10:01:10.150-07:00</updated><title type='text'>JBoss and Liferay provide open portals to SOA | InfoWorld | Review | 2006-05-05 | By Mike Heck</title><content type='html'>&lt;a href="http://www.infoworld.com/article/06/05/05/77788_19TCportals_1.html"&gt;JBoss and Liferay provide open portals to SOA | InfoWorld | Review | 2006-05-05 | By Mike Heck&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115592047006605084?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115592047006605084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115592047006605084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115592047006605084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115592047006605084'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/jboss-and-liferay-provide-open-portals.html' title='JBoss and Liferay provide open portals to SOA | InfoWorld | Review | 2006-05-05 | By Mike Heck'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115587986612672047</id><published>2006-08-17T22:44:00.000-07:00</published><updated>2006-08-17T22:44:26.136-07:00</updated><title type='text'>My first podcast</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Wow!! this is cool... enjoy my first podcast.&lt;/p&gt;&lt;br/&gt;&lt;a href="http://www.box.net/index.php?rm=box_v2_download_shared_file&amp;amp;blog&amp;amp;file_id=f_17441610" target="_blank"&gt;java101_vol1.mp3&lt;/a&gt;&lt;object align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="52" id="player_v04" width="364"&gt;&lt;param name="allowScriptAccess" value="sameDomain"/&gt;&lt;param name="movie" value="http://www.box.net/mp3player/player.swf?playlistURL=http://www.box.net/index.php?rm=box_v2_mp3_player_shared%26_playlist%26node=f_17441610"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#ffffff"/&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;embed align="middle" allowScriptAccess="sameDomain" bgcolor="#ffffff" height="52" name="player_v04" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://www.box.net/mp3player/player.swf?playlistURL=http://www.box.net/index.php?rm=box_v2_mp3_player_shared%26_playlist%26node=f_17441610" type="application/x-shockwave-flash" width="364" wmode="transparent"/&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115587986612672047?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115587986612672047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115587986612672047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115587986612672047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115587986612672047'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/my-first-podcast_17.html' title='My first podcast'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115499310767982587</id><published>2006-08-07T16:25:00.000-07:00</published><updated>2006-08-07T16:25:07.736-07:00</updated><title type='text'>[copied from IBM blog] A new company enters the enterprise mashup space</title><content type='html'>&lt;a href="http://www-03.ibm.com/developerworks/blogs/page/etech?entry=a_new_company_enters_the"&gt;A new company enters the enterprise mashup space&lt;/a&gt;: "Dion Hinchcliffe asserts in this post that enterprise mashups are becoming increasingly important to IT organizations and the business they support.  However tools to enable the creation of enterprise mashups are few and far between.  In fact, while he notes 'Not sure about any of this? IBM has clearly identified mashups as a key enterprise trend as well', he only cites one tool that meets all his criteria: 'However, I've recently come across one product that clearly shows almost the full potential of enterprise mashups in a single package, despite a few rough edges.        Datamashups.comI recently came across Applibase's impressive DataMashups.com site, and more than any other product I've seen so far, it clearly demonstrates the possibilities and potential of enterprise mashups guided by end-users and shared amongst co-workers.  The site has an excellent service preview that lets you quickly start assembling mashups visually, right online, using a rich palette of pre-existing widgets, feeds, data from local and remote SQL database"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115499310767982587?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115499310767982587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115499310767982587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115499310767982587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115499310767982587'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/copied-from-ibm-blog-new-company.html' title='[copied from IBM blog] A new company enters the enterprise mashup space'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115471907495803252</id><published>2006-08-04T12:17:00.000-07:00</published><updated>2006-08-04T12:17:55.030-07:00</updated><title type='text'>[originally at chiefhappinessofficer] Get lucky at work - be positive</title><content type='html'>&lt;a href="http://positivesharing.com/2006/08/get-lucky-at-work-be-positive/"&gt;Get lucky at work - be positive&lt;/a&gt;: "My driving force in business has always been enthusiasm. I’m easily amazed and get curious and fired up about many different things. In fact, I refuse to work on anything that does not grab me in that way. I remember one meeting I had with a woman who was… let’s say slightly less positive. At one point in the meeting, she said “You’re very positive, arent you?” I had to agree, that that was indeed so. It was only after the meeting that I realized that she’d meant it as criticism :o) Positivity has been getting a bad rap at work. If you’re too positive you can be accused of being pollyannaish, uncritical, unrealistic, silly, etc… “Well,” some people say, “it’s all very good for you to be so optimistic but some of us have to work in the real world.” And while there are many great reasons to be more positive at work, there’s one I’d like to mention specifically:  Being positive at w"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115471907495803252?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115471907495803252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115471907495803252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115471907495803252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115471907495803252'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/originally-at-chiefhappinessofficer.html' title='[originally at chiefhappinessofficer] Get lucky at work - be positive'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115462615560120883</id><published>2006-08-03T10:29:00.000-07:00</published><updated>2006-08-03T10:29:15.663-07:00</updated><title type='text'>[originally at theserverside.com] Article: Binding XML to Java</title><content type='html'>&lt;a href="http://feeds.feedburner.com/~r/techtarget/tsscom/home/~3/8857093/thread.tss"&gt;Article: Binding XML to Java&lt;/a&gt;: "Manipulating XML data easily and efficiently in Java remains a challenge. In this article, Ed Merks and Elena Litani explore, through the use of an example, how the Eclipse Modeling Framework solves the XML binding problem and how it compares to alternatives. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115462615560120883?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115462615560120883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115462615560120883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115462615560120883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115462615560120883'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/originally-at-theserversidecom-article.html' title='[originally at theserverside.com] Article: Binding XML to Java'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115456191357898779</id><published>2006-08-02T16:38:00.000-07:00</published><updated>2006-08-02T16:38:33.580-07:00</updated><title type='text'>[from original article at theserverside.com] Ease the integration of Ajax and Java EE</title><content type='html'>&lt;a href="http://feeds.feedburner.com/~r/techtarget/tsscom/home/~3/8540560/thread.tss"&gt;Ease the integration of Ajax and Java EE&lt;/a&gt;: "Patrick Gan has written an article for IBM-Developerworks that provides an overview of how Ajax can be integrated into a Java EE Web application. Part of the integration is trying to reconcile the differences in the communication models used by Java EE and Ajax. To help reduce complexity, Patrick points to Apache Shale and DWR as showing promise. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115456191357898779?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115456191357898779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115456191357898779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115456191357898779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115456191357898779'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/from-original-article-at.html' title='[from original article at theserverside.com] Ease the integration of Ajax and Java EE'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115456167322458646</id><published>2006-08-02T16:34:00.000-07:00</published><updated>2006-08-02T16:34:33.276-07:00</updated><title type='text'>[from original blog by bobby wolf] Effective SOA Governance</title><content type='html'>&lt;a href="http://www-03.ibm.com/developerworks/blogs/page/woolf?entry=effective_soa_governance"&gt;Effective SOA Governance&lt;/a&gt;: "So how do you do SOA governance? IBM has a new whitepaper available, 'Effective SOA Governance.' It's authored by a couple of IBM's leading experts on the topic. You need a free dW account to download it. If you'd like to learn more about what governance is in the first place, check out Introduction to SOA governance and Service Governance."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115456167322458646?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115456167322458646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115456167322458646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115456167322458646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115456167322458646'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/from-original-blog-by-bobby-wolf.html' title='[from original blog by bobby wolf] Effective SOA Governance'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115454145465321428</id><published>2006-08-02T10:57:00.000-07:00</published><updated>2006-08-02T10:57:34.953-07:00</updated><title type='text'>[copied from martin fowlers blog] Writing Software Patterns</title><content type='html'>&lt;a href="http://martinfowler.com/articles/writingPatterns.html"&gt;Writing Software Patterns&lt;/a&gt;: "Updated web site: A while ago I started to put together a little article to describe why I write patterns and pass on my opinions to others about what makes good patterns. I didn't finish it at the time, but recently I dusted it off and finally finished it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115454145465321428?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115454145465321428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115454145465321428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115454145465321428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115454145465321428'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/08/copied-from-martin-fowlers-blog.html' title='[copied from martin fowlers blog] Writing Software Patterns'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115437609742743726</id><published>2006-07-31T13:01:00.000-07:00</published><updated>2006-07-31T13:01:37.570-07:00</updated><title type='text'>[blogged from google reader] Open Service Oriented Architecture</title><content type='html'>&lt;a href="http://www-03.ibm.com/developerworks/blogs/page/woolf?entry=open_service_oriented_architecture"&gt;Open Service Oriented Architecture&lt;/a&gt;: "Vendors have established an organization to develop a standard programming model for SOA.     The Open Service Oriented Architecture (OSOA) collaboration is a group of 15 vendors who are working together to develop a standard programming model for SOA. IBM is one of the founding members. Nine vendors who have just joined include Sun Microsystems, Tibco, and Red Hat. The SOA programming model being developed is based on service component architecture (SCA) and service data objects (SDO) specifications, which were created by IBM (SDO was co-created with BEA) but are now being developed by this group of vendors.     Thus far, the only products that implement the SCA spec (which includes the SDO spec) are from IBM: WebSphere Process Server and WebSphere Enterprise Service Bus. Apache Tuscany will be (is?) an open-source implementation of the specs. I've talked about SCA and SDO previously:  Service Component Architecture (SCA) Industry Leaders Endorse SCA Spec David Chappell: Why Service Component Architecture Is Big News Apache Tuscany  For more information "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115437609742743726?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115437609742743726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115437609742743726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115437609742743726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115437609742743726'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/blogged-from-google-reader-open.html' title='[blogged from google reader] Open Service Oriented Architecture'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115431245450577483</id><published>2006-07-30T19:20:00.000-07:00</published><updated>2006-07-30T19:20:54.563-07:00</updated><title type='text'>AJAX Developer Resource Center</title><content type='html'>Great source of AJAX info from Sun. Your first stop for AJAX related material. Obligatory quote: "Get ahead of the curve and start developing AJAX applications today. This is your source for Java tools, technologies and expert advice."&lt;br/&gt;&lt;br/&gt;&lt;a href="http://developers.sun.com/ajax/index.jsp?cid=101418"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/AJAX_Developer_Resource_Center_2"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115431245450577483?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115431245450577483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115431245450577483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115431245450577483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115431245450577483'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/ajax-developer-resource-center.html' title='AJAX Developer Resource Center'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115422725353265416</id><published>2006-07-29T19:40:00.000-07:00</published><updated>2006-07-29T19:40:53.580-07:00</updated><title type='text'>Johnson on Feeds</title><content type='html'>&lt;a href="http://www.tbray.org/ongoing/When/200x/2006/07/29/Johnson-on-Feeds"&gt;Johnson on Feeds&lt;/a&gt;: " Dave Johnson gave a talk this morning at a local XML interest group. His slides (PDF) are the single best introduction and overview I’ve ever seen about feeds and syndication and RSS and Atom and all that stuff."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115422725353265416?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115422725353265416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115422725353265416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115422725353265416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115422725353265416'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/johnson-on-feeds.html' title='Johnson on Feeds'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115401132050766369</id><published>2006-07-27T07:42:00.000-07:00</published><updated>2006-07-27T07:42:00.576-07:00</updated><title type='text'>Out-Of-Container Testing When Using JNDI Lookups</title><content type='html'>&lt;a href="http://dev2dev.bea.com/blog/hogue/archive/2006/07/outofcontainer_1.html"&gt;Out-Of-Container Testing When Using JNDI Lookups&lt;/a&gt;: "Many applications, particularly J2EE applications, use JNDI to look up their resources. While this is a convenient and useful service, it makes components that depend on the lookups harder to test outside of a running application server. There are a couple of strategies that can be applied to still acheive the much desired goal of testing these components outside of a running server."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115401132050766369?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115401132050766369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115401132050766369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115401132050766369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115401132050766369'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/out-of-container-testing-when-using.html' title='Out-Of-Container Testing When Using JNDI Lookups'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115361331187631736</id><published>2006-07-22T17:08:00.000-07:00</published><updated>2006-07-22T17:08:31.930-07:00</updated><title type='text'>Copied this from google blog - Embed MP3 Files Into Your Website</title><content type='html'>&lt;a href="http://googlesystem.blogspot.com/2006/07/embed-mp3-files-into-your-website.html"&gt;Embed MP3 Files Into Your Website&lt;/a&gt;: "You have an MP3 file (a podcast, a song of your band, a lecture) and you want to share it with the visitors of your site. You can just put a link to the MP3 and let people download it or you can include it as an object and let the browser play it with a plug-in like QuickTime (and most of the times also crash the browser). Most people want to preview the audio and not wait until it downloads completely. You can play a partial MP3 file in audio player, but many people aren't aware of that.But there's another away: a Flash player that allows you to pause and rewind the MP3. It's like an audio version of Google Video or YouTube, with the difference that the file is hosted on your server (or on another server). While there are many solutions based on Flash, this is the one I like the most. It's a modified version of Odeo player, that's used to play podcasts on odeo.com:You just have to replace [MP3 file address] with the actual address.Here you can see how it looks (in this audio, Marissa Mayer talk"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115361331187631736?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115361331187631736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115361331187631736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115361331187631736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115361331187631736'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/copied-this-from-google-blog-embed-mp3.html' title='Copied this from google blog - Embed MP3 Files Into Your Website'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115344014478710211</id><published>2006-07-20T17:02:00.000-07:00</published><updated>2006-07-22T17:22:00.086-07:00</updated><title type='text'>Copied from InsideLotus Blog - IBM WebSphere Portal Version 6 one stop shop for info</title><content type='html'>&lt;a href="http://www-03.ibm.com/developerworks/blogs/page/InsideLotus?entry=ibm_websphere_portal_version_6"&gt;IBM WebSphere Portal Version 6 one stop shop for info&lt;/a&gt;: "IBM WebSphere Portal version 6.0 is just around the corner.  It can be tough keeping up with all the press releases and content on the upcoming version.  While I have a slew of Portal v6 bookmarks, I thought I would share my favorites and the ones I most point customers to.IBM WebSphere Portal Version 6.0 Buzz pageIBM Workplace Web Content Management Version 6.0IBM WebSphere Portlet Factory Version 6.0Why Upgrade to IBM WebSphere Portal Version 6.0IBM WebSphere Portal Version 6.0: The Face of SOAIBM WebSphere Portal Version 6.0 DemoTed"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115344014478710211?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115344014478710211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115344014478710211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115344014478710211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115344014478710211'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/copied-from-insidelotus-blog-ibm.html' title='Copied from InsideLotus Blog - IBM WebSphere Portal Version 6 one stop shop for info'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115334809653523254</id><published>2006-07-19T15:24:00.000-07:00</published><updated>2006-07-19T15:28:16.780-07:00</updated><title type='text'>The world is flat</title><content type='html'>Here is the video link to Thomas Friedman's presentation to MIT audience about his book &lt;strong&gt;The World Is Flat&lt;/strong&gt;. One of the best books I have read in a while and gave me a different perspective of the world - offshoring, web 2.0, terrorism, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mitworld.mit.edu/video/266/"&gt;http://mitworld.mit.edu/video/266/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115334809653523254?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115334809653523254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115334809653523254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115334809653523254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115334809653523254'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/world-is-flat.html' title='The world is flat'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115333755605402611</id><published>2006-07-19T12:32:00.000-07:00</published><updated>2006-07-19T12:32:36.100-07:00</updated><title type='text'>Guide to Those Useless Windows XP Services</title><content type='html'>Cool link that I dugged and really should have come from microsoft for at least tech aware people. Nevertheless, now we have it :)&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.techtree.com/techtree/jsp/article.jsp?article_id=70112&amp;cat_id=584"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/software/Guide_to_Those_Useless_Windows_XP_Services"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115333755605402611?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115333755605402611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115333755605402611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115333755605402611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115333755605402611'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/guide-to-those-useless-windows-xp.html' title='Guide to Those Useless Windows XP Services'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115326348566805784</id><published>2006-07-18T15:58:00.000-07:00</published><updated>2006-07-18T15:58:05.776-07:00</updated><title type='text'>Martin Fowler's agile approach to offshore development.</title><content type='html'>An excellend article from software development methodology guru Martin Fowler on how to apply agile methodology to offshore development. Something worth noting for likes of Infosys, IBM, Accenture, et al.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://martinfowler.com/articles/agileOffshore.html"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/software/Martin_Fowler_s_agile_approach_to_offshore_development."&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115326348566805784?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115326348566805784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115326348566805784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115326348566805784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115326348566805784'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/martin-fowlers-agile-approach-to.html' title='Martin Fowler&apos;s agile approach to offshore development.'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115316088093252927</id><published>2006-07-17T11:28:00.000-07:00</published><updated>2006-07-17T11:29:42.616-07:00</updated><title type='text'>Artificial Intelligence Turns 50 Years Old</title><content type='html'>Computers can beat the world's best chess players, but we still can't get them to think like a 4-year-old. Artificial Intelligence has managed to exceed, and fall short of, our grandest expectations. A look back at what's been accomplished in 50 years and a look ahead at where the field is going.&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.wired.com/news/technology/0,71389-0.html?tw=wn_index_2"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/tech_news/Artificial_Intelligence_Turns_50_Years_Old"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115316088093252927?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115316088093252927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115316088093252927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115316088093252927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115316088093252927'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/artificial-intelligence-turns-50-years.html' title='Artificial Intelligence Turns 50 Years Old'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115205666329337890</id><published>2006-07-04T16:40:00.000-07:00</published><updated>2006-07-04T16:45:13.496-07:00</updated><title type='text'>Tabblo - online photo story site</title><content type='html'>Found out about Tabblo at &lt;a href="http://www.tabblo.com/studio"&gt;http://www.tabblo.com/studio&lt;/a&gt;. They provide a way to share stories online using photos. You upload to the site and weave a story around your pictures. I liked it somewhat. Give it a spin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115205666329337890?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115205666329337890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115205666329337890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115205666329337890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115205666329337890'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/tabblo-online-photo-story-site.html' title='Tabblo - online photo story site'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115204574307021755</id><published>2006-07-04T13:42:00.000-07:00</published><updated>2006-07-18T11:04:13.000-07:00</updated><title type='text'>Great tips for job seekers from Niniane Wang.</title><content type='html'>Found the below great tips from Niniane Wang who is currently a tech lead at google.&lt;br /&gt;&lt;br /&gt;Resume tips at &lt;a href="http://ofb.net/~niniane/resume_howto.html"&gt;http://ofb.net/~niniane/resume_howto.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interview tips at &lt;a href="http://ofb.net/~niniane/interview_howto.html"&gt;http://ofb.net/~niniane/interview_howto.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Niniane Wang's own resume at &lt;a href="http://ofb.net/~niniane/resume.html"&gt;http://ofb.net/~niniane/resume.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another great resume from a google developer is at &lt;a href="http://www.ofb.net/~egnor/resume/"&gt;http://www.ofb.net/~egnor/resume/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Niniane Wang's blog is at &lt;a href="http://niniane.blogspot.com"&gt;http://niniane.blogspot.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115204574307021755?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115204574307021755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115204574307021755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115204574307021755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115204574307021755'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/great-tips-for-job-seekers-from.html' title='Great tips for job seekers from Niniane Wang.'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115204536458750940</id><published>2006-07-04T13:33:00.000-07:00</published><updated>2006-07-04T13:36:05.323-07:00</updated><title type='text'>java#2</title><content type='html'>&lt;strong&gt;The class name should be the same as file name&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So if your class name is CustomerOrder than the file name should be CustomerOrder.java. If not than you would get compile time error. Editors like eclipse/RAD flags this right away while you are coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115204536458750940?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115204536458750940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115204536458750940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115204536458750940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115204536458750940'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/java2.html' title='java#2'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-115190001352147132</id><published>2006-07-02T21:06:00.000-07:00</published><updated>2006-07-02T21:13:33.643-07:00</updated><title type='text'>java #1</title><content type='html'>&lt;strong&gt;Java is platform independent which means you write code once and it can be run on any platform.&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;You compile your .java files into .class files or package .class files into .jar files using java compiler. Java complilers are platform dependent so you have compilers for windows, linux, etc platforms. The .class/.jar files are run on something called java runtime environment, JRE. These JREs are platform dependent again.&lt;br /&gt;&lt;br /&gt;So the idea is that .class files are platform independent but java compilers and runtime environment are platform dependent. So as developers you do not have to worry about platform issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-115190001352147132?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/115190001352147132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=115190001352147132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115190001352147132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/115190001352147132'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/07/java-1.html' title='java #1'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114991379231186324</id><published>2006-06-09T21:21:00.000-07:00</published><updated>2006-06-09T21:30:00.806-07:00</updated><title type='text'>Week of 06-09-2006</title><content type='html'>For my ongoing project to glue the missing pieces between ibm portal and documentum this week i was busy cleaning up my code mostly. There were code fragments that was not used and I took those out. Fixed most of the issues reported by checkstyle, findbugs, and pmd reports.&lt;br /&gt;&lt;br /&gt;Another key feature was to parse the server side include files as well. The idea is take all relative links published by documentum to modify for portal to recognize those. We are using the wps:urlGeneration tag to do that. The issue was that include files were being ignored but that is fixed now.&lt;br /&gt;&lt;br /&gt;Next week I am hoping to provide caching for parsed content files and navigation files.&lt;br /&gt;&lt;br /&gt;Also, read up an article in DDJ on web 2.0 and the key thing that I got was that the new brave web world will be more contextualized and collaboration driven than ever before. Another interesting information was software engineering podcast on domain driven development. We seem to now have model driven developement and event driven development as new paradigms as well. Interesting and hope to have fun learning more on those.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114991379231186324?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114991379231186324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114991379231186324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114991379231186324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114991379231186324'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/week-of-06-09-2006.html' title='Week of 06-09-2006'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114977845564340119</id><published>2006-06-08T07:53:00.000-07:00</published><updated>2006-06-08T07:56:36.603-07:00</updated><title type='text'>Trying to get added to technorati</title><content type='html'>More blogs about &lt;a href="http://technorati.com/blogs/java101" rel="tag directory"&gt;java101&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://technorati.com/blogs/"&gt;&lt;img src="http://static.technorati.com/pix/tbf.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114977845564340119?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114977845564340119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114977845564340119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114977845564340119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114977845564340119'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/trying-to-get-added-to-technorati.html' title='Trying to get added to technorati'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114965026408667830</id><published>2006-06-06T20:17:00.000-07:00</published><updated>2006-06-08T07:53:22.170-07:00</updated><title type='text'>Week of 06-02-2006</title><content type='html'>&lt;span style="font-size:130%;"&gt;I am currently involved in the development of a portal project using IBM websphere portal. The project involves integration of portal and documentum based publishing. It is surprising that there is no direct integration between the two products, something like what BEA portal and documentum has. Here one system has no idea about the other so we are writing glue code that integrates the two. We are providing customization around personalization, navigation, and content rendering.&lt;br /&gt;&lt;br /&gt;Project will continue for few more weeks and this week was focussed on integrating the navigation feature. Authors will be publishing the content and associating the navigation with taxonomy files (represented as xml files) and our glue code will take that content and render it withing a portal page. Navigation glue code is in a custom portal theme which paints the left nav. Now I will be focussing on the different scenarios how the navigation should behave. There are several requirements where the entire tree will be displayed or display just the same level nodes and so on. Each level is denoted in the taxonomy file and there can be n-levels.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114965026408667830?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114965026408667830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114965026408667830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114965026408667830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114965026408667830'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/week-of-06-02-2006.html' title='Week of 06-02-2006'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114964927971471542</id><published>2006-06-06T20:01:00.000-07:00</published><updated>2006-06-06T20:03:53.563-07:00</updated><title type='text'>Continuous integration thoughts</title><content type='html'>&lt;div lang="EN-US" link="blue" vlink="#606420"&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;I came across the continuos integration concept a while back and found the idea interesting. I have been developing j2ee applications for a while in teams of 1 to 15 people now and this seemed like an helpful process to deliver less buggy code in a well controlled environment. But I have looked at this concept at a very high level and hoping to dig a little deeper in future. What prompted me to blog was chance hit at Martin Flower's blog on the subject at  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;: &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://martinfowler.com/articles/continuousIntegration.html" target="_blank"&gt;http://martinfowler.com/articles/continuousIntegration.html&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;One of the issues that we have been facing is how to do unit testing of components that go out to external systems like database and web services. And this article sheds some light on what possible steps can be taken &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;: &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://martinfowler.com/articles/evodb.html" target="_blank"&gt;http://martinfowler.com/articles/evodb.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Need to start looking into this more seriously.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&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/8471069-114964927971471542?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114964927971471542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114964927971471542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114964927971471542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114964927971471542'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/continuous-integration-thoughts.html' title='Continuous integration thoughts'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114945848791220550</id><published>2006-06-04T15:00:00.000-07:00</published><updated>2006-06-04T15:02:56.820-07:00</updated><title type='text'>Why not integrate design patterns directly into java language?</title><content type='html'>I have been doing java programming for over 5 years now and trying these days to understand the design patterns better especially the ones proposed by gang of four. The more I read these design patterns the more I feel that these patterns should have direct support in the java language (and for that matter any OO language). I mean think about this for a minute why not let the language evolve in the direction of best practises by building the same into it so that there is less and less scope for doing things wrong. I believe that if there are more than one way to do something and a particualr way is a design pattern or best practices than it should be directly built into the language as default and if someone wants to use some other way than he has to follow extra steps to do so. Today you have to follow extra steps to do the right thing.&lt;br /&gt;&lt;br /&gt;I am hoping to post my thoughts on each pattern as I read more about it. Some initial thoughts are as follows. Take Observer design pattern, it is currently built into java which is good. The Singleton design pattern support is somewhat provided by java's static keyword but should be expanded so that it is not required to worry about doing those extra steps of making the constructor private and providing getInstance() method or front it by Factory pattern and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114945848791220550?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114945848791220550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114945848791220550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114945848791220550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114945848791220550'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/why-not-integrate-design-patterns.html' title='Why not integrate design patterns directly into java language?'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114944529538174591</id><published>2006-06-04T11:19:00.000-07:00</published><updated>2006-06-04T11:30:45.033-07:00</updated><title type='text'>test for tagworld widget</title><content type='html'>&lt;embed title="portal and soa" name="flashWrapper" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" src="http://tagworld.com/-/widgets/SWFRepository/Flower_200_350.swf?FLVurl=" width="250" height="350" type="application/x-shockwave-flash" allowscriptaccess="sameDomain" titlecolor="0xCCCCFF" bgcolor="#ffffff" dataurl="&amp;xmlParams=" sharepageurl="http://tagworld.com/-/widgets/ShareWidget.aspx&amp;amp;proxyPageURL=" flashvars="'wrapperPath=" quality="high" wmode="Transparent"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114944529538174591?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114944529538174591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114944529538174591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114944529538174591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114944529538174591'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/06/test-for-tagworld-widget.html' title='test for tagworld widget'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114913192560358408</id><published>2006-05-31T20:18:00.000-07:00</published><updated>2006-05-31T20:18:45.706-07:00</updated><title type='text'>some c# stuff</title><content type='html'>I have been for sometime working on a .NET project where we are using c# to make web service calls and populate an excel sheet. I would be blogging my experience while working on this project as it relates to .net, c#, and vsto (excel mainly). I have mostly J2EE experience so this is a very interesing as well as challenging experience. I would also like to blog some cookie cutter code or just what I think is useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114913192560358408?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114913192560358408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114913192560358408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913192560358408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913192560358408'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/05/some-c-stuff.html' title='some c# stuff'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114913153665006115</id><published>2006-05-31T20:11:00.000-07:00</published><updated>2006-05-31T20:17:46.660-07:00</updated><title type='text'>Some .net training notes</title><content type='html'>Below are some notes that I took while attending .NET training which is useful.                                                                                                                                                                                                                                                             &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Casting&lt;/span&gt;&lt;br /&gt;there is hard cast and soft cast, examples below&lt;br /&gt;&lt;br /&gt; int x = (int) obj; //hard cast, so if obj is not of type int there will be class cast exception&lt;br /&gt; int x = obj as int; //soft cast, in this case if obj is not of type int than x will be null&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Boxing&lt;/span&gt;  C# has a feature called boxing and unboxing which is basically copying value types from stack&lt;br /&gt;to object on heap and vice versa. An example is below:&lt;br /&gt;&lt;br /&gt; int x = 3;&lt;br /&gt; Object obj = x; //boxing&lt;br /&gt; int y = (int) obj; //un-boxing.&lt;br /&gt;&lt;br /&gt;Second more subtle example below:&lt;br /&gt;&lt;br /&gt; Console.WriteLine(" {0} ", 3); //boxing&lt;br /&gt;&lt;br /&gt;Boxing from performance perspective is not good so best to avoid. So for the above&lt;br /&gt;examples change as below.&lt;br /&gt;&lt;br /&gt; int x = 3;&lt;br /&gt; Object obj = x.ToString();&lt;br /&gt; int y = int.Parse((string)obj);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Console.WriteLine(" {0} ", 3.ToString());&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Use command line utility, ildasm, to check generated MSIL code if boxing code is generated.&lt;br /&gt;&lt;br /&gt; ildasm &amp;lt;name of dll&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WMI&lt;/span&gt; -- windows management and instrumentation, can be used for performance analysis.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inheritane &lt;/span&gt;&lt;br /&gt;keywords: constructor chaining, virtual chain of methods, sealed classes,&lt;br /&gt;marker interfaces (interface with no methods)&lt;br /&gt;&lt;br /&gt;use "is" in C# is same as "instanceof" in java&lt;br /&gt;&lt;br /&gt;in c# it is possible to hide methods of implemented interfaces by using interface&lt;br /&gt;name for method declaration. So to use it you have to cast object to the specific&lt;br /&gt;interface.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ADO&lt;/span&gt;&lt;br /&gt;DataSet -- reads and remembers -- composed of DataTables. DataTables composed of&lt;br /&gt;      DataRows and DataColumns&lt;br /&gt;&lt;br /&gt;DataReader -- just reads&lt;br /&gt;&lt;br /&gt;DataSet uses DataReader to get the data.&lt;br /&gt;&lt;br /&gt;For very small amount of data use DataReader to get the data and store in some&lt;br /&gt;collection object like arraylist, etc instead of using DataSet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With DataReader you have to explicity open/close connection but with&lt;br /&gt;DataSet since you are using DataAdapter it will open/close connection&lt;br /&gt;automatically.&lt;br /&gt;&lt;br /&gt;best practices -- &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/adonetbest.asp" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/adonetbest.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DataSets are typed and un-typed. If you have xml xchema (or can create one) than&lt;br /&gt;DataSets can be created out of this schema. typed are faster and compiler checked.&lt;br /&gt;Also, you are using GUI to auto generate DataSet code.&lt;br /&gt;&lt;br /&gt;DataTables and DataSets can keep track of changes (diffgram).&lt;br /&gt;&lt;br /&gt;Use Transaction objects if rollback is needed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  Config file&lt;/span&gt;&lt;br /&gt;App.config is default, do not chnage the name. This file can be added to projects. Works only&lt;br /&gt;for .exe and not for .dll&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Services&lt;/span&gt;&lt;br /&gt;proxies stand between client code and web service.&lt;br /&gt;.asmx files represent web service in .net world.&lt;br /&gt;.net has something similar to java annotations called "attributes" (just declare above method definition).&lt;br /&gt;you can type the location of .asmx file in browser which can be used for testing.&lt;br /&gt;.asmx?wsdl will return the wsdl file&lt;br /&gt;wsdl.exe /l:CS /o:c:\testproxy.cs &amp;lt;wsdl-url&amp;gt; //will generate client proxy code, another way is to use webreference from IDE.&lt;br /&gt;for webrefernce there is an option to update web service&lt;br /&gt;for webservice proxy you can set credential, timeout, proxy, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  VSTO&lt;/span&gt;&lt;br /&gt;to run .xls without running dll run the .xls by pressing shift key&lt;br /&gt;&lt;br /&gt;if a solution has only execute permission (and not full trust) than web service call will fail.&lt;br /&gt;&lt;br /&gt;PIO code is under c:\windows\assembly folder, format of the file name is  Microsoft.Office.Interop.xxx&lt;br /&gt;&lt;br /&gt;+= is used for event registration called delegation&lt;br /&gt;&lt;br /&gt;-= is used for de-registration&lt;br /&gt;&lt;br /&gt;if += is called 3 times and -= is called once than the registration of event is still ther, you would&lt;br /&gt;need to call -= 2 more times to actually un-register.&lt;br /&gt;&lt;br /&gt;dlls get downloaded in "documents and settings"...."application data" directory.&lt;br /&gt;&lt;br /&gt;AssemblyInfo.cs has version number, [assembly: AssemblyVersion(" 1.0.*")], which is used for creating&lt;br /&gt;different versions of the dll. this version gets referenced in c:\windows\assembly\download folder&lt;br /&gt;&lt;br /&gt;to combine multipe ranges can use "union"&lt;br /&gt;&lt;br /&gt;RecordSet in un-managed code is equivalent to DataSet in .net, there are apis to copy from one to another.&lt;br /&gt;&lt;br /&gt;To add a windows form to excel, add a form and than from officecodebehind create an instance of&lt;br /&gt;form.&lt;br /&gt;&lt;br /&gt;Also, since windows form is built into .net no need to worry about registering events like&lt;br /&gt;onclick, etc but for excel you have to worry.&lt;br /&gt;&lt;br /&gt;When need to pass data from form to OfficeCodeBehind, it is possible to pass OfficeCodeBehind&lt;br /&gt;to form class or other way around. Second approach is preferred where form class provides public&lt;br /&gt;api to access data which is than called by OfficeCodeBehind.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Events&lt;/span&gt;&lt;br /&gt;Delegates holds references to callback methods&lt;br /&gt;&lt;br /&gt;delegates can be called asynchronously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114913153665006115?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114913153665006115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114913153665006115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913153665006115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913153665006115'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/05/some-net-training-notes.html' title='Some .net training notes'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114913147907053597</id><published>2006-05-31T20:10:00.000-07:00</published><updated>2006-05-31T20:11:19.146-07:00</updated><title type='text'>difference between ABO and ABO.NET</title><content type='html'>At a high level &lt;a href="http://abo.net/"&gt;ABO.NET&lt;/a&gt; is an enhancement over ABO as it provides support for disconnected mode and is integrated with XML. Will make more enhancement to this blog as I learn more. One more note is that &lt;a href="http://abo.net/"&gt;ABO.NET&lt;/a&gt; looks very similar to SDO (Service Data Object) in J2EE world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114913147907053597?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114913147907053597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114913147907053597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913147907053597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114913147907053597'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/05/difference-between-abo-and-abonet.html' title='difference between ABO and ABO.NET'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114185203192498077</id><published>2006-03-08T13:07:00.000-08:00</published><updated>2006-03-11T18:28:10.293-08:00</updated><title type='text'>JSF notes on event handling</title><content type='html'>Three different kinds of listeners:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Phase listener -- listener is invoked as jsf goes through each of the 6 phases, you can register for a specific phase or all of them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Action listener -- listener is invoked when an action like command button is clicked.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Vlaue change listener -- listener is invoked when an input component like textbox value is entered and form submitted&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There is subtle difference between the use of action handlers and action listeners, handlers are meant for business rules, iterfacging with backend systems, and&lt;br /&gt;navigational logic whereas listeners are meant to handle with UI elements only.&lt;br /&gt;&lt;br /&gt;Action listeners are invoked before action handlers.&lt;br /&gt;&lt;br /&gt;Value change and action listeners can be added as UI element attibutes as well as tags. It is better to add as tags.&lt;br /&gt;&lt;br /&gt;Below are the execution of different phases for different scenarios:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;value change listener --&amp;gt; 1 -- 2 -- 3 (listener called) -- (4 -- 5 -- 6)&lt;/li&gt;&lt;li&gt;value change listener with immediate --&amp;gt; 1 -- 2 (listener called) -- 3 -- (4 -- 5 -- 6) &lt;/li&gt;&lt;li&gt;action listener --&amp;gt; 1 -- 2 -- 3 -- 4 -- 5 (listener called) -- (6)&lt;/li&gt;&lt;li&gt;action listener  with immediate --&amp;gt; 1 -- 2 (listener called) -- (6)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114185203192498077?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114185203192498077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114185203192498077' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114185203192498077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114185203192498077'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/03/jsf-notes-on-event-handling.html' title='JSF notes on event handling'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114185089016629653</id><published>2006-03-08T12:48:00.000-08:00</published><updated>2006-03-11T18:27:36.343-08:00</updated><title type='text'>JSF General Notes</title><content type='html'>Some notes from the core jsf servlets book.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;value binding  expressions, eg., "#{....}". property getter is invoked when the component is  rendered and setter is invoked when when the user response is  processed.&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;method binding  expressions&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JSF connects the view  and model&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;each ui tag is  associated with a tag handler. tag handlers collaborate with each other to build  a component tree (not necessarily binary tree)&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;encoding is when the  renderer of a component generated the output. eg., html output&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;decoding is when the  html elements are processed by JSF container to do things like update component  values, navigation, etc.&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;six life cycle steps: restore view, apply  request values, process validations, update model values, invoke application,  render response&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;action methods have 2  roles, first carry out the model updates and second tell the navigational  handler where to go next&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;action method can  return null to indicate that the same page should be redisplayed&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;all form controls (ui  elements like textbox, etc) generated by JSF have names that conform to  formName:componentName. if you do not specify id attributes, jsf framework  creates automatically&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;DataTable : The body  of h:dataTable tags can contain only h:column tags and all the other component  tags are ignored.&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;DataTable: value  attribute can be set to an array, List, ResultSet,  javax.servlet.jsp.jstl.sql.Result, javax.faces.model.DataModel&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;DataTable:  h:dataTable wraps objects in a model that extends the  javax.faces.model.DataModel class which provides apis like getWrappedObject()  and setWrappedObject() which can be used to add/remove table rows.&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Conversion: this  happens in the "apply request values" phase where the string values submitted as  part of form is converted to appropriate objects.&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Conversion:  &lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span class="840221421-17022006"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;meta http-equiv="Refresh" content= "0;  URL=index.faces"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="840221421-17022006"&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114185089016629653?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114185089016629653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114185089016629653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114185089016629653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114185089016629653'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/03/jsf-general-notes.html' title='JSF General Notes'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-114080300723301337</id><published>2006-02-24T09:43:00.000-08:00</published><updated>2006-03-11T18:26:51.440-08:00</updated><title type='text'>Setting data members in a class</title><content type='html'>How many ways are there to set data members of a class? One way is to have the class provide setter apis. Second way is that the constructor&lt;br&gt;of the class lets client pass the values as arguments.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-114080300723301337?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/114080300723301337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=114080300723301337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114080300723301337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/114080300723301337'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2006/02/setting-data-members-in-class.html' title='Setting data members in a class'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-113531480772526526</id><published>2005-12-22T21:13:00.000-08:00</published><updated>2006-03-08T12:49:38.456-08:00</updated><title type='text'>Web Services Frameworks Notes</title><content type='html'>&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;These are notes from  chapter on web services framework.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Web service  framework comprises of standards, design patterns, other  frameworks.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Service itself: This  is divided into 2 categories, role and model. Role is basically the temporary  role that&amp;nbsp; the service assumes during the runtime. These are requestor,  provider, passive and active intermediaries, ultimate requestor, ultimate  provider, and member role in composite scenario. Model is how the service fits  into overall enterprise architecture. In this respect a service can fall into  these categories, business service, utility service, and controller  service.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Service description:  This&amp;nbsp;is basically describing to the outside word what the service is or in  other words service contract. There are several articats that provides  this&amp;nbsp;contract like, wsdl, schema, policy, and legal docuemtns. Providing  just the wsdl is most popular.&amp;nbsp;wsdl has two parts abstract and concrete.  Abstract describes portTypes, operations, and messages. Concrete describes port,  bindings, and service. wsdl however does not provide semantic information about  the service. UDDI is based on similar concepts of abstract and concrete. Service  entity is abstract and tModels are concrete entities.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Messages: These are  autonomous and intelligent messages that can carry with them information like  how to process, route, etc. Messages adhere to SOAP protocol and a message  is&amp;nbsp;a envelope which has a header and body. Header is extensible and various  WS* specifications leverages this feature to provide their own specific  entries.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-113531480772526526?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/113531480772526526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=113531480772526526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113531480772526526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113531480772526526'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/12/web-services-frameworks-notes.html' title='Web Services Frameworks Notes'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-113434437723096864</id><published>2005-12-11T15:39:00.000-08:00</published><updated>2005-12-11T15:44:50.900-08:00</updated><title type='text'>cloudscape and derby</title><content type='html'>&lt;p class="mobile-post"&gt;Just found out that cloudscape was donated by IBM to Apache and there it&lt;br /&gt;is being worked on as database project Derby. IBM continues to work on&lt;br /&gt;Derby as well as release Cloudscape versions. Looks like Cloudscape has&lt;br /&gt;more features that Derby. The latest Cloudscape release is 10.x and it&lt;br /&gt;is written in Java. Probably a good idea to try in next J2EE project.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-113434437723096864?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/113434437723096864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=113434437723096864' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113434437723096864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113434437723096864'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/12/cloudscape-and-derby.html' title='cloudscape and derby'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-113202700814663022</id><published>2005-11-14T19:56:00.000-08:00</published><updated>2005-12-11T15:47:00.090-08:00</updated><title type='text'>Notes on visitor design pattern</title><content type='html'>&lt;div&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;font&gt; &lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The operations or the behavior of classes are implemented by concrete implementation of visitors.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Concrete visitors are implementation of visitor interface where overloaded "visit" methods are defined, one for each class that needs a visitor.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;A class that supports visitor defined a method called "allowVisitor" with argument of visitor interface. The method calls the "visit" method passing "this" as argument. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The advantage of visitor pattern is that new functionality can be added without touching the existing classes but the disadvantage is that the concrete visitor probably needs to know each supportable classes in detail.  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-113202700814663022?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/113202700814663022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=113202700814663022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113202700814663022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/113202700814663022'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/11/notes-on-visitor-design-pattern.html' title='Notes on visitor design pattern'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-112718343029948656</id><published>2005-09-19T19:30:00.000-07:00</published><updated>2005-09-19T19:30:30.330-07:00</updated><title type='text'>Secrets Of The Masters: Core Java Interview Questions @ JAVA DEVELOPER'S JOURNAL</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&lt;a href="http://jdj.sys-con.com/read/48839.htm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://jdj.sys-con.com/read/48839.htm &lt;/a&gt;&lt;/span&gt;&lt;/font&gt; &lt;/p&gt;  &lt;/div&gt;      &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-112718343029948656?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/112718343029948656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=112718343029948656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112718343029948656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112718343029948656'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/09/secrets-of-masters-core-java-interview.html' title='Secrets Of The Masters: Core Java Interview Questions @ JAVA DEVELOPER&apos;S JOURNAL'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-112467263437397877</id><published>2005-08-21T18:03:00.000-07:00</published><updated>2005-08-21T18:03:54.410-07:00</updated><title type='text'>Websphere Business Integration Modeler notes</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;u&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Notes from reading an article on WBI Modeler&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Article is at: &lt;a href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0502_mitra1/0502_mitra1.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://www-128.ibm.com/developerworks/websphere/library/techarticles/0502_mitra1/0502_mitra1.html&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;High level steps for creating a business models are as below:&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; Creating a business modeling project. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; Creating the business items. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; Creating the process model (that involves identifying the individual tasks and defining their inputs and outputs). &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; Creating the process flow by connecting the tasks together (as sequential or parallel steps).&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Notes from reading documentation on WBI 5.1.1 on infocenter&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&lt;span style="text-decoration: none;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Models are organized into folders which are referred to as catalogs.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;In the same project multiple data catalogs/resources/organization/report/process can be created and they can also be nested.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;Both processes and tasks represent activities that are performed in a business. Processes are more complex than tasks, however, and can be represented as a sequence of activities that are linked by flows of control and data. This sequence as a whole is known as a process flow. By contrast, tasks are atomic activities that cannot be divided into smaller actions. For example, Payment Handling is a process made up of three tasks: Input Customer Information, Input Customer Order, and Obtain Product Availability&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;The difference between a merge and a join is that in merge as soon as an input is received it is sent as an output where as in join it waits till all the inputs are received.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;A single process can have multiple start nodes.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;A stop node marks the end of a process. Every process, subprocess, and loop must have at least one stop node. When a flow reaches a stop node while the process is running, the process immediately terminates, even if there are other currently executing flows within the process.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;Tasks are the basic building blocks representing activities in a process model. Each task performs some function. Visually, a task represents the lowest level of work you can portray in a process.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span style="font-size: 12pt;"&gt;There are two types of tasks: local (specific to the process) and global (reusable within a project). A local task is owned by a process and can only be used by elements within that process. The task exists only while the process exists. A global task is a top-level task that you create in the &lt;span&gt;Project Tree&lt;/span&gt; within a process catalog. It can be used by multiple processes within the project.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;      &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-112467263437397877?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/112467263437397877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=112467263437397877' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112467263437397877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112467263437397877'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/08/websphere-business-integration-modeler.html' title='Websphere Business Integration Modeler notes'/><author><name>rohit.pasari</name><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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-112242779346065143</id><published>2005-07-26T18:28:00.000-07:00</published><updated>2006-07-02T21:04:07.110-07:00</updated><title type='text'>notes on working with https</title><content type='html'>&lt;a href="http://www.digicert.com/csr-creation-java.htm"&gt;how to create keystore&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/security1.2/summary/tools.html"&gt;java keytool options&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-112242779346065143?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/112242779346065143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=112242779346065143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112242779346065143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112242779346065143'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/07/notes-on-working-with-https.html' title='notes on working with https'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-112164882166941687</id><published>2005-07-17T18:06:00.000-07:00</published><updated>2005-07-17T18:20:52.446-07:00</updated><title type='text'>How to handle logging in portlets?</title><content type='html'>There are several ways to go about this and one can choose the approach according to ones taste and organizational standards.&lt;br /&gt;&lt;br /&gt;At high level below are some of the logging options.&lt;br /&gt;&lt;br /&gt;1. Good old System.out but use this only during initial development phase. Plan on converting this to some logging framework as soon as possible. You can either do global replace all or use a free eclipse plugin, log4e, to convert to log4j statements.&lt;br /&gt;&lt;br /&gt;2. Jakarta Log4j which seems to be the industry standard.&lt;br /&gt;&lt;br /&gt;3. JDK 1.4 logging apis.&lt;br /&gt;&lt;br /&gt;4. Simple Log from java.net&lt;br /&gt;&lt;br /&gt;5. Websphere logging apis which is my preference.&lt;br /&gt;&lt;br /&gt;There must be several more open source, vendor propritery, and in-house developed logging framework.&lt;br /&gt;&lt;br /&gt;I will continue with this article with my experience on using log4j, system.out and websphere apis as soon as i collect my thoughts on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-112164882166941687?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/112164882166941687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=112164882166941687' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112164882166941687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112164882166941687'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/07/how-to-handle-logging-in-portlets.html' title='How to handle logging in portlets?'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-112069635249743749</id><published>2005-07-06T17:19:00.000-07:00</published><updated>2005-07-17T17:47:13.433-07:00</updated><title type='text'>top 10 architecture books</title><content type='html'>I had initially added this list based on an article in software development journal for my note. Since than based on a feedback I have extended the list. Clicking the link takes to amazon's web site.&lt;br /&gt;&lt;ol&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0130676349/qid=1120695674/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Agile Software Development with SCRUM (Paperback)by Ken Schwaber, Mike Beedle&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0735618798/qid=1120695725/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Software Requirements, Second Edition (Paperback) by Karl E. Wiegers &lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201835959/qid=1120695792/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition (Paperback) by Frederick P. Brooks&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471202843/qid=1120695935/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools (Paperback) by Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, John Crupi&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321125215/qid=1120696402/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans (Hardcover)&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201775948/qid=1120696452/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Beyond Software Architecture: Creating and Sustaining Winning Solutions (Paperback) by Luke Hohmann&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0135974445/qid=1120696521/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Agile Software Development, Principles, Patterns, and Practices (Hardcover) by Robert C. Martin&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0849321425/qid=1120696597/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Software Architecture Design Patterns in Java (Hardcover) by Partha Kuchana&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201703726/qid=1120696657/sr=8-1/ref=pd_bbs_ur_1/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Documenting Software Architectures: Views and Beyond (Hardcover) by Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471958697/qid=1120696707/sr=8-2/ref=pd_bbs_ur_2/002-8494677-4324045?v=glance&amp;s=books&amp;amp;n=507846"&gt;Pattern-Oriented Software Architecture, Volume 1: A System of Patterns (Hardcover) by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Peter Sommerlad, Michael Stal&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201633612/qid=1121647010/sr=8-1/ref=pd_bbs_1/102-0726631-0677749?v=glance&amp;s=books&amp;amp;n=507846"&gt;Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides&lt;/a&gt;&lt;/li&gt;  &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201485672/qid=1121647138/sr=8-2/ref=pd_bbs_2/102-0726631-0677749?v=glance&amp;s=books&amp;amp;n=507846"&gt;Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321127420/qid=1121647138/sr=8-1/ref=pd_bbs_1/102-0726631-0677749?v=glance&amp;s=books&amp;amp;n=507846"&gt;Patterns of Enterprise Application Architecture by Martin Fowler&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-112069635249743749?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/112069635249743749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=112069635249743749' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112069635249743749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/112069635249743749'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/07/top-10-architecture-books.html' title='top 10 architecture books'/><author><name>rohit.pasari</name><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-111734854938080217</id><published>2005-05-28T23:32:00.000-07:00</published><updated>2005-05-28T23:49:05.753-07:00</updated><title type='text'>jsse tips</title><content type='html'>1. To add public key to keystore from certificat file (*.pem, *.der, *.cer) is as below:&lt;br /&gt;      &lt;span style="font-style: italic;"&gt;keytool -import -alias myalias -file certfile -keypass passwd -keystore storename -storepass passwd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. To start a java client with debug info is:&lt;br /&gt;      &lt;span style="font-style: italic;"&gt;java -Djavax.net.debug=ssl -Djavax.net.ssl.KeyStore=storename -Djavax.net.ssl.trustStore=storename javaclient&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Use the below java code that works with point #2 above.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;   SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault();&lt;br /&gt;   SSLSocket socket = (SSLSocket) factory.createSocket("localhost", 443).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;   rest of the code is standard to get output stream and use buffered reader.&lt;br /&gt;&lt;br /&gt;4. an alternate approach is at &lt;a href="http://www.javaworld.com/javaworld/jw-05-2001/jw-0511-howto.html"&gt;javaworld article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-111734854938080217?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/111734854938080217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=111734854938080217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111734854938080217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111734854938080217'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/05/jsse-tips.html' title='jsse tips'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-111618854470829109</id><published>2005-05-15T13:21:00.000-07:00</published><updated>2005-07-17T18:02:55.883-07:00</updated><title type='text'>IBM portlet programming interview questions</title><content type='html'>What is the difference between a servlet and a portlet?&lt;br /&gt;   Portlet is basically an extension of servlet but with some fundamental differences like a web page can consist of mulitple portlets but can have only single servlet, portlets cannot do browser redirect but servlet can.&lt;br /&gt;&lt;br /&gt;What are the similarities between a servlet and a portlet?&lt;br /&gt;    Portlet is a an extension of servlet, can write html output, can forward but within the same portlet context, access to HTTP objects like session, request, response, along with similar Portlet objects like session, request, response.&lt;br /&gt;&lt;br /&gt;What is WSRP?&lt;br /&gt;   Web Services Remote Portlet.&lt;br /&gt;&lt;br /&gt;What are the different approaches for logging in portlet?&lt;br /&gt;   Websphere log apis, log4j, custom logging, jdk1.4 log apis and any logging framework should work just as well.&lt;br /&gt;&lt;br /&gt;What are the different approaches for managing environment specific configuration?&lt;br /&gt;    Properties file, portlet attributes (configured via the config-param in portlet.xml).&lt;br /&gt;&lt;br /&gt;Difference between abstract portlet and concrete portlet?&lt;br /&gt;&lt;br /&gt;Explain struts portlet. How to create one?&lt;br /&gt;   Create a struts standalone web app and convert to portlet. There are 8-10 steps to do so.&lt;br /&gt;&lt;br /&gt;Explain JSR168 portlet. How to create one?&lt;br /&gt;   Use WSAD wizard.&lt;br /&gt;&lt;br /&gt;What is the difference between HTTPRequest and PortletRequest?&lt;br /&gt;    HTTPRequest is for the entire portal page and portlet request is abstracted out of HTTPRequest and is unique per portlet. As best practises portlet code should use PortletRequest object.&lt;br /&gt;&lt;br /&gt;Should you use class scoped variables in portlet?&lt;br /&gt;   No, single instance of portlet in the JVM and so can cause data corruption if variable values are changed. However, no harm in using "final static" singleton kind of variables.&lt;br /&gt;&lt;br /&gt;Can you do browser redirects from the portlet?&lt;br /&gt;   No, only forward.&lt;br /&gt;&lt;br /&gt;What does the tag &amp;ltportletApi:init /&amp;gt do?&lt;br /&gt;   Initializes portletRequest, portletResponse, etc on the page.&lt;br /&gt;&lt;br /&gt;What are the different portlet states?&lt;br /&gt;   Maximize, Normak, Minimize.&lt;br /&gt;&lt;br /&gt;What are the different portlet modes?&lt;br /&gt;   View, Edit, Configure, Help.&lt;br /&gt;&lt;br /&gt;Portlets execute in two steps, what are those?&lt;br /&gt;   Action and render in portal 5.0. There is a new phase IStrutsPrepareRendor introduced in portal 5.1 to address browser refresh, back, etc issue.&lt;br /&gt;&lt;br /&gt;How to access external systems from portlet code like database, credential vault, and ftp server?&lt;br /&gt;&lt;br /&gt;What is portal service?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-111618854470829109?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/111618854470829109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=111618854470829109' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111618854470829109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111618854470829109'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/05/ibm-portlet-programming-interview.html' title='IBM portlet programming interview questions'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-111618753896248401</id><published>2005-05-15T13:00:00.000-07:00</published><updated>2005-05-15T13:16:58.266-07:00</updated><title type='text'>patterns</title><content type='html'>There is pattern everywhere or should we say everything is a pattern. It is patterned that mango seed will grow into a mango plant, baby into a grown up, and so on. These patterns exist in nature. We also tend to do things in pattern, cars are mass produced in patterns, we invented patterns to build buildings and bridges. There are also patterns in the software world like Facade and DAO (Data Access Object).&lt;br /&gt;&lt;br /&gt;But it looks like that sometimes there could be anamolies in the patterns. The patterns may not be perfect, there may be disadvantages, or they may not be just right. In the software world there is something called anti-patterns. Sometimes in nature we see malformed plants and animals which does not seem to conform to intended behavior of pattern.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-111618753896248401?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/111618753896248401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=111618753896248401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111618753896248401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/111618753896248401'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2005/05/patterns.html' title='patterns'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-110014134504394335</id><published>2004-11-10T18:43:00.000-08:00</published><updated>2004-11-10T18:49:05.043-08:00</updated><title type='text'>Kapow Robots</title><content type='html'>I am using Kapow to create 'web clipping robots'. It is kind of neat as Kapow lets you clip any page and then out of the box you can create IBM Portal 5 portlets. You can also create portlets for BEA portal 8.1. I was able to successfully create 3 IBM portlets. These were created as .war files and I was able to install them seamlessly in our test environment. We had RoboServer also running in the background and it looked like it was all set. However the portlet contents were empty. Troubleshooting revealed that Kapow also creates a .robot file for every web clipped content and they needed to be installed under the "{KAPOW_HOME}|projects" folder.&lt;br /&gt;&lt;br /&gt;By the way linux version of Kapow provide "RoboServer" and "RoboServerService" as runtime component. Use RoboServer, I am not sure what RoboServerService is as it was not doing anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-110014134504394335?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/110014134504394335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=110014134504394335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/110014134504394335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/110014134504394335'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/11/kapow-robots.html' title='Kapow Robots'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-109968843682484168</id><published>2004-11-05T13:57:00.000-08:00</published><updated>2004-11-05T13:55:36.440-08:00</updated><title type='text'>notes on ibm portal 5.02</title><content type='html'>I am currently working on IBM portal v5.02. At first glance this looks like way behind BEA portal 8.1 but looks to be very stable and deploying a new portlet is much easier (just export as a war file). Below are some of the notes that I found useful while reading on IBM portal.&lt;br /&gt;&lt;br /&gt; Usually, many portlets are invoked in the course of handling a single request, each one appending its content to the overall page. Some portlets can be rendered in parallel, so that WebSphere Portal assembles all the markup fragments when all the portlets finish or time out. Portlets that are not considered thread-safe are rendered sequentially&lt;br /&gt;&lt;br /&gt;WebSphere Portal provides discoverable services for its credential vault, for managing persistent TCP/IP connections, and for managing the WebSphere Portal content repository.&lt;br /&gt;&lt;br /&gt;WebSphere Portal includes the Document Manager portlet application for contributing and sharing documents between users. Document Manager provides a simple method for storing, navigating, viewing, and searching documents and other content.&lt;br /&gt;&lt;br /&gt;By defining the transcoding PortletFilter on a portlet, the portlet HTML output can be converted to WML or cHTML, depending on the device that is making the request&lt;br /&gt;&lt;br /&gt; The WebSphere Portal page aggregation subsystem supports several markup languages and recognizes certain browsers and mobile device user agent signatures, all out of the box. The framework is easy to extend to support additional markups or new devices.&lt;br /&gt;&lt;br /&gt;The default set of user profile attributes is based on the inetOrgPerson schema, which is supported by most LDAP directories. The user repository might consist of multiple data sources.&lt;br /&gt;&lt;br /&gt;The mapping of user profile attributes to LDAP object classes is defined using in the file wms.xml.&lt;br /&gt;&lt;br /&gt;The file attributeMap.xml specifies the details of how each attribute is mapped to the LDAP directory or database.&lt;br /&gt;&lt;br /&gt;After determining the identity of the user, the portal server consults locally cached access control lists to determine which pages and portlets a user has permission to access.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-109968843682484168?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/109968843682484168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=109968843682484168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109968843682484168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109968843682484168'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/11/notes-on-ibm-portal-502.html' title='notes on ibm portal 5.02'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-109925813383340835</id><published>2004-10-31T13:27:00.000-08:00</published><updated>2004-10-31T13:29:32.133-08:00</updated><title type='text'>notes on bea workshop 8.1 page flow</title><content type='html'>--- Basically, a page flow is a directory of Web app files that work together to implement a UI feature.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- The *.jpf file is also a BEA innovation and is the main focus of this article. It contains annotated Java code that implements the navigation and state management logic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Many classes in Java Page Flow inherit from Struts classes and interoperate with the Struts plumbing that serves as the foundation for the Java Page Flow runtime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- All action methods are specially annotated with @jpf:action to indicate to the *.jpf compiler that they should be configured as action methods in the auto-generated Struts configuration files. Also, all action methods may be annotated with @jpf:forward to indicate to the *.jpf compiler and to the IDE tools the possible navigation decisions that the action methods may make such as deciding to forward to a page like address.jsp. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Because the page flow runtime makes it possible to cache state in controller instance members, it’s very easy to implement support for a back button in a wizard. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- WebLogic Workshop makes it easy to expose business logic as controls, and the Java Page Flow feature makes it easy to call controls from action methods. Because the page flow runtime performs automatic instantiation and initialization of controls for all instance members that are annotated with @common:control, action methods in page flow controllers may call Workshop controls without having to include code that performs control instantiation and initialization. For example, the confirmation_next action method can simply and directly call the createUser( ) method of UserManager.jcs:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Every page flow must have a begin method. The begin method is the first method executed when your page flow is invoked by a web browser&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Form Beans are used to separate the data presentation layer from the data processing layer of your web application. Form Beans are used as intermediaries between the data that users input into JPS pages and the Action methods. Instead of submitting the data directly to the Action method, the data is first databound to a Form Bean and this Form Bean is then passed as a parameter to the Action method. This helps to separate the presentation layer (i.e., the user input forms on the JSP pages) and the processing layer (i.e., the Action methods), because the Form Bean can play a flexible, intermediary role.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Page flows allow you to separate how your web application processes data from how it presents that data to users. When data processing is separated from data presentation, it's much easier to re-use the data processing aspects of the application in other contexts and to manage any future changes to your web application. Page flows link data processing and data presentation by means of databinding. Databinding is accomplished through the use of a special library of JSP tags that allow you to associate the presentation of data on the JSP pages with the data processing inside the page flow file. The special library of JSP tags begin with the prefix "netui-databinding". Two cases of databinding: (1) databinding when a user submits data, (2) databinding when data is displayed to the user.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- A page flow is a Java class that controls the behavior of a web application through the use of specially designed annotations and methods. The directory that contains the page flow class also includes the JavaServer Pages (JSPs) used in the page flow. For a JSP to be considered part of a page flow, it must reside within the page flow directory. The JSP files use special tags which help bind to data and business logic actions. The actions in the JSP correspond to action methods that are defined in the page flow. These actions methods implement code that can result in site navigation, passing data, or invoking back-end business logic via controls. Significantly, the business logic in the page flow class is separate from the presentation code defined in the JSP files.&lt;br /&gt;&lt;br /&gt;--- Data binding is the process that ties data to presentation tags in JSPs, thereby creating dynamic web applications that are easy to build and maintain.   &lt;br /&gt;--- Components of the Page Flow Programming Model&lt;br /&gt;Page flows implement user interface control logic, and contain:&lt;br /&gt;&lt;br /&gt;    Action methods &lt;br /&gt;    Form beans - A form bean class is typically defined as an inner class within a page flow class, and in most cases extend com.bea.wlw.netui.pageflow.FormData&lt;br /&gt;    Forward objects &lt;br /&gt;&lt;br /&gt;In the page flow class, action methods are methods that are annotated with a @jpf:action tag. Action methods can perform several functions:&lt;br /&gt;&lt;br /&gt;    Implement navigation decisions &lt;br /&gt;    Flow data into and out of pages &lt;br /&gt;    Invoke back-end business logic via calls to controls &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- Advantages of Using Page Flows&lt;br /&gt;    &lt;br /&gt;    Ease of use&lt;br /&gt;    Nested page flows &lt;br /&gt;    State management &lt;br /&gt;    Rich Data binding features &lt;br /&gt;    Service-oriented design with Java controls &lt;br /&gt;    Integration with Portal &lt;br /&gt;    Strong data typing &lt;br /&gt;    Powerful exception handling &lt;br /&gt;    Iterative development experience &lt;br /&gt;    Built on the open-source Struts framework &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;--- When your form bean contains a complex data type, you must add a reset method to your form bean definition to ensure that an instance of the complex class is available to hold the values that the user entered in a form and subsequently submitted (posted).&lt;br /&gt;&lt;br /&gt;Note: The reset method is called by the underlying Struts framework used by WebLogic Workshop. You do not need to call this method directly anywhere in the code.&lt;br /&gt;&lt;br /&gt;public void reset(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)&lt;br /&gt;    {&lt;br /&gt;        this.customer = new Customer(); //initialize complex class. &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- The NetUI Data Binding tags fall into one of the following categories:&lt;br /&gt;&lt;br /&gt;    Method invocation tags &lt;br /&gt;    Repeater tags &lt;br /&gt;    The CellRepeater tag &lt;br /&gt;    Grid tags &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---     &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-109925813383340835?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/109925813383340835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=109925813383340835' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109925813383340835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109925813383340835'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/10/notes-on-bea-workshop-81-page-flow.html' title='notes on bea workshop 8.1 page flow'/><author><name>rohit.pasari</name><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-109925795516039393</id><published>2004-10-31T13:20:00.000-08:00</published><updated>2004-10-31T13:29:10.003-08:00</updated><title type='text'>notes on bea workshop 8.1 control</title><content type='html'>--- controls are lightweight JavaBeans based framework with a single goal: making it easy to leverage resources in j2ee.&lt;br /&gt;&lt;br /&gt;--- Most of the inbuilt controls are designed to generate a Java control extension (JCX) file when you add a new one to your application. The JCX file contains configuration information specific to that use of the control. You can reuse a generated JCX file in multiple applications. This kind of reuse assumes that the resources specified by the JCX file are present for each application in which it's used.&lt;br /&gt;&lt;br /&gt;--- Not all Java controls generate a JCX file. Controls that do not must always be added as new controls. An example of such a control is the Timer Control.&lt;br /&gt;&lt;br /&gt;--- Custom java controls are built from a Java control source file (JCS) and an interface file (JAVA) . &lt;br /&gt;&lt;br /&gt;--- By default WebLogic Workshop adds this control file with a JCX extension to the same folder as the file that is currently open in Design View. This control file cannot be located in the root of the project. If the application is in the root of the project, you must create the built-in control in a different folder.&lt;br /&gt;&lt;br /&gt;--- controls are javabeans and can be instantiated and used from anywhere like jsp, pageflows, JSF, web services, ejbs, and other component types.&lt;br /&gt;&lt;br /&gt;--- For the sake of convenience, you will develop your Java control within a web application project instead of a Java control project. By developing a Java control within a web application project, it is easier to generate and use Workshop's testing devices.&lt;br /&gt;&lt;br /&gt;--- When creating custom control, Note that two files are created: (1) a JCS file (which stands for "Java Control Source") and (2) JAVA file. The JCS file contains the implementation code for your Java control, the JAVA file contains the public interface for the underlying implementation code. The JAVA file is the public face of your Java control: it is essentially a list of methods that users can call to access the functionality contained within the underlying implementation code. For the most part, you do not have to directly edit the JAVA file, because WebLogic Workshop automatically maintains the JAVA file as your edit the JCS file. &lt;br /&gt;&lt;br /&gt;--- A JCX file extends one of Workshop's pre-build control classes.&lt;br /&gt;&lt;br /&gt;---- When creating controls server must be running. controls can be created without server running but it looks like that it may not show all methods. found this issue when adding jms control in the control tutorial.&lt;br /&gt;&lt;br /&gt;--- It is necessary to separate the (Investigate) Java control from (its test) web service because web services aren't enabled in Control projects.&lt;br /&gt;&lt;br /&gt;--- Java controls can be compiled into JAR files for general distribution to other containers. &lt;br /&gt;&lt;br /&gt;--- Also note that once you have compiled a Java control, WebLogic Workshop uses the JAR version by default, instead of working directly from the source code contained in the control project.&lt;br /&gt;&lt;br /&gt;--- You can use Java controls to encapsulate complex functionality. &lt;br /&gt;&lt;br /&gt;--- Java controls can communicate asynchronously with other components. &lt;br /&gt;&lt;br /&gt;--- Control property attribute values are stored as Javadoc annotations in source code&lt;br /&gt;&lt;br /&gt;---- tried to use controls from the following but did not work. there was no option to do a 'new control'.&lt;br /&gt;&lt;br /&gt;       from java project (.java files have no design tab)&lt;br /&gt;       from ejb project (even though their was design tab)&lt;br /&gt;       &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-109925795516039393?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/109925795516039393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=109925795516039393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109925795516039393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109925795516039393'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/10/notes-on-bea-workshop-81-control.html' title='notes on bea workshop 8.1 control'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-109613861723971515</id><published>2004-09-25T11:49:00.000-07:00</published><updated>2004-09-26T10:17:29.266-07:00</updated><title type='text'>cvs delete and 'attic' folder</title><content type='html'>When you delete a file in cvs, the file actually does not get deleted but it goes to the 'Attic' folder in the cvs repository. 'Attic' is an internal folder on the server side that is created in your repository under the directory where the file was deleted. However when you do a check out this folder is not checked out and is meant only to hold deleted files in that particular folder. What this means is that once you have added a file then cvs remembers it 'permanently' even though you have deleted. In case you really want to delete the file then you can delete it from inside the 'Attic' folder and it will then be gone for good. One needs to be very careful when doing this kind of deletion directly on the cvs server and should be done only if absolutely needed.&lt;br /&gt;&lt;br /&gt;Keep in mind that only files can be deleted in cvs and not folders. If you want to delete a folder then this is done indirectly by deleting all the files in that folder. On the client side you have to checkout or update with the option 'prune' empty directories.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-109613861723971515?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/109613861723971515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=109613861723971515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109613861723971515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109613861723971515'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/09/cvs-delete-and-attic-folder.html' title='cvs delete and &apos;attic&apos; folder'/><author><name>rohit.pasari</name><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></entry><entry><id>tag:blogger.com,1999:blog-8471069.post-109613169873096469</id><published>2004-09-25T10:00:00.000-07:00</published><updated>2004-09-25T10:14:15.606-07:00</updated><title type='text'>checking how it works</title><content type='html'>this is my attempt to see how this blog concept works.&lt;br /&gt;&lt;br /&gt;this worked great. i was trying to find if i can add comments to my own post but ended up editing my origianl post.&lt;br /&gt;&lt;br /&gt;i was also able to add atom feed to my rss reader.&lt;br /&gt;&lt;br /&gt;pretty cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8471069-109613169873096469?l=java101.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java101.blogspot.com/feeds/109613169873096469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8471069&amp;postID=109613169873096469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109613169873096469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8471069/posts/default/109613169873096469'/><link rel='alternate' type='text/html' href='http://java101.blogspot.com/2004/09/checking-how-it-works.html' title='checking how it works'/><author><name>rohit.pasari</name><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></entry></feed>
