<?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-9236232</id><updated>2012-01-23T21:20:06.406+05:30</updated><category term='David Attenborough'/><category term='YouTube'/><category term='wildlife'/><title type='text'>A tryst with Shetty</title><subtitle type='html'>This is where I scribble my priceless ideas. Feel free to discuss about it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9236232.post-1330013395671618660</id><published>2007-01-19T19:42:00.000+05:30</published><updated>2007-01-23T20:23:42.159+05:30</updated><title type='text'>TWI Roadies</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_u6WoP9hgnMI/RbDT96Sj4uI/AAAAAAAAAAM/LAqXdGO4ORs/s1600-h/normal_IMG_02.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_u6WoP9hgnMI/RbDT96Sj4uI/AAAAAAAAAAM/LAqXdGO4ORs/s320/normal_IMG_02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5021746645090689762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I went on a biking (motorcycles) trip with a few colleagues from ThoughtWorks last weekend. We rode from Bangalore to Calicut and back (about 750 Kms in all). It was such an amazing experience --- good highways, lovely countryside and an great set of bikers to go along with. We took the following route..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bangalore &gt;&gt; Mysore &gt;&gt; Gundlupet &gt;&gt; Sultan Bathery &gt;&gt; Kalpetta &gt;&gt; Lakkidi &gt;&gt; Calicut&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We rode upto Lakkidi on the first day which is about 320 Kms from Bangalore. The roads are amazing till lakkidi -- first the Bangalore-Mysore highway. We were doing 100-110 Kmph on this highway. The road from Mysore to Gundlupet is also quite good. Then comes the ride through the Bandipur forest, which is simply superb. Lovely forests on both sides and very little traffic. This led us till Sultan Bathery where we entered the Kerala state border. The roads from Sultan Bathery to Lakkidi were well made narrow winding roads. It feels great to tilt your bike to such an extent on these winding roads; sometimes you almost feel you're gonna fall of the bike!!&lt;br /&gt;We reached Lakkidi about 4pm and decided to stay there for the night. After dumping  our bags in the rooms, we headed out on a small trail up the tea estate, which was quite scenic. We ended the day with some beer and silly jokes :)&lt;br /&gt;&lt;br /&gt;The next day we went down the ghats and rode up to Calicut where we stopped for lunch (about 60 kms from Lakkidi). We visited the beach for a short period of time and then  decided get back to Lakkidi. Once again we ended the day with some beer and silly jokes :)&lt;br /&gt;&lt;br /&gt;On the following day (the 3rd day) we decided to head back to Bangalore. On our way back, we stopped at Edakkal caves at Wayanad for a couple of hours. Most of us were quite tired climbing up the hill to reach the mouth of the cave. The cave is huge and contains some caveman art; nothing much to explore there though. &lt;br /&gt;&lt;br /&gt;We headed out from there at about 1:30 pm. We took the same route back and were back in bangalore by 8pm (with some breaks to rest our sore butts :). All in all, it was a great 3 day road trip. Most of us weren't really sure we could do over 300 kms a day. Now, we are quite sure we can easily do 400 kms per day. Should soon do a biking trip to Kanyakumari or probably Pune (visit the new TW office there :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youtube.com/watch?v=4yKYkrGwZuI"&gt;Here&lt;/a&gt; is a video of 2 camp elephants searching Sumukh for food.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4yKYkrGwZuI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4yKYkrGwZuI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-1330013395671618660?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/1330013395671618660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=1330013395671618660' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/1330013395671618660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/1330013395671618660'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2007/01/twi-roadies.html' title='TWI Roadies'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_u6WoP9hgnMI/RbDT96Sj4uI/AAAAAAAAAAM/LAqXdGO4ORs/s72-c/normal_IMG_02.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-7707745285389843309</id><published>2006-12-19T22:21:00.000+05:30</published><updated>2006-12-19T23:11:16.732+05:30</updated><title type='text'>WebServices --- Java/.NET interop issues</title><content type='html'>I've been working on a project where I need to port an existing service written in C# to Java. Your first question would be -- WHY ?? One should be able to access the service irrespective of the language its written in; So whats the point in porting a .NET service to Java ? I am not too sure about this, but I think the client wants all his applications in one language, so that its easy to modify it as and when needed. &lt;br /&gt;&lt;br /&gt;      With that answered, one would think its pretty much straight forward to port such a service. After all Java and C# have similar frameworks/libraries and constructs. Well.. that’s where most of us go wrong :(. Let me explain ---&lt;br /&gt;&lt;br /&gt;      This service is currently used only by .NET clients (but would soon be used by Java clients too). Many methods of the service return .NET specific data types like DataSet. This works fine with .NET clients since DataSets are serializable. When you come across such a method while porting, you realize you are pretty much screwed. Java doesn’t understand DataSets !! So, this is what we did -- we wrote a class which contains the following:-&lt;br /&gt;1) Column names array (from the ResultSet metadata)&lt;br /&gt;2) Column types array (from the ResultSet metadata)&lt;br /&gt;3) Array of rowData objects ( each rowData object is an array of column values obtained from the resultSet)&lt;br /&gt;4) Table name (required by DataSet)&lt;br /&gt;      &lt;br /&gt;       An object of this class can be serialized and sent across to the client. On the Java side, you can create/generate this class and use it to read the results. On the .NET side, you can set the metadata and rowdata objects to a DataSet and also set the table name. You could then use that DataSet as before.&lt;br /&gt;       We could not return a 2 dimensional array of values (instead of array of rowdata), since we had problems deserializing the 2 dimensional array on the .NET side. &lt;br /&gt;&lt;br /&gt;       There have been quite a few such issues over the past couple of weeks, and I am sure there are more to confront. I’ll post again when I come across such issues. Btw, if you are designing web services with Apache Axis, do take a look at their wiki page for .NET interop issues ---&gt; &lt;a href="http://wiki.apache.org/ws/FrontPage/Axis/DotNetInterop"&gt;http://wiki.apache.org/ws/FrontPage/Axis/DotNetInterop&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some points for making interoperable services. Please avoid the following (taken from the wiki) :-&lt;br /&gt;&lt;span style="font-style:italic;"&gt;* Standard Java Collection classes.  &lt;br /&gt;* Typesafe enumerations.  Use static final variables within Java instead. &lt;br /&gt;* Multi-dimensional and jagged arrays. &lt;br /&gt;* Sparse arrays (allowed in SOAP 1.1, not in SOAP 1.2). &lt;br /&gt;* The Java char datatype is not supported because of an omission in XML Schema. &lt;br /&gt;* Avoid using the same method name multiple times with varying parameters on a web service. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One last point --- If you are using Axis, please start with the WSDL first. Do not generate the WSDL from your classes/interfaces. Its a BAD idea !! Doing the WSDL first would help you comply with the W3C xml standard types, so you'd be almost guaranteed to interoperate. Unfortunately, we learnt it the hard way :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-7707745285389843309?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/7707745285389843309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=7707745285389843309' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/7707745285389843309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/7707745285389843309'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/12/webservices-javanet-interop-issues.html' title='WebServices --- Java/.NET interop issues'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-4589717080945299608</id><published>2006-12-06T10:31:00.000+05:30</published><updated>2006-12-06T10:37:17.011+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='YouTube'/><category scheme='http://www.blogger.com/atom/ns#' term='David Attenborough'/><category scheme='http://www.blogger.com/atom/ns#' term='wildlife'/><title type='text'>Cordyceps</title><content type='html'>Came across this video on &lt;a href="http://yodha.livejournal.com/"&gt;Yodha's&lt;/a&gt; blog. "&lt;span style="font-style: italic;"&gt;The fungi infects the ant's brain, makes it go mad, pushes the ant to higher ground, kills the ant and grows a spike out of its brain !!&lt;/span&gt;".  Another lovely narration by &lt;a href="http://en.wikipedia.org/wiki/David_Attenborough"&gt;Sir David Attenborough&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-REOyhRvvj0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/-REOyhRvvj0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-4589717080945299608?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/4589717080945299608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=4589717080945299608' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/4589717080945299608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/4589717080945299608'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/12/cordyceps.html' title='Cordyceps'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-116081494059741104</id><published>2006-10-14T14:02:00.000+05:30</published><updated>2006-10-14T14:05:40.610+05:30</updated><title type='text'>The best way to conserve....</title><content type='html'>is for humans to disappear from this planet.&lt;br /&gt;&lt;br /&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://www.timesonline.co.uk/TGD/picture/0,,351113,00.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Source : &lt;a href="http://www.timesonline.co.uk/TGD/picture/0,,351113,00.jpg"&gt;timesonline UK&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-116081494059741104?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/116081494059741104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=116081494059741104' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/116081494059741104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/116081494059741104'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/10/best-way-to-conserve.html' title='The best way to conserve....'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-115937087542783607</id><published>2006-09-27T20:53:00.000+05:30</published><updated>2006-09-27T20:57:55.493+05:30</updated><title type='text'>7 signs of an entrepreneur</title><content type='html'>Came across &lt;a href="https://www.microsoft.com/smallbusiness/resources/startups/business_opportunities/7_signs_of_an_entrepreneur.mspx"&gt;this&lt;/a&gt; site while browsing casually.&lt;br /&gt;So, how much of an entrepreneur do you have in you ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-115937087542783607?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/115937087542783607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=115937087542783607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115937087542783607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115937087542783607'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/09/7-signs-of-entrepreneur.html' title='7 signs of an entrepreneur'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-115709948109743742</id><published>2006-09-01T13:46:00.000+05:30</published><updated>2006-09-01T14:01:21.110+05:30</updated><title type='text'>Language Wars</title><content type='html'>I just finished reading this &lt;a href="http://www.joelonsoftware.com/items/2006/09/01.html"&gt;article&lt;/a&gt; on &lt;span style=""&gt;&lt;a href="http://www.joelonsoftware.com/"&gt;joelonsoftware&lt;/a&gt; and it is definitely an interesting read.&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;In particular, a debate between the C#/.NET/IIS stack and the Java/J2EE/Apache/Solaris stack and the PHP/Apache/Linux stack could go on and on for years and years and you'd never find the right answer. That's because there are so many pros and cons of all these platforms that advocates of each side can debate and debate and never get any closer to the Truth, but it sure as heck is a fun debate.&lt;/span&gt;"&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;Couldn't agree more !! You would come across such a debate in any IT/Software development firm, and quite often you'd be a part of such a debate. And it doesn't stop at programming languages... Developers love to argue over their favorite IDEs (Eclipse/IDEA/VS etc) too. &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Ruby is a beautiful language and I'm sure you can have a lot of fun developing apps it in, and in fact if you want to do something non-mission-critical, I'm sure you'll have a lot of fun, but for Serious Business Stuff you really must recognize that there just isn't a lot of experience in the world building big mission critical web systems in Ruby on Rails......&lt;/span&gt;"&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;This part is particularly interesting :-). I dont have enough Ruby or ROR experience to comment here, but I am sure some of my colleagues would be flaming Joel Spolsky about such a remark. Now that would be good fun to watch  :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-115709948109743742?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/115709948109743742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=115709948109743742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115709948109743742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115709948109743742'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/09/language-wars.html' title='Language Wars'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-115635028536554313</id><published>2006-08-23T21:41:00.000+05:30</published><updated>2006-08-23T23:09:35.960+05:30</updated><title type='text'>When Tigers attack....</title><content type='html'>&lt;div style="text-align: left;"&gt;Read this article ---&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wildlifetrustofindia.org/html/news/2004/040609_joymala.htm"&gt;http://www.wildlifetrustofindia.org/html/news/2004/040609_joymala.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now check out the video footage  of the same incident&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wildlifetimes.com/video/tiger.wmv"&gt;http://www.wildlifetimes.com/video/tiger.wmv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;The tigress saw the ankush coming, dodged it in mid-leap and took a swipe at Pegu without actually landing on the elephant, which had stepped back&lt;/span&gt;,” Menon said.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What now happened was even more amazing. As the tigress landed on the ground Joymala quickly pinned her down with her left fore foot and tried to control it with its trunk. The tigress struggled under this weight for at least half a minute roaring, as other people in the vicinity shouted and fired shots in the air. In this commotion another attempt was made to dart it, but even this shot was off the mark. The tigress finally struggled loose and ran away.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The wonders of wildlife !! Marvelous.&lt;br /&gt;&lt;br /&gt;Someday I'll work for the conservation of our wildlife.&lt;br /&gt;&lt;br /&gt;Until then, I guess I'll be writing code :-)&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-115635028536554313?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/115635028536554313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=115635028536554313' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115635028536554313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/115635028536554313'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/08/when-tigers-attack.html' title='When Tigers attack....'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-114607035229988306</id><published>2006-04-26T22:15:00.000+05:30</published><updated>2006-04-26T22:23:58.920+05:30</updated><title type='text'>Sahi --- A nice Web Automation and Testing Tool</title><content type='html'>&lt;p style="text-align: justify;" class="MsoNormal"&gt;         We are using &lt;a href="http://sahi.sourceforge.net/"&gt;Sahi&lt;/a&gt; as a functional testing tool on my current project (Well, what else would you expect when &lt;a href="http://narayanraman.blogspot.com/"&gt;Narayan &lt;/a&gt;is on the same team :-). Having used &lt;a href="http://www.openqa.org/selenium/"&gt;Selenium &lt;/a&gt;on my previous project, I find quite a few features of &lt;a href="http://sahi.sourceforge.net/"&gt;Sahi &lt;/a&gt;a lot more helpful in writing functional tests.&lt;/p&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;  &lt;p class="MsoNormal"&gt;The record/playback feature is fantastic. While you are recording a functional script, you can append assertions to it by simply hovering over the required text (or other document objects) and clicking the assert button on the recorder.&lt;/p&gt;&lt;/li&gt;&lt;li&gt; You can assert text in any/every row in a table. This is a particularly useful feature when you have a sorted list of items to display and you want to assert that they are ordered correctly.&lt;/li&gt;&lt;li&gt;   &lt;p class="MsoNormal"&gt;The ability to run multiple scripts simultaneously (i.e. in multiple threads) is wonderful. There are a couple of benefits in running your test suite using multiple threads – 1) it makes sure that you don’t have interdependent tests (i.e. some test that depends on the data created/modified by a previous test) and 2) Runs the entire test suite in a fraction of the time.&lt;/p&gt;&lt;/li&gt;&lt;li&gt; You can hit any remote machine and record/run tests against it. For example, if you have a build deployed on a production/QA machine, the QAs/testers can record and run the suite of tests on that machine instead of having to deploy the build on their local machine. (We are using this setup on our project and its working very well).&lt;/li&gt;&lt;li&gt;  &lt;p class="MsoNormal"&gt;The kind of support you get when the author is on the same team &lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;:-)&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;&lt;/span&gt;           I have used &lt;a href="http://www.openqa.org/selenium/"&gt;Selenium &lt;/a&gt;quite a bit on my previous project and I have liked it a lot. With &lt;a href="http://sahi.sourceforge.net/"&gt;Sahi&lt;/a&gt;, I see myself writing a lot more functional tests than I used to do before (and it doesn’t take much time to run them all). &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-114607035229988306?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sahi.sourceforge.net/' title='Sahi --- A nice Web Automation and Testing Tool'/><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/114607035229988306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=114607035229988306' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/114607035229988306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/114607035229988306'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/04/sahi-nice-web-automation-and-testing.html' title='Sahi --- A nice Web Automation and Testing Tool'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-113804011439259774</id><published>2006-01-23T23:45:00.000+05:30</published><updated>2006-01-24T00:58:44.916+05:30</updated><title type='text'>In search of a Tiger</title><content type='html'>&lt;p style="text-align: justify;" class="MsoNormal"&gt; Narayan and I participated in a tiger census conducted by the forest department at Balle near Kabini. We were there for 4 days, trekking through the forest in search of pug marks, scat and prey animals (deer, sambar, wild boars, elephants etc.). We worked with the RFO (Range forest officer), Mr. Ravindra Kumar and few of his forest guards. Here’s a brief description of my experience during those 4 days.&lt;/p&gt; &lt;div&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;Counting tigers in the wild&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Well, it’s not an easy task. Chances of spotting a tiger in the wild are very low. A tigers' stripes may look striking in a zoo, but in the wild, it’s very well camouflaged. The thick vegetation of the south Indian jungles makes it a lot more difficult to spot one. We were in the jungle for 4 days, but weren’t lucky enough to see a tiger.&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;The census is conducted for a period of 6 days. There are 2 parts to it :- 1) Trek for about 5 -10 kms in the forest searching for tiger pug marks, scat and scratch marks on the barks of trees. 2) Walk along line transects of 2.4 kms, stopping at every 400m to note down the kind of vegetation, scat and sighting (if any) of prey animals. With this data, (i.e looking at the approximate number of prey animals) the forest department tries to estimate the number of tigers it could support, and also the distribution of tigers in various parts of the forest. This is nothing more than an informed guess and by no means an absolute number (or even close) of tigers in the wild.&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Radio tracking tigers in the wild has been tried by conservation scientists like Dr. Ullas Karanth in various parts of &lt;st1:country-region&gt;&lt;st1:place&gt;India&lt;/st1:place&gt;&lt;/st1:country-region&gt;. Although this sounds to be a viable solution for counting tigers, it has a few problems :- 1) Catching tigers in the wild is a very difficult task in itself .. 2) A more serious problem is tranquilizing a tiger when seen. If the dosage is too little, it doesn’t serve its purpose; if it’s too much, it could be fatal. The forest guards told us that a few tigers had died due to excessive dosage. Hence, it’s not a widely used method to count tigers, although, it has been used to study individual tigers. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Another method worthy of mention is camera trapping. In this method, an automatically triggered camera is strapped to a tree. Whenever any animal moves in front of the camera, it fires and captures a snap of the animal. Since the pattern of stripes on each individual tiger is unique (much like the human fingerprints), these pictures can give us some idea about the number of tigers in the wild. But again, this method had its own problems :- 1) to setup camera traps at multiple sites in the forest proves to be expensive. 2) Large mammals (elephants) get disturbed when the flash fires and they attack the camera, breaking it into pieces. 3) It doesn’t necessarily photograph all the tigers in the wild. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Due to these problems, the first method is preferred and is widely used all over &lt;st1:country-region&gt;&lt;st1:place&gt;India&lt;/st1:place&gt;&lt;/st1:country-region&gt; to count tigers. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;Challenges faced by the forest department&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;1) &lt;i style=""&gt;&lt;u&gt;Habitat destruction:-&lt;/u&gt;&lt;/i&gt;&lt;span style=""&gt;  &lt;/span&gt;A lot of tribals still live within the forest. They depend on the forest for their very existence – wood, food (basically meat), water etc. The forest department is trying their best to relocate them to the outskirts of the forest by providing them agricultural land and shelter. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;A lot of villages surround the forest. The villagers have been cutting down the forests and converting it to agricultural land over the years. They graze cattle at the edges of the forest which eat most of the grass required for the survival of herbivores in the forest. Most of the poachers come from these villages. Since they have easy access to the forest, these poachers’ setup traps to capture deer meat, tiger skin, elephant tusks etc. (In the images below, you can see the paw bones of a tiger which was caught in one of these traps. Click on the image for a bigger picture.) &lt;/p&gt; &lt;div style="text-align: justify;"&gt; &lt;a href="http://photos1.blogger.com/hello/245/2701/640/tiger_traps.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/hello/245/2701/320/tiger_traps.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;2) &lt;i style=""&gt;&lt;u&gt;Finance&lt;/u&gt;&lt;/i&gt;:- The forest dept. is severely short of funds. &lt;b style=""&gt;Some officials mentioned that they couldn’t afford diesel to run their jeeps&lt;/b&gt;!! These jeeps / forest vehicles are old and in very bad shape. They don’t have sufficient funds to setup camera traps or procure GPS units to navigate within the forest. &lt;/p&gt;       &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;Call for Help&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Narayan and I spoke with the RFO about the kind of problems they face and how we could help them. We had no answers for many questions that he put forward --- “Why should we (i.e. the forest officials) put our lives at risk to protect these forests? We don’t get paid well enough, we have no social/family life and the living conditions/facilities aren’t great.” &lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;This RFO (Mr. Ravindra kumar) had worked with Dr. Ullas Karanth at Nagarhole, helping him research the behavior and habitat of tigers. He has shot dead a poacher while a group of them were trying to steal deer meat from the forest (Read the full story &lt;a href="http://www.ourkarnataka.com/Articles/starofmysore/wildlifepolitics.htm"&gt;here&lt;/a&gt;). We (Narayan and I) found him to be a very helpful, sensible, well educated and practical person and a great nature/wildlife enthusiast.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;After spending 4 days/nights in the forest, living and working with the forest guards, I’m highly impressed (and moved) by dedication and interest that they’ve shown in protecting whatever is left of these Indian jungles. I’m thinking of ways to help them financially, but I alone can’t do much. I don’t know how many of you guys out there are interested in contributing to this cause, but if you are even remotely interested please do leave a comment or mail/IM me and I’ll try and get in touch with you.&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;PS :- 1) The paw bones that you see in the picture above belong to a tiger named “&lt;span style="font-weight: bold;"&gt;Maasti&lt;/span&gt;”. Maasti still survives (with only 3 paws) and is taken care of at Bannerghatta zoo, &lt;st1:city&gt;&lt;st1:place&gt;Bangalore&lt;/st1:place&gt;&lt;/st1:city&gt;. &lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;          &lt;/span&gt;2) I’ll upload the pictures (about 300 of them) as soon as possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-113804011439259774?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/113804011439259774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=113804011439259774' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113804011439259774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113804011439259774'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2006/01/in-search-of-tiger.html' title='In search of a Tiger'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-113336080158810067</id><published>2005-11-30T18:41:00.000+05:30</published><updated>2005-11-30T19:56:41.700+05:30</updated><title type='text'>Ruby Tuesday @ Xiamen(China)</title><content type='html'>&lt;div style="text-align: justify;"&gt;I know that &lt;a href="http://www.jroller.com/page/perryn/"&gt;Perryn&lt;/a&gt; has already blogged about &lt;a href="http://www.jroller.com/page/perryn/?anchor=ruby_tuesday_in_china"&gt;this&lt;/a&gt;; I'm just reiterating it. A group of us Thoughtworkers have started a small Ruby interest group here in Xiamen. We meet up every tuesday at 6:30 pm at Cafe Relax (near Xia Da) and read/pair/experiment with Ruby. We've had an impressive response so far (6 TWers and 2 local geeks, with one client developer dropping in occasionally). Perryn and &lt;a href="http://www.thoughtworks.com/profiles/Yates,+Andy.html"&gt;Andy&lt;/a&gt; are writing a game(called "Go") in Ruby; their idea is to add as many new ruby features as possible and not really bother about good design.&lt;br /&gt;&lt;br /&gt;I am really enjoying playing around with Ruby. It seems to have a few similarities to Java, but a lot of "new" ways of doing things (sometimes it makes you wonder why Java doesn't have those features). The only setback is the lack of a good IDE. I am currently using Eclipse with the RDT pluggin which provides syntax highlighting and (very little) context sensitive help. (When you've been working with IDEA or Eclipse for a while, it feels unnatural to type code!!) .&lt;br /&gt;&lt;br /&gt;Anyways, If you are in (or around) Xiamen on a tuesday evening, and want to learn/discuss Ruby, make your way to Cafe Relax and look for a table with a lot of laptops (and some food :-).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-113336080158810067?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/113336080158810067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=113336080158810067' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113336080158810067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113336080158810067'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/11/ruby-tuesday-xiamenchina.html' title='Ruby Tuesday @ Xiamen(China)'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-113066086880397808</id><published>2005-10-30T14:49:00.000+05:30</published><updated>2005-10-30T14:57:48.823+05:30</updated><title type='text'>China : The Good, the Bad and the Ugly</title><content type='html'>&lt;p style="text-align: justify;" class="MsoNormal"&gt;I have lived and worked in &lt;st1:place&gt;&lt;st1:city&gt;Xiamen&lt;/st1:City&gt;,  &lt;st1:country-region&gt;China&lt;/st1:country-region&gt;&lt;/st1:place&gt; for the last 4 months. Its been an amazing experience, to say the least. I shall try and articulate my experiences/thoughts on what I liked and disliked during my stay there.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;The Good&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;ul style="margin-top: 0in; text-align: justify;" type="disc"&gt; &lt;li class="MsoNormal"&gt;The      people are simply great. They go out of their way to help others      (including the &lt;span style="color: rgb(51, 51, 255);"&gt;“Laowai” &lt;/span&gt;--- Chinese for foreigner), even if they don’t      speak the same language. There was this one time when Conrad and I wanted      to board a bus but we didn’t have the exact amount of cash. Looking at our      dilemma, an old Chinese lady (a complete stranger) actually offered us the      required amount!! &lt;/li&gt;&lt;li class="MsoNormal"&gt;The      infrastructure is mind-blowing (compared to that of &lt;st1:country-region&gt;&lt;st1:place&gt;India&lt;/st1:place&gt;&lt;/st1:country-region&gt;).The      public transport system is really clean and nice; Roads and sidewalks are      wide and well made. The big cities like &lt;st1:city&gt;&lt;st1:place&gt;Shanghai&lt;/st1:place&gt;&lt;/st1:City&gt;      and &lt;st1:city&gt;&lt;st1:place&gt;Beijing&lt;/st1:place&gt;&lt;/st1:City&gt; are well connected      through subways. &lt;st1:city&gt;&lt;st1:place&gt;Shanghai&lt;/st1:place&gt;&lt;/st1:City&gt; in      particular is simply awesome. It’s a well planned city with loads of high      rise buildings and some amazing shopping malls. It’s also got the Maglev      train which runs at 432 kmph!!&lt;/li&gt;&lt;li class="MsoNormal"&gt;When      it comes to food – the Chinese are definitely on top of the food chain.      Meat constitutes the main part of their diet. Though this is not      particularly great for vegetarians like me, the &lt;span style="color: rgb(51, 51, 255);"&gt;carnivorous humans&lt;/span&gt; :-) seemed to like the food a lot. &lt;/li&gt; &lt;/ul&gt; &lt;div style="text-align: justify;"&gt;    &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=""&gt;&lt;u&gt;The Bad&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;ul style="margin-top: 0in; text-align: justify;" type="disc"&gt; &lt;li class="MsoNormal"&gt;Software      piracy is quite rampant in all parts of &lt;st1:country-region&gt;&lt;st1:place&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;.      One can get any DVD (Movies, MS Windows, Adobe Photoshop, games… literally      anything) for 8 RMB (approx. 1 USD). You’ll find stores selling these pirated      DVDs everywhere, not just in some shady streets. I don’t understand what      the government is doing about it. &lt;/li&gt;&lt;li class="MsoNormal"&gt;“The      great firewall” can lead to some frustrating times. Quite a few blog, news      and web hosting (geocities, bravenet, netfirms etc) sites are blocked. I      haven’t blogged in 4 months since blogspot is blocked in &lt;st1:country-region&gt;&lt;st1:place&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;      &lt;span style="font-family: Wingdings;"&gt;&lt;span style=""&gt;L&lt;/span&gt;&lt;/span&gt;.      Google news was blocked until a month ago. Hope the government realizes      this is doing more harm than good. &lt;/li&gt; &lt;/ul&gt; &lt;div style="text-align: justify;"&gt;    &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=""&gt;&lt;u&gt;The Ugly&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;ul style="margin-top: 0in; text-align: justify;" type="disc"&gt; &lt;li class="MsoNormal"&gt;I      personally hate “&lt;a href="http://www.google.co.in/search?q=chinese+traditional+medicine+tigers&amp;sourceid=mozilla-search&amp;amp;start=0&amp;start=0&amp;amp;ie=utf-8&amp;oe=utf-8&amp;amp;client=firefox-a&amp;rls=org.mozilla:en-US:official"&gt;Chinese traditional medicine&lt;/a&gt;” for what its done (and      still doing) to the populations of tigers in the wild. The Chinese make      use of tiger bones to prepare some of their “traditional medicine”. This      has encouraged poaching and pushed the south &lt;st1:country-region&gt;&lt;st1:place&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;      tigers to the brink of extinction (there are only about 20 left in the      wild!!). Now, the Indian tigers are being killed to satisfy the demand.      The Indian forest department is making an amazing effort to save the tiger      from extinction; it hurts to see that this is a losing battle because of      the “medicinal” products from &lt;st1:country-region&gt;&lt;st1:place&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;.      I hope the Chinese are educated about the evil effects of their      “traditional medicine” before its too late!&lt;/li&gt; &lt;/ul&gt; &lt;div style="text-align: justify;"&gt;      &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;That said, I still miss China a lot. I’ve made some really nice friends out there (Thoughtworkers and the locals) and really liked hanging out with them. Looks like there’s a good chance that I would have to go back to &lt;st1:city&gt;&lt;st1:place&gt;Xiamen&lt;/st1:place&gt;&lt;/st1:City&gt; for a couple of months &lt;span style="font-family: Wingdings;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;:-). Hopefully this time I would get to see a panda.&lt;/p&gt; &lt;div style="text-align: justify;"&gt;    &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PS :-&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt; Some of you may regard this post as unprofessional. I never intended it to be “professional”; It’s simply a collection of my experiences/opinions. I apologize if I have offended you in any way.&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-113066086880397808?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/113066086880397808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=113066086880397808' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113066086880397808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/113066086880397808'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/10/china-good-bad-and-ugly.html' title='China : The Good, the Bad and the Ugly'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-112048978962384568</id><published>2005-07-04T20:39:00.000+05:30</published><updated>2005-07-04T21:18:45.670+05:30</updated><title type='text'>Ni Hao</title><content type='html'>&lt;div style="text-align: justify;"&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;Its been about 2 weeks since I arrived here in Xiamen, China. &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:12;"  &gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;The place is really beautiful and very clean. It’s an island in south east &lt;st1:country-region st="on"&gt;China&lt;/st1:country-region&gt; (very close to &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;Taiwan&lt;/st1:place&gt;&lt;/st1:country-region&gt;). Language seems to be my primary problem out here since not many localites speak English. So I'm trying to learn Mandarin :-) . Here nearly everthing (Billboards, business cards, magazines, sign/navigation boards... even Windows !!) is in mandarin. As Bhavin puts it -- "We work with 128 bit encrypted version of Windows !!"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:georgia;font-size:12;"  &gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;We do get veg food.. and that's how i'm surviving here. I've learnt to use chop sticks pretty well now. Its good fun using chop sticks (atleast its fun until you drop something on the table :-))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;span style=";font-family:georgia;font-size:12;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-align: center;"&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/tortoise.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/245/2701/320/tortoise.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Red Eared Slider&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt; Lotsa places to visit around here. So far have only been to the Amoy botanical garden. Its really huge and beautiful. I've got a lot of snaps but I cant upload them coz the network connection is very slow here. I've taken some good snaps over here. The one above is a Tortoise (a red-eared slider as identified by Naveein from INP) which I found in our backyard. I havent had any luck trying to photograph pandas yet :-(&lt;br /&gt;I was shocked to find out that China blocks all blogspot sites !! (although I can login and post something.... i cant view it, or for that matter cant view any blogspot site !) . Thats the update for now. Hopefully, I'd be posting my experiences regularly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-112048978962384568?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/112048978962384568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=112048978962384568' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/112048978962384568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/112048978962384568'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/07/ni-hao.html' title='Ni Hao'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111807577452829344</id><published>2005-06-06T22:06:00.000+05:30</published><updated>2005-06-06T22:24:16.223+05:30</updated><title type='text'>Rock Agama</title><content type='html'>&lt;div style="text-align: center;"&gt; &lt;div style="text-align: left;"&gt;Found this guy in my neighbour's garden. Couldn't identify him immediately, but then found out that he is a rock agama. Here are a few links which provide some info about this reptile :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://animaldiversity.ummz.umich.edu/site/accounts/information/Agama_agama.html"&gt;&lt;span style="font-style: italic;"&gt;http://animaldiversity.ummz.umich.edu&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.anapsid.org/agamas.html"&gt;&lt;span style="font-style: italic;"&gt;http://www.anapsid.org/agamas.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.junglephotos.com/africa/afanimals/reptiles/rbowlizardnathist.shtml"&gt;&lt;span style="font-style: italic;"&gt;http://www.junglephotos.com/africa&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/Rock%20Agama.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/245/2701/320/Rock%20Agama.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;I would have loved to get a better shot at it. But my Canon A75 with a 35 - 105 mm lens doesn't help me in taking good close up shots. I'm considering buying the &lt;a href="http://www.dpreview.com/news/0504/05042201canons2is.asp"&gt;Canon S2 IS&lt;/a&gt; sometime soon. Why am I not buying a DSLR ? Well.. Its quite expensive to buy one. A Canon 350D along with a 70-200 mm lens would cost me about $1500 !! Any opinions/reviews on the S2 IS ?&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111807577452829344?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111807577452829344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111807577452829344' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111807577452829344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111807577452829344'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/06/rock-agama.html' title='Rock Agama'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111644406729782617</id><published>2005-05-18T23:24:00.000+05:30</published><updated>2005-05-19T00:51:07.313+05:30</updated><title type='text'>Land of the Tiger</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://animal.discovery.com/news/afp/20050502/tigers.html"&gt;This&lt;/a&gt; is extremely disturbing news !! (Here's the &lt;a href="http://www.hindu.com/2005/03/12/stories/2005031201191300.htm"&gt;Hindu&lt;/a&gt; and &lt;a href="http://www.deccanherald.com/deccanherald/may182005/index2023462005517.asp"&gt;Deccan Herald&lt;/a&gt; version of the same story). 352 Tigers fall prey to poachers in the last 5 years! Why are these people killing tigers? Obviously for the money that accompanies a dead tiger. Its skin, teeth and nails fetch a lot of money.&lt;br /&gt;How can we help? Well, sites like the &lt;a href="http://www.tigerfdn.com/"&gt;http://www.tigerfdn.com&lt;/a&gt;  and &lt;a href="http://www.globaltigerpatrol.co.uk/"&gt;http://www.globaltigerpatrol.co.uk&lt;/a&gt; provide some information on how we can help. The most important thing to do is to stop buying such stuff and look down on people who do buy it (I would say... kill those bastards) .&lt;br /&gt;Someday, I hope I would work like &lt;span style="color: rgb(0, 102, 0);"&gt;Valmik Thapar&lt;/span&gt; and &lt;span style="color: rgb(0, 102, 0);"&gt;Fateh Singh Rathore&lt;/span&gt; and help save the tiger. But until that day, I will have to write code to make a living :-).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;PS :- &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.petatv.com/tvpopup/video.asp?video=j_lopez&amp;Player=wm&amp;amp;speed=_med"&gt;Here's&lt;/a&gt;&lt;span style="font-style: italic;"&gt; a gruesome video (taken from &lt;/span&gt;&lt;a style="font-style: italic;" href="http://bogusgenius.blogspot.com/"&gt;Anirudh's&lt;/a&gt;&lt;span style="font-style: italic;"&gt; blog) which shows how animals are stripped of their fur to make fashionable dresses for us. I guess its high time for us to push back and stop supporting trading of fur, leather and other animal body parts. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111644406729782617?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111644406729782617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111644406729782617' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111644406729782617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111644406729782617'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/05/land-of-tiger.html' title='Land of the Tiger'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111561431267196519</id><published>2005-05-09T08:47:00.000+05:30</published><updated>2005-05-09T10:21:52.763+05:30</updated><title type='text'>Hibernate in Action</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have been trying to learn to use Hibernate over the last couple of days. After reading through the first 2 chapters in &lt;span style="font-style: italic;"&gt;Hibernate In Action&lt;/span&gt;, I decided to try the "Message" example mentioned in the book. I used HSQLDB to persist the data. Initially I thought that we only needed to add the jdbc driver (i.e hsqldb.jar) and hibernate3.jar in the classpath. But then, a whole series of exceptions hit me in the face one after the other. Reading through the stack trace and resolving the exceptions one by one, I finally figured that the following jars need to be in the classpath for the program to run successfully.&lt;br /&gt;&lt;/div&gt; &lt;ul style="color: rgb(0, 102, 0); text-align: justify;"&gt;   &lt;li&gt;the jdbc driver (in my case hsqldb.jar)&lt;/li&gt;   &lt;li&gt;hibernate3.jar&lt;/li&gt;   &lt;li&gt;asm.jar&lt;/li&gt;   &lt;li&gt;cglib-2.1.jar&lt;/li&gt;   &lt;li&gt;commons-collections-2.1.1.jar&lt;/li&gt;   &lt;li&gt;commons-logging-1.0.4.jar&lt;/li&gt;   &lt;li&gt;log4j-1.2.9.jar&lt;/li&gt;   &lt;li&gt;jta.jar&lt;/li&gt;   &lt;li&gt;ehcache-1.1.jar&lt;/li&gt;   &lt;li&gt;dom4j-1.6.jar&lt;/li&gt; &lt;/ul&gt; &lt;div style="text-align: justify;"&gt;All of these jars (except for the jdbc driver) come bundled with hibernate 3.0.&lt;br /&gt;&lt;br /&gt;While specifying the configuration options for hibernate, we have 2 options --- either to use the &lt;span style="color: rgb(51, 51, 255);"&gt;hibernate.properties&lt;/span&gt; file or the &lt;span style="color: rgb(51, 51, 255);"&gt;hibernate.cfg.xml&lt;/span&gt;. There are subtle differences b/w these 2 methods :-&lt;br /&gt;&lt;br /&gt;1) If you are using the &lt;span style="color: rgb(51, 51, 255);"&gt;hibernate.properties&lt;/span&gt; file --- While building the SessionFactory object, we &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; need to call Configuration.configure() , but we &lt;span style="font-weight: bold;"&gt;do&lt;/span&gt; need to call &lt;span style="font-style: italic;"&gt;Configuration.addResource() &lt;/span&gt; to specify the mapping files.  i.e. --&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;Configuration configuration = new Configuration();&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;configuration.addResource("Messages/Message.hbm.xml");&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;SessionFactory sessionFactory = configuration.buildSessionFactory();&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;&lt;/span&gt;&lt;/div&gt; &lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;If you are using the C3P0 connection pool, you need to add &lt;span style="color: rgb(0, 153, 0);"&gt;c3p0-0.8.5.2.jar&lt;/span&gt; (comes with hibernate 3.0) to the classpath.&lt;br /&gt;&lt;br /&gt;2)  If you are using the&lt;span style="color: rgb(51, 51, 255);"&gt; hibernate.cfg.xml&lt;/span&gt; file --- While building the SessionFactory object, we &lt;span style="font-weight: bold;"&gt;do&lt;/span&gt; need to call &lt;span style="font-style: italic;"&gt;Configuration.configure()&lt;/span&gt; , but we &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; need to call &lt;span style="font-style: italic;"&gt;Configuration.addResource()&lt;/span&gt;  to specify the mapping files since we could specify it in &lt;span style="color: rgb(51, 51, 255);"&gt;hibernate.cfg.xml&lt;/span&gt; itself.  i.e. --&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;Configuration configuration = new Configuration();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;SessionFactory sessionFactory = configuration.configure().buildSessionFactory();&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;&lt;br /&gt;Hope this helps when you are writing your first hibernate program :-)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111561431267196519?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111561431267196519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111561431267196519' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111561431267196519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111561431267196519'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/05/hibernate-in-action.html' title='Hibernate in Action'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111452267052652240</id><published>2005-04-26T19:07:00.000+05:30</published><updated>2005-04-26T19:16:09.710+05:30</updated><title type='text'>Visit to Bannerghatta</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/Bannerghatta_April_2005_089.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/245/2701/320/Bannerghatta_April_2005_089.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;The majestic white tiger at bannerghatta&lt;/strong&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;br /&gt;On Sunday, I had been to Bannerghatta wildlife sanctuary with a few friends. It was an amazing experience, although it was very depressing to see the human population surpassing the animal population at the sanctuary. We got to see a whole lot of wild animals --- Indian Python, Rat snakes, Russell’s vipers, King Cobras, Zebras, Bears, Leopards, Tigers, Lions, Hippos etc. I believe there are about 35 tigers at the sanctuary, including 3 white tigers. I didn’t get very good shots of the big cats as I hoped to get. &lt;a href="http://pg.photos.yahoo.com/ph/chirdeep_s/album?.dir=cc0a&amp;.src=ph&amp;amp;store=&amp;prodid=&amp;amp;.done=http%3a//pg.photos.yahoo.com/ph/chirdeep_s/my_photos"&gt;Here&lt;/a&gt; are a few snaps that we managed to shoot. I wish I could take a break from work and shoot some more of the wildlife. Anyone willing to sponsor a wannabe wildlife photographer ??&lt;br /&gt;&lt;/p&gt;&lt;a href="http://pg.photos.yahoo.com/ph/chirdeep_s/album?.dir=cc0a&amp;.src=ph&amp;amp;store=&amp;prodid=&amp;amp;.done=http%3a//pg.photos.yahoo.com/ph/chirdeep_s/my_photos"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111452267052652240?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111452267052652240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111452267052652240' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111452267052652240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111452267052652240'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/04/visit-to-bannerghatta.html' title='Visit to Bannerghatta'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111262956429061054</id><published>2005-04-09T20:39:00.000+05:30</published><updated>2005-04-10T10:55:32.536+05:30</updated><title type='text'>OODBs</title><content type='html'>&lt;div style="text-align: justify;"&gt;I was discussing with Sheroy about persistence frameworks and the need for O/R mappers in Enterprise applications. We were talking about Hibernate and how it is being incorporated in EJB3 specs. The conversation then (naturally ??) shifted towards OODBs. There seems to be quite a few advantages of OODBs.&lt;br /&gt;The most significant advantage of OODBs is that we eliminate the need of a separate data model. The data model just reflects your object model. Most modern Enterprise Applications have different object models and data models, and an O/R mapper to map the objects to rows in the database. This adds another layer of complexity to an already existing complex system, at a substantial cost. An OODB eliminates the need for this layer altogether.&lt;br /&gt;If your application uses an RDB and you must reconstruct an object from data in the database, you frequently have to perform multiple queries. These queries could result in serious performance bottlenecks if not written efficiently. Constructing Objects from OODB records is straightforward. Another advantage with OODBs is that we don't require a separate query language like SQL. All the queries can be written in the OO language itself.&lt;br /&gt;If OODBs have all these advantages, why are we then stuck with RDBs yet ?? Here are a few reasons that I could think of -&lt;br /&gt;RDB is a proven technology which has lasted the test of time.  From legacy systems written in COBOL, to applications written in Java/C# interface with RDBs.  This allows the us to change the application technology to enhance scalability, performance and security and still use  the same data model.  This is a significant advantage, since the persistent data is considered to be the vital part of an application. OODBs on the other hand, tie us to a specific programming paradigm (and possibly to a particular OO Language) .&lt;br /&gt;OODBs are an excellent tool for storing and retrieving objects. Most applications do not always load objects. Rather, there will be times when we need to search by ranges, patterns, and fuzzy criteria spanning objects that do not have obvious relationships. OODBs may not provide adequate support to such ad hoc queries.&lt;br /&gt;All said and done, I think OODBs are a great way of working with data, and definitely worth a closer look.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111262956429061054?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111262956429061054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111262956429061054' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111262956429061054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111262956429061054'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/04/oodbs.html' title='OODBs'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-111107198982821341</id><published>2005-03-17T20:33:00.000+05:30</published><updated>2005-03-17T20:36:29.836+05:30</updated><title type='text'>Photography</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=""&gt;            &lt;/span&gt;Photography is my latest craze. I have developed an interest for digital photography ever since I got my &lt;span style="color: rgb(153, 0, 0);"&gt;Canon A75&lt;/span&gt; a few months ago. Although, this camera doesn’t have SLR like features, it’s good enough for beginners like me to get started on photography. Once I get really good at the art of photography, I hope to buy the &lt;span style="color: rgb(153, 0, 0);"&gt;Canon Digital Rebel&lt;/span&gt; (EOS 300D) or the &lt;span style="color: rgb(153, 0, 0);"&gt;Nikon 70D&lt;/span&gt; or some other Digital SLR….&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;I have been playing around with Adobe Photoshop for a couple of weeks now. It’s probably the best piece of software that I’ve ever used. The number of tools available is simply mind-boggling. I have never really used GIMP, but I am told that GIMP supports quite a lot of features that Photoshop currently provides. Guess, I’d be experimenting with GIMP sometime soon.&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;I have uploaded a few shots that I have taken at &lt;a href="http://chirdeep.netfirms.com"&gt;http://chirdeep.netfirms.com&lt;/a&gt; . I have also uploaded a few Photoshop effects that I’ve experimented with. Hope to update it as frequently as possible. Feedback/Criticism is welcome.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-111107198982821341?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/111107198982821341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=111107198982821341' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111107198982821341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/111107198982821341'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/03/photography.html' title='Photography'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110987102439589690</id><published>2005-03-03T22:56:00.000+05:30</published><updated>2005-03-03T23:00:24.463+05:30</updated><title type='text'>Bad usage of instanceof</title><content type='html'>&lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify; font-style: italic;" class="MsoNormal"&gt;If ( Object instanceof ClassA || Object instanceof ClassB){&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;// do something&lt;br /&gt;}&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;I have come across such code in many applications. Why would developers write such horrendous code? It clearly beats the whole purpose of polymorphism, doesn’t it? &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;Consider &lt;span style="font-style: italic;"&gt;ClassA&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;ClassB &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;ClassC &lt;/span&gt;implement an interface (say &lt;span style="font-style: italic;"&gt;InterfaceA&lt;/span&gt;). Wouldn’t the code look more elegant if we add a method to &lt;span style="font-style: italic;"&gt;InterfaceA &lt;/span&gt;(say &lt;span style="font-style: italic;"&gt;doSomething&lt;/span&gt;()), implement the method in &lt;span style="font-style: italic;"&gt;ClassA &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;ClassB &lt;/span&gt;and provide a dummy implementation in &lt;span style="font-style: italic;"&gt;ClassC&lt;/span&gt;. Then, the code would look like &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p style="font-style: italic;"&gt; &lt;/o:p&gt;&lt;span style="font-style: italic;"&gt;Object.doSomething();&lt;/span&gt; &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;The problem with this approach occurs when there are too many implementations of &lt;span style="font-style: italic;"&gt;InterfaceA&lt;/span&gt; and only a few of them need to implement the method &lt;span style="font-style: italic;"&gt;doSomething&lt;/span&gt;(). In such a case we could create an Abstract class (say &lt;span style="font-style: italic;"&gt;AbstractClassA&lt;/span&gt;) which provides a default implementation of the method &lt;span style="font-style: italic;"&gt;doSomething&lt;/span&gt;(), and override the method only in those few classes. I really think this would be a more elegant solution. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;Having said all that, I fail to understand why the &lt;span style="font-style: italic;"&gt;instanceof &lt;/span&gt;operator was provided in the first place!! Is it only to promote short term hacks like this?? &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110987102439589690?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110987102439589690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110987102439589690' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110987102439589690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110987102439589690'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/03/bad-usage-of-instanceof.html' title='Bad usage of instanceof'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110863295829357977</id><published>2005-02-17T14:59:00.000+05:30</published><updated>2005-02-17T15:05:58.296+05:30</updated><title type='text'>Mac at first sight</title><content type='html'>&lt;p class="MsoNormal"&gt;Last weekend Rajesh had got his new &lt;a href="http://www.audioholics.com/news/thumbs/iMacG5side_th.jpg"&gt;Mac G5&lt;/a&gt; to the office. It was simply superb, to say the least. Karthik and I used the machine for sometime and we were totally bowled over by the features. This was the first time I was using a Mac. I have seen the &lt;a href="http://www.apple.com/ibook/"&gt;ibook&lt;/a&gt; and the &lt;a href="http://www.apple.com/powerbook/"&gt;Powerbook&lt;/a&gt;, but never really played around with them. This was my first shot at it. In one of my previous posts, I had mentioned that Microsoft was “arguably” the best UI designer. I couldn’t be more wrong!! The UI of the Mac OS simply rocks. It’s a lot more responsive and has tons of visual effects. Also, there’s the familiar bash shell for the console freaks.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;We were looking through the hardware configuration of the machine when suddenly something called &lt;span style="font-weight: bold; font-style: italic;"&gt;AirPort&lt;/span&gt; caught my attention. Guess what that is! It’s the wireless port! Come to think of it, the name actually makes a lot of sense, doesn’t it? &lt;/p&gt;   &lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;There’s one thing I dislike about the Mac though. It comes with a single button mouse!! To right click, you need to hold the command key and click. Also there’s no scroll wheel !! &lt;span style=""&gt; &lt;/span&gt;The right mouse button and the scroll wheel makes life so much more convenient while using a PC. What were those Mac designers thinking?? It’s like giving the next generation computer with a 20&lt;sup&gt;th&lt;/sup&gt; century mouse.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110863295829357977?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110863295829357977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110863295829357977' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110863295829357977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110863295829357977'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/02/mac-at-first-sight.html' title='Mac at first sight'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110813765295307354</id><published>2005-02-11T20:30:00.000+05:30</published><updated>2005-02-11T21:30:52.960+05:30</updated><title type='text'>Unit testing</title><content type='html'>&lt;div style="text-align: justify;"&gt;Everyone knows that unit tests are important. Besides providing a fine grained testing approach, they also help in asserting that the critical functionality is not broken after refactoring. Of late, I'm facing a few problems while writing Unit tests.&lt;br /&gt;While adding some new functionality to the application, I had to modify an already bloated method (approx 80 lines of code) and add a few more lines of code to it. My pair and I didnt want to do this for 2 reasons :- Firstly, the method does too many things by itself and hence becomes unreadable. Secondly, its a nightmare to test such a big method. So we refactored it into a couple of smaller methods and implemented the new functionality. All goes well !!&lt;br /&gt;Not so soon !! We then decided to test the new method ( yeah... we didnt do TDD !!). The method takes a data object as a parameter which has more than a dozen of fields in it. So we created a stub of the data object which implemented only the required getter and setter methods. When we passed this stub as the argument, the test failed !! Apparently the method used some Utlility class to convert the data object to a Domain object (which obviously required the data object stub to implement most of its methods). So now what ??&lt;br /&gt;We moved the call to the Utility class to another method. It looked something like this --&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Class foo{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;       public void method(DataObject data){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;                //do something;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;        }        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;        public DomainObject convert(DataObject data){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;                //convertToDomainObject&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Now to test this method we subclassed "&lt;span style="font-weight: bold;"&gt;foo&lt;/span&gt;" and overrode the "&lt;span style="font-weight: bold;"&gt;convert&lt;/span&gt;" method such that it returns the Data Object with only the required members set. The test passed. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I am not impressed with this style of testing though. What was the whole point of the test ?? At the end we were just testing a proxy implementation instead of the actual implementation. Is this the only way to test such methods? If you are aware of a better way to test such methods, kindly post a comment about it :-)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110813765295307354?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110813765295307354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110813765295307354' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110813765295307354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110813765295307354'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/02/unit-testing.html' title='Unit testing'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110727907761867728</id><published>2005-02-01T23:01:00.000+05:30</published><updated>2005-02-03T00:11:49.986+05:30</updated><title type='text'>Google</title><content type='html'>&lt;div style="text-align: justify;"&gt;Google never ceases to amaze me. What started of as a simple searching tool for web pages, is probably the most sophisticated searching and indexing tool that we humans have ever come across. And its not stopping there !! &lt;a href="http://www.keyhole.com/"&gt;Keyhole&lt;/a&gt;, &lt;a href="http://www.orkut.com/"&gt;Orkut&lt;/a&gt;, &lt;a href="http://www.gmail.com/"&gt;GMail&lt;/a&gt;, &lt;a href="http://news.google.com/"&gt;Google News&lt;/a&gt; (to name a few) are few of its offerings to its users.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/google.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/245/2701/320/google.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;There are a lot of things i love about Google. They have changed the very idea of UI design. Most of us assume that a flashy UI with loads of graphics would attract users. Google seems to have proved it wrong!! Its probably the simplest UI design that i have seen. (It has worked so well that even Microsoft, (arguably) the best UI designer has decided to "copy" them in their &lt;a href="http://search.msn.com/"&gt;search engine&lt;/a&gt;).&lt;br /&gt;The other thing I like about Google is that most of their developments seem to be triggered by interest and experimentation, rather than for commercial purposes. Consider GMail; Who would have even had the thought of offering 1 GB of email space ? But the moment Google announced it, many email providers scaled their service to offer atleast 250 MB of email space (Though MS was slower than a snail in catching up!!). I do not think that GMail was developed primarily to serve Google's commercial interests. And the idea of content based advertisements totally rocks!! Its such a boon to advertisers; Their ads are now targeting the right audience (well... mostly) and the best part is that they pay rightly for it, rather than pay for some random number of meaningless hits on some other web page.&lt;br /&gt;A few interesting developments from Google that i have noticed :-&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;You can lookup definitions of terms on Google : try --- define robotics&lt;/li&gt;   &lt;li&gt;You can evaluate mathematical expressions on Google. : try --- sin(45) etc.&lt;/li&gt;   &lt;li&gt;Convert units in Google : try --- 15 miles in inches.&lt;/li&gt;   &lt;li&gt;Look at &lt;a href="http://labs.google.com/"&gt;labs.google.com&lt;/a&gt; for more ultra cool stuff from Google like &lt;span style="font-style: italic;"&gt;Google Suggest, Personalized Web Search &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Google Sets.&lt;/span&gt;&lt;/li&gt;  &lt;/ol&gt;I also happened to come across &lt;a href="http://www.googlism.com/"&gt;Googlism&lt;/a&gt; which is created and maintained by an Australian company. Its a pretty cool site which shows you all the information that Google knows about any person/place/date etc. Pretty cool eh ? If you are aware of any other cool tools from Google, please do post a comment about it.&lt;br /&gt;&lt;br /&gt;With all this said, there are few things that I dislike about Google !!  Firstly, Google doesn't categorize its searches. Search engines like &lt;a href="http://www.clusty.com"&gt;Clusty &lt;/a&gt;and &lt;a href="http://www.iboogie.com"&gt;iBoogie &lt;/a&gt;do this and I find it tremendously useful when I am looking up on stuff like "Artificial Intelligence" or "Compilers" etc.&lt;br /&gt;The other irritating part about Google's toolset is that its only supported for the Windows platform !! How could they do this ?? Considering the fact that almost all of Google's servers run Linux !! I know that Mozilla has its own Google Toolbar but wouldn't it be better if Google inherently supported it, and not just IE ? And why not a Google desktop search for Linux ? I am aware of &lt;a href="http://www.gnome.org/projects/beagle/"&gt;beagle&lt;/a&gt;, but I am still wondering why Google didnt do it?&lt;br /&gt;Last but not the least, what is Google India doing ?? You can use Google to search for places in the US (i.e &lt;a href="http://local.google.com/lochp"&gt;Google local&lt;/a&gt;) but it still doesnt have a local version for India!! I cant search for pubs in bangalore and expect a map and addresses, but searching for pubs in New York shows Local results with a map !!&lt;br /&gt;&lt;br /&gt;Guess what !! I am listed on Google !! Seriously !! I was searching for my name (Chirdeep Shetty) on Google and the very first result is a link to my blog !! On the same result page, if you notice the 7th result, its a link to &lt;a href="http://bogusgenius.blogspot.com/"&gt;Anirudh's blog&lt;/a&gt; (listed here only coz my name appears in his blog). So now you know what to do to get your site/blog to be listed on Google :-)&lt;br /&gt;And finally, If you have the time, do check out this &lt;a href="http://oak.psych.gatech.edu/%7Eepic/ols-master.html"&gt;flash presentation&lt;/a&gt; on the future of Google. Its quite interesting.&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110727907761867728?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110727907761867728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110727907761867728' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110727907761867728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110727907761867728'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/02/google.html' title='Google'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110658778177064453</id><published>2005-01-24T22:54:00.000+05:30</published><updated>2005-01-24T23:11:32.156+05:30</updated><title type='text'>The Power of 1</title><content type='html'>&lt;div align="justify"&gt;Has ‘1’ lost its significance in today’s world? Who cares about 1 rupee today, when people are earning hundreds of thousands of rupees!! Do we even care about 1 second in this fast paced world? What difference can 1 person make to the way we live/ do things? The Answer ---- NO, I don’t think ‘1’ has lost its significance! Let me explain…&lt;br /&gt;I have been tracking shares of Pentasoft Technologies for about a month now (The financial results of the company suck, but the share price seems to be rising due to the trading volume). Last month it was priced at 2.65 Rs./ share. Today it is at 3.70 Rs./share. How does this matter? Well, consider you had bought 10000 shares last month, investing 26500 Rs. Today, it would fetch you 37000 Rs!! ( I do agree that it is a risky proposition, but that’s not the point I am trying to make here). Do you see the significance of 1 rupee?? This is what stock markets teach you --- Every rupee counts.&lt;br /&gt;Have you ever had to wait at a traffic junction for the lights to turn green? Do you remember looking at the timer impatiently, as it was ticking every second? We don’t realize how 8 hours go by at work, or for that matter, how 4 years pass by at college. But every second at a traffic signal brings down our patience exponentially!!&lt;br /&gt;Can 1 person really make a significant difference to our world? Think again! How many developers did it take to write the first Linux kernel? Do you realize the support for the kernel today? Numerous devices from PDAs to PCs, from wrist watches to supercomputers run Linux. Some of the worlds largest companies like Google, IBM, Hp, Motorola (ThoughtWorks??) etc run their businesses on Linux.&lt;br /&gt;&lt;br /&gt;The message that I am trying to convey is that ‘1’ is still significant in today’s world and will continue to be so in the future. One person can definitely make a significant difference. It’s up to you – give up, or accept the challenge.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Quoting M.K. Gandhi&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;em&gt;First they ignore you, then they laugh at you, then they fight you, then you win.&lt;/em&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110658778177064453?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110658778177064453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110658778177064453' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110658778177064453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110658778177064453'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/01/power-of-1.html' title='The Power of 1'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110605189643287008</id><published>2005-01-18T18:08:00.000+05:30</published><updated>2005-01-18T19:31:43.216+05:30</updated><title type='text'>Mullainagiri Trek</title><content type='html'>&lt;div style="text-align: center;"&gt; &lt;div style="text-align: justify;"&gt; &lt;/div&gt; &lt;div style="text-align: justify;"&gt;I had been on a weekend trek to Mullainigiri with a few colleagues from TWI. We had loads of fun on the trek -- exploring caves (with bats in them !!), hitching a ride on the roof of a bus, etc. On the first day, we began the trek at Mullainagiri. It was a relatively short trek and we were at the peak after about two and a half hours of trekking. We enjoyed the breathtaking views from the peak and then began exploring the caves near the peak. We went about 30 ft into these caves and found loads of bats (hanging upside down ofcourse !!) in them. This was our cue to get the hell out of there.&lt;br /&gt;After having lunch at Mullainigiri, we began the second part of the trek to Bababudainagiri. It was pretty good initially, but then we had to walk about 5-6 kms, which was pretty tiring (considering we had climbed Karnataka's highest peak in the morning !!). We then took a jeep back to Mullainagiri. (It was a pretty adventurous ride, with a couple of punctures on the way !!). You can view the snaps here -- 1) &lt;a href="http://http//pg.photos.yahoo.com/ph/chirdeep_s/album?.dir=530d&amp;.src=ph&amp;amp;store=&amp;prodid=&amp;amp;.done=http%3a//pg.photos.yahoo.com/ph/chirdeep_s/my_photos"&gt;My camera&lt;/a&gt; , 2) &lt;a href="http://http//pg.photos.yahoo.com/ph/chirdeep_s/album?.dir=479f&amp;.src=ph&amp;amp;store=&amp;prodid=&amp;amp;.done=http%3a//pg.photos.yahoo.com/ph/chirdeep_s/my_photos"&gt;Sumukh's camera&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/IMG_0138.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/245/2701/320/IMG_0138.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Sunset at Kemmangundi&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;div style="text-align: left;"&gt; &lt;div style="text-align: justify;"&gt;The next day, we hired a Tata Sumo and went to kalathagiri falls. At first, it was disheartening to see the falls (it was like tap water falling), until we figured out that the actual water fall was further up. The water was freezing cold and there was a natural water slide too. We had a ball of a time going down the slide. After spending a few hours playing in the water we headed down to Kemmangundi. This place is definitely not a trekker's delight, but is a wonderful place to check out the sunset. We then returned to the Chikkamagalur bus stand and boarded the bus back to bangalore.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110605189643287008?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110605189643287008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110605189643287008' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110605189643287008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110605189643287008'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/01/mullainagiri-trek.html' title='Mullainagiri Trek'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110538103941499143</id><published>2005-01-10T23:43:00.000+05:30</published><updated>2005-01-10T23:47:19.413+05:30</updated><title type='text'>Semantic Diff</title><content type='html'>  &lt;p style="text-align: justify;" class="MsoNormal"&gt;Hari and I happened to read an article on Martin’s blog about &lt;a href="http://martinfowler.com/bliki/SemanticDiff.html"&gt;Semantic diff&lt;/a&gt;. It talks about a smart diff utility that not only displays the difference between the two files, but also the refactoring changes that have been implemented. Traditional file diff utilities display the changes that have occurred in each line, given two source files. They do this because they treat both the source files as simple text files. But is this really the way to do it? Are source files just simple text files?&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;We don’t think so. We believe that source files should be treated as a stream of tokens / blocks. Consider a Java source file; The package declaration, Import statements, comments would be separate blocks. A Class/Interface definition would be a block which could contain other blocks like inner classes, methods and member declarations. Now the diff utility needs to compare the different blocks that it has identified. The order of these blocks would not be important. For example, a developer may choose to rearrange classes or methods inside classes. A traditional diff utility would show a thousand differences between the two versions, but a good diff utility would identify it as cosmetic changes to the source.&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;It doesn’t end here. A really smart diff program should also show you refactoring changes like method extraction. It should be able to predict that a new method has been extracted out of an existing method and also display the locations where this refactoring has been applied. Such a diff utility would be a boon to developers.&lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;We are trying to develop a program which performs a few of the above mentioned ideas. It seems to be an extremely challenging task. We are making very slow progress with it, but progress nevertheless. Any help with this is more than welcome. &lt;/p&gt; &lt;div style="text-align: justify;"&gt;  &lt;/div&gt; &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110538103941499143?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110538103941499143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110538103941499143' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110538103941499143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110538103941499143'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/01/semantic-diff.html' title='Semantic Diff'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110484805102567572</id><published>2005-01-04T19:44:00.000+05:30</published><updated>2005-01-10T19:55:04.130+05:30</updated><title type='text'>Lazy Loading</title><content type='html'>&lt;div align="justify"&gt;I am currently on a project that deals with Leases and Loans. It’s a really big project with about 60 people working on it. The customer would use this product to create thousands of organizations, leases, loans etc. and millions of assets, payments, charges etc. Going by the scale of the application, it should be apparent that performance would be a bottleneck. Yes it is !!&lt;br /&gt;One of the most complicated screens in the application is the LeaseSchedule Screen. It contains 14 tabs and more than a hundred widgets. With all the SQL queries optimized, it still takes about 13 seconds just to bring up the screen !! The analysts want the screen to be loaded within 5 seconds. Now that’s asking for too much, right?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;Hari, Saket and I decided to work on this card. Looking at the server console, we found out that it took 4 seconds to execute one main query where it creates the screen’s model. We concluded that we needed to tame this beast. Looking at the code, we saw that the screen initializes the model and then draws the GUI, populating the widgets with the data obtained from the model. Seems normal eh?&lt;br /&gt;Well, we didn’t think so. We wanted to render the GUI independent of the model. This is where the idea of&lt;strong&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;lazy loading&lt;/span&gt;&lt;/strong&gt; came in. Firstly, we removed the use of the model in all the UI methods. We then initialized all the dependant models separately and collated them into a separate thread. Now, the UI would render separately and at the same time, the models would be created in another thread. With these changes the screen now loads in 2 seconds !! It actually loads in 3 stages which is clearly visible. &lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;The GUI is rendered with all the widgets, without any data.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The data obtained from the model is populated into these widgets.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The security features are applied to every widget.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;The total time taken for the screen to be usable is still over 10 seconds, but the UI is rendered within 2 seconds. The user can now get to see the screen immediately, instead of waiting hopelessly without any visible response to the mouse/key events. I strongly recommend this approach for screens which need to display a lot of data.&lt;br /&gt;But then came the final twist. We spoke to the client, telling him about the what we had achieved. He was very much impressed, but asked us not to implement this feature as of now, coz he perceived quite a few bugs to creep in due to these changes. Since we are very close to the end of the release, he told us that this would not be the appropriate time to incorporate these changes. We were told to document the approach, and probably implement it in the beginning of the next release.&lt;br /&gt;After doing all this, it’s disheartening to revert all the changes. But I did learn quite a lot while doing this. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110484805102567572?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110484805102567572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110484805102567572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110484805102567572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110484805102567572'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/01/lazy-loading.html' title='Lazy Loading'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9236232.post-110468337150506223</id><published>2005-01-02T21:59:00.000+05:30</published><updated>2005-01-02T22:42:22.923+05:30</updated><title type='text'>Happy New Year</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://photos1.blogger.com/img/245/2701/640/2.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/245/2701/320/2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;A rose from my neighbour's garden.&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;First and foremost... Wish you all a Happy and Prosperous New Year. Well, I am back to blogging. I used to blog at &lt;a href="http://www.livejournal.com"&gt;LiveJournal&lt;/a&gt; before, but I discontinued it coz I was bored of it. So that brings us to the obvious question -- what's this blog gonna be about ?&lt;/div&gt;&lt;div align="justify"&gt;Well, I really dunno what I am gonna post out here. I guess it would be about my crazy ideas, programming, 3D games, my new interests, stocks/shares and ways of making money :-) , photography , blah, blah ...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9236232-110468337150506223?l=chirdeepshetty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chirdeepshetty.blogspot.com/feeds/110468337150506223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9236232&amp;postID=110468337150506223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110468337150506223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9236232/posts/default/110468337150506223'/><link rel='alternate' type='text/html' href='http://chirdeepshetty.blogspot.com/2005/01/happy-new-year.html' title='Happy New Year'/><author><name>Chirdeep Shetty</name><uri>http://www.blogger.com/profile/14381505283745664367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://chirdeepshetty.net/chirdeep.jpg'/></author><thr:total>0</thr:total></entry></feed>
