<?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-12163847</id><updated>2011-11-27T16:36:21.178-08:00</updated><title type='text'>I Express Myself thru Code</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default?start-index=101&amp;max-results=100'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12163847.post-8408640612672289744</id><published>2010-12-11T02:23:00.000-08:00</published><updated>2010-12-11T02:29:02.036-08:00</updated><title type='text'>Year.introspect(2010)</title><content type='html'>Time has come again to look back and introspect on happenings of this year to learn and equip myself better for the next year. This year had been very interesting both on the personal and work fronts. On the personal side, we had a baby boy on Oct 11 and am starting to get used to the nappy changing duty ;). It is so much fun playing with my son and watching him grow. Babies are the cutest things in this world. &lt;br /&gt;&lt;br /&gt;On the work side, we did a successful BPEL deployment. It was indeed a good learning experience, especially, with 3DNS/Big IP acting up in production preventing the partner links from being invoked (more on this topic later). Enabling service Orientedness for the application was another fun filled exercise - coaching the team on BPMN, service identification, training the team on BPEL, whipping up schemas and more importantly getting the buy in from stakeholders and peers. Did a bit of hacking to remote deploy all the bpel suitcases to the BPEL console using commons-http-connection. We are still on BPEL PM 10.1.3.4 and have a plan to migrate to SOA Suite 11g sometime mid next year. I have also created an installer for my application based on ant installer, this is a cool stuff that helps in deploying the applications (silently) to the target envs and the dev team can stay away while the ops team does the installation :).&lt;br /&gt;&lt;br /&gt;I read Robin Sharma's two very good books - Leader who had no title and the monk who sold his Ferrari, both are very good books and I highly recommend reading them. I have also read few technical books - BPMN method and style by Bruce Silver, Oracle SOA Suite Developer's Guide, Getting Started with SOA Suite 11g, Enterprise Architecture A - Z.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8408640612672289744?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8408640612672289744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8408640612672289744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8408640612672289744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8408640612672289744'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/12/yearintrospect2010.html' title='Year.introspect(2010)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2004613690102948736</id><published>2010-10-26T04:49:00.000-07:00</published><updated>2010-12-11T02:30:48.268-08:00</updated><title type='text'>Instance created!!!</title><content type='html'>At 2010-10-11T17:26:00+05:30Z, an instance of an anonymous inner class has been created. The toXML() of the instance is below:&lt;br /&gt;&lt;br /&gt;&amp;lt;Event name="child birth"&amp;gt;&lt;br /&gt;                &amp;lt;Name&amp;gt; TBD &amp;lt;/Name&amp;gt;&lt;br /&gt;                &amp;lt;DateofBirth&amp;gt;Oct 11, 2010&amp;lt;/DateofBirth&amp;gt;&lt;br /&gt;                &amp;lt;TimeofBirth&amp;gt;17:26&amp;lt;/TimeofBirth&amp;gt;&lt;br /&gt;                &amp;lt;PlaceofBirth&amp;gt;Basant Sahney Hospital, W Marredpally, Hyderabad&amp;lt;/PlaceofBirth&amp;gt;&lt;br /&gt;                &amp;lt;Gender&amp;gt;Male&amp;lt;/Gender&amp;gt;&lt;br /&gt;                &amp;lt;Weight&amp;gt;2.72 KG&amp;lt;/Weight&amp;gt;&lt;br /&gt;&amp;lt;/Event&amp;gt;&lt;br /&gt;&lt;br /&gt;The instance is yet to be named per com.astrology.zodiac.* standards and bind to the Srirangam namespace.&lt;br /&gt;&lt;br /&gt;And thats the reason I'm not active on the blog ;) and another reason is we have an internal blog in our company that runs on moss and most of my blogging activity is happening on the internal blog.&lt;br /&gt;&lt;br /&gt;****** UPDATE ******&lt;br /&gt;The instance is named Nischay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2004613690102948736?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2004613690102948736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2004613690102948736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2004613690102948736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2004613690102948736'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/10/instance-created.html' title='Instance created!!!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2460201089796452645</id><published>2010-08-03T02:26:00.000-07:00</published><updated>2010-08-03T02:27:57.775-07:00</updated><title type='text'>Three Dimensions of S/W Programmer</title><content type='html'>Old article but very interesting - &lt;a href="http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/"&gt;Three Dimensions of S/W Programmer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2460201089796452645?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2460201089796452645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2460201089796452645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2460201089796452645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2460201089796452645'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/08/three-dimensions-of-sw-programmer.html' title='Three Dimensions of S/W Programmer'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8079606512682101744</id><published>2010-06-03T05:07:00.000-07:00</published><updated>2010-06-03T07:22:24.256-07:00</updated><title type='text'>BPEL Deployment plan to replace queue names</title><content type='html'>We are using Oracle BPEL PM 10.1.3.4 and we are using the deployment plan feature to take care of the replacement of the wsdl end points and schema content. We realized that the queue names were not being replaced with simple search and replace. As guessed, the search replace functionality worked only for the wsdls where the host and port names were getting replaced correctly. Following needs to be done to have it working for the queue names:&lt;br /&gt;1. Include the jca namespace in the deployment plan file [xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"]&lt;br /&gt;2. Use the following to replace the queue name&lt;br /&gt; &amp;lt;jca:property name="QueueName"&amp;gt;&lt;br /&gt;    &amp;lt;searchReplace&amp;gt;&lt;br /&gt;        &amp;lt;search&amp;gt;oldqueuename&amp;lt;/search&amp;gt;&lt;br /&gt;        &amp;lt;replace&amp;gt;newqueuename&amp;lt;/replace&amp;gt;&lt;br /&gt;    &amp;lt;/jca:property&amp;gt;&lt;br /&gt;&lt;br /&gt;3. Most important of all, ensure that the above entry is the first inside the &amp;lt;wsdlAndSchema&amp;gt; element, otherwise, there'd be errors during deployment and the queue names shall not be replaced.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8079606512682101744?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8079606512682101744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8079606512682101744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8079606512682101744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8079606512682101744'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/06/bpel-deployment-plan-to-replace-queue.html' title='BPEL Deployment plan to replace queue names'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-5860691052907132652</id><published>2010-05-24T07:16:00.000-07:00</published><updated>2010-05-24T07:18:52.246-07:00</updated><title type='text'>Long Pause</title><content type='html'>I had been silent on the blog for quite a while, the reason being, apparently, too much of activity at work and domestic fronts. Life is back to normal and things are under control now. I'd be writing few entries on the BPEL this time, so watch the space ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-5860691052907132652?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/5860691052907132652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=5860691052907132652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5860691052907132652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5860691052907132652'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/05/long-pause.html' title='Long Pause'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1926425677471199863</id><published>2010-02-06T08:30:00.000-08:00</published><updated>2010-02-06T08:34:16.250-08:00</updated><title type='text'>Programmer Types</title><content type='html'>We have heard of types of architects, this &lt;a href="http://www.makinggoodsoftware.com/2010/01/27/types-of-programmer-or-%E2%80%9Cwhy-can%E2%80%99t-we-be-friends%E2%80%9D/"&gt;blog entry&lt;/a&gt; talks about types of programmers based on two attributes - planning and sophistication. Another dimension of looking at things!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1926425677471199863?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1926425677471199863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1926425677471199863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1926425677471199863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1926425677471199863'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/02/programmer-types.html' title='Programmer Types'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1218770970374899983</id><published>2010-02-06T08:28:00.000-08:00</published><updated>2010-02-06T08:30:29.206-08:00</updated><title type='text'>Apache Thrift</title><content type='html'>&lt;a href="http://incubator.apache.org/thrift/"&gt;Apache Thrift&lt;/a&gt; - "Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.". Sounds pretty interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1218770970374899983?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1218770970374899983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1218770970374899983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1218770970374899983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1218770970374899983'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2010/02/apache-thrift.html' title='Apache Thrift'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-7295413679246605466</id><published>2009-11-25T22:35:00.000-08:00</published><updated>2009-11-25T22:43:11.205-08:00</updated><title type='text'>Year.introspect(2009)</title><content type='html'>Yet another year!&lt;br /&gt;This year I made no more than 7 blog entries, the reason for being quite on the blogging front is that significant time was required to be spent on the work and personal fronts and seldom had a chance to blog.&lt;br /&gt;&lt;br /&gt;On the work front, had a absoutely eventful year. Moved to a different domain within in the same company and it is very interesting to roll out the projects in a relatively shorter time frames whose business impact is very conspicuous. Had a very delightful time designing the stuff and educating the team. Btw, I got promoted as well :)&lt;br /&gt;&lt;br /&gt;On the personal front, nothing great but got used to family life and the daily chores :). Early september, we managed to get a week off and went to Kerala. The vacation was much needed and was very refreshing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-7295413679246605466?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/7295413679246605466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=7295413679246605466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7295413679246605466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7295413679246605466'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/11/yearintrospect2009.html' title='Year.introspect(2009)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-6191921335146786520</id><published>2009-10-11T03:20:00.000-07:00</published><updated>2009-10-11T03:30:07.839-07:00</updated><title type='text'>Thank You, Sateesh!</title><content type='html'>Today, our project deployment to PROD went very very smoothly. It is one of the smoothest deployments I had ever seen. Everything worked absolutely fine with no issues. If I look back and introspect the way it was developed and delivered, one key factor that attributed to the success of the project is the "buddy - buddy" relationship with the test team. We have an exceptionally good testing team that worked together with the dev team and helped in identifying the defects early. Thanks to the test lead for his iconic leadership and providing direction to the test team on how to test complex scenarios. Sateesh, you rock!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-6191921335146786520?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/6191921335146786520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=6191921335146786520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6191921335146786520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6191921335146786520'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/10/thank-you-sateesh.html' title='Thank You, Sateesh!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-4041728385766483990</id><published>2009-08-25T02:22:00.000-07:00</published><updated>2009-08-25T02:27:52.550-07:00</updated><title type='text'>Control Characters in XML</title><content type='html'>For some reason, XML 1.0 does not support low level ASCII control characters, even if they are wrapped inside a CDATA section. In my project, there was a requirement to send barcode data in an XML message that contained ASCII charaters from 4-31 and although we wrapped the content in a CDATA section, it didnt help. The parser didnot understand it and blew up. XML 1.1 seems to have added support for control characters, but the parsers we use are yet to offer the support. We resolved the issue by encoding the content to Base64 and asked the downstream apps to decode it back and use it.&lt;br /&gt;&lt;br /&gt;Btw, this is my 100th blog entry :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-4041728385766483990?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/4041728385766483990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=4041728385766483990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4041728385766483990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4041728385766483990'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/08/control-characters-in-xml.html' title='Control Characters in XML'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8112461602076778382</id><published>2009-05-29T23:18:00.000-07:00</published><updated>2009-05-29T23:20:50.722-07:00</updated><title type='text'>Smooks!</title><content type='html'>Came across this nice thing - &lt;a href="http://smooks.org"&gt;Smooks&lt;/a&gt;, a powerful ETL tool and of course, it is open source. The site talks about transformations from/to java various formats. Itz time to give it a try!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8112461602076778382?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8112461602076778382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8112461602076778382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8112461602076778382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8112461602076778382'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/05/smooks.html' title='Smooks!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8757708178883925549</id><published>2009-05-06T23:53:00.000-07:00</published><updated>2009-05-06T23:59:40.016-07:00</updated><title type='text'>The premain() method</title><content type='html'>A colleague of mine pointed me to the premain() method in Java. This method is useful, particularly, in cases where there is a need to add a jar while the system is coming up, the jars can be added to bootstrap classloader, cool! One use of this method is to start an agent to monitor the performance of the system and have some program listen on this port to aggregate the perf stats. I just came across a really cool utility that draws the sequence diagrams while the program is running. Interestingly, this tool is also loading the agent using the premain(). If you'd like to give this tool a try download JTracert from the google code!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8757708178883925549?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8757708178883925549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8757708178883925549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8757708178883925549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8757708178883925549'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/05/premain-method.html' title='The premain() method'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3200023452863526587</id><published>2009-01-30T12:02:00.000-08:00</published><updated>2009-01-30T12:25:44.234-08:00</updated><title type='text'>Web Service Orchestration without BPEL</title><content type='html'>In my project there is a requirement to call few web services in sequence and aggregate the responses and expose the functionality as a web service. There are quite many services with this required behavior. The initial solution was to use some BPEL engine, but the decision was put on hold due to various reasons and we were encouraged to whip up a light weight framework in java that suits our needs. This was indeed interesting and I was successful in designing and developing a embeddable and light weight orchestration framework in java. Following are some thoughts on the same - &lt;br /&gt;&lt;br /&gt;Since, the framework is more or less chaining of web service calls, I decided to keep the flow of messages as XML inside the orchestration framework. Modeled the Orchestration as an XML pipeline. Chaining of web service calls needed transformation of response to that of the request of the next service and XSL has been choosen to transform the message formats. Quickly whipped up an XSLUtil based on Trax (Transformation API for XML). The next challenge was to invoke the webservices using XML data as request. I decided to go the XML way to avoid marshalling/unmarshalling of POJOs from/to XML. JAX-WS came handy here. JAX-WS comes with a nice feature called Dispatch that would allow invocation of web services using either a SOAP message or XML payload, the latter met my need. It didnt take much time to play with the Dispatch interface and to implement a generic utility. I had the core componenets ready in a very short span of time.&lt;br /&gt;&lt;br /&gt;The next step was to abstract the execution of these utilities, so defined the classes called *Action for transformation and invocation and made them configurable using a XML file and my little orchestration framework is ready. It also has a feature that reports the invocation trace along with the profiling information. However, this is just the beginning. There was an immediate need to add the branching, looping, assignment actions. Used JEXL for expression evaluation of branching and looping functions. And now, am thinking of adding some kind of a transition governance between the stages (using AspectJ) and add some kind of a compensation handlers to each stage. I'm also playing around with XTS of JBossTM to see if I can provide transaction recovery and make the web services transaction aware.&lt;br /&gt;&lt;br /&gt;If you have any suggestions and ideas to improve the framework, write a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3200023452863526587?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3200023452863526587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3200023452863526587' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3200023452863526587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3200023452863526587'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/01/web-service-orchestration-without-bpel.html' title='Web Service Orchestration without BPEL'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8416368068848291743</id><published>2009-01-22T07:28:00.000-08:00</published><updated>2009-01-22T07:32:05.707-08:00</updated><title type='text'>Qualities of a Software Architect</title><content type='html'>Interesting article on the essential qualities of an architect. Read it here - &lt;br /&gt;&lt;a href="http://blogs.msdn.com/gabriel_morgan/archive/2009/01/17/enterprise-solution-architects-and-leadership.aspx"&gt;http://blogs.msdn.com/gabriel_morgan/archive/2009/01/17/enterprise-solution-architects-and-leadership.aspx&lt;/a&gt;.I quite agree with Gabriel that leadership is imperative for an architect. Let me know your thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8416368068848291743?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8416368068848291743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8416368068848291743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8416368068848291743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8416368068848291743'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2009/01/qualities-of-software-architect.html' title='Qualities of a Software Architect'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-4500676120990549892</id><published>2008-12-30T01:32:00.000-08:00</published><updated>2008-12-30T02:03:36.289-08:00</updated><title type='text'>Year.introspect(2008)</title><content type='html'>Well, another year is just rolling by and am here again introspecting the happenings during the last 12 months. This year had been an quite eventful on both work and personal fronts. &lt;br /&gt;&lt;br /&gt;On the personal front - Got married on March 09 and it took a while to get adjusted to the family life, given that I was away from home most of the time for my education and career. Should say that I ramped up quite fast here. My wife Madhuri is very understanding and did her best to make our lives happy. We got the pending tasks done at the new house and finally moved into the new house during November. Personal tasks, unsually, took lot of effort, but managed it quite well.&lt;br /&gt;&lt;br /&gt;On the work front - an year filled with lot of learning and fun with technology. Made a formal entry to the world of services, yeah, the SOA stuff. Played and had fun with webservices, ALSB. Worked with some of the best brains and learnt a lot. This year, in addition to the role of an architect, I was also in the role of an Delivery Lead (DL). It was a thrilling experience to learn and disseminate the technical stuff, define the contracts, keep the team motivated and making the day-to-day tasks more enjoyable. Understanding the group dynamics and building the team was really cool. I realized that the best way to motivate the team is to kindle the technical passion and fuel it continuously by challenging the developers. Facilitate the team and encourage them to do it themselves.&lt;br /&gt;&lt;br /&gt;Coming to the reading part, I read only three books this year. SOA - concepts, technology and design and SOA - prinicples of service design, both by Thomsa Erl. The first book is well over 600 pages and took a while for completion. These came to me as gifts from Madhuri on my birthday. I highly recommend reading these books. I also read How to win friends and influence people by Dale Carnegie, it was very good read.&lt;br /&gt;&lt;br /&gt;Overall, it was very good year. I wish everyone a very happy and prosperous new year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-4500676120990549892?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/4500676120990549892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=4500676120990549892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4500676120990549892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4500676120990549892'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/12/yearintrospect2008.html' title='Year.introspect(2008)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3291499155967686856</id><published>2008-12-28T01:40:00.000-08:00</published><updated>2008-12-28T01:42:33.969-08:00</updated><title type='text'>Ref Cards for developers</title><content type='html'>Here is a nice &lt;a href="http://refcardz.dzone.com/"&gt;link&lt;/a&gt; that contains downloadable copies of ref cards for various technologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3291499155967686856?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3291499155967686856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3291499155967686856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3291499155967686856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3291499155967686856'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/12/ref-cards-for-developers.html' title='Ref Cards for developers'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-6729166318666993291</id><published>2008-12-11T00:40:00.000-08:00</published><updated>2008-12-11T01:04:30.350-08:00</updated><title type='text'>Internet Connection saga</title><content type='html'>After moving to the new house in Sainikpuri, we enquired for almost 3 weeks calling different ISPs to set up a broadband connection and it was all in vain. The customer service is pathetic and annoying. One ISP collected all the required documentation and a cheque for the installation and first month charges but after a couple of days informed us that the connection cannot be made and that the money would be returned within 15 business days (It has been more than that now, we still did not get the money back!). We almost gave up and decided to settle with the USB enabled connection.&lt;br /&gt;&lt;br /&gt;Now, am publishing this post connected to a 400Kbps line from home. Here is the sequence of events that happened during the last 10 days - &lt;br /&gt;&lt;br /&gt;Dec 02, 2008: Received a call from Vedica Technologies. Not sure how they got my number, the agent inquired if am interested in a Wimax connection from Reliance. Said Yes and was informed that the sales executive would call and meet me in two business days.&lt;br /&gt;&lt;br /&gt;Dec 04, 2008: Sales Executive met me at home around 9 PM and gave the details of the plan, collected the documents. I mentioned sternly that I'd give the cheque only after technical feasibility is done and was told that it was not the process. I was unrelenting on that matter and the director (Mr. Srinivas Reddy) called me up and I mentioned the experience with one of the ISPs. Though, it was not per process, the director agreed to do the technical feasibility as I had a bitter experience earlier.&lt;br /&gt;&lt;br /&gt;Dec 06, 2008: Technical Feasibility completed and was assured a strong signal as the tower is within 1KM distance. The tech Agent allowed me to test from my laptop. Gave the cheque and asked for the installation to be done on Dec 09 as it was a holliday for me.&lt;br /&gt;&lt;br /&gt;Dec 09, 2008: Got a call around 9 AM from the tech agent that installation cannot be done as the work order is not processed yet. Verification of the details was done by reliance communications via phone and in person by 3 PM.&lt;br /&gt;&lt;br /&gt;Dec 11, 2008: Installation started around 8 AM and completed by 10:30. There was minor disruption in setting up the account. By 11:30 the account is activated and am connected to the world! Working from home today.&lt;br /&gt;&lt;br /&gt;I'm quite pleased with the service offered by Vedica Technologies and would thank Srinivas Reddy, the director and Hemanth, the tech agent for their committment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-6729166318666993291?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/6729166318666993291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=6729166318666993291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6729166318666993291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6729166318666993291'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/12/internet-connection-saga.html' title='Internet Connection saga'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8967568883013479800</id><published>2008-11-16T21:17:00.001-08:00</published><updated>2008-11-16T21:19:46.731-08:00</updated><title type='text'>Moved!!</title><content type='html'>We finally did it! Moved to the new house on Saturday, Nov 15, 2008. The move was very well planned and it was not too hectic. The distance to the office increased by 4 KM and the route being good will take close to one hour to reach the office&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8967568883013479800?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8967568883013479800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8967568883013479800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8967568883013479800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8967568883013479800'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/11/moved.html' title='Moved!!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-5832875928451146668</id><published>2008-11-10T20:36:00.000-08:00</published><updated>2008-11-10T20:38:31.774-08:00</updated><title type='text'>GC and Performance Tuning</title><content type='html'>Here is the &lt;a href="http://www.thekua.com/atwork/2008/11/performance-tuning-garbage-collection/"&gt;link&lt;/a&gt; to performance tuning techniques at the GC level. Ever wondered about the options available at the GC level for performance tuning?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-5832875928451146668?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/5832875928451146668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=5832875928451146668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5832875928451146668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5832875928451146668'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/11/gc-and-performance-tuning.html' title='GC and Performance Tuning'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2570631811435739178</id><published>2008-10-30T01:07:00.000-07:00</published><updated>2008-10-30T01:31:51.542-07:00</updated><title type='text'>My experiences with SOA-part II: Principles</title><content type='html'>It has been quite a while since I published a post on my blog. As usual am held up with tasks both on the work and personal front and added to that the festival season had brought in some travel and leisure.&lt;br /&gt;&lt;br /&gt;Well, in this entry am supposed to cover the principles of SOA. So, what essentially are the priniples of SOA? The following are the set of widely accepted principles of SOA:&lt;br /&gt;1. Reusability&lt;br /&gt;2. Loosely Coupled&lt;br /&gt;3. Abstract the logic underneath&lt;br /&gt;4. Composability&lt;br /&gt;5. Autonomous&lt;br /&gt;6. Statelessness&lt;br /&gt;7. Discoverability&lt;br /&gt;8. Possess a contract &lt;br /&gt;&lt;br /&gt;Keep in mind that it is all about services. These principles are inter-related to each other. In the next part, I'll cover how we started on this project, the role of ESB and something on the unit testing and CI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2570631811435739178?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2570631811435739178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2570631811435739178' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2570631811435739178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2570631811435739178'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/10/my-experiences-with-soa-part-ii.html' title='My experiences with SOA-part II: Principles'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8019951509935467314</id><published>2008-10-12T02:27:00.000-07:00</published><updated>2008-10-12T02:28:41.733-07:00</updated><title type='text'>Architect and Army general</title><content type='html'>An interesting post on how an architect should be - &lt;a href="http://dahliabock.wordpress.com/2008/10/10/the-architect-said-what/"&gt;The Architect Said What&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8019951509935467314?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8019951509935467314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8019951509935467314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8019951509935467314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8019951509935467314'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/10/architect-and-army-general.html' title='Architect and Army general'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2654472820087816237</id><published>2008-10-07T04:19:00.000-07:00</published><updated>2008-10-07T04:24:37.452-07:00</updated><title type='text'>An interesting article on Scripting languages</title><content type='html'>Came across this article on CIO.com that considered the various scripting languages - Ruby, Python, Perl, Javascript and PHP and provided info on where each language fits the best. The opinions from experts like Zed Shaw and Martin Aspeli. It is very good read, the article is &lt;a href="http://www.cio.com/article/193750/You_Used_THAT_Programming_Language_to_Write_What_"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2654472820087816237?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2654472820087816237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2654472820087816237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2654472820087816237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2654472820087816237'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/10/interesting-article-on-scripting.html' title='An interesting article on Scripting languages'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8907826877156863519</id><published>2008-10-07T02:17:00.000-07:00</published><updated>2008-10-07T02:28:23.619-07:00</updated><title type='text'>Web Services, Security and SocketException</title><content type='html'>I use Soap UI for testing my web services and one service exposed to our clients is SPNEGO enabled and whenever I test this service using Soap UI there is an error - java.net.SocketException: Software caused connection abort: recv failed. The reason for this error is mostly due to the client side settings, network issues, windows socket binding, server side shared JVM. In my case it got resolved when the Http Settings were changed a little on the Soap UI HttpSettings. I just enabled the Pre-emptive Authentication and I could successfully consume the web service. This service is consumed by applications written in Java (Axis2) and .NET. We have advised out clients to increase the time for Socket timeout and enable pre-emptive authentication to avoid any potential issues in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8907826877156863519?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8907826877156863519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8907826877156863519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8907826877156863519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8907826877156863519'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/10/web-services-security-and.html' title='Web Services, Security and SocketException'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-7888059753133667101</id><published>2008-10-01T09:32:00.000-07:00</published><updated>2008-10-01T10:05:33.734-07:00</updated><title type='text'>My experience with SOA - part I: Myths</title><content type='html'>It had been slightly over an year since I started working on a SOA project and people have been asking me to share my experiences and learnings. I decided to write a series of posts on my blog focusing on one aspect everytime. In this entry, I'll address the myths about SOA.&lt;br /&gt;1. If your project has web services then you are doing SOA: Funny does it sound, isnt it? I have been hearing this statement for a long time. Web services is just an architectural style that facilitates achieving the fundamental principles of SOA. &lt;br /&gt;2. ESB is SOA: another popular myth. SOA is technology neutral and is not coupled to one particular way of doing it. This myth defeats the core principles of SOA - loose coupling and vendor diversity. &lt;br /&gt;3. SOA is out of the box: Well, SOA is not the panacea to all the business problems. There is no out of the box product that guarantees this. There is a popular myth that simply wrapping the legacy systems with web services to achieve SOA. &lt;br /&gt;&lt;br /&gt;The above myths are mostly from a technical perspective, I have not touched upon myths from a business angle. There are myths that SOA is easy (umm, I wish it were that easy), SOA is very expensive, SOA is always a flop, etc.&lt;br /&gt;&lt;br /&gt;In the next post, I'd cover the core principles of SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-7888059753133667101?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/7888059753133667101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=7888059753133667101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7888059753133667101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7888059753133667101'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/10/my-experience-with-soa-part-i-myths.html' title='My experience with SOA - part I: Myths'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-7980972186145213533</id><published>2008-08-12T00:49:00.000-07:00</published><updated>2008-08-12T00:54:07.007-07:00</updated><title type='text'>WSDL2Java to the rescue</title><content type='html'>Here is an interesting stuff on how we mocked the services - Few of the service providers could not meet our timelines ( we are bit ahead, hehe) and we were asked to mock the services from their WSDLs. Looking at the various options for mocking, I preferred the Axis2 WSDL2Java to geenrate the server side stubs, fill in the skeleton class and deploy it. It is quick and works just fine. One other thing using -t option generated a test case and we just needed to fill it up with the required assertions. I must say WSDL2Java saved time for me. Do you have any other ideas, feel free to comment on this entry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-7980972186145213533?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/7980972186145213533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=7980972186145213533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7980972186145213533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7980972186145213533'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/08/wsdl2java-to-rescue.html' title='WSDL2Java to the rescue'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3533075823912041378</id><published>2008-07-03T22:02:00.000-07:00</published><updated>2008-07-03T22:07:54.018-07:00</updated><title type='text'>Top Best 100 Software Engineering books</title><content type='html'>For those who enjoy reading books and like to stay updated on the techcnology, here is the link to &lt;a href="http://www.noop.nl/2008/06/top-100-best-software-engineering-books-ever.html"&gt;top best 100 software engineering books&lt;/a&gt;. Happy to see Code complete ranked #1, it is my favorite book. It is also nice to see the books I'm reading currently - SOA principles of service design and SOA concepts, technology and design, msut read books if you are planning to use SOA/already adopted SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3533075823912041378?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3533075823912041378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3533075823912041378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3533075823912041378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3533075823912041378'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/07/top-best-100-software-engineering-books.html' title='Top Best 100 Software Engineering books'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-891957518797568034</id><published>2008-06-23T21:52:00.000-07:00</published><updated>2008-06-23T22:15:23.275-07:00</updated><title type='text'>Coding keeps me fit</title><content type='html'>Exercise keeps you fit physically and what about your programming skills? Code regularly?Yes, to some extent. But good programmers keep practicing. Practice is the key to a good developer. &lt;br /&gt;&lt;br /&gt;It is so unfortunate that coding is considered a menial task in companies around and good developers have become a rare thing in the market. The common misconception is after 3 years of experience you should do less coding and try to become a team lead, and eventually the damager (umm Manager!). The FAQs are "You have x years of experience (x &gt; 5, btw) and do you still code?" Damn! and another question - "You are an architect, do you still code?" What the heck! &lt;br /&gt;&lt;br /&gt;Considering all these, how to be a better programmer, follow these simple steps:&lt;br /&gt;1. Read books (hmm, I know you have given up reading, but read Code Complete atleast)&lt;br /&gt;2. Read blogs and keep yourself up to date on the happenings in the industry&lt;br /&gt;3. Be a problem Solver&lt;br /&gt;4. Practice, Practice and Practice. &lt;br /&gt;5. Visit &lt;a href="http://www.codekata.com/"&gt;codekata&lt;/a&gt; and solve the katas.&lt;br /&gt;6. Understand the dynamics (NOT politics) of the organization.&lt;br /&gt;7. Do not get carried away by the misconception of becoming a damager.&lt;br /&gt;8. Last but not least, code regularly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-891957518797568034?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/891957518797568034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=891957518797568034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/891957518797568034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/891957518797568034'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/06/coding-keeps-me-fit.html' title='Coding keeps me fit'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-828022216440156332</id><published>2008-06-17T06:52:00.000-07:00</published><updated>2008-06-17T06:56:42.917-07:00</updated><title type='text'>We lost a good manager</title><content type='html'>It is sad to know that Subbu is &lt;a href="http://gvbsvv.blogspot.com/2008/06/i-have-resigned-from-dell-it-and.html"&gt;leaving Dell&lt;/a&gt;. Subbu was my first manager at Dell and is my icon for a manager. We are going to miss you, Subbu. All the best for your future endeavors!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-828022216440156332?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/828022216440156332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=828022216440156332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/828022216440156332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/828022216440156332'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/06/we-lost-good-manager.html' title='We lost a good manager'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-5702223680391114343</id><published>2008-06-06T04:12:00.000-07:00</published><updated>2008-06-06T05:06:44.917-07:00</updated><title type='text'>Advancement and Innovation</title><content type='html'>A recent post on James McGovern's blog prompted me to write this entry. Read the entry &lt;a href="http://duckdown.blogspot.com/2008/06/is-this-true-statement-regarding-indian.html"&gt;here&lt;/a&gt;. If I were asked the same question, my answer would be YES. &lt;br /&gt;It is a very conspicuous thing to notice among the folks (includes my friends as well) to grab the title of Manager as earlier as possible. I do not mean to undermine the role of a manager, I worked with some excellent managers and I respect the position.&lt;br /&gt;&lt;br /&gt;One for the reasons for the rush to be a manager is to hide the technical incompetence. 95%(perhaps even more) of the poeple in IT industry should not have entered the software field, and the shortest way they found out to save their jobs is to become a manager, rather damager.&lt;br /&gt;&lt;br /&gt;Another reason is folks are too lazy to learn new things and apply them to their work. The mindset is "I'm asked to do this and have done it". Arrive Late, leave early, take big break in between (play badminton, 2 hr lunch break, ...) have become quite common. Most of them dont even know what a BLOG is and the last they read something from a book is only during their college days. Innovation is given a damn.&lt;br /&gt;&lt;br /&gt;Let me stop here! &lt;br /&gt;Disclaimer: This entry is by no means to undermine the managers nor to demean the Indian IT folks. Any resemblence is purely coincidental and not intentional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-5702223680391114343?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/5702223680391114343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=5702223680391114343' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5702223680391114343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5702223680391114343'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/06/advancement-and-innovation.html' title='Advancement and Innovation'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1081761797617735574</id><published>2008-06-03T01:33:00.000-07:00</published><updated>2008-06-03T01:39:20.286-07:00</updated><title type='text'>JEE6</title><content type='html'>Someone pointed me to a pdf on the EJB3.1 that is part of JEE6. Have a look at the pdf &lt;a href="http://blogs.sun.com/kensaks/resource/EJB31-JavaPolis2007-saks.pdf"&gt;here&lt;/a&gt;. It has many nice features which shold have been available (much) earlier. Read carefully and if you have worked with Spring, Hibernate and Quartz (my favorite frameworks, btw), you'd notice some overlapping concepts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1081761797617735574?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1081761797617735574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1081761797617735574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1081761797617735574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1081761797617735574'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/06/jee6.html' title='JEE6'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-5704744549270204244</id><published>2008-05-15T00:44:00.000-07:00</published><updated>2008-05-15T01:26:26.025-07:00</updated><title type='text'>Agile is not going to work for me!</title><content type='html'>This is not my statement. This is the initial statement I keep hearing when people are introduced to Agile. During lunch today, a (heated) discussion started around Agile and the folks are from the testing team. To start with, they are not convinced with the scrum standup calls. When asked how they are doing it, the reply was they are doing it once a week with 18 members in the team! Well, is that a stand up call? When asked the same question, the answer I got back was standup call is no different than a status meeting. Hmmmm, I have no words to describe my feelings. Grossly disgusting. Agile and the tenets of Agile are being misconstrued and misinterepreted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-5704744549270204244?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/5704744549270204244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=5704744549270204244' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5704744549270204244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5704744549270204244'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/05/agile-is-not-going-to-work-for-me.html' title='Agile is not going to work for me!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-5421409715460554464</id><published>2008-05-04T08:09:00.000-07:00</published><updated>2008-05-04T08:19:53.243-07:00</updated><title type='text'>What Lead are you?</title><content type='html'>While talking to my friend on the weekend an interesting discussion spurred up around the roles we have in our organizations. Top of the mind, recall - Team Lead, Tech Lead, Dev Lead, Solution Lead, Design Lead..Jeez, the list goes on..the thing that I'm not able to comprehend is why do we need so many roles? My observation is that the teams are always self organizing and would naturally select a tech authority [perhaps a new role has been coined ;-)] and would not consult a personally who is formally appointed as Tech Lead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-5421409715460554464?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/5421409715460554464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=5421409715460554464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5421409715460554464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/5421409715460554464'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/05/what-lead-are-you.html' title='What Lead are you?'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-6243506026748927960</id><published>2008-04-28T21:51:00.001-07:00</published><updated>2008-04-28T22:08:54.434-07:00</updated><title type='text'>Do you care for Web2.0?</title><content type='html'>I understand that am little delayed in posting an entry on Web2.0, reason being that am doing middleware work mostly (Ah! the SOA stuff, more on this in another post) and it has been almost an year and half that I coded something on servlets/JSP/Struts/JSF, blah blah. OK, coming to the point ...&lt;br /&gt;&lt;br /&gt;Recently, one of my friends proudly gave a demo of the application he has been working on for an year. Though the application met the requirements defined by the business people, there was something that was missing in the app. My friend's team received unsatisfactory comments from the client. When probed deeper the team found no deviations from the requirements but the users are not that happy using the product. Apparantly, the system was not designed in a user-centric manner [Usability is different from User-Centric Design!!]. It seems someone suggested my friend to change the colors and add some funky javascript to appease the eye (they started advertising that they used Web2.0!!!). All that jazz helped initially but died down very soon.&lt;br /&gt;&lt;br /&gt;Well, Web2.0 is NOT adding some animations and jazzy javascript, it is much more than that. Do we really know what Web2.0 is intended for? Frankly, I'm not fully aware. I came across some links that helped me understand Web2.0, so instead me duplicating the content here, go &lt;a href="http://www.slideshare.net/dancingmango/web-20-what-is-it-and-what-does-it-mean-for-retail-banks"&gt;there&lt;/a&gt; and read upon. Make sure to watch the  content on the "Related Slidehshows" tab&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-6243506026748927960?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/6243506026748927960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=6243506026748927960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6243506026748927960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6243506026748927960'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/04/do-you-care-for-web20.html' title='Do you care for Web2.0?'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2692673772176126609</id><published>2008-04-01T21:36:00.000-07:00</published><updated>2008-04-01T21:44:32.812-07:00</updated><title type='text'>Back in office</title><content type='html'>I'm back in office after a 20 day vacation and catching up on the happenings. Lot of things seem to have happened. The reason for the long silence and no blog entries is that I got married to Madhuri on March 09. The snaps will be posted soon on the picasa. Although, I lost my most prized ship..BACHELORSHIP, am enjoying the married life and getting used to make compromises..hehe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2692673772176126609?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2692673772176126609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2692673772176126609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2692673772176126609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2692673772176126609'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/04/back-in-office.html' title='Back in office'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3161015266557486794</id><published>2008-01-29T20:21:00.000-08:00</published><updated>2008-01-29T20:27:13.454-08:00</updated><title type='text'>The Enterprise Service Bus (ESB)</title><content type='html'>So, you have decided to adopt SOA in your organization and narrowed on an ESB to accomplish the daunting task of Soafying your IT infrastructure? Good idea. In all the excitement, before you sign off the agreements with your ESB vendor, watch the video on &lt;a href="http://www.infoq.com/presentations/webber-guerilla-soa;jsessionid=250A236630653E4AB4D270BFB6F9D767"&gt;Guerilla SOA&lt;/a&gt; by Jim Webber on the infoQ. Very interesting presentation. ESB has been referred to as "Enterprise Spaghetti Bus", hehehe, I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3161015266557486794?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3161015266557486794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3161015266557486794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3161015266557486794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3161015266557486794'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2008/01/enterprise-service-bus-esb.html' title='The Enterprise Service Bus (ESB)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8620263884742439224</id><published>2007-12-21T00:18:00.000-08:00</published><updated>2007-12-21T00:51:55.941-08:00</updated><title type='text'>Year.introspect(2007)</title><content type='html'>Being a Friday afternoon, I wanted to finish any pending tasks and go home early and more importantly to keep myself away from the laptop on the weekend. I started looking at the TODO list and the one with top priority was submitting the self assessment. Hmmm, another year just rolled by and while filling up my assessment I introspected my personal life as well.&lt;br /&gt;&lt;br /&gt;This year has been very eventful on the personal and work fronts. On the personal front, the long pending tasks have been completed. I purchased my first car, am delighted to drive it. Got a very good deal and purchased a house, would me moving into that very soon and most important, got engaged. The horoscopes have finally relented and I found my soul mate. My fiancee is also a java developer :-).&lt;br /&gt;&lt;br /&gt;On the work front, I got a very challenging assignment and am all the more happy for it, though it is going to be little hectic. We will be driving the "Bus" - Enterprise Service Bus. ALSB has been choosen as the ESB and hopefully, the ride is going to be fun and thrilling as we become more SOAified ( I coined this word, hehe).&lt;br /&gt;&lt;br /&gt;This year went by just like that, but was very eventful. Hoping that the next year would be more fun filled and exuberant. Wish you all a very Happy and Prosperous New Year, 2008!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8620263884742439224?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8620263884742439224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8620263884742439224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8620263884742439224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8620263884742439224'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/12/yearintrospect2007.html' title='Year.introspect(2007)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-7344781603928196137</id><published>2007-12-03T00:14:00.000-08:00</published><updated>2007-12-03T00:17:45.211-08:00</updated><title type='text'>Safely Remove Hardware icon, where has it gone?</title><content type='html'>I noticed that sometimes, the "Safely Remove Hardware icon" disappears from the taskbar and simply unplugging the thumb drive has corrupted it once. Today, I found that there is another workaround for this - Start &gt; Run and key in the following to bring up Safely Remove Hardware dialog:&lt;br /&gt;&lt;br /&gt;RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-7344781603928196137?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/7344781603928196137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=7344781603928196137' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7344781603928196137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7344781603928196137'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/12/safely-remove-hardware-icon-where-has.html' title='Safely Remove Hardware icon, where has it gone?'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-34346117364969229</id><published>2007-11-29T21:45:00.000-08:00</published><updated>2007-11-29T21:50:11.685-08:00</updated><title type='text'>Open Source Softwares to look at</title><content type='html'>For some reason, few (great) open source softwares have missed my eye. I'm greatful to my friend who pointed me to these products - &lt;a href="http://jscience.org/"&gt;JScience&lt;/a&gt;, &lt;a href="http://icu-project.org/"&gt;icu4j&lt;/a&gt; and &lt;a href="http://joda-time.sourceforge.net/"&gt;Joda Time&lt;/a&gt;. How much time I spent grappling with the currency conversions, i18n, l10n and dealing with the date/timestamp issues. I should have known these libraries earlier.Tch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-34346117364969229?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/34346117364969229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=34346117364969229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/34346117364969229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/34346117364969229'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/11/open-source-softwares-to-look-at.html' title='Open Source Softwares to look at'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-2117511147749017872</id><published>2007-10-24T04:52:00.000-07:00</published><updated>2007-10-24T05:04:56.029-07:00</updated><title type='text'>Free the Left Lane</title><content type='html'>The traffic in Hyderabad is getting miserable everyday. Last year, during the month of October it used to take me approximately 45 minutes to reach office from my home which is 25 KM away. Now it takes anything between 1 hour 15 minutes to 1 hour 30 minutes. Terrible, isn't it! The reason is not just increase in the number of vehicles on the road, but people driving without traffic sense and mutual respect for the others on the road.&lt;br /&gt;&lt;br /&gt;There is a concept of free left lane at the signals in Hyderabad, this is not the case in Bangalore. The drivers in a hurry to reach the destination faster block the left lane and cause a severe congestion at the junctions. One such place is the junction at the Cyber Towers where people take a left turn as most of the companies are located on that way.&lt;br /&gt;&lt;br /&gt;Recently, few companies started the initiative of "Free the left lane", where in employess of these companies help in freeing the left lane and reduce congestion. These people stand in the hot sun and ensure lane discipline. Thanks, folks! You are helping me reach the office early by atleast 20 minutes. I have noticed employees of SumTotal and CSC, many thanks to you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-2117511147749017872?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/2117511147749017872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=2117511147749017872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2117511147749017872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/2117511147749017872'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/10/free-left-lane.html' title='Free the Left Lane'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8825275359134540715</id><published>2007-10-15T06:28:00.000-07:00</published><updated>2007-10-15T06:30:23.532-07:00</updated><title type='text'>SQL Joins</title><content type='html'>Here is a nice post on SQL Joins. A good read to brush your fundamentals. Don't miss out the links to other posts on this &lt;a href="http://www.codinghorror.com/blog/archives/000976.html"&gt;blog entry&lt;/a&gt;. Thanks, Jeff for this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8825275359134540715?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8825275359134540715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8825275359134540715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8825275359134540715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8825275359134540715'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/10/sql-joins.html' title='SQL Joins'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-6093084341202335788</id><published>2007-10-03T02:17:00.000-07:00</published><updated>2007-10-03T02:23:00.486-07:00</updated><title type='text'>Code for Testability</title><content type='html'>These days I'm finding it very difficult to get people write the unit tests. The difficulty is even more with the experienced developers, atleast the junior developers are clear when they start writing code and ask questions if they are not clear about something. One funny incident - one of the senior developers completed the coding and asked a junior developer to write the test cases for it. God! The test cases are not just for the sake of it.&lt;br /&gt;&lt;br /&gt;Ironically, a few senior developers look at unit tests as some kind of validations!! perhaps due to the use of assert* methods...&lt;br /&gt;&lt;br /&gt;Wake up folks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-6093084341202335788?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/6093084341202335788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=6093084341202335788' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6093084341202335788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6093084341202335788'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/10/code-for-testability.html' title='Code for Testability'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3106435748891522886</id><published>2007-09-20T01:19:00.000-07:00</published><updated>2007-09-20T01:48:54.885-07:00</updated><title type='text'>Imperatives for setting a goal</title><content type='html'>What are the factors you'd consider before setting a goal for yourself or for the people who work for you? Apparantly, the answers would be purpose, time frame, execution plan. If these are your answers, you are close but not perfect.&lt;br /&gt;&lt;br /&gt;An axiom for setting a goal is RUN which stands for &lt;b&gt;R&lt;/b&gt;ealistic, &lt;b&gt;U&lt;/b&gt;nderstandable, and &lt;b&gt;N&lt;/b&gt;ecessary. This sounds very simple and is very elusive and we often overlook it. The explanation for &lt;b&gt;RUN&lt;/b&gt; starts with the last character..OK..OK alphabet, I'm engrossed in Software, as always :-). A goal is marked as necessary if it has a purpose/value, is time boxed. Next is Understandable, ensure that the purpose is clearly understood and your or your team's role is clear so that the execution plan is drafted accordingly. Finally, the goal would be realistic if it has well drafted execution plan.&lt;br /&gt;&lt;br /&gt;RUN concept is not just limited to software projects. Infact, the concept has been borrowed from the manufacturing domain. Managers, if you want your teams to gain velocity and run, do not forget to apply the RUN concept when you do the estimations next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3106435748891522886?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3106435748891522886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3106435748891522886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3106435748891522886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3106435748891522886'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/09/imperatives-for-setting-goal.html' title='Imperatives for setting a goal'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1733356408446819149</id><published>2007-09-13T00:42:00.000-07:00</published><updated>2007-09-13T01:09:31.217-07:00</updated><title type='text'>The Dark Art of Transaction Management</title><content type='html'>Ask the folks on your team "Who can define transaction management?", expect to see only few hands raised. The number would still dwindle if the question were "What is the transaction strategy used in your application?". This is the reality. Another interesting thing is people treat XA as a panacea. Mind you, it is going to become a resource hog if used improperly. &lt;br /&gt;&lt;br /&gt;I came across a recent presentation on &lt;a href="http://www.infoq.com/presentations/transaction-management-strategies"&gt;InfoQ&lt;/a&gt; titled "Transaction Management Strategies in Mission Critical Applications". A good presentation with indepth look at the transaction, its demarcations, management and usage. I highly recommend all the fellow developers/architects to go through the presentation. I particularly liked the myths of transaction management, a quick summary of myths and realties:&lt;br /&gt;&lt;br /&gt;Myth1: All mission critical enterprise apps require XA transactions&lt;br /&gt;Myth2: Transaction O/R Mapping integration requires XA/JTA&lt;br /&gt;Myth3: For combining JDBC and JMS access, XA is necessary&lt;br /&gt;&lt;br /&gt;The realty is that many enterprise apps do not require XA at all. O/R Mappers just operate on the DB connection with some cache housekeeping that does not require XA. The last myth is the common situation in many applications. I have seen this misconception in a recent project. This can be avoided by using JMS with local transactions or with the acknowledgements.&lt;br /&gt;&lt;br /&gt;There is a free book on the InfoQ site  - "Java Transaction Design Strategies" by Mark Richards. Use transactions, especially XA with care, otherwise you need to pay the price once application is in production.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1733356408446819149?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1733356408446819149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1733356408446819149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1733356408446819149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1733356408446819149'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/09/dark-art-of-transaction-management.html' title='The Dark Art of Transaction Management'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-6339823930658130246</id><published>2007-08-02T01:05:00.000-07:00</published><updated>2007-08-02T01:47:45.611-07:00</updated><title type='text'>Enterprise Service Bus and Mule ESB</title><content type='html'>Some of my friends mentioned that my blog entries these days aren't too technical. Admittedly, am cranking out lot of enterprise software :-). This purpose of this entry is to be as technical as possible and get head on with Mule ESB.&lt;br /&gt;&lt;br /&gt;If you are a novice to ESB, I suggest to read &lt;a href="http://en.wikipedia.org/wiki/Enterprise_service_bus"&gt;this&lt;/a&gt; first. Essentially, an ESB is an integration backbone supporting the SOA. Being a strong advocate of open source software, &lt;a href="http://mule.codehaus.org/display/MULE/Home"&gt;Mule&lt;/a&gt; ESB has been picked up as the integration bus. There is some documentation on the Mule Wiki to start with and have the mule up and running. I'll discuss a simple example of reading a file from a folder, do some processing and publish the message on to a Weblogic JMS queue.&lt;br /&gt;&lt;br /&gt;The first thing is to have the Mule server installed and have it running. I used Mule 1.3.3. The process is straight forward. The first time when the server is brought up, a couple of jars are downloaded. If you encounter any difficulties during this step, download the jars manually and place them at $MULE_HOME/lib/user.&lt;br /&gt;&lt;br /&gt;Getting Mule to work for you requires no more than a configuration file and few java classes, if required. The most important one is the configuration file. The configuration starts with the "connector" element. For detailed information on the Mule architecture refer the Wiki. Since, my requirement was to read a file and publish the message on to a queue, I used the FileConnector and JmsConnector. The configuration for these elements looks like the following:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;connector name="myFileConnector" className="org.mule.providers.file.FileConnector"/&amp;gt;&lt;br /&gt; &amp;lt;connector name="jmsConnector" className="org.mule.providers.jms.JmsConnector"&amp;gt;&lt;br /&gt;        &amp;lt;properties&amp;gt;&lt;br /&gt;   &amp;lt;property name="jndiDestinations" value="true"/&amp;gt;&lt;br /&gt;   &amp;lt;property name="forceJndiDestinations" value="true"/&amp;gt;&lt;br /&gt;   &amp;lt;property name="specification" value="1.0.2b"/&amp;gt;&lt;br /&gt;   &amp;lt;property name="connectionFactoryJndiName" value="jms/MyJMSConnectionFactory"/&amp;gt;&lt;br /&gt;   &amp;lt;property name="jndiInitialFactory" value="weblogic.jndi.WLInitialContextFactory"/&amp;gt;&lt;br /&gt;   &amp;lt;property name="jndiProviderUrl" value="t3://localhost:55555"/&amp;gt;&lt;br /&gt;  &amp;lt;/properties&amp;gt;&lt;br /&gt;    &amp;lt;/connector&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Next, a very basic Transformer that reads the contents of the file and appends TEST at the end of each line. The following is the java class that does this. The compiled class should be packaged into a jar and placed in $MULE_HOME/lib/user.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;public class MyTransformer extends AbstractTransformer{&lt;br /&gt;  &lt;br /&gt;  public MyTransformer() {&lt;br /&gt;   registerSourceType(byte[].class);&lt;br /&gt;   setReturnClass(String.class);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Object doTransform(Object src, String encoding) throws TransformerException {&lt;br /&gt;   String s = null;&lt;br /&gt;   try{&lt;br /&gt;    byte[] theBytes = (byte[])src;&lt;br /&gt;    String str = new String(theBytes);    &lt;br /&gt;    BufferedReader br = new BufferedReader(new StringReader(str));&lt;br /&gt;    String line = null;&lt;br /&gt;    StringBuffer buff = new StringBuffer();&lt;br /&gt;    while ( (line = br.readLine()) != null)&lt;br /&gt;    {&lt;br /&gt;    System.out.println("&gt;&gt;&gt;&gt; "+line);&lt;br /&gt;    buff.append(line).append("TEST").append("\n");&lt;br /&gt;    &lt;br /&gt;    }&lt;br /&gt;    s = buff.toString();  &lt;br /&gt;   } catch(Exception e) {&lt;br /&gt;    throw new TransformerException(&lt;br /&gt;                    Message.createStaticMessage("Unable to Transform Message."), e);&lt;br /&gt;   }&lt;br /&gt;   return s;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The transformer configuration in the mule config file:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&amp;lt;transformers&amp;gt;&lt;br /&gt;  &amp;lt;transformer name="myTransformer" className="com.test.MyTransformer"/&amp;gt;&lt;br /&gt; &amp;lt;/transformers&amp;gt; &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Finally, configuring the endpoints. Place the weblogic jar in the $MULE_HOME/lib/user to access the JMS specific dependencies. The endpoint configuration:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&amp;lt;model name="READ_FILE"&amp;gt;&lt;br /&gt;  &amp;lt;mule-descriptor name="read-file" implementation="org.mule.components.simple.BridgeComponent"&amp;gt;&lt;br /&gt;   &amp;lt;inbound-router&amp;gt;&lt;br /&gt;    &amp;lt;endpoint address="file:///C:/mule-1.3.3/sandbox/in?connector=myFileConnector" transformers="myTransformer"/&amp;gt;&lt;br /&gt;   &amp;lt;/inbound-router&amp;gt;&lt;br /&gt;   &amp;lt;outbound-router&amp;gt;&lt;br /&gt;    &amp;lt;router className="org.mule.routing.outbound.OutboundPassThroughRouter"&amp;gt;&lt;br /&gt;     &amp;lt;endpoint address="jms://MyJMSQueue"/&amp;gt;&lt;br /&gt;    &amp;lt;/router&amp;gt;&lt;br /&gt;   &amp;lt;/outbound-router&amp;gt;&lt;br /&gt;  &amp;lt;/mule-descriptor&amp;gt;&lt;br /&gt; &amp;lt;/model&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;That is all it takes to have the stuff working. There is not much of coding here, but configuring elements play a key role in having Mule work as expected. The info I was looking for wasn't available at once place. This blog entry addresses the nitty gritty to a fair extent. The version of Mule I used had a problem with the JmsConnector that broke in weblogic, there was no cast to QueueSender on MessageProducer in the class Jms102bSupport. I corrected this and had to build the source to fix the issue. However, this seems to have been corrected in version 1.4.&lt;br /&gt;&lt;br /&gt;Mule ESB is flexible, and easy to configure and use. I just started working with Mule and there is a lot to learn. Suggestions, case studies on mule will be of great help to me. Feel free to post a comment on this entry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-6339823930658130246?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/6339823930658130246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=6339823930658130246' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6339823930658130246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/6339823930658130246'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/08/enterprise-service-bus-and-mule-esb.html' title='Enterprise Service Bus and Mule ESB'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1208397250047723240</id><published>2007-07-27T04:49:00.000-07:00</published><updated>2007-07-27T05:21:42.772-07:00</updated><title type='text'>NASSCOM seminar on SOA</title><content type='html'>Today, I chanced to attend the seminar on SOA conducted by NASSCOM in Hyderabad. There were 5 speakers in total from different companies who gave different dimensions and perspectives on SOA. The talks were pretty impressive except for the one with Case Studies. Although, the case studies were good, it was dull and boring.&lt;br /&gt;&lt;br /&gt;The best talk was from Santosh Mohanty from TCS on Nuts and Bolts of SOA. Though, the speaker had a typical Oriya accent [pipty for fifty], he enthralled the audience with the content and hilarious tit bits. The acronyms given for the Nuts and Bolts is funny. NUTS - Networked Users of Technology and Services, BOLTS - Business Objectives by Linking Technology and Services.&lt;br /&gt;&lt;br /&gt;I received some feedback on a similar talk organized at Bangalore from a colleague that it was not so impressive. The speakers are experts in the field of SOA and if any attendee was expecting some hard code techie stuff, the obvious response would have been "Whatz a Developer doing in this conference?". If I had attended this seminar expecting some geekiness on SOA, I'd be thoroughly disappointed. The perspective was overview of SOA, making it work for your organization, imperativeness of SOA governance and processes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1208397250047723240?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1208397250047723240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1208397250047723240' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1208397250047723240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1208397250047723240'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/07/nasscom-seminar-on-soa.html' title='NASSCOM seminar on SOA'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1286197797614944269</id><published>2007-06-25T14:11:00.000-07:00</published><updated>2007-09-13T01:14:11.077-07:00</updated><title type='text'>Joy of meeting a true architect</title><content type='html'>I'm in US for 10 days on a quite unexpected visit and unplanned visit. Fortunately, it turned out to be a nice one. I chanced to meet a true architect and am glad that I'll be working with him during my stay here. Itz pleasure and I'm blessed. Oflate, I have seen so many "paper architects", yeah, I mean it. There was one such person in one of my earlier projects who would literally steal the credit of any innovative work without even designing or coding it. Shame!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1286197797614944269?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1286197797614944269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1286197797614944269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1286197797614944269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1286197797614944269'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/06/joy-of-meeting-true-architect.html' title='Joy of meeting a true architect'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3623944865281067136</id><published>2007-06-03T07:59:00.000-07:00</published><updated>2007-06-03T08:29:33.486-07:00</updated><title type='text'>Buy Vs Build with open source alternatives</title><content type='html'>Recently, we evaluated a few commercial products to solve a particular business problem. Though, the products had very impressive features, the licensing costs were daunting. Moreover, I felt that the features offered by the commercial vendors could be built in house using a combination of proven open source technologies. I mentioned what I had in my mind to my management and they readily approved and encouraged me to develop a POC within two weeks and give a demo. &lt;br /&gt;&lt;br /&gt;The open source softwares I picked up are highly proven and famous - JBoss Rules/Drools, Quartz scheduling engine, Jackrabbit CMS. These have been nicely integrated and I knocked out the POC within a week. Many thanks to the committers on these wonderful softwares. Ofcourse, there was a bit of pain as there was no sufficient documentation and tutorials available, I had to hack around the API and source code, but over all it was a very exciting experience. Now my current task is to port the POC to the server side and provide hooks to access the functionality via web services. Hmmm, this brings in some of the routine enterprise chaos :-)&lt;br /&gt;&lt;br /&gt;The challenging task is to deploy the Jackrabbit CMS on the Weblogic. The example shipped with source code talks about Model 2 way of deployment on weblogic as an JCA adapter. Pretty interesting! Note that JCA resources can be accessed only EJBs, servlets and not from a main method to unit test. As I look more at the situation, many concerns are getting unearthed. Little did I realize that the amount of entropy in a software system is proportional to the breadth of the system. This gets maginified further if different technologies are weaved (I desist from using the word "integrated") together and at the same time the adjecctives of the system are to be taken care of viz. flexibility, extensibility, etc and more importantly performance. Can we call this nice pabulum? Indeed! I also have the satisfaction of saving a few hundred thousand dollars for my company!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3623944865281067136?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3623944865281067136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3623944865281067136' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3623944865281067136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3623944865281067136'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/06/buy-vs-build-with-open-source.html' title='Buy Vs Build with open source alternatives'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-4607932551556581291</id><published>2007-05-14T06:23:00.000-07:00</published><updated>2007-05-14T06:30:20.228-07:00</updated><title type='text'>Shelving the code</title><content type='html'>Came across this new feature called Shelving in the version control systems. Itz new to me atleast ;-). As a developer you made changes to the code, but not sure if that would lead to any issues since you have not tested the modifications and your are about to leave the office. You are also fearing that your machine might crashed before you login the next morning. Then, Shelving comes to help you.&lt;br /&gt;&lt;br /&gt;Shelving serves as a backup on the respository but essentially, the file is not checked in. The shelving space is specific to the individual users. Shelving is not supported in CVS but in SVN and the VSTS. A really cool feature. Oh Yes, you may also argue that it is just another way of branching per developer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-4607932551556581291?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/4607932551556581291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=4607932551556581291' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4607932551556581291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4607932551556581291'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/05/shelving-code.html' title='Shelving the code'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1667731759746247478</id><published>2007-05-07T03:40:00.000-07:00</published><updated>2007-05-07T03:45:18.360-07:00</updated><title type='text'>Welcome to the Club!</title><content type='html'>My friends, Vijay and Rajendra notified me that they have been promoted as Architects ummm..Art Vandelays :-) in their respective companies they work for. Congrats, folks and welcome to the club. Strive for elegance in whatever you architect. All the best in your new roles. Do well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1667731759746247478?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1667731759746247478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1667731759746247478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1667731759746247478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1667731759746247478'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/05/welcome-to-club.html' title='Welcome to the Club!'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-3855024348845197115</id><published>2007-03-28T09:37:00.000-07:00</published><updated>2007-03-28T09:56:29.991-07:00</updated><title type='text'>Whatz fun in writing Enterprise Software</title><content type='html'>An interesting essay by Paul Graham on "Why to Not Not Start a Startup" is &lt;a href="http://www.paulgraham.com/notnot.html"&gt;here&lt;/a&gt;. The essay talks about 16 reasons why people don't start startups. Of particular interest is the reason 4 - Not Smart Enough which states "If you don't think you're smart enough to start a startup doing something technically difficult, just write enterprise software. Enterprise software companies aren't technology companies, they're sales companies, and sales depends mostly on effort." This would make you smile at yourself.&lt;br /&gt;&lt;br /&gt;What kind of people does a company producing enterprise software want? Great Programmers. NO! Definitely not. From the company's perspective, they need chaps who can roll out things that add value to business, though not technically sound. An average developer picked from the streets who can just produce some working stuff. All that they want is people who dance to their tunes. Put is some soft words - They want people who have faith in the management. This is how things work and no one can change it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-3855024348845197115?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/3855024348845197115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=3855024348845197115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3855024348845197115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/3855024348845197115'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/03/whatz-fun-in-writing-enterprise.html' title='Whatz fun in writing Enterprise Software'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-7182466119940824572</id><published>2007-03-22T01:08:00.000-07:00</published><updated>2007-03-22T01:11:44.866-07:00</updated><title type='text'>Book on Middleware</title><content type='html'>There is a book on Middleware title "Middleware Architecture with Patterns and Frameworks" by Sacha Krakowiak at this &lt;a href="http://sardes.inrialpes.fr/~krakowia/MW-Book/"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-7182466119940824572?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/7182466119940824572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=7182466119940824572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7182466119940824572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/7182466119940824572'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/03/book-on-middleware.html' title='Book on Middleware'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-4239844343962344812</id><published>2007-02-26T02:47:00.000-08:00</published><updated>2007-02-26T02:56:20.501-08:00</updated><title type='text'>New Books</title><content type='html'>It has been a while since I read a book. I tried my best to get an Indian edition of the Java Concurrency in Practice by Brian Goetz but couldn't get it. The Original print is atleast 4X times the price my budget for the book. Over the weekend, I purchased three books - Head First OOAD, Ruby Cookbook and Beginning Ruby on Rails.&lt;br /&gt;&lt;br /&gt;Being a big fan of the Head First series, I started out with OOAD book. This is a good book even for the seasoned professionals. Keep in mind this is NOT a reference book. Brett, Gary and David have done an excellent work capturing all the required of OOAD in a pleasure to read book.&lt;br /&gt;&lt;br /&gt;Ruby Cookbook presents nice recipes with Ruby. Very well presented. It is good point to start picking up Ruby. &lt;br /&gt;&lt;br /&gt;As far Rails, am still a novice. The next month my technical arsenal is going to get enriched with Ruby and Rails :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-4239844343962344812?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/4239844343962344812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=4239844343962344812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4239844343962344812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4239844343962344812'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/02/new-books.html' title='New Books'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-4724900527516505235</id><published>2007-01-12T00:28:00.000-08:00</published><updated>2007-01-16T22:23:00.489-08:00</updated><title type='text'>Did you forget to sell yourself?</title><content type='html'>I started blogging with the intention to blog ONLY technical and technology related stuff and had always desisted from publishing "sensitive" content. But this time, I couldn't resist my frustration and out it comes.&lt;br /&gt;&lt;br /&gt;I guess, it is the time of year end appraisal in most of the companies..oops, Software companies. Put in other words, it is the time for "Shameless bit of Self-Promotion". I have been observing my colleagues for a month and there is a dramactic change in their behaviors. Everyone is aware of the famous "recency effect". It is also interesting to watch how everyone is bent on blowing their trumpets. One of my colleagues rephrased it and called it "Way of advancing in career". I feel like pursuing a course in behavioral science ;-)&lt;br /&gt;&lt;br /&gt;This is also the time the managers have to walk on a tight rope balancing the hikes against the performance of the individuals without losing valued employees. A really tough job!&lt;br /&gt;&lt;br /&gt;A word to fellow developers - in pursuit of technical nirvana, do not neglect the "Way of advancing in career".&lt;br /&gt;&lt;br /&gt;*** UPDATE ***&lt;br /&gt;Honest way of selling yourself - here are a few headers suggested by my friends&lt;br /&gt;1. Delivery of the Work Item - Explain how the work item is delivered on time, on budget,...&lt;br /&gt;2. Quality of the Work Item - Elaborate on how technology has been leveraged for business and dexterity in applying the technology&lt;br /&gt;3. Flagship work done - Enlist any flagship work you are proud of&lt;br /&gt;4. Demonstrated Leadership - Applicable if only in a leader role. Mentoring of team members.&lt;br /&gt;5. Overall contribution to the project/product release.&lt;br /&gt;&lt;br /&gt;Some companies do insist that it is the responsibity of the individual to look into other projects and provide them techcnical direction, even though people from other projects don't approach you for help. Doesn't it sound funny? Well, it isn't this is called "Way of advancing in career" LOL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-4724900527516505235?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/4724900527516505235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=4724900527516505235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4724900527516505235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/4724900527516505235'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2007/01/did-you-forget-to-sell-yourself.html' title='Did you forget to sell yourself?'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8021124344019883820</id><published>2006-12-29T07:39:00.000-08:00</published><updated>2007-01-01T22:12:30.625-08:00</updated><title type='text'>Scaling Data tier strategies</title><content type='html'>&lt;a href="http://stochastyk.blogspot.com/"&gt;Kaushik&lt;/a&gt; pointed me to an excellent presentation of the &lt;a href="http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf"&gt;eBay Architecture&lt;/a&gt;. The intriguing aspect has been scaling the Data tier and some of the interesting strategies suggested are a) No business logic in the DB, quite agreed but the strategy says not to use stored procedures, very interesting and recommends usage of extensive Prepared Statements with bind variables b) Auto commit for vast majority of DB writes.&lt;br /&gt;&lt;br /&gt;It is PDF with lot of insights. Read it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8021124344019883820?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8021124344019883820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8021124344019883820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8021124344019883820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8021124344019883820'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/12/scaling-data-tier-strategies.html' title='Scaling Data tier strategies'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8792268912407139518</id><published>2006-12-12T03:44:00.000-08:00</published><updated>2006-12-12T03:52:49.434-08:00</updated><title type='text'>Sweetheart, I'm missing you</title><content type='html'>It has been a while since I programmed in Ruby. Almost 8 months! I'm doing lot of enterprise Java ;-). Not that I hate Java, it is just to let you know how much I love Ruby. Busy schedules, tight timelines didn't allow me much to allocate time for learning Ruby. I almost forgot it, sob! I wanted to start afresh with Ruby and was searching for some good tutorials and landed at this place - &lt;a href="http://poignantguide.net/ruby/"&gt;Why's (poignant) guide to Ruby&lt;/a&gt;. And I must tell you, it is unputdownable. Go grab the book and start reading. I really wish I work with Ruby and Rails on a real time project soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8792268912407139518?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8792268912407139518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8792268912407139518' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8792268912407139518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8792268912407139518'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/12/sweetheart-im-missing-you.html' title='Sweetheart, I&apos;m missing you'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-9016146451216201635</id><published>2006-11-23T00:25:00.000-08:00</published><updated>2007-01-08T08:42:38.119-08:00</updated><title type='text'>Coding Horror - blog</title><content type='html'>If you have read Code Complete by Steve McConnell, you must have noticed the "Coding Horror" side bars that show you how not to write code. I found out today that there is actually a blog for this. Check the &lt;a href="http://www.codinghorror.com/blog/"&gt;Coding Horror Blog&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;**** UPDATE *****&lt;br /&gt;The link is not actually related to Code Horror or Steve McConnell. I realized this after publishing the blog and didn't update the entry. Point to www.thedailywtf.com as suggested in the comments to this entry. Thanks to the person for the comment, btw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-9016146451216201635?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/9016146451216201635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=9016146451216201635' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/9016146451216201635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/9016146451216201635'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/11/coding-horror-blog.html' title='Coding Horror - blog'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-1822972553066866760</id><published>2006-11-22T05:56:00.000-08:00</published><updated>2006-11-22T06:00:51.429-08:00</updated><title type='text'>Software and Manufacturing - Nice analogy</title><content type='html'>This &lt;a href="http://alistair.cockburn.us/index.php/What_engineering_has_in_common_with_manufacturing_and_why_it_matters"&gt;article&lt;/a&gt; talks of what the software and manufatcuring have in common and how can the lessons learnt in manufacturing be applied to software. Good one!&lt;br /&gt;&lt;br /&gt;Btw, a friend has asked me why my recent blog entries had few lines and links to other sites. Dude, I'm in reading mode ;-) and blog is the best place for quick dissemination of the learnings :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-1822972553066866760?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/1822972553066866760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=1822972553066866760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1822972553066866760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/1822972553066866760'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/11/software-and-manufacturing-nice-analogy.html' title='Software and Manufacturing - Nice analogy'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-8403852432167435766</id><published>2006-11-20T06:02:00.001-08:00</published><updated>2006-11-20T06:06:36.575-08:00</updated><title type='text'>Stress Management</title><content type='html'>Found some good tips to manage stress at this link&lt;a href="http://gvbsvv.blogspot.com/2006/11/come-out-of-stresssimple-rules.html"&gt;Come Out of Stress&lt;/a&gt;. Nice entry. Go read it if you have time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-8403852432167435766?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/8403852432167435766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=8403852432167435766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8403852432167435766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/8403852432167435766'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/11/stress-management_20.html' title='Stress Management'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-116401195458699382</id><published>2006-11-20T00:37:00.000-08:00</published><updated>2006-11-20T00:39:14.596-08:00</updated><title type='text'>Semblance project</title><content type='html'>If you are a pro-Struts chap and interested in using Struts for your projects, then check the &lt;a href="https://semblance.dev.java.net/"&gt;Semblance project&lt;/a&gt; that has lot of goodies required to kick start a web based project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-116401195458699382?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/116401195458699382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=116401195458699382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116401195458699382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116401195458699382'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/11/semblance-project.html' title='Semblance project'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-116387545085960593</id><published>2006-11-18T10:21:00.000-08:00</published><updated>2006-11-20T05:31:19.169-08:00</updated><title type='text'>JSF - what are you made of?</title><content type='html'>If you have been using JSF for a while, you'd understand my feelings better. JSF has failed to keep it's promise of making developers' life easy. There are so many instances where JSF would not scale to the requirements and made the lives of developers miserable.&lt;br /&gt;&lt;br /&gt;So far in my current project, I focused more on the middleware and the infrastructural aspects and decided to stay away from the presentation layer for a while. My frustration levels have increased when I was asked to develop few components for the presentation layer using JSF. It simply did not scale. The same requirements could have been implemented very easily using Struts/Tiles.&lt;br /&gt;&lt;br /&gt;Thought of Struts makes me happy, I began my career in Software almost the same time when Struts was born. My career grew along with Struts. 5 good years of working with Struts. The combination of Struts, Tiles met most of the challenging requirements, oh yeah, even with AJAX. What was the need to create a bloated API like JSF that sucks when it comes to simple tasks, even like downloading a file. And coming to the different implementations of JSF - if you are using MyFaces, you are little lucky and if you decide to go with the JSF-RI, expect the frustation level of your development to be on the higher side. My experience with JSF hasn't been an happy one. Going forward, I'd be happy to use Struts for my projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-116387545085960593?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/116387545085960593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=116387545085960593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116387545085960593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116387545085960593'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/11/jsf-what-are-you-made-of.html' title='JSF - what are you made of?'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-116229638254636338</id><published>2006-10-31T04:05:00.000-08:00</published><updated>2006-10-31T04:06:22.583-08:00</updated><title type='text'>Technology compendium</title><content type='html'>Try this &lt;a href="http://www.adstag.com/"&gt;link&lt;/a&gt;. Closer to a technology compendium. Good work, though!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-116229638254636338?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/116229638254636338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=116229638254636338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116229638254636338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116229638254636338'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/10/technology-compendium.html' title='Technology compendium'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-116171336872694292</id><published>2006-10-24T11:08:00.000-07:00</published><updated>2006-10-24T11:09:28.756-07:00</updated><title type='text'>Synthesis - The little known and used tool</title><content type='html'>Today, I came home a little early after a very nice team outing, and was thrilled to see my engineering classmate. We have recollected our good old engineering days, whereabouts of our classmates etc etc. It was nice to know that most of the chaps are doing well and many have preferred Software industry or rather IT as it is called here. And we talked about how many are working as developers, business analysts, release engineers etc. [Btw, programmers, designers, architects all belong to the developer category, my way of grouping ;-)]. The next topic was how many turned out to be good developers (Salary wasn't considered as an yard stick)&lt;br /&gt;&lt;br /&gt;One of the things that spurred interest is a subjective equation, in the context of development or assessing a developer, which my friend read in some book; simple but elusive&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Good = Acumen * Dexterity&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Acumen is the gamut of technologies the person is aware of and dexterity is the extent of deftness exhibited in applying the known/learnt stuff. Acumen can be enhanced through trainings, reading books, learning from colleagues/peers, on the other hand dexterity is something that does not get enhanced through traditional learning approaches. Dexterity cannot be taught and has to be learnt by the individual. The next question would be how to gauge the dexterity. &lt;br /&gt;&lt;br /&gt;A simple analogy - any (genuine) mechanical engineer would have studied the subject "Design of Machine Elements". For designing a simple nut and bolt, the right metal has to be choosen, the thread length on the nut has to be calculated, the dimensions have to fixed and the list goes on. To arrive at an "optimal" design, one needs to consider the metallurgical aspects, the shear force and bending moment, production engineering aspects etc. This process of considering all the factors affecting a system is called Synthesis. Essentially, Synthesis is nothing more than looking at all possible angles of the problem and bringing in the knowledge from the related fields and making best use of it.&lt;br /&gt;&lt;br /&gt;When designing something, people do some Analysis. Analysis would help in breaking up the problem into small and manageable chunks. This is essential. At the same time, applying Synthesis would add more flexibility, extensibility, and maintainability to the piece being designed. While interviewing candidates, select a person with high synthesis quotient. &lt;br /&gt;&lt;br /&gt;Oh boy! I have jotted much stuff. If you feel that this entry is disorganized, put your comments, I'll correct it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-116171336872694292?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/116171336872694292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=116171336872694292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116171336872694292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/116171336872694292'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/10/synthesis-little-known-and-used-tool.html' title='Synthesis - The little known and used tool'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115805660502742390</id><published>2006-09-12T03:17:00.000-07:00</published><updated>2006-09-12T03:23:25.040-07:00</updated><title type='text'>Ultra-Scalability</title><content type='html'>Had been reading an interview with Werner Vogels, CTO of Amazon. It has been very informative. Follow the link &lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=388"&gt;Link&lt;/a&gt;. I particulary liked the phrase "to be ultra-scalable while maintaining availability and performance".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115805660502742390?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115805660502742390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115805660502742390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115805660502742390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115805660502742390'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/09/ultra-scalability.html' title='Ultra-Scalability'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115459794346099975</id><published>2006-08-03T01:43:00.000-07:00</published><updated>2006-08-03T02:39:03.503-07:00</updated><title type='text'>Aren't you using Jakarta JMeter</title><content type='html'>My previous blog entry on "Debugging Webservices" spurred lot of interest and I received mails from many people with lots of questions, pointers, asking help etc.&lt;br /&gt;Many seem to be happy using the SoapUI. Thanks guys!&lt;br /&gt;&lt;br /&gt;One of my friends asked me a straight question - aren't you using JMeter to do performance testing of the web services. This was very flat and I wasn't aware that JMeter can be used to load test the WS. There is some tweaking that needs to be done - place mail.jar and activation.jar files in the lib of the JMeter to get the menus and the options displayed correctly. The rest of the setup is similar to any other JMeter configuration. Setup the number of threads, ramp-up period and loop count and hit start. The results will be displayed in a crisp graph.&lt;br /&gt;&lt;br /&gt;If you haven't been using JMeter, it is high time you start using it. If you need any help in setting up JMeter WS, send me an email at ravisk@gmail.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115459794346099975?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115459794346099975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115459794346099975' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115459794346099975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115459794346099975'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/08/arent-you-using-jakarta-jmeter.html' title='Aren&apos;t you using Jakarta JMeter'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115312052269133501</id><published>2006-07-16T23:56:00.000-07:00</published><updated>2006-07-17T00:15:22.713-07:00</updated><title type='text'>Debugging Web Services</title><content type='html'>Ever wondered how to debug web services?&lt;br /&gt;Debugging web services has been misconstrued by the folks, atleast the people I have been talking to. It is a normal practice to just debug the back end of the WS, example the EJB or an helper class that makes a call to the DB, and claim that the WS is debugged. This, apparantly, doesnot debug the actual service. I decided to come up with a check list for debugging the WS and here it is:&lt;br /&gt;&lt;br /&gt;1. The primary stuff, the WSDL should be accessible from the browser&lt;br /&gt;2. Validate request and response bodies against their schema definitions&lt;br /&gt;3. Validate the definitions for WS-I (Web service interoperability) compliance.&lt;br /&gt;&lt;br /&gt;The second and third points are of concern. I had been using the TcpMon, that is shipped with Apache Axis so far to see the SOAP messages. This would require "tunneling". Hmmm.. something non-intrusive would be better. I had been looking for some nice tools that does the true debugging of WS. Here is a list of tools and their descriptions:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="https://wsunit.dev.java.net/"&gt;WSUnit&lt;/a&gt; - Unit Testing a WS&lt;br /&gt;2. &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65a1d4ea-0f7a-41bd-8494-e916ebc4159c"&gt;WebService Studio&lt;/a&gt; - Invoking the WS, it a .NET program. Given the endpoint, generates the proxies and invokes the methods&lt;br /&gt;3. &lt;a href="http://www.soapui.org/"&gt;SOAPUI&lt;/a&gt; - A very nice tool with all the required features. It doesn;t limit to just debugging, but provides features to load test and functional test the WS. Really cool!&lt;br /&gt;&lt;br /&gt;I installed the SOAPUI and the experience is very good. I strongly recommend it to all folks using WS and wondering how to debug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115312052269133501?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115312052269133501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115312052269133501' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115312052269133501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115312052269133501'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/07/debugging-web-services.html' title='Debugging Web Services'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115259390058806956</id><published>2006-07-10T20:26:00.000-07:00</published><updated>2006-07-16T23:56:43.436-07:00</updated><title type='text'>CLOB issues in weblogic</title><content type='html'>I noticed a strange behavior with CLOB in weblogic. The CLOBs would work fine with the main method, but when the same code is run on Weblogic, it throws an "No more data to read from socket" exception. The interesting aspect is, the row in the table gets inserted perfectly including the CLOB column. &lt;br /&gt;&lt;br /&gt;The first thing I suspected is with the driver version of the ojdbc.jar shipped with WLS, but that wasn't the problem as the driver I used in the application is same as the one shipped with WLS.&lt;br /&gt;&lt;br /&gt;Since, the infrastructure appeared fine, I decided to debug and track the root cause. Debugging the problem brought out some intriguing points. The hack is to create the CLOB column with the default as EMPTY_CLOB() and do a post process after the insertion. The sequence would be:&lt;br /&gt;&lt;br /&gt;1. insert some dummy string first cs.setString(4,"  ");&lt;br /&gt;2. Excecute the proc&lt;br /&gt;3. post process the clob&lt;br /&gt;&lt;i&gt;&lt;br /&gt;Clob clob = null;&lt;br /&gt;pstmt = conn.prepareStatement("SELECT clob_col from clob_tbl where id=? FOR UPDATE");&lt;br /&gt;pstmt.setString(1,id);&lt;br /&gt;rs = pstmt.executeQuery();&lt;br /&gt;if(rs.next()) {&lt;br /&gt;clob = rs.getClob(1);&lt;br /&gt;Writer writer = ((OracleThinClob)clob).getCharacterOutputStream();&lt;br /&gt;writer.write(msg);&lt;br /&gt;writer.close();&lt;br /&gt;}&lt;br /&gt;st = conn.prepareStatement("UPDATE clob_tbl set clob_col=? where id=?");&lt;br /&gt;st.setClob(1,clob);&lt;br /&gt;st.setString(2,msgId);&lt;br /&gt;st.executeUpdate();&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;That is all to be done. Though, there is an additional step in the flow of control, this solution is clean. Whew! some solace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115259390058806956?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115259390058806956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115259390058806956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115259390058806956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115259390058806956'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/07/clob-issues-in-weblogic.html' title='CLOB issues in weblogic'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115207232959385644</id><published>2006-07-04T20:59:00.000-07:00</published><updated>2006-07-04T21:05:29.603-07:00</updated><title type='text'>Script Debugger</title><content type='html'>Well, it has been a while since I coded something on the presentation layer. Infact, I had a very long term association with the Servlets, JSPs, and Struts and sort of bored with the web-db-web routines. The middleware is bit challenging and adventurous. Got some time yesterday, so explored the updates on the presentation layer including JSF. A friend pointed to a script debugger. This was really a cool tool that would literally eliminate the alert() in the javascript code. Progress!&lt;br /&gt;If you'd like to try it out, the link to the tool is&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2F465BE0-94FD-4569-B3C4-DFFDF19CCD99&amp;displaylang=en"&gt;Script Debugger&lt;/a&gt;. What more, it is from the Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115207232959385644?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115207232959385644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115207232959385644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115207232959385644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115207232959385644'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/07/script-debugger.html' title='Script Debugger'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115131900069747178</id><published>2006-06-26T03:39:00.000-07:00</published><updated>2006-06-26T03:50:00.720-07:00</updated><title type='text'>Listening to the PDF</title><content type='html'>This is nice and cool info from one of my colleagues. If you use Acrobat Reader 7.0, you can listen to the PDF. The following are the shortcuts:&lt;br /&gt; ctrl + shift + b - To listen to the entire document&lt;br /&gt; ctrl + shift + v - To listen to the current page&lt;br /&gt; ctrl + shift + e - To Stop&lt;br /&gt; ctrl + shift + c - To Resume&lt;br /&gt;&lt;br /&gt;Very cool, isn't it. Try it out!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115131900069747178?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115131900069747178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115131900069747178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115131900069747178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115131900069747178'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/06/listening-to-pdf.html' title='Listening to the PDF'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-115072619028774966</id><published>2006-06-19T06:50:00.000-07:00</published><updated>2006-06-19T07:09:53.563-07:00</updated><title type='text'>Java Object to Oracle Object mapping</title><content type='html'>I had a requirement of passing large data to Oracle db and the various options I evaluated are:&lt;br /&gt;&lt;br /&gt;1. Using PreparedStatements and batching the updates/inserts: Though this option seems apparent, I didn't consider it as a candidate for the reason that we need to use raw SQL statements and this violates our DB convention to use stored procs and functions. I'm not very sure if this would be fast either. So, dropped this option.&lt;br /&gt;&lt;br /&gt;2. Using CLOBs: This would require a lot of change in the existing procs, so dropped it for the sake of reusing the existing procs. Someone, told me that CLOBs do not scale well.&lt;br /&gt;&lt;br /&gt;3. Using Arrays: This is an elegant option. Most of the time, the data sent in bulk to DBs is primitive, ie, some numbers or strings or atmost encoded strings (NVARCHAR2). To evaluate sending info using array, I did the following:&lt;br /&gt;a) created a table with just two columns first_name and last_name&lt;br /&gt;b) created a oracle type to be a table of varchar2&lt;br /&gt;&lt;i&gt;create or replace type str_typ_t as table of varchar2(50);&lt;/i&gt;&lt;br /&gt;c) created a stored proc to accept the string array as input and insert into the table.&lt;br /&gt;d) The java class required some googling and experimentation, here is the code snippet:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("STR_TYP_T",conn);&lt;br /&gt;ARRAY fnArray = new ARRAY(descriptor,conn,fnames);&lt;/i&gt;&lt;br /&gt;That is all to be done. And I'm very happy to note the results. 300 inserts took just over a second!!!. This is Tres cool.&lt;br /&gt;&lt;br /&gt;And if you would like to pass a java object to the stored proc and leave the mapping to the driver, the following lines would do the work:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;StructDescriptor descriptor = StructDescriptor.createDescriptor("TEST_OBJ_T",conn);&lt;br /&gt;Object[] attributes = {"ABCD","XYZ"};&lt;br /&gt;STRUCT to = new STRUCT(descriptor,conn,attributes); &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Some progress today. My PL/SQL skills have been really rusty, need more practice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-115072619028774966?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/115072619028774966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=115072619028774966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115072619028774966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/115072619028774966'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/06/java-object-to-oracle-object-mapping.html' title='Java Object to Oracle Object mapping'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-114951666690176871</id><published>2006-06-05T06:44:00.000-07:00</published><updated>2006-07-23T10:54:26.803-07:00</updated><title type='text'>Some useful hacks</title><content type='html'>Well.. it has been a while since I blogged. The primary reason being, I'm very busy with the work and trying to get adjusted to the new project env. The project uses lot of latest technologies, Oracle AQ/Streams, Web Services etc. Some useful hacks I have found last month - &lt;br /&gt;&lt;br /&gt;Web Services - This is applicable only for the Axis platform. Axis persists the info of deployed web services to a file by name server-config.wsdd that is created under the WEB-INF. This file, incidentally, has a structure similar to that of the deploy.wsdd file. Instead of creating a deploy file and calling AdminClient from the command prompt, the same entries can be given in the server-config.wsdd and bouncing the server. When the server is started the web services get deployed. This is useful if the deployer of the project is not much aware of the Web services and their deployment processes.&lt;br /&gt;*** Update ***&lt;br /&gt;This is an info I often forget,well, in rush to publish the WS and consume it ;-). If proper description is not given about the methods exposed by the WS, the input arguments are exposed as in0, in1, in2, etc. A few additional lines in the WSDD expose the appropriate and intuitive info about the input parameters:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&amp;lt;operation name="theMethodName" qname="ns:qnameFortheMethod" returnQName="ns:theReturnTypeQNameofTheMethod" returnType="ns:theReturnType"&amp;gt;&lt;br /&gt;   &amp;lt;parameter name="nameOfTheParameter" type="example-xsd:string"/&amp;gt;            &lt;br /&gt;&amp;lt;/operation&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I had to recollect this when one of our testing team members said that the WSDL aren't descriptive about the input parameters.&lt;br /&gt;&lt;br /&gt;NVarchar2 issue - I observed a strange "No more data to read from socket error" if the return type of the strings is NVarchar2. This was noticed with the Oracle 10g and the latest jdbc driver. Two hacks to overcome this are: a) Change the data type to Varchar2, if you have DB control b) add a java VM argument "-Doracle.jdbc.defaultNChar=true".&lt;br /&gt;&lt;br /&gt;Other than work, there seems to be little time for life. Trying best to establish the work-life balance, ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-114951666690176871?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/114951666690176871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=114951666690176871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114951666690176871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114951666690176871'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/06/some-useful-hacks.html' title='Some useful hacks'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-114293817671503241</id><published>2006-03-21T02:43:00.000-08:00</published><updated>2006-03-21T03:04:57.670-08:00</updated><title type='text'>Javascript trivia</title><content type='html'>One of my ex-colleagues was very passionate about Javascript and used to say that Javascript is one of the most misinterpreted and misused language by the developers. I had to recollect this while developing a trivial trim() function. Though there are many ways to implement the trim() functionality, I wanted to do it in a different (um, adventurous way). I explored a bit and found that there is something called "Prototype" for each of the data types used and new functions can be added dynamically. In this case, I wanted to add a trim function, so the following code would add a function called trim to the String data type&lt;br /&gt;&lt;i&gt;&lt;br /&gt;String.prototype.trim = function() { }&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;And now, filling up the function, I used Regular expressions, the leading spaces can be removed by&lt;br /&gt;&lt;i&gt;&lt;br /&gt;str=str.replace(/^\s*(.*)/, "$1");&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;and the trailing spaces by &lt;br /&gt;&lt;i&gt;&lt;br /&gt;str=str.replace(/(.*?)\s*$/, "$1");&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The whole code would look like&lt;br /&gt;&lt;i&gt;&lt;br /&gt;String.prototype.trim = function() {&lt;br /&gt;  var str=this;&lt;br /&gt;  str=str.replace(/^\s*(.*)/, "$1");&lt;br /&gt;  str=str.replace(/(.*?)\s*$/, "$1");&lt;br /&gt;  return str;&lt;br /&gt;}&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;This is may be a trivial discovery but now it has helped us a lot in the Javascipt code, instead of calling trim(str), we can just say str.trim().&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-114293817671503241?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/114293817671503241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=114293817671503241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114293817671503241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114293817671503241'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/03/javascript-trivia.html' title='Javascript trivia'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-114049682661745564</id><published>2006-02-20T19:51:00.000-08:00</published><updated>2008-01-14T01:31:22.910-08:00</updated><title type='text'>JMS backed by Websphere MQ</title><content type='html'>This is a learning experience about a JMS queue backed by Websphere MQ. My initial understanding was that a message published on the MQ queue wouldn't invoke the onMessage method of a listener/MDB. The notion sounded logical as the Java/JMS equivalent of the message exposed by the MQ JMS is of type com.ibm.mq.JMSBytesMessage and the onMessage expects the argument to be of type javax.jms.Message. Yesterday, we were able to publish a message on MQ and get an MDB listen to the messages. The details follow...&lt;br /&gt;&lt;br /&gt;Before getting into the nitty-gritty, some backdrop on the context - our requirement was to process messages put on the MQ "asynchronously". Our knowledge of MQ being naive, the task motivated us and we explored the MQI(java interface for MQ) and played with it by developing some sample code. This led to the roll out of a design using the MQI and the quartz scheduler. I named it the "Pull Approach". A quartz job would poll the MQ at a defined time intervals and retrieve any messages in the MQ queue. Developed the code for the Pull approach and gave a demo of it.&lt;br /&gt;&lt;br /&gt;Intrigued by the challenge and exploring more, came up with a second design that would use the inbuilt features of the MQ. A trigger is invoked on publishing a message. The trigger "translates" the message to JMS compatible message and publishes the message on a Topic. This design was baptized as "Push Approach" as the MQ server was pushing the messages. A document has been prepared with both the approaches and with crisp state diagrams made using Rational Rose and circulated it across. There was an inherent flaw in the Push approach, it didn't give implicit support for transactions. There were mixed opinions amongst the folklore about the the approaches with offhsore favoring Pull and onsite for Push.&lt;br /&gt;&lt;br /&gt;With adrenalin still gushing, we got more adventurous and explored the JMSAdmin of the MQ. We have been playing around with that for a while but couldnot hit the bush.We decided to give try it afresh from scratch. So, created a context in the JMSAdmin, bound the connection factory and queue to the JNDI, used the same bindings in the JMS configuration on Websphere App server. The prototype was ready for testing. And to our surprise, when we pubslished a message on the MQ, it did invoke the MDB, though there was a ClassCastException for com.ibm.jms.JMSBytesMEssage. The cast exception could be resolved by reading out the bytes out of the JMSBytesMessage and copying them onto the JMS TextMessage.&lt;br /&gt;&lt;br /&gt;This was an interesting development, indeed. Although, the earlier two approaches would be promptly decommissioned in favor of the third approach, we are happy that we were able to suggest a robust design that leverages the inbuilt features of the product. The learning curve has taken off. The documentation and the articles found on the IBM developer works site didn't help us much and most of the examples appeared to ratify our initial understanding. Well, being li'l adventurous and thinking outta box does help sometimes. There will a sequel to this blog entry soon with gory technical details.&lt;br /&gt;&lt;br /&gt;*** UPDATE ***&lt;br /&gt;There is an article on IBM site that explains in detail about configuring Weblogic JMS for Websphere MQ. Read the article &lt;a href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0604_kesavan/0604_kesavan.html"&gt;here&lt;/a&gt;. I wish the article would have been published earlier that would have saved a few days of my tussle .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-114049682661745564?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/114049682661745564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=114049682661745564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114049682661745564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/114049682661745564'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/02/jms-backed-by-websphere-mq.html' title='JMS backed by Websphere MQ'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113954372607881003</id><published>2006-02-09T19:55:00.000-08:00</published><updated>2006-02-20T19:51:08.563-08:00</updated><title type='text'>Tussle with Websphere</title><content type='html'>Has been working with a variety of App. servers like Weblogic, JBoss, and JRun, but never got a chance to work with Websphere. Recently, got a chance to work with Websphere suit of products. First the websphere MQ and then the websphere server itself. The experience with MQ was bit adventurous, as the technology predates JMS. With some trial and error, intuition, googling, got the things up and running. Reb books helped a lot in understanding the internals for MQ.&lt;br /&gt;&lt;br /&gt;To test the use cases against our design, we decided to develop a vertical slice of the application. One part of the slice was an MDB that listens to a JMS Queue on the websphere, backed by the MQ. The task is broken to two parts - have an MDB listening to the JMS queue on webspshere and once part 1 is in place, configure a MQ as a backend for the JMS queue. Developing an MDB was no much hassle and it got deployed on the websphere(The server had to be bounced everytime after configuring the Listener Ports and registering the Queue with the JMS server, and after deploying the jar file with MDB, duh, it sucks!). The next step was to publish some messages on the queue and see if the onMessage of the MDB is getting called.&lt;br /&gt;&lt;br /&gt;I developed a suit of small utilities to help me in server-side testing, which I call as the fixture. The configuration of the fixture is externalized to facilitate portability. The messaging fixture worked without any errors when it was pointing to Weblogic, JBoss, JRun. But with Websphere, a lot of tweaking of the classpath is required. The following is the summary of the tweaking:&lt;br /&gt;&lt;br /&gt;1. First of all, use the JDK that comes with the server, located at ${was_home}/java. If you don't, you'll waste a couple of hours like me.&lt;br /&gt;&lt;br /&gt;2. Place these jars in the classpath:&lt;br /&gt;com.ibm.mq.jar&lt;br /&gt;com.ibm.mqjms.jar&lt;br /&gt;dhbcore.jar&lt;br /&gt;ecutils.jar&lt;br /&gt;j2cImpl.jar&lt;br /&gt;j2ee.jar&lt;br /&gt;messagingClient.jar&lt;br /&gt;naming.jar&lt;br /&gt;namingClient.jar&lt;br /&gt;namingserver.jar&lt;br /&gt;webcontainer.jar&lt;br /&gt;Properties folder. Place all or you'll repent.&lt;br /&gt;&lt;br /&gt;3. Websphere works on iiop. So the JNDI props will be com.ibm.websphere.naming.WsnInitialContextFactory and iiop://localhost:2809.&lt;br /&gt;&lt;br /&gt;To figure out what jars go in the classpath, it took me almost 6 hours. Extensive googling and some experimentation made the things work. It seems most of the people had a similar experience. Looks like I'm going to have some more tussles with websphere in the near future. Why can't the Websphere be as developer friendly as Weblogic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113954372607881003?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113954372607881003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113954372607881003' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113954372607881003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113954372607881003'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/02/tussle-with-websphere_113954372607881003.html' title='Tussle with Websphere'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113876705287710509</id><published>2006-01-31T19:35:00.000-08:00</published><updated>2006-01-31T20:14:34.600-08:00</updated><title type='text'>Year.introspect(2005)</title><content type='html'>Yesterday,I  was arranging my book-shelf to accomodate new books and a paper fell-out. It was a receipt of a book purchased from Gangarams book store, Bangalore, dated Jan 31, 2005. The book, Head First Design Patterns, is still my favorite book. After reading the book, there is a conspicuous change in the way I write code. I have undergone a transformation, hehehe. A &lt;a href="http://clusterone.blogspot.com"&gt;friend&lt;/a&gt; calls it metamorphosis. I have recommended the book to all my colleagues and the next day there were 5 more purchases of the book.&lt;br /&gt;&lt;br /&gt;Incidentally, on the same day Jan 31, 2005, I've put my papers at HP. The co-incidence of the events developed a retrospective urge and made me look back and introspect the last year. I had more &gt;5 offers on hand from good companies at that moment. I've truned down all the offers from companies in Bangalore as the real estate prices skyrocketed and the traffic is horrendous. Subsequently, I decided to relocate to Hyderabad, my native place and narrowed down on a medium sized company doing product development for wealth management segment of the financial industry.&lt;br /&gt;&lt;br /&gt;The year was of mixed results, sometimes working more than 14 hours a day and sometimes with absolutely no work for weeks together! oh yeah! there was an onsite trip for 3 months to San Francisco. Oflate, I have become a passionate reader[almost a bookworm ;-)] and mostly I'm reading tech books (currently reading Introduction to Algorithms by Thomas Cormen, Geeeee).Things worked out ,more or less,as expected and the year was a break-even, if not lucrative. Wondering what 2006 has in store for me, wink!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113876705287710509?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113876705287710509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113876705287710509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113876705287710509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113876705287710509'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/01/yearintrospect2005.html' title='Year.introspect(2005)'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113859803877579217</id><published>2006-01-29T20:42:00.000-08:00</published><updated>2006-01-29T21:13:58.820-08:00</updated><title type='text'>The Jaipur trip</title><content type='html'>A week long trip to Jaipur had been full of joy and happiness. I was wondering if I could make it to Vivek's wedding amidst so much work. My manager finally relented and approved a leave for 3 days. Weekend + republic day added 3 more days. 6 days of total fun and joy.&lt;br /&gt;&lt;br /&gt;I have known Vivek since my engineering days. He is a Telugu speaking Marwadi :-).&lt;br /&gt;The train journey to Jaipur and back was really entertaining. I travelled along with 40 other friends and relatives of Vivek. There was no need to turn on the mp3 player as the kids were playing anthakhasari non-stop. Though, the particpation from elders (including me) was meagre, it was nice to listen to the Hindi songs.&lt;br /&gt;&lt;br /&gt;The marriage and the reception were very elegant and full of activity. I never got a chance to see a traditional north Indian marriage, except in the movies. The baraath was the ultimate. We danced and enjoyed the music played by the band. It was all fun and an unforgettable experience. Look at Vivek on the horse..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/8080/1016/1600/DSCN0819.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/8080/1016/320/DSCN0819.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113859803877579217?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113859803877579217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113859803877579217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113859803877579217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113859803877579217'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2006/01/jaipur-trip.html' title='The Jaipur trip'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113462929268168243</id><published>2005-12-14T22:20:00.000-08:00</published><updated>2005-12-14T22:48:12.690-08:00</updated><title type='text'>Capital Markets - a Fascinating Journey</title><content type='html'>I'm very fascinated by the Capital Markets and their workings. Incidentally, my current work is developing a wealth management solution product that shall be implemented for major banks in US. The current task is to develop the Portfolio Performance pages. Business knowledge and understanding of the performance measurement techniques were impediments to roll out the task on time. A business analyst from the client was sent to provide inputs on the domain&lt;br /&gt;&lt;br /&gt;With client's presence in the office and questions getting answered instantaniously, we are in a pretty good shape now. This was more of a learning exercise than just coding. Reading the book "Pratical Portfolio Performance Measurement &amp; Attribution" helped a lot in getting upto speed. More specifically, it helped me to get a clear understanding of the Dietz's formula.&lt;br /&gt;&lt;br /&gt;I'm delighted on hearing that I was nominated for a week long training on Financial Concepts and Capital Markets, starting next week. More inputs on the Finance Domain. But, I'm still not an investor ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113462929268168243?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113462929268168243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113462929268168243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113462929268168243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113462929268168243'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/12/capital-markets-fascinating-journey.html' title='Capital Markets - a Fascinating Journey'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113375450135915395</id><published>2005-12-04T19:38:00.000-08:00</published><updated>2005-12-04T19:48:21.433-08:00</updated><title type='text'>My New Laptop</title><content type='html'>I bought a new laptop on the weekend. It is Compaq Presario V4000/4103AP make with ubiquitous disk space and RAM. The most impressive features are the wide screen and the TFT display, playing Age of Empires/Kings on the laptop is a delight. Now, I can do some serious programming on the weekend and play my favorite games - The Commandos and Age of Empires. Has been trying from a long time to learn Ruby, but  that remained elusive due to the tight work schedules, client visits. I hope with the laptop, I'll be an Rubyist soon. :-D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113375450135915395?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113375450135915395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113375450135915395' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113375450135915395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113375450135915395'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/12/my-new-laptop.html' title='My New Laptop'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113333095966955953</id><published>2005-11-29T21:53:00.000-08:00</published><updated>2005-11-29T22:09:43.113-08:00</updated><title type='text'>Humor: Knowledge Theorem</title><content type='html'>This blog entry is for those cribbing about their low salaries and comparing their salaries with their friends in other companies. Not intended to hurt anyone's feelings and opinions.To be taken in a lighter spirit.&lt;br /&gt;&lt;br /&gt;I received a mail today about something called as the Knowledge Theorem, that states "An Engineer cannot make as much money as the Politicians, artists". The author used the following "inductive procedure" to substantiate the theorem.&lt;br /&gt;&lt;br /&gt;Two adages everyone is aware of - "Knowledge is Power" and "Time is Money". If represented mathematically, these two adages would be&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Knowledge = Power&lt;br&gt; - eqn. 1&lt;br /&gt;Time = Money - eqn. 2&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;High school physics has taught us that&lt;br /&gt;&lt;br /&gt;Power = Work/Time.&lt;br /&gt;&lt;br /&gt;From eqn. 2, Time = Money, so&lt;br /&gt;&lt;br /&gt;Power = Work/Money&lt;br /&gt;&lt;br /&gt;From eqn. 1, Knowledge = Power, so&lt;br /&gt;&lt;br /&gt;Knowledge = Work/Money&lt;br /&gt;&lt;br /&gt;Rearranging the quotient and the divisor would result in&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Money = Work/Knowledge&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The lesser the denominator, the more is the fraction. Hence proved!&lt;br /&gt;If a person is earning less, that means he is more knowledgable. The converse of the statement is, however, not true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113333095966955953?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113333095966955953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113333095966955953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113333095966955953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113333095966955953'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/11/humor-knowledge-theorem.html' title='Humor: Knowledge Theorem'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113220420804588459</id><published>2005-11-16T20:56:00.000-08:00</published><updated>2005-11-16T21:10:08.056-08:00</updated><title type='text'>The best description of OO</title><content type='html'>Had been reading an article titled "OO in One Sentence: Keep It DRY, Shy, and Tell The Other Guy" from &lt;a href="http://www.pragmaticprogrammer.com"&gt;pragmaticprogrammer&lt;/a&gt;. A funny sounding title, but the content explains the essence of OO in a more interesting way. I liked a particular paragraph so much that I'll quote it all in verbatim:&lt;br /&gt;"The best code is very shy. Like a four-year old hiding behind a mother’s skirt, code shouldn’t reveal too much of itself and shouldn’t be too nosy into others affairs. But you might find that your shy code grows up too fast, shedding its demure shyness in favor of wild promiscuity. When code isn’t shy, you’ll get unwanted coupling."&lt;br /&gt;&lt;br /&gt;This is the best description of OO I've heard of so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113220420804588459?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113220420804588459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113220420804588459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113220420804588459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113220420804588459'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/11/best-description-of-oo.html' title='The best description of OO'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-113099255454102496</id><published>2005-11-02T19:21:00.000-08:00</published><updated>2005-11-02T20:40:03.266-08:00</updated><title type='text'>AJAX Mania</title><content type='html'>Oflate, the "ajax" is in the limelight. The technology has created so much excitement among the web developer community and eventually is conferred with laurels. Some of the accolades received are "The next big thing", "revolutionary web technology", "web2.0", etc. The technology indeed has a potential and some applications have leveraged and demonstrated it. The most famous and often cited are the google maps, gmail, flickr.&lt;br /&gt;&lt;br /&gt;Recently, rediffmail rolled out a new version of their web mail that offers some goodies implemented using ajax - mail preview, instant download of attachments, drag drop unwanted mails to trash, auto suggest of email ids while composing a mail, etc. It is now pleasure to use rediffmail with all the ajax goodies.&lt;br /&gt;&lt;br /&gt;We have an ajax implementation in our product to retrieve information at lower levels from a hierarchically organized data, on click of expand/collapse (+/-). The existing functionality retrieved all the data at once, dumped the data behind the div tags and the selected div would be made visible using javascript. This worked fine for smaller amounts of data and for large data, apparently, became a bottleneck in terms of retrieval and rendering times. Subsequently, the issue has been resolved by implementing ajax. When someone suggested the ajax solution to our chief architect, he suggested some concerns and asked us to explore more for an optimal solution:&lt;br /&gt;&lt;br /&gt;1. Browser compatibility - there should be a utility to check for the compatibility of the browser for ajax to serve the ajaxified and no-ajaxified versions accordingly.&lt;br /&gt;&lt;br /&gt;2. Increase in the server hits for every ajax call&lt;br /&gt;&lt;br /&gt;3. Feedback mechanisms during ajax calls and appropriate messages on the screen&lt;br /&gt;&lt;br /&gt;4. Processing order of the ajax calls&lt;br /&gt;&lt;br /&gt;5. The change should have a least impact on the existing functionality/code and should be maintenable.&lt;br /&gt;&lt;br /&gt;These concerns were very realistic and very soon we realized that ajax is not a panacea. The final solution used ajax at only certain points where it added value. My request to fellow developers and friends is not to get carried away by the excitement, understand the true potential of the technology and implement it at a place where it makes sense.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-113099255454102496?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/113099255454102496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=113099255454102496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113099255454102496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/113099255454102496'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/11/ajax-mania.html' title='AJAX Mania'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112989537452341927</id><published>2005-10-21T04:04:00.000-07:00</published><updated>2005-11-09T18:37:28.156-08:00</updated><title type='text'>Updations on XML</title><content type='html'>I didn't have much work for today except for attending a series of (boring) meetings and churning out word docs and spreadsheets, the weekly status reports and the rest of the junk, tch!. A friend of mine mailed a problem that triggered a deluge of mails with interesting and impressive ways to solve the problem. The hinge point of the problem relied on a XPath expression that should perform a "reverse search" - retrieve all nodes with any attribute having value "abc". Here is my approach:&lt;br /&gt;&lt;br /&gt;1. The attribute can be nested anywhere in the document, so my expression starts with &lt;b&gt;//&lt;/b&gt;&lt;br /&gt;2. Should return all matching nodes, &lt;b&gt;//*&lt;/b&gt;&lt;br /&gt;3. Th test condition is a predicate, &lt;b&gt;//*[]&lt;/b&gt;&lt;br /&gt;4. The tricky one, each is a attribute node and can be any attribute, &lt;br /&gt;&lt;b&gt;//*[@*='abc']&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;That completed the XPath expression.&lt;br /&gt;&lt;br /&gt;The complete solution for the problem was decided to be implemented using XQuery. Awesome! Sometime back, I implemented a basic screen scraper (HTML parsing) using XQuery, but that was stop-gap solution and didnot scale well. I'm still a novice to XQuery and wanted to learn the nitty-grrity of the FLWOR expression. As XQuery relies on XPath, I chose to update on the XPath2.0 first. The new version has added functions to make lives easy. Some of such functions are collection,current-date,current-time,implicit-timezone etc. Ofthese, the collection function, apparantly, was found very useful. It can be used to overcome the memory issues with the doc/document() function. This would not only eliminate a round of looping but also offers a clean solution in terms of performance.&lt;br /&gt;&lt;br /&gt;Thanks to my friend, my XML arsenal got enriched with new info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112989537452341927?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112989537452341927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112989537452341927' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112989537452341927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112989537452341927'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/10/updations-on-xml.html' title='Updations on XML'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112900449217358845</id><published>2005-10-10T20:58:00.000-07:00</published><updated>2005-10-10T21:21:32.180-07:00</updated><title type='text'>Program to an Interface or Design Pattern</title><content type='html'>Nowadays, I often hear people saying I used the X design pattern, Y design pattern giving a lengthy list of all the patterns. But when asked what is the motivation behind using a particluar pattern, there is always a stunning silence. Most of the developers these days want to make their resume impressive, so they use every available api and design patterns. The outcome is code that is not readable, bloated and not maintenable.&lt;br /&gt;&lt;br /&gt;This reminds me an incident in a well known Telugu movie - the hero wants to learn the fine points of a martial art and want to avenge the death of his brother. The master asks him to realize that the true meaning of the martial arts is Non Violence. The analogy many not be apt, but sensible developers should realize that the design patterns help in producing code that is adhering to the OO principles and code that is maintenable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112900449217358845?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112900449217358845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112900449217358845' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112900449217358845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112900449217358845'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/10/program-to-interface-or-design-pattern.html' title='Program to an Interface or Design Pattern'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112893899788576735</id><published>2005-10-10T02:50:00.000-07:00</published><updated>2005-10-10T20:21:57.533-07:00</updated><title type='text'>Power of XML Entities</title><content type='html'>I have been using XML for quite sometime in my projects and was quite comfortable with the semantics and syntax. Today, I added a new tool to my XML arsenal - realized the true power of "entities". So far, my understanding of entities is that &lt;b&gt;Entities are variables used to define shortcuts to common text&lt;/b&gt; viz. "&amp; copy ;" for &amp;copy; etc. Now, I would like to paraphrase the statement to &lt;b&gt;Entity references are references to entities&lt;/b&gt;. The reason for this ...&lt;br /&gt;&lt;br /&gt;My requirement was to copy the contents of two config (XML) files into one single config file. The two files are in different directories. I was evaluating the possible solutions to pick an optimal option. A few lines of code did the work, in a elegant way:&lt;br&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!ENTITY file1 PUBLIC "path1/file1.xml" "path1/file1.xml"&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY file2 PUBLIC "path2/file2.xml" "path2/file2.xml"&amp;gt;&lt;br /&gt;&amp;lt;root&amp;gt;&lt;br /&gt;&amp;file1;&lt;br /&gt;&amp;file2;&lt;br /&gt;&amp;lt;/root&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The entities would get resolved while parsing the file and the contents get copied dynamically. This is such a useful feature, saved lot of LOC and moreover the bottleneck of "transformation" has been avoided. And to display the code fragment correctly on this page, I had to use "&amp; lt ;" and "&amp; gt ;" :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112893899788576735?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112893899788576735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112893899788576735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112893899788576735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112893899788576735'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/10/power-of-xml-entities.html' title='Power of XML Entities'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112839886803713863</id><published>2005-10-03T20:17:00.000-07:00</published><updated>2005-10-03T21:10:30.840-07:00</updated><title type='text'>A week full of activity</title><content type='html'>Last week was full of Activity. on Monday and Tuesday, I worked for 14 hours a day under a "unrealistic" target. Whew! Wednesday and Thursday were bit eased up with 10 hours of work. I had to accede to such unplanned and a work without a process as it was a request from the client. Friday was a day of relaxation with absolutely nothing to work on except going thru the BRD of the work for the subsequent week.&lt;br /&gt; &lt;br /&gt;On the weekend, I met some of my colleagues from previous companies and the topic immediately was the burgeoning job market in Bangalore and Hyderabad, and interview (er)s. It seems one of them has attended an interview with a major telecom company in Hyderabad. The first round went off well, both the interviewer and interviewee enjoyed the discussion talking many things about technology, issues faced in the project and how they have been resolved. The next round, it seems, was pathetic.&lt;br /&gt;&lt;br /&gt;An (incompetent) interviewer with more than 8 years of experience and miserable communication took the second round. I couldnot help laughing when my friend told that the person literally barged into the room, shook hands and immediately asked about JVM architecture and the difference between "==" and ".equals()". My friend got a shock of his life at the crude behavior and started answering with patience. Soon, he realized that the interviewer is expecting bookish answers and is reluctant to accept any answers other than what he had in the mind. My friend should have known "Telepathy". A couple of funny questions and answers from the interview:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Interviewer: "Which method will you use for file upload, doGet() or doPost() "&lt;br /&gt;My Friend:"doPost(), as multipart requests are supported, explained about multipart requests, form processing of the fileupload, limitations with doGet()"&lt;br /&gt;Interviewer:"Fine, but you didn't tell that doGet() doesn't support transfer of binary content."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;A more funny interaction occured at a later stage..&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Interviewer:"Do you know design patterns? How did you use them in your projects?"&lt;br /&gt;My Friend;"I know core java patterns and J2EE patterns, but  don't use them because they are there. If there is a compelling reason, I use a design pattern. In my projects I used Factory, Visitor, Singleton.. the list went on"&lt;br /&gt;Interviewer:"Hold on.. You said Singleton.. How did you use Singleton, How did you implement a Perfect Singleton?"&lt;br /&gt;My Friend: (Routine Question)..gave the bookish answer the interviewer was expecting and the end added "I prefer using registries instead of singletons as singletons are not interface friendly and pose problem in a clustered application"&lt;/i&gt;&lt;br /&gt;Now it was the turn of the interviewer to get shocked and it seems he was reluctant to take the answer and started arguing insensibly. My friend remained silent, nodded his head in agreement to whatever the other person said and finally got an offer from the company and now the interviewer is his project lead..hehehe!&lt;br /&gt;These days it is not uncommon to hear about such incidents.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112839886803713863?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112839886803713863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112839886803713863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112839886803713863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112839886803713863'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/10/week-full-of-activity.html' title='A week full of activity'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112729295410898144</id><published>2005-09-21T01:43:00.000-07:00</published><updated>2005-09-21T01:58:56.190-07:00</updated><title type='text'>A day with Hibernate</title><content type='html'>I always felt I had a sound understanding of hibernate and offered "expert" advise to my friends over chat/phone. I chanced to get Hibernate in Action and wanted to try out the traditional "Hello World!" example. Immediately fired up Eclipse and started coding, what a pleasure it is to code! I soon realized that my belief is a fallacy as there were exceptions on the console. The exception was &lt;b&gt;org.hibernate.HibernateException: database product name cannot be null&lt;/b&gt;. Wrestled with the exception for a couple of hours but in vain. Upon retrospection, I noticed that there was an unwanted line of code&lt;br&gt;&lt;br /&gt;configure.setProperties(System.getProperties());&lt;br&gt;&lt;br /&gt;This line was overriding the properties already loaded by configure() method. If hibernate.cfg.xml is used to configure hibernate, c3p0 pool then the following lines of code would suffice:&lt;br&gt;&lt;br /&gt;Configuration cfg = new Configuration().configure();&lt;br /&gt;SessionFactory factory = cfg.buildSessionFactory();&lt;br&gt;&lt;br /&gt;&lt;br /&gt;My hibernate skills are withering and need updation, more pratice is required to keep up the pace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112729295410898144?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112729295410898144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112729295410898144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112729295410898144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112729295410898144'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/09/day-with-hibernate.html' title='A day with Hibernate'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112686793637843342</id><published>2005-09-16T03:26:00.000-07:00</published><updated>2005-09-16T04:03:25.053-07:00</updated><title type='text'>Code as Design or ????</title><content type='html'>An interesting conversation with my friend brought out a point of concern - what exactly is software design? I always advocated that programming is essentially designing software, but most of my colleagues differ. I feel that programming is not just building the software but a more *disciplined* process of writing "meaningful" code. There are (increasing)instances of people trying to keep away from coding after they have been conferred august sounding designations by their employers. Unfortunately, some of friends whom I respected tremendously for their coding ability are following this band wagon concept.&lt;br /&gt;&lt;br /&gt;One item from such species drew an illustration of Turbine Production. What an example, Duh! His argument was that there will be a separate design team (sitting in plush air conditioned rooms gazing at their monitors and building models, and doing all sorts of simulations) responsible for coming up with design documents and the shop floor uses these designs for production. This model is convincing as long as it is the production of tangible stuff. But, when it comes to software development, the model completely fails. Can Oceanography be applied in the space?&lt;br /&gt;&lt;br /&gt;I firmly believe a well written code is a testimonial for good software design. Many seem to differ and vote for designing as an abstract intellectual exercise. I don't want to impose my belief and conclude this entry, I'll update this entry with opinions from my friends and fellow developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112686793637843342?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112686793637843342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112686793637843342' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112686793637843342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112686793637843342'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/09/code-as-design-or.html' title='Code as Design or ????'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112660096450651600</id><published>2005-09-13T01:35:00.000-07:00</published><updated>2005-09-13T01:42:45.316-07:00</updated><title type='text'>A thought about Spring</title><content type='html'>I started reading the book "J2EE Design and Development" by Rod Johnson. I should have read this much earlier. It is very interesting and thought provoking book. Intrigued by the reading, I wanted to try out Spring and feel the "IoC". Downloaded the spring framework and started coding my first bean. After gettimg my feet wet, I realized the power of IoC. A very cool concept. Hail Spring!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112660096450651600?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112660096450651600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112660096450651600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112660096450651600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112660096450651600'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/09/thought-about-spring.html' title='A thought about Spring'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112625678455825262</id><published>2005-09-09T01:18:00.000-07:00</published><updated>2005-09-14T20:40:01.416-07:00</updated><title type='text'>Role of an System Analyst</title><content type='html'>I have an impressive designation with my employer - System Analyst. Had been chatting with a friend about the roles and responsibilites of a System Analyst, the topic somehow spurred interest and we decided to come up with a summary on what is expected of a (true) System Analyst and later juxtapose it with our current roles.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;We chose to explore the job sites and identify the requirements specified by the companies for a System Analyst profile. The following is the (exhaustive)summary we have come up with: &lt;br /&gt;1. Domain&lt;br /&gt;------------&lt;br /&gt; a) Filtering final system requirements, from a free flowing discussion in business  terminology.&lt;br /&gt; b) Explaining constraints of technologies chosen to Business Analysts/Domainexperts.&lt;br /&gt; c) Explaining constraints of business requirements to Development team.&lt;br /&gt; d) Conducting process facilitation with clients to identify &lt;br /&gt;    organizational,information and integration requirements.&lt;br /&gt; e) Capturing pertinent problem domain information from domain Expert review &lt;br /&gt;    sessions.&lt;br /&gt; f) Reviewing system requirements for problem domain completeness.&lt;br /&gt; g) Promoting interoperability of business and technology. Acts as the bridge &lt;br /&gt;    between the understanding of the problem domain and the technology requirements.&lt;br /&gt;&lt;br /&gt;2. Technical&lt;br /&gt;-------------&lt;br /&gt; a) Developing standards, templates, and procedures to expedite the development&lt;br /&gt; b) Contributing to company wide methodologies.&lt;br /&gt; c) Responsibility for a collection of Use Cases.&lt;br /&gt; d) Disseminating system requirements to the development team.&lt;br /&gt; e) Monitoring the activity within the Online Communities, asking questions&lt;br /&gt;    where necessary to support the needs of the project.&lt;br /&gt; f) Assisting the test team to develop test plans and test cases.&lt;br /&gt; g) Has worked extensively as a developer.&lt;br /&gt;&lt;br /&gt;3. Management&lt;br /&gt;--------------&lt;br /&gt; a) Assisting in developing project proposals and comprehensive project budgets.&lt;br /&gt; b) Working with Technical Architect and Project Manager to balance business &lt;br /&gt;    requirements, technical requirements, and costs.&lt;br /&gt; c) Assisting project management in the understanding and control of Scope.&lt;br /&gt; d) Working independently on strategic issues with client.&lt;br /&gt;&lt;br /&gt;Additional good to have Qualities:&lt;br /&gt;----------------------------------&lt;br /&gt;Broad knowledge of business issues and processes such as Strategic Planning, Business Re-Engineering as well as IT resources and enabling technologies.&lt;br /&gt;&lt;br /&gt;After reviewing the notes, I wondered if any company hiring system analysts really provides the chaps with good challenging work or is it just an august sounding title.&lt;br /&gt;I must admit that my (little) experience doesn't match the above requirements. Way to go along the long road, buddy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112625678455825262?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112625678455825262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112625678455825262' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112625678455825262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112625678455825262'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/09/role-of-system-analyst.html' title='Role of an System Analyst'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112379724274883459</id><published>2005-08-11T14:47:00.000-07:00</published><updated>2005-08-22T12:50:41.610-07:00</updated><title type='text'>SQL for Java Objects</title><content type='html'>I googled for something and (fortunately) hit upon &lt;a href="http://josql.sourceforge.net/manual/index.html"&gt;this&lt;/a&gt;. They claim that this library enables querying objects in a collection using a syntax similar to SQL syntax. I tried a few examples and found it living upto the claim. There is another similar open source product from Apache by name JXPath, that uses XPATH syntax instead of SQL. Hmmmm.. some pabulum (atlast!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112379724274883459?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112379724274883459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112379724274883459'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/08/sql-for-java-objects.html' title='SQL for Java Objects'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112120667862730076</id><published>2005-07-12T15:14:00.000-07:00</published><updated>2005-07-12T15:17:58.633-07:00</updated><title type='text'>Importance of equals() and hashCode() ...</title><content type='html'>An interesting point has been blogged on my &lt;a href="http://clusterone.blogspot.com/"&gt;friend's blog&lt;/a&gt;. It indeed gave some insight into using the equals() and hasCode() methods for objects used in HashMap and the rest java.util.Hash* Collections. One related link in this regard:&lt;br /&gt;http://www.mindprod.com/jgloss/hashtable.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112120667862730076?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112120667862730076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112120667862730076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112120667862730076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112120667862730076'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/07/importance-of-equals-and-hashcode.html' title='Importance of equals() and hashCode() ...'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-112059530106923966</id><published>2005-07-05T13:19:00.000-07:00</published><updated>2005-07-05T13:30:36.203-07:00</updated><title type='text'>Reading... Reading... and Reading...</title><content type='html'>Oflate, I've been reading a lot of stuff mostly articles written by Martin Fowler and the nice work on the Thoughtworks website. I chanced to read the article &lt;a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.PDF"&gt;&lt;b&gt;OO Principles and Patterns&lt;/b&gt;&lt;/a&gt; by Robert C Martin and I liked it very much.&lt;br /&gt;There is a nice book by name "Refactoring to Pattenrs" by Joshua Kerievsky that explains how design patterns can be used to refactor code. I believe that people in the roles of software designers and architects must have a look at these articles.&lt;br /&gt;An interesting quote from one of the Martin Fowler's articles:&lt;br /&gt;"When you no longer code not just can you miss out on changes that occur with this technological flux, you also lose the respect of those who do code."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-112059530106923966?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/112059530106923966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=112059530106923966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112059530106923966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/112059530106923966'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/07/reading-reading-and-reading.html' title='Reading... Reading... and Reading...'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111999829156665662</id><published>2005-06-28T15:32:00.000-07:00</published><updated>2005-06-28T15:38:11.570-07:00</updated><title type='text'>Dynamic Proxies...</title><content type='html'>A thought about alternatives to AOP drove me towards exploring the little known (atleast to me)dynamic proxies that are in java landscape since JDK1.3. I tried a couple of examples and although it was a good feature, I felt it was narrow in scope. Perhaps, I should have tried the dynamic proxies before starting with AOP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111999829156665662?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111999829156665662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111999829156665662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111999829156665662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111999829156665662'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/06/dynamic-proxies.html' title='Dynamic Proxies...'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111719391330486417</id><published>2005-05-27T04:35:00.000-07:00</published><updated>2005-05-27T04:43:06.936-07:00</updated><title type='text'>Code compliance checker with AspectJ</title><content type='html'>My First application with AspectJ.. I developed a code compliance checker that checks for System.out.println in the code and reports itz usage. Can you believe that the following few lines of code did the magic, indeed they did!&lt;br /&gt;&lt;font color="pink"&gt;&lt;br /&gt;public aspect Checker &lt;br /&gt;{&lt;br /&gt; pointcut sopReporter() : &lt;br /&gt;  call(void java.io.PrintStream.print*(..)) &amp;&amp; &lt;br /&gt;  within(com.trial03.*) &amp;&amp; !within(Checker);&lt;br /&gt; &lt;br /&gt;  &lt;br /&gt; before() : sopReporter()&lt;br /&gt; {&lt;br /&gt;  System.out.println("!!!!! STOP USINg System.out.println() !!!");&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;AspectJ is really cool and I'm lovin it !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111719391330486417?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111719391330486417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111719391330486417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111719391330486417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111719391330486417'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/code-compliance-checker-with-aspectj.html' title='Code compliance checker with AspectJ'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111690484831156210</id><published>2005-05-23T20:14:00.000-07:00</published><updated>2005-05-23T20:20:48.313-07:00</updated><title type='text'>My Initial Experience with AspectJ</title><content type='html'>I felt lucky when my manager told me that I need to design and develop a state-of-the art reporting framework for our product, while on my assignment in California. Upon protracted discussions with the product architect, we arrived at an architecture that required numerous patterns and AspectJ. I'm excited on listening AspectJ ;-). I downloaded the required libraries and plugins and started learning AspectJ. Itz fully fun filled experience. Keep watching my blogs as I surge ahead with AspectJ z :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111690484831156210?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111690484831156210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111690484831156210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111690484831156210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111690484831156210'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/my-initial-experience-with-aspectj.html' title='My Initial Experience with AspectJ'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111633109526788145</id><published>2005-05-17T04:49:00.000-07:00</published><updated>2005-05-17T04:58:15.270-07:00</updated><title type='text'>An Amazing commons lib...</title><content type='html'>I came across this wonderful library from jakarta commons. It is called as the JXPath. This allows querying object graphs from the collection using a XPath Query syntax. Really amazing. I remeber writing a search component for a paginated list for which I had to cook up a custom query syntax. If I had used JXPath, my task would have been very simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111633109526788145?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111633109526788145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111633109526788145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111633109526788145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111633109526788145'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/amazing-commons-lib.html' title='An Amazing commons lib...'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111630528946109616</id><published>2005-05-16T21:46:00.000-07:00</published><updated>2005-05-16T21:48:09.463-07:00</updated><title type='text'>My Eclipse is Heavy</title><content type='html'>Over time, I installed so many plugins that my Eclipse started cribbing despite a 1.2 GB RAM. Today I came across a code review plugin by name Jupiter. It is very good.&lt;br /&gt;&lt;br /&gt;I also tried out the XMLHttpRequest object, itz cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111630528946109616?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111630528946109616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111630528946109616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111630528946109616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111630528946109616'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/my-eclipse-is-heavy.html' title='My Eclipse is Heavy'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111589119865481966</id><published>2005-05-12T02:38:00.000-07:00</published><updated>2005-05-12T02:46:38.660-07:00</updated><title type='text'>Demystified the Black-Scholes Model</title><content type='html'>A very interesting presentation on the financial services offered by my current employer, made me nostalgic of the Financial concepts I studied while pursuing MBA. I'm highly motivated to do something and decided to demystify the very famous Black-Scholes formula. I must admit, it wasn't a smooth sail. First, I had to brush my understanding of mathematics and relate it to understand the Black-Scholes formula, it was fun filled experience. Today, I learnt a valuable lesson - Technology is an enabler, when coupled with domain expertise, the combination has the maximum value. I've decided to dedicate some time everyday to gain domain expertise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111589119865481966?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111589119865481966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111589119865481966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111589119865481966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111589119865481966'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/demystified-black-scholes-model.html' title='Demystified the Black-Scholes Model'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111571572493067703</id><published>2005-05-10T01:57:00.000-07:00</published><updated>2005-05-10T02:02:04.936-07:00</updated><title type='text'>Will be an MS Excel guru soon</title><content type='html'>Oflate, I'm churning out more spreadsheets and documents than LOC. I've already gained enough expertise with MS Excel and using it for all my planning activities. Perhaps, I'm doing justice to my MBA degree. My professors will be delighted to know about this development. Again, to quench my thirst for coding, I developed a pagination component using Tiles. Anyone interested in trying out this component can mail me ravisk@gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111571572493067703?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111571572493067703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111571572493067703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111571572493067703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111571572493067703'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/will-be-ms-excel-guru-soon.html' title='Will be an MS Excel guru soon'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111536010030364135</id><published>2005-05-05T23:10:00.000-07:00</published><updated>2005-05-05T23:15:00.306-07:00</updated><title type='text'>Change in Attitude</title><content type='html'>I was asked by a colleague for some help in implementing a feature of a product. Upon probing, we found that the feature doesn't exist in the product. If such a thing ever happened, I'd have immediately googled for the thing and tried some open source stuff. But now surprisingly I sat down to develop it myself. Change in attitude.. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111536010030364135?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111536010030364135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111536010030364135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111536010030364135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111536010030364135'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/change-in-attitude.html' title='Change in Attitude'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12163847.post-111502426925742862</id><published>2005-05-02T01:55:00.000-07:00</published><updated>2005-05-02T01:57:49.256-07:00</updated><title type='text'>XDoclet is cool..</title><content type='html'>Today I tried my hands at the XDoclet using JBossIDE as Eclipse plugin. It has been a very smooth ride and I'm amazed at the calibre of XDoclet. Although, I have heard of XDoclet earlier, I didn't get a chance to work with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12163847-111502426925742862?l=atharvana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atharvana.blogspot.com/feeds/111502426925742862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12163847&amp;postID=111502426925742862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111502426925742862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12163847/posts/default/111502426925742862'/><link rel='alternate' type='text/html' href='http://atharvana.blogspot.com/2005/05/xdoclet-is-cool.html' title='XDoclet is cool..'/><author><name>ravisk</name><uri>http://www.blogger.com/profile/00169937566486526277</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
