<?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-10278333</id><updated>2012-01-05T13:42:40.369-08:00</updated><title type='text'>Play@Work</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10278333.post-114838929462799594</id><published>2006-05-23T05:55:00.000-07:00</published><updated>2006-05-23T06:01:34.643-07:00</updated><title type='text'>Sahi sahi</title><content type='html'>... and let the &lt;a href="http://sahi.sourceforge.net/sahi_tutorial.html"&gt;flash demo&lt;/a&gt; do the talking&lt;br /&gt;&lt;br /&gt;ps: although my arm was twisted to blog about this, I think its one super demo of &lt;a href="http://sahi.sourceforge.net/"&gt;Sahi&lt;/a&gt; (an automation and testing tool for web apps). Awesome work &lt;a href="http://narayanraman.blogspot.com/"&gt;Narayan&lt;/a&gt; !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-114838929462799594?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/114838929462799594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=114838929462799594' title='379 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/114838929462799594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/114838929462799594'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2006/05/sahi-sahi.html' title='Sahi sahi'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>379</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-112168655495030173</id><published>2005-07-18T04:34:00.000-07:00</published><updated>2005-07-18T04:35:54.956-07:00</updated><title type='text'>What is faster - LinkedList of ArrayList?</title><content type='html'>&lt;a href="http://www.javaspecialists.co.za/archive/Issue111.html"&gt;What is faster - LinkedList of ArrayList ?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://www.javaspecialists.co.za/archive/archive.html"&gt;this link&lt;/a&gt; for more Java Specialists' NewsLetters&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-112168655495030173?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/112168655495030173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=112168655495030173' title='78 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/112168655495030173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/112168655495030173'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/07/what-is-faster-linkedlist-of-arraylist.html' title='What is faster - LinkedList of ArrayList?'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>78</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-112021297699111812</id><published>2005-06-30T22:28:00.000-07:00</published><updated>2005-07-01T03:17:22.610-07:00</updated><title type='text'>Going from Red to Green</title><content type='html'>Damn ..&lt;br /&gt;&lt;br /&gt;Whenever you come across a bug, write a test that will reproduce that bug first.&lt;br /&gt;Before you start writing one line of code to fix it make sure there is this failing test which will capture the scenario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Turnaround time is much faster. You can see immediately what your code is doing. The "fix-build-start app-verify fix" is just a "run test" now. Much much faster.&lt;/span&gt; &lt;br /&gt;&lt;span style="font-style: italic;"&gt;- The test(s) document the bug.&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;- No chance of the bug reappearing. &lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;- No question of laziness and not writing a test once the fix is in place. Sometimes writing unit tests is not that easy and like all good things in life, its easy to say "aww .. Let me skip writing a test this one time .. it can never break anyways"&lt;/span&gt; &lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Going Test First tends to make your code better(generalizing I know)&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;- Writing a test after the fix, sometimes, does not catch some of the obscure scenarios that you fixed using some weird logic in the code.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  Been bitten by this more than once.&lt;br /&gt;Damn, its so easy to convince your self that you will go for that jog tomorrow .. umm I mean .. write that test later ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-112021297699111812?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/112021297699111812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=112021297699111812' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/112021297699111812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/112021297699111812'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/07/going-from-red-to-green.html' title='Going from Red to Green'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111962640898006454</id><published>2005-06-24T08:19:00.000-07:00</published><updated>2005-06-24T08:20:08.986-07:00</updated><title type='text'>checking out RSS Mojo...</title><content type='html'>&lt;a href="http://photos15.flickr.com/21289544_8828086582_o.jpg"&gt;&lt;img src="http://photos15.flickr.com/21289544_8828086582_m.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;My Rojo Page with a few things that I liked highlighted.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Totally fed up with having to read blogs only on the Laptop and that too on Windows.&lt;br /&gt;So If I wanted to read blogs I had to have my laptop and had to have booted into windows.&lt;br /&gt;Soooo ... was looking for a web enabled Blog aggregator.&lt;br /&gt;&lt;br /&gt;came across &lt;a href="http://rojo.com/"&gt;Rojo (RSS Mojo)&lt;/a&gt;&lt;br /&gt;Nice UI. Decent Features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111962640898006454?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111962640898006454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111962640898006454' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111962640898006454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111962640898006454'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/checking-out-rss-mojo.html' title='checking out RSS Mojo...'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111945689604515763</id><published>2005-06-22T09:14:00.000-07:00</published><updated>2005-06-22T09:14:56.060-07:00</updated><title type='text'>Checking out ...</title><content type='html'>&lt;br /&gt;&lt;a href="http://rojo.com/"&gt;&lt;img src="http://www.rojo.com/skins/www.rojonetworks.com/images/wiki-head-gray.gif" title="Rojo.. Click me .. click me .. Ill take U there .. I promise" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;am on the Lookout for a nice web based Blog Aggregator/Reader. Some how I donot like &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;. I find their UI too cramped (reminds me &lt;a href="http://www.altavista.com/"&gt;Altavista.com&lt;/a&gt; in the older days [BTW check out Altavista.com, the UI has changed. Looks exactly like another search engine, cant think of which ... ;-) ]).&lt;br /&gt;&lt;br /&gt;Stumbled upon &lt;a href="http://rojo.com/"&gt;Rojo &lt;/a&gt; (RSS Mojo). The UI looks pretty decent. But still ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111945689604515763?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111945689604515763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111945689604515763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111945689604515763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111945689604515763'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/checking-out.html' title='Checking out ...'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111920737499404603</id><published>2005-06-19T11:53:00.000-07:00</published><updated>2005-06-19T11:56:15.006-07:00</updated><title type='text'>Linux Kernel Development</title><content type='html'>Was killing some time in Landmark recently.&lt;br /&gt;&lt;br /&gt;Wow. Now thats a book store. Awesome variety of Books. Awesome. Wanted to pick up tons of books, but my &lt;span style="font-style: italic;"&gt;to-read-stack&lt;/span&gt; has already hit the ceiling.&lt;br /&gt;&lt;br /&gt;But could not resist picking up this book&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 113px; height: 146px;" src="http://images.barnesandnoble.com.edgesuite.net/images/9440000/9443856.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Linux Kernel Development - Robert Love  &lt;/span&gt;&lt;span style="font-style: italic;"&gt;(this dude is a Kernel Hacker at Novell.)&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Interesting read (am currently in the Third Chapter). So far its been a pretty easy read. The concepts are clearly explained and his examples kinda hit the spot. And no obscure code sprinkled all over the book. (&lt;span style="font-style: italic;"&gt;Did you know that a 'nice' value for a process is used to determine how 'nice' that process is to other processes. So basically a higher 'nice' value basically means thats its a lower priority process and it gets a smaller time slice or another process might get selected over it whilescheduling &lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Wish we had this as our text book in the Final Year instead of "Linux Kernel Internals"&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 104px; height: 144px;" src="http://www.elx.com.au/images/products/reg/0201331438.jpg.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Although &lt;span style="font-weight: bold;"&gt;Linux Kernel Internals &lt;/span&gt;is a pretty neat book, not in the context of an education system which expects you to reproduce the Linux kernel code which was there in the book, in the exam !! Aggghhh ... I still remember studying for that paper. Most common thought was 'what the hell is this piece of code doing here ??'. &lt;br /&gt;&lt;br /&gt;Such a bad introduction to such a lovely subject. Sigh.&lt;br /&gt;&lt;br /&gt;[a side note] Fedora core 4 has been released. Waiting to download it so that I can check it out.&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111920737499404603?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111920737499404603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111920737499404603' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111920737499404603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111920737499404603'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/linux-kernel-development.html' title='Linux Kernel Development'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111895286848418041</id><published>2005-06-16T13:14:00.000-07:00</published><updated>2005-06-16T13:14:28.510-07:00</updated><title type='text'>w.blogger</title><content type='html'>&lt;br /&gt;&lt;img src="http://www.wbloggar.com/images/wb-tools.png" title="w.Blogger" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jroller.com/page/avisheksengupta"&gt;the_next_iteration&lt;/a&gt; pointed me to w.blogger&lt;br /&gt;pretty neat.&lt;br /&gt;&lt;br /&gt;But then desktop apps is not the way to go. &lt;br /&gt;Although I am using &lt;a href="http://www.wbloggar.com/"&gt;w.blogger&lt;/a&gt; to post this entry, I would not bother installing it on the next machine from which I am going to be posting an entry. Web enabled man .. get web enabled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111895286848418041?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111895286848418041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111895286848418041' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111895286848418041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111895286848418041'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/wblogger.html' title='w.blogger'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111856309732889988</id><published>2005-06-12T00:44:00.000-07:00</published><updated>2005-06-12T00:58:17.333-07:00</updated><title type='text'>An Experiment</title><content type='html'>&lt;a href="http://www.livejournal.com/users/rohan_kini/21935.html"&gt;My New experiment (do .. Drink n Code)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.thecandlestick.com/images/store/beer_mug.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;disclaimer: What I do/talk/experiment/opinionize does not reflect my current employer or my colleagues. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111856309732889988?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111856309732889988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111856309732889988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111856309732889988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111856309732889988'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/experiment.html' title='An Experiment'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111856132268763323</id><published>2005-06-12T00:26:00.000-07:00</published><updated>2005-06-12T00:28:42.693-07:00</updated><title type='text'>Desktop Goodies</title><content type='html'>I wanted to do some more reading before &lt;a href="http://www.roshni.blogspot.com/"&gt;Chiaroscuro&lt;/a&gt; blogs about it. :-)&lt;br /&gt;Found some nice eye kandy for the Windows desktop yesterday.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://www.stardock.com/products/objectdock/"&gt;Object Dock&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stardock.com/products/objectdock/"&gt;&lt;img style="width: 202px; height: 151px;" src="http://www.stardock.com/products/objectdock/MediaGuide/index.6.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You get an awesome macOS like bar (&lt;a href="http://www.skizz.biz/"&gt;Skizz&lt;/a&gt; keeps showing off his Mac, atleast I have that Bar thingie on my laptop ;-)) . Maybe Wannabe .. but all the same damn Damn neat.&lt;br /&gt;&lt;br /&gt;So playing around some more I came across &lt;a href="http://www.dockex.com/"&gt;Dock Extensions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dockex.com/"&gt;&lt;img style="width: 151px; height: 50px;" src="http://www.dockex.com/images/layout/header/header.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here you can pick up some Docklets (some of them are awesome) and using the SDK you can make your own. :-).&lt;br /&gt;&lt;br /&gt;And then I found&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/Avedesk.shtml"&gt;&lt;img style="width: 294px; height: 113px;" src="http://mpj.tomaatnet.nl/header.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wow !!&lt;br /&gt;&lt;br /&gt;and of course there is &lt;a href="http://www.konfabulator.com/"&gt;Konfabulator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.konfabulator.com/"&gt;&lt;img src="http://www.widgetgallery.com/chits/36607-chit.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some serious Desktop makeover can happen with this combo !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111856132268763323?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111856132268763323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111856132268763323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111856132268763323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111856132268763323'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/desktop-goodies.html' title='Desktop Goodies'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111825458777565792</id><published>2005-06-08T11:13:00.000-07:00</published><updated>2005-06-08T11:17:13.893-07:00</updated><title type='text'>all ye Mac Lovers ... check this out</title><content type='html'>&lt;a href="http://hostingproject.info/Zilos/googlex/"&gt;&lt;img style="width: 291px; height: 163px;" src="http://photos13.flickr.com/18214412_78fc065e42.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;     &lt;br /&gt;                                Check this out ...       &lt;a href="http://hostingproject.info/Zilos/googlex/"&gt;Google ala Mac &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111825458777565792?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111825458777565792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111825458777565792' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111825458777565792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111825458777565792'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/all-ye-mac-lovers-check-this-out.html' title='all ye Mac Lovers ... check this out'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111804356689709767</id><published>2005-06-06T00:33:00.000-07:00</published><updated>2005-06-06T00:39:26.900-07:00</updated><title type='text'>The Birth of a 'Manager'</title><content type='html'>Just thought of something.&lt;br /&gt;&lt;br /&gt;As a company grows, beyond a certain point facilitators with a role of a manager metamorphise  into 'Managers'. With all the negative connotations attached.&lt;br /&gt;&lt;br /&gt;just a thought, no concrete evidence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111804356689709767?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111804356689709767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111804356689709767' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111804356689709767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111804356689709767'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/birth-of-manager.html' title='The Birth of a &apos;Manager&apos;'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111756636253610510</id><published>2005-05-31T11:53:00.000-07:00</published><updated>2005-05-31T12:06:02.546-07:00</updated><title type='text'>JUnit 4 ?</title><content type='html'>&lt;img src="http://www.junit.org/images/frogMov.gif" alt="Croak !!!" /&gt;&lt;br /&gt;&lt;br /&gt;Just came across &lt;a href="http://www.rojotek.com/blog/rob/archives/000076.html"&gt;this &lt;/a&gt;blog entry. Looks like JUnit 4 is on its way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111756636253610510?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111756636253610510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111756636253610510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111756636253610510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111756636253610510'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/06/junit-4.html' title='JUnit 4 ?'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111661352351096976</id><published>2005-05-20T11:05:00.001-07:00</published><updated>2005-05-20T11:41:12.413-07:00</updated><title type='text'>go del.icio.us .. go</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;a href="http://del.icio.us/"&gt;&lt;img src="http://del.icio.us/img/delicious.gif" /&gt; &lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;" class="delBannerText"&gt;&lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="delBannerText"&gt;The power of a simple service.&lt;br /&gt;&lt;br /&gt;Gmail, Ruby on Rails, Blogging ... all these innovative ideas are taking the world by storm.&lt;br /&gt;For some reason this(del.icio.us) simple yet powerful concept has not yet taken the (net) world by storm. I guess its just waiting for some tipping point.&lt;br /&gt;&lt;br /&gt;Having your book marks online is a big deal. It not only makes life easier, but also tells the world what nugget you found on the net today. What link you have squirreled away with the feeling that this might be useful. If you think about it, thats amazing. I would love to know what interesting things my friends have found today. A very simple concept and very powerful at the same time.&lt;br /&gt;&lt;br /&gt;Besides there are &lt;a href="http://www.kriskrug.com/?p=276"&gt;tons of tools&lt;/a&gt; that are building up around del.icio.us to make maximum use of it.&lt;br /&gt;Trying to see if I can think up of anything useful I can do with it. Like a ticker or something.&lt;br /&gt;&lt;br /&gt;And if you think bookmarking is a pain. Well there are some &lt;a href="http://playatwork.blogspot.com/2005/01/delicious.html"&gt;awesome extensions&lt;/a&gt; that you get with FireFox which make book marking a page onto del.icio.us even easier.&lt;br /&gt;&lt;br /&gt;So go check out del.icio.us today !!!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111661352351096976?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111661352351096976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111661352351096976' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111661352351096976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111661352351096976'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/05/go-delicious-go.html' title='go del.icio.us .. go'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111644127430750930</id><published>2005-05-18T11:33:00.000-07:00</published><updated>2005-05-18T11:36:25.303-07:00</updated><title type='text'>Eeek !!! An Ugly piece of Code</title><content type='html'>Interesting thought on when to refactor. Check it out &lt;a href="http://www.weiqigao.com/blog/2005/05/17/does_it_work.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111644127430750930?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111644127430750930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111644127430750930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111644127430750930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111644127430750930'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/05/eeek-ugly-piece-of-code.html' title='Eeek !!! An Ugly piece of Code'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111616428609317946</id><published>2005-05-15T06:36:00.000-07:00</published><updated>2005-05-15T06:38:06.096-07:00</updated><title type='text'>A Marathon of an experience</title><content type='html'>Ran the Half Marathon in Bangalore recently.&lt;br /&gt;It was a pretty &lt;a href="http://www.livejournal.com/users/rohan_kini/16812.html"&gt;mind blowing experience&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111616428609317946?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111616428609317946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111616428609317946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111616428609317946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111616428609317946'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/05/marathon-of-experience.html' title='A Marathon of an experience'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111372650753802237</id><published>2005-04-17T01:25:00.000-07:00</published><updated>2005-04-17T01:28:27.540-07:00</updated><title type='text'>Interresting !!!</title><content type='html'>stumbled upon &lt;a href="http://www.ladyada.net/index.html"&gt;this  &lt;/a&gt;site while surfin. Found it pretty interesting.&lt;br /&gt;&lt;br /&gt;Check this out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ladyada.net/make/minty/index.html"&gt;&lt;img style="width: 112px; height: 105px;" src="http://www.ladyada.net/portfolio/2004/minty.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;want to build one, but need to find someone who knows more about electronics. I know zilch.&lt;br /&gt;&lt;br /&gt;More interesting projects by the same person &lt;a href="http://www.ladyada.net/make/index.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Really creative stuff !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111372650753802237?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111372650753802237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111372650753802237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111372650753802237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111372650753802237'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/interresting.html' title='Interresting !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111288417740221962</id><published>2005-04-07T07:15:00.000-07:00</published><updated>2005-04-07T07:29:37.403-07:00</updated><title type='text'>Chizzle - a Ruby IDE</title><content type='html'>a brand new Ruby IDE getting &lt;a href="http://www.onemanswalk.com/wiki/edit/ChizzleProject"&gt;Chizzled&lt;/a&gt; out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111288417740221962?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111288417740221962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111288417740221962' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111288417740221962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111288417740221962'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/chizzle-ruby-ide.html' title='Chizzle - a Ruby IDE'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111281819673215992</id><published>2005-04-06T13:06:00.000-07:00</published><updated>2005-04-06T13:09:56.733-07:00</updated><title type='text'>43 Things</title><content type='html'>&lt;a href="http://www.43things.com/people/view/rohan_kini"&gt;&lt;img src="http://www.43things.com/images/nav/logo.gif" /&gt;&lt;/a&gt; &lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;br /&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/10278333-111281819673215992?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111281819673215992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111281819673215992' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111281819673215992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111281819673215992'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/43-things.html' title='43 Things'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111276767515451280</id><published>2005-04-05T23:06:00.000-07:00</published><updated>2005-04-05T23:07:55.156-07:00</updated><title type='text'>Google maps - getting real</title><content type='html'>Check out the "Satellite" link on &lt;a href="http://maps.google.com/"&gt;GoogleMaps&lt;/a&gt;&lt;br /&gt;Very cool&lt;br /&gt;I wonder when Bangalore will be mapped.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111276767515451280?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111276767515451280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111276767515451280' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111276767515451280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111276767515451280'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/google-maps-getting-real.html' title='Google maps - getting real'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111260616579282471</id><published>2005-04-04T02:12:00.000-07:00</published><updated>2005-04-04T02:19:45.316-07:00</updated><title type='text'>JExamples</title><content type='html'>Confused about how to use some Java API ... Or want to see how it is used in some Open Source code .. check out &lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.jexamples.com/"&gt;&lt;img src="http://www.jexamples.com/JExamplesLogoTiny.gif" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111260616579282471?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111260616579282471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111260616579282471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111260616579282471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111260616579282471'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/jexamples.html' title='JExamples'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111254621695014988</id><published>2005-04-03T09:17:00.000-07:00</published><updated>2005-04-03T09:40:31.526-07:00</updated><title type='text'>Hackers and Painters</title><content type='html'>&lt;a href="http://www.paulgraham.com/hackpaint.html"&gt;&lt;img src="http://store1.yimg.com/I/paulgraham_1836_4232284" alt="looser !! :-) " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A must read. Thats all I can say. I havent yet finished the book, but some of the chapters are awesome.&lt;br /&gt;&lt;br /&gt;I found a common thread in some of the chapters. &lt;a href="http://www.paulgraham.com/"&gt;Paul Graham&lt;/a&gt; speaks about things/qualities/processes et al that makes a Start-Up an awesome place to work in. At many such points in the book, I would think "hey this is so much like what we have or do at ThoughtWorks". I didnt feel like stopping to think about these things as the book is definitely a page turner. But I definitely want to read this book again and match up what Paul says are good to what we have at &lt;a href="http://www.thoughtworks.com/"&gt;ThoughtWorks.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ps: Thanx to &lt;a href="http://www.cantspellathing.blogspot.com/"&gt;KC&lt;/a&gt; who promptly replied to my previous post and lent me his copy of this book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111254621695014988?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111254621695014988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111254621695014988' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111254621695014988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111254621695014988'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/04/hackers-and-painters.html' title='Hackers and Painters'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111199946250393274</id><published>2005-03-28T00:39:00.000-08:00</published><updated>2005-03-28T00:44:22.506-08:00</updated><title type='text'>Free as in Freedom</title><content type='html'>&lt;a href="http://www.oreilly.com/openbook/freedom/"&gt;&lt;img src="http://www.oreilly.com/catalog/covers/freedom.s.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Awesome ..&lt;br /&gt;&lt;br /&gt;A must read. It was one of those books that I just read from end to end without a stop.&lt;br /&gt;Basically about why Richard Stallman is so passionate about his FSF Foundation. What I loved in this book were the brief moments when RMS speaks about his passion for writing software.&lt;br /&gt;&lt;br /&gt;Clicking on the pic should give you a softcopy of the book.&lt;br /&gt;&lt;br /&gt;I have the book, so interested people can pick it up from me :-)&lt;br /&gt;&lt;br /&gt;Now looking to read &lt;a href="http://www.paulgraham.com/hackpaint.html"&gt;"Hackers and Painters".&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111199946250393274?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111199946250393274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111199946250393274' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111199946250393274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111199946250393274'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/free-as-in-freedom.html' title='Free as in Freedom'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111173165280286973</id><published>2005-03-24T22:12:00.000-08:00</published><updated>2005-03-24T22:49:30.186-08:00</updated><title type='text'>Team Size while doing XP</title><content type='html'>Todays &lt;a href="http://c2.com/cgi/wiki?StandUpMeeting"&gt;Standup&lt;/a&gt; was awesome. Since it was an optional holiday, there were just 2.5 dev &lt;a href="http://c2.com/cgi/wiki?PairProgramming"&gt;pairs&lt;/a&gt; :-) and 3 BAs/QAs and the Standup got over really fast and I felt it was more meaningful. The standup was clean and crisp.&lt;br /&gt;&lt;br /&gt;Being on a huge project, our team has around 7 dev pairs and 6 other people playing different &lt;a href="http://c2.com/cgi/wiki?ExtremeRoles"&gt;roles.&lt;/a&gt; So the standups last for upto 10 mins and frankly I get damn bored and I shut off after sometime.&lt;br /&gt;&lt;br /&gt;I feel it makes sense to break huge teams into smaller teams just to experience what I just experienced today !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111173165280286973?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111173165280286973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111173165280286973' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111173165280286973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111173165280286973'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/team-size-while-doing-xp.html' title='Team Size while doing XP'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111164099200890988</id><published>2005-03-23T21:09:00.000-08:00</published><updated>2005-03-23T21:09:52.010-08:00</updated><title type='text'>easy Gentoo Install</title><content type='html'>Hehe. Check this &lt;a href="http://eminor.antrix.net/2005/03/13/easy-gentoo-install/"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111164099200890988?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111164099200890988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111164099200890988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111164099200890988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111164099200890988'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/easy-gentoo-install.html' title='easy Gentoo Install'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111150803234511914</id><published>2005-03-22T08:13:00.000-08:00</published><updated>2005-03-22T08:13:52.346-08:00</updated><title type='text'>For firefox users</title><content type='html'>Check this out.&lt;br /&gt;&lt;a href="http://www.customizegoogle.com/"&gt;Customize Google&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111150803234511914?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111150803234511914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111150803234511914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111150803234511914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111150803234511914'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/for-firefox-users.html' title='For firefox users'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111146236764754192</id><published>2005-03-21T19:31:00.000-08:00</published><updated>2005-03-21T19:32:47.653-08:00</updated><title type='text'>Move over Godzilla .. here comes PodZilla !!!</title><content type='html'>&lt;a href="http://www.ipodlinux.org/Podzilla"&gt;This &lt;/a&gt;is so awesome. I feel like picking up an iPod just for this.&lt;br&gt;&lt;br /&gt;Gabbar has installed PodZilla on his iPod. Its so damn cool to see the bootup info when the iPod is starting up.&lt;br&gt;&lt;br /&gt;&lt;img src="http://www.ipodlinux.org/images/thumb/f/f9/100px-Ipod_tux.jpg"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://www.ipodlinux.org/images/thumb/c/c5/200px-Ipodlinux_on_mini.jpg"&gt;&lt;br&gt;&lt;br /&gt;Tux on the iPod&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The kernel bootin up&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;I have an ARCHOS AV120. Its a pretty good player but has a totally clunky UI, so I have been searching on the net for some info on how I can build a small OS for this. So I was completely blown when I came to know about Podzilla. So looks like there is hope :-) &lt;br&gt;&lt;br /&gt;&lt;img src="http://audioholics.audioreview.com/Channels/AudioReview/images/products/product_278818.jpg"&gt;&lt;br&gt;&lt;br /&gt;My Archos AV120&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111146236764754192?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111146236764754192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111146236764754192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111146236764754192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111146236764754192'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/move-over-godzilla-here-comes-podzilla.html' title='Move over Godzilla .. here comes PodZilla !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111142031670141315</id><published>2005-03-21T07:37:00.000-08:00</published><updated>2005-03-21T07:51:56.703-08:00</updated><title type='text'>Object Boot Camp - Patterns ..</title><content type='html'>Object Boot Camp - Part 2 (Patterns) has started here at ThoughtWorks.  Planned for 3 weeks, 9am - 11 am... yaaawn .. who gets to work at 9 in the morning ?? :-)&lt;br /&gt;&lt;br /&gt;anyways. Im feeling damn lazy to chronicle this camp. Hoping some one else will keep his/her blog upto date with the day to day happenings/incidents at the Boot Camp. (if that happens I will update this page with a link to that kind souls page)&lt;br /&gt;&lt;br /&gt;All I can say is its pretty interesting. We get to practise 'accelerated' Extreme Programming :-). Basically we have a problem to solve and we completely drive the solution using tests, rotate pairs every 15 mins etc etc. And at the end of it someone projects his code onto a wall and we get to criticize it Hehe (evil laugh).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111142031670141315?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111142031670141315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111142031670141315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111142031670141315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111142031670141315'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/object-boot-camp-patterns.html' title='Object Boot Camp - Patterns ..'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111094966547325149</id><published>2005-03-15T21:06:00.000-08:00</published><updated>2005-03-15T21:07:45.473-08:00</updated><title type='text'>Trekking In Wayanad</title><content type='html'>Had been on a trek to Wayand last weekend with a few ThoughtWorkers. Snaps and write up &lt;a href="http://www.livejournal.com/users/rohan_kini/7216.html"&gt;here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111094966547325149?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111094966547325149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111094966547325149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111094966547325149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111094966547325149'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/trekking-in-wayanad.html' title='Trekking In Wayanad'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111088962925106454</id><published>2005-03-15T04:25:00.000-08:00</published><updated>2005-03-15T04:27:09.253-08:00</updated><title type='text'>Applying Verbs on Nouns !!</title><content type='html'>&lt;a href="http://naeblis.cx/rtomayko/2004/12/12/rest-to-my-wife"&gt;nice article&lt;/a&gt; which explains Polymorphism in a different way. (somewhere towards the middle of the article though)&lt;br /&gt;&lt;br /&gt;The article itself is a pretty interesting read.&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111088962925106454?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111088962925106454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111088962925106454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111088962925106454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111088962925106454'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/applying-verbs-on-nouns.html' title='Applying Verbs on Nouns !!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111088676241893586</id><published>2005-03-15T03:36:00.000-08:00</published><updated>2005-03-15T03:39:22.423-08:00</updated><title type='text'>scary interviews !!</title><content type='html'>"&lt;a href="http://today.java.net/pub/a/today/2004/05/04/interview.html"&gt;So you dont know what a static inner class is ?&lt;/a&gt;" -  tips to Technical Interviewing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111088676241893586?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111088676241893586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111088676241893586' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111088676241893586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111088676241893586'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/scary-interviews.html' title='scary interviews !!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111019996475889563</id><published>2005-03-07T04:49:00.000-08:00</published><updated>2005-03-07T04:55:07.223-08:00</updated><title type='text'>Head First Design Patterns</title><content type='html'>&lt;pre&gt;                    &lt;img src="http://www.oreilly.com/catalog/covers/hfdesignpat.s.gif" alt="where is the Image ??" /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Been meaning to pick this book up for quite some time.&lt;br /&gt;Must say its an interesting read.&lt;br /&gt;The usual "Head First" series kinda book - Lotsa figures, lotsa arrows all over the place, handwritten notes on the sidelines and the usual PJs. These guys have a whole new approach on how people should learn stuff. My kinda book :-)&lt;br /&gt;&lt;br /&gt;Easy and fun read, but at the same time pretty informative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111019996475889563?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111019996475889563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111019996475889563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111019996475889563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111019996475889563'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/head-first-design-patterns.html' title='Head First Design Patterns'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-111019972810160630</id><published>2005-03-05T20:45:00.000-08:00</published><updated>2005-03-07T04:49:29.973-08:00</updated><title type='text'>Java development With Ant.</title><content type='html'>Was lookin thru this book - "&lt;span style="font-style:italic;"&gt;Java development with Ant - Erik Hatcher, Steve Loughran&lt;/span&gt;". Pretty neat.&lt;br /&gt; &lt;img src="http://www.manning.com/catalog/images/hatcher_cover150.jpg" alt="duh !!" /&gt;&lt;br /&gt;Did you know what the full form of ANT is ??? - &lt;span style="font-weight:bold;"&gt;Another Neat Tool&lt;/span&gt; !!! &lt;br /&gt;&lt;br /&gt;Picked up a few things from the one chapter that I read.&lt;br /&gt;&lt;br /&gt;We can have one Build File per project. But then we can also break up the poject into sub-projects and have multiple build files for each sub-project.&lt;br /&gt;(one - many mapping)&lt;br /&gt;Project - multiple Targets&lt;br /&gt;Target - Multiple Tasks&lt;br /&gt;&lt;br /&gt;where Task is an actual reference to a Java class built into Ant that understands the parameters in the build file and can execute a particular task&lt;br /&gt;We can extend these tasks (or reuse others tasks). One of the main reasons why ANT is so powerful. And Java makes it platform independent.&lt;br /&gt;&lt;br /&gt;For &lt;javac&gt; (a task in ANT which compiles java code) task's Source Dependency checking to work, we must lay out the source in a directory tree matching the package declarations in the source.&lt;br /&gt;- So basically if ant is recompiling the java files everytime then maybe the project hierarchy is not rite ! (dependency checking of &lt;javac&gt; is limited to comparing the dates on the 2 files. So if it does not find the source files in the specified package as mentioned, then it just assumes that we dont have an up-to-date version of the compiled file.) Definitely not an issue with the IDEs that we use I guess. &lt;br /&gt;&lt;br /&gt;ant -projecthelp &lt;br /&gt; returns the various targets in a build file with the description of what they do if entered in the build file.&lt;br /&gt; &lt;br /&gt;There was also an section on how Cruise control uses ANT to do its stuff. Looked interesting, didnt check that out though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-111019972810160630?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/111019972810160630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=111019972810160630' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111019972810160630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/111019972810160630'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/java-development-with-ant.html' title='Java development With Ant.'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110991154990315197</id><published>2005-03-02T11:42:00.000-08:00</published><updated>2005-03-03T20:45:49.910-08:00</updated><title type='text'>checkin out Jakarta Commons - Collections</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Functors&lt;/span&gt;&lt;br /&gt;- one that performs an operation or a function&lt;br /&gt;- an object that encapsulates some functional logic&lt;br /&gt;eg - Comparator and Iterator&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;why ?&lt;br /&gt;&lt;/span&gt;code reuse&lt;br /&gt;cleaner design --&gt;  abstraction&lt;br /&gt;&lt;br /&gt;Functor interfaces available in commons:&lt;br /&gt;Predicate - evaluate criteria or conditions and returns a boolean&lt;br /&gt;Transformer - create a new object depending upon the input object&lt;br /&gt;Factory - Create objects&lt;br /&gt;Closure - act on input objects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Using Predicates&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;FilterIterator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Non destructive filtering. Basically you set up a filtering condition using a Predicate Object and just pass it to the FilterIterator and the iterator returns only those objects for which the predicate evalutes to a true. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public void testFilterIterator() {&lt;br /&gt;        ArrayList list = new ArrayList();&lt;br /&gt;        list.add("Hello");&lt;br /&gt;        list.add("Hello1");&lt;br /&gt;        list.add("Hello2");&lt;br /&gt;&lt;br /&gt;        FilterIterator filterIterator = new FilterIterator(list.iterator(), new FilterPredicate());&lt;br /&gt;&lt;br /&gt;        for (;filterIterator.hasNext();) {&lt;br /&gt;            String s = (String) filterIterator.next();&lt;br /&gt;            assertEquals("Hello", s); // only "Hello" is returned&lt;br /&gt;            assertEquals(3, list.size());  // non destructive filtering&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // the Predicate object. pretty simple&lt;br /&gt;    public class FilterPredicate implements Predicate {&lt;br /&gt; public boolean evaluate(Object o) {&lt;br /&gt;  return ((String) o).equals("Hello");&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;    &lt;br /&gt;    &lt;br /&gt;To update a collection with only those objects that match the predicate (destructive filtering) we can use CollectionUtils.filter()&lt;br /&gt;Building on the same test as before&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public void testDestructiveFilter() {&lt;br /&gt;        ArrayList list = setupList();&lt;br /&gt; assertEquals(3, list.size());&lt;br /&gt;        &lt;br /&gt; CollectionUtils.filter(list, new FilterPredicate());&lt;br /&gt;        assertEquals(1, list.size()); // other objects in list are stripped off &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Similarly if we want to do a non destructive filtering.&lt;br /&gt;    &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public void testNonDestructiveFilterWhichMatches() {&lt;br /&gt;        ArrayList list = setupList();&lt;br /&gt;&lt;br /&gt; // the select() keeps only those objects that evaluate to a 'true'&lt;br /&gt;        Collection newCollection = CollectionUtils.select(list, new FilterPredicate());&lt;br /&gt;        assertEquals(3, list.size());&lt;br /&gt;        assertEquals(1, newCollection.size());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testNonDestructiveFilterWhichDoesNotMatches() {&lt;br /&gt;        ArrayList list = setupList();&lt;br /&gt; &lt;br /&gt; // I guess U know what this means by now :)&lt;br /&gt;        Collection newCollection = CollectionUtils.selectRejected(list, new FilterPredicate());&lt;br /&gt;        assertEquals(3, list.size());&lt;br /&gt;        assertEquals(2, newCollection.size());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;using a Transformer&lt;br /&gt;&lt;/span&gt;- used to perform a tranformation on each object in a collection&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public void testBasicTransformer() {&lt;br /&gt;        final ArrayList list = setupList();&lt;br /&gt;        &lt;br /&gt;        CollectionUtils.transform(list, new StringTransformer());&lt;br /&gt;        assertEquals("HELLO", list.get(0)); // "HELLO" converted to upper case&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;    // my transformer class which converts to Upper Case&lt;br /&gt;    private static class StringTransformer implements Transformer {&lt;br /&gt;        public Object transform(Object o) {&lt;br /&gt;            return StringUtils.upperCase((String) o);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We can also chain transformers to do some pretty neat stuff.&lt;br /&gt;&lt;br /&gt;We can also use Predicates to count number of objects in a Collection if we need to count depending upon a condition&lt;br /&gt;    &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    // the Predicate used here returns 'true' only for "Hello" objects in the collection&lt;br /&gt;    public void testCountingNumberOfHellosInCollection() {&lt;br /&gt;        ArrayList list = setupList();&lt;br /&gt;        assertEquals(1, CollectionUtils.countMatches(list, new FilterPredicate()));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;    &lt;br /&gt;There are tons of other juicy bits hidden away. Explore maadi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110991154990315197?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110991154990315197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110991154990315197' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110991154990315197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110991154990315197'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/checkin-out-jakarta-commons.html' title='checkin out Jakarta Commons - Collections'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110975193260804929</id><published>2005-03-01T22:51:00.000-08:00</published><updated>2005-03-02T00:25:32.610-08:00</updated><title type='text'>People aspect of XP - Part 2</title><content type='html'>Madhu learnt it on his previous project.&lt;br /&gt;Madhu told Suresh.&lt;br /&gt; Suresh overheard me talking to JD about using the Visitor pattern and he popped over to tell us about the &lt;a href="http://jakarta.apache.org/commons/"&gt;Jakarta Commons framework&lt;/a&gt; that he had just heard about from Madhu.&lt;br /&gt;&lt;br /&gt;The power of doing stuff the way we do it.&lt;br /&gt;&lt;br /&gt;ps: also check out the &lt;a href="http://jakarta.apache.org/commons/"&gt;Jakarta Commons framework&lt;/a&gt;. Nice stuff. Im surprised I hadent heard of it till date. Better late than never I guess !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110975193260804929?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110975193260804929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110975193260804929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110975193260804929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110975193260804929'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/03/people-aspect-of-xp-part-2.html' title='People aspect of XP - Part 2'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110956544793898872</id><published>2005-02-26T22:13:00.000-08:00</published><updated>2005-02-28T09:43:59.526-08:00</updated><title type='text'>Dizzy with excitement ..</title><content type='html'>weeellll .... Not exactly .. but dizzy definitely.&lt;br /&gt;We finally flew the Control line model that we had been building for the past few weeks. (and we appreciate all those fellow ThoughtWorkers who did come by and Jeer .. umm I mean Cheer us on :) We dedicate the few crashes that we had to U folks). Anyways enough of sarcasm. In Aeromodelling, experience is measured by the number of broken properllers, and we are proud to say that we are two-propeller experienced as of today !! But I must say Sagars properller shows more 'experience'. Haha.&lt;br /&gt;&lt;br /&gt;A RC Line Model is basically a plane with a powerful engine (around the same power as a TVS-Fiero i think, approx 3.2 cc) which you control using a thin Nylon rope. So basically you go round-n-round and the plane flies all around you. Pretty neat if you are not the dizzy kinds. I am and it was not nice when the model almost crashed when the dizziness hit me. So in a 5 minute flight ( which is how long the model stays in air on a full tank) I had to take a break 3 times. So it seems I have to practise turning at home to get over the dizziness !! . Oh Boy what joy to moi..&lt;br /&gt;&lt;br /&gt;So after our twirl we were looking at the big boys flying their 25K-Remote control-All-Look-Alike planes.  &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;       &lt;img src="http://us.f2.yahoofs.com/users/4187631czd175e945/f031/__sr_/b01e.jpg?phjs1ICBRKu8Fxbu" alt="RC Control Model" /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;  They were doing some cool stuff, like twirls and nose dives and loops and we were wickedly thinking what would happen if one crashed. And God was kind to us and one of them decided not to pull up on a nose dive. Not a pretty scene, hehe. The plane kind split in the middle. All the electronics in the gut spewed out but the engine was safe I guess. Damn I didnt take a camera today. Else we could have a snap of them scooping the plane off the runway !!.&lt;br /&gt;&lt;br /&gt;Well gotto go and practise going a round. Wheeee ..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110956544793898872?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110956544793898872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110956544793898872' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110956544793898872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110956544793898872'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/dizzy-with-excitement.html' title='Dizzy with excitement ..'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110935048999523255</id><published>2005-02-25T08:31:00.000-08:00</published><updated>2005-02-25T08:54:49.996-08:00</updated><title type='text'>Adding a Domain Model to Avyukta</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Avyukta is a small application that &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://sagar-reddy.blogspot.com/"&gt;Sagar&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; and myself are building to get familiar with some of the Java open source tools that are lying around.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Havent had too much time to fool around with this though. Yesterday nite I added a basic domain model for the application and added Hibernate support to save the domain objects.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Learnt some nice stuff from the book " Java Open Source Programming".&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family: verdana;"&gt;                        &lt;img src="http://media.wiley.com/product_data/coverImage/20/04714636/0471463620.jpg" alt="title or description" /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Basically the book speaks about adding a layer between the Domain objects and the hibernate persistence. Makes a lot of sense as this makes the domain objects very testable without hitting the database. And this is important as lotsa business logic generally sits in the domain object layer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;We have a Persistence Manager in our Library ( which as of now handles saving books in the DB), and all the saving is routed thru the Persistence Manager. So when we want to test stuff we plug-in a Mock Persistence Manager and .. voila .. we have fast runnin tests.&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/10278333-110935048999523255?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110935048999523255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110935048999523255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110935048999523255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110935048999523255'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/adding-domain-model-to-avyukta.html' title='Adding a Domain Model to Avyukta'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110927108849676953</id><published>2005-02-24T10:23:00.000-08:00</published><updated>2005-02-25T11:20:30.236-08:00</updated><title type='text'>The people aspect behind XP</title><content type='html'>One thing that I have realized is how important the 'people aspect' is to a team using extreme Programming.&lt;br /&gt;&lt;br /&gt;And when 'non peopleness' prevails it is soooo sooo irritating !&lt;br /&gt;&lt;br /&gt;Simple example. Take pairing for example. Sounds easy. But till date I have had a few pairing experiences that can be called orgasmic. These sessions have been intense with awesome design happening and good neat code getting churned out with tons of Unit tests. Other times its been an effort. Some pairs do it so so wrong. I mean is it so $^@# difficult to understand what pairing truely means ? One person driving all the time with the other as a spectator is no pairing. Its just human to understand that developers like to code, and its nice to let go of the keyboard sometimes !!&lt;br /&gt;&lt;br /&gt;I work in a Team, and as a part of the team I feel responsible for the product that we're building. This is what drives me - "Were building it together". The belongingness, the fact that what Im doing is for myself not for someone else. We as a team move forward. Now if people dont realize this and generally try to exert their power to fit the stereotypic model of a Manager... ppphhhtttt.. there goes every thing. Suddenly I feel Im working undersome, for someone, for someone elses benefit. I no longer have the drive and I no longer strive for the perfection !! I 'work' to get things 'done'.&lt;br /&gt;&lt;br /&gt;Small things. Big differences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110927108849676953?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110927108849676953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110927108849676953' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110927108849676953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110927108849676953'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/people-aspect-behind-xp.html' title='The people aspect behind XP'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110864533246091990</id><published>2005-02-17T04:55:00.000-08:00</published><updated>2005-02-17T05:02:12.463-08:00</updated><title type='text'>KDE Rocks !!!!</title><content type='html'>Discovered &lt;a href="http://digikam.sourceforge.net/Digikam-SPIP/"&gt;digiKam&lt;/a&gt; today&lt;br /&gt;&lt;br /&gt;Awesome. Pretty much like &lt;a href="http://www.picasa.com/index.php"&gt;Picasa&lt;/a&gt; from Google.&lt;br /&gt;But Im really excited. Tested this with Chris's cam. It auto detected his cam (Had to click a button to auto detect though :-) I wonder why !!).&lt;br /&gt;Anyways. Damn cool !&lt;br /&gt;&lt;br /&gt;KDE rocks, KDE on Gentoo rocks even more :-) hehe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110864533246091990?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110864533246091990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110864533246091990' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110864533246091990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110864533246091990'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/kde-rocks.html' title='KDE Rocks !!!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110849557134894243</id><published>2005-02-15T11:21:00.000-08:00</published><updated>2005-02-15T11:26:11.350-08:00</updated><title type='text'>1 Year@ ThoughtWorks !!</title><content type='html'>Its exactly 1 year since i joined TW.&lt;br /&gt;&lt;br /&gt;Must say its been one helluva year. Have learnt tons of stuff, done tons of stuff and met tons of very very intereting people. No wonder its logo says "The art of Heavy Lifting". hehe .. Bad PJ i Know .&lt;br /&gt;&lt;br /&gt;Cheers to a few more :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110849557134894243?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110849557134894243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110849557134894243' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110849557134894243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110849557134894243'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/1-year-thoughtworks.html' title='1 Year@ ThoughtWorks !!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110849348120536828</id><published>2005-02-15T10:50:00.000-08:00</published><updated>2005-02-15T10:53:58.310-08:00</updated><title type='text'>Aeromodelling update</title><content type='html'>Today was a landmark of sorts.&lt;br /&gt;&lt;br /&gt;Nate offered &lt;a href="http://sagar4u.blogspot.com/"&gt;Sagar&lt;/a&gt; 200 bucks and Sagar sold his soul (pretty cheap huh :-)) and chucked his glider from the balcony of our office (thats 6th floor with tons of traffic below. Tch tch .. what ppl do for money !!) ;-)&lt;br /&gt;&lt;br /&gt;Anyways it took off beautifully, glided for a moment and then decided to perform a nose dive and Nose dive it did !!!. And almost knocked out Juggu (another ThoughtWorker) who was loafing on the streets below... Amazing. We almost died laughing.&lt;br /&gt;&lt;br /&gt;So tomorrow were planning to prepare another launch ... 400 bucks .. going once .. going twice .. anyone ???&lt;br /&gt;&lt;br /&gt;Anyways in the evening we went to our 'Guru' and he said that we have to perform penance for that sinful act by making a bigger model with a 3.3 cc engine !!! ... Aaaahhh .. another gazillion hrs of sanding a piece of wood coxing it to look like an aerofoil section .. Oh boy .. the Joy !!&lt;br /&gt;&lt;br /&gt;So thats where we are. We got our first sponsorer, performed the maiden flight, had the maiden crash, almost got a thoughtless thoughtWorker and are working towards salvation. What can be better ???&lt;br /&gt;&lt;br /&gt;I think were beginning to see the propellor at the end of the fusalage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110849348120536828?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110849348120536828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110849348120536828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110849348120536828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110849348120536828'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/aeromodelling-update.html' title='Aeromodelling update'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110846311334907065</id><published>2005-02-15T01:48:00.000-08:00</published><updated>2005-02-15T02:25:13.350-08:00</updated><title type='text'>IDEA for OpenSource</title><content type='html'>&lt;a href="http://www.jetbrains.com/idea/opensource/"&gt;awesome move by JetBrains !!!!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did U guys know that IntelliJ is free for open source development ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110846311334907065?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110846311334907065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110846311334907065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110846311334907065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110846311334907065'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/idea-for-opensource_15.html' title='IDEA for OpenSource'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110845142242407899</id><published>2005-02-14T23:09:00.000-08:00</published><updated>2005-02-14T23:10:22.426-08:00</updated><title type='text'>pretty funny blog about the life of a Consultant</title><content type='html'>check it out &lt;a href="http://www.lixo.org/archives/2005/02/14/a-little-horror-story/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110845142242407899?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110845142242407899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110845142242407899' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110845142242407899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110845142242407899'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/pretty-funny-blog-about-life-of.html' title='pretty funny blog about the life of a Consultant'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110845105309335831</id><published>2005-02-14T22:59:00.000-08:00</published><updated>2005-02-14T23:04:13.093-08:00</updated><title type='text'>Interviewing !!</title><content type='html'>&lt;a href="http://myfriendthedeveloper.typepad.com/interviews/"&gt;"My Friend the Developer"&lt;/a&gt; is a blog where this dude interviews his friends and blogs about it.&lt;br /&gt;&lt;br /&gt;Kind of interesting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110845105309335831?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110845105309335831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110845105309335831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110845105309335831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110845105309335831'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/interviewing.html' title='Interviewing !!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110786457481817358</id><published>2005-02-08T04:02:00.000-08:00</published><updated>2005-02-08T04:09:34.816-08:00</updated><title type='text'>Gentooed my Laptop !!!</title><content type='html'>Finally &lt;a href="www.gentoo.org"&gt;Gentoo&lt;/a&gt; is up and Running .. naah .. Sprinting on my machine !!!!!&lt;br /&gt;&lt;br /&gt;Beautiful.&lt;br /&gt;I had fedora core 3 on the laptop before and KDE felt kind of sluggish, but on gentoo its a snap.&lt;br /&gt;&lt;br /&gt;Thanx to our local "Benny Hinn" Gentoo-Guru Vivek Prahlad. ;-)&lt;br /&gt;Looks like tis a Gentoo epidemic here.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110786457481817358?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110786457481817358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110786457481817358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110786457481817358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110786457481817358'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/gentooed-my-laptop.html' title='Gentooed my Laptop !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110759100722033510</id><published>2005-02-05T00:08:00.000-08:00</published><updated>2005-02-05T00:10:07.223-08:00</updated><title type='text'>It Flies.. It flies !!!</title><content type='html'>It took off, it glided, it took a turn, it glided some more and it softly landed on a desk...&lt;br /&gt;ahhh .. the joys of building something with your own hands.&lt;br /&gt;&lt;br /&gt;ya . the second time it crash landed :-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110759100722033510?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110759100722033510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110759100722033510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110759100722033510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110759100722033510'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/02/it-flies-it-flies.html' title='It Flies.. It flies !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110719375620933834</id><published>2005-01-31T09:44:00.000-08:00</published><updated>2005-02-01T21:35:40.386-08:00</updated><title type='text'>Aeromodelling</title><content type='html'>&lt;a href="http://sagar4u.blogspot.com/"&gt;Sagar&lt;/a&gt; and me had a glider building competition here at ThoughtWorks. :) We are planning to fly it (if these things fly) and the Winner gets a "Death by Chocolate" .. Yumm Yumm .. I can almost taste it :-)&lt;br /&gt;&lt;br /&gt;We just finished gluing all the parts after spending 4 finger-breaking hours sandpapering the balsa wood to give it the required aero Dynamics.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pg.photos.yahoo.com/ph/rohan_kini/album?.dir=f031&amp;.src=ph&amp;amp;store=&amp;prodid=&amp;amp;.done=http%3a//pg.photos.yahoo.com/ph/rohan_kini/my_photos"&gt;Snaps here&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110719375620933834?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110719375620933834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110719375620933834' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110719375620933834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110719375620933834'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/aeromodelling.html' title='Aeromodelling'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110714888093389458</id><published>2005-01-30T11:32:00.000-08:00</published><updated>2005-01-30T21:21:20.933-08:00</updated><title type='text'>Knots and Crosses.</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Hari was recently showing me some Knots-and-Crosses implementation he had coded. He talked about how his players had a Strategy injected into them while they were created, so that the game playing logic was kind of pluggable. &lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Sounded damn interesting.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So I decided to code my own implementation of Knots-and-Crosses. And its been a pretty interesting so far. Its nice to see how simple problems like this can throw a zillion design decisions at you. Very interesting to see how an Object model comes out of such an exercise.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;After 3-4 stabs at this and with some design changes, I have come at this object model.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;The objects that I have are&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Game &lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Board&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Consequence&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Player&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Game: basically you can register 2 players and a board with the game. And the game will alternate the players and inform the players that they can make their move.&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Board: is pretty dumb. You can mark a location on the board. But the board can also return the consequence of a particular move.&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Consequence: copied this Term from Haris Object model, cause it sounded sooo interesting :), but I think the behaviour is different. Basically after a move you can get the consequence of that move from the board and you can perform various queries on it.&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Player: As of now I dont have any interesting behaviour here. Like Hari's model, I want to be able to plug in a Strategy that the player can use to play an intelligent game.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Looks a little bloated. Have to see if I can fine tune this. &lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Tomorrow Hari and me will be swapping notes on how we are proceeding with our implementations.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110714888093389458?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110714888093389458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110714888093389458' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110714888093389458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110714888093389458'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/knots-and-crosses.html' title='Knots and Crosses.'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110699258773225838</id><published>2005-01-29T01:53:00.000-08:00</published><updated>2005-01-29T01:57:45.570-08:00</updated><title type='text'>del.icio.us </title><content type='html'>&lt;a href="http://del.icio.us/rohan_kini"&gt;my del.icio.us set of Links&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Never had the time to checkout what this was all about. And it looked to silly to do all this just for maintaining Book marks.&lt;br /&gt;&lt;br /&gt;You can install an awesome &lt;a href="http://delicious.mozdev.org/"&gt;extension&lt;/a&gt; for FireFox after which its damn easy to work with del.icio.us&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110699258773225838?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110699258773225838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110699258773225838' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110699258773225838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110699258773225838'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/delicious.html' title='del.icio.us '/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110692619630127540</id><published>2005-01-28T07:29:00.000-08:00</published><updated>2005-01-28T07:32:03.470-08:00</updated><title type='text'>Beautiful !</title><content type='html'>&lt;a href="http://www.joelonsoftware.com/items/2005/01/27.html"&gt;http://www.joelonsoftware.com/items/2005/01/27.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nice article. Check it out.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110692619630127540?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110692619630127540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110692619630127540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110692619630127540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110692619630127540'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/beautiful.html' title='Beautiful !'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110692201558571480</id><published>2005-01-28T06:02:00.000-08:00</published><updated>2005-01-28T06:20:15.586-08:00</updated><title type='text'>Library Management Tool &lt;-&gt; Avyakta</title><content type='html'>Avyakta - According to Suresh it means "Formless" which is a very apt name for our Library management Project as of now  :-)&lt;br /&gt;&lt;br /&gt;So along with the code-name of Avyakta we also made some kind of progress today.&lt;br /&gt;&lt;br /&gt;Finally got the project onto CVS !!! .. Yaaaaaaaaaayy... turned out to be damn easy once you knew exactly what has to be done :) . Gabbar was walking along when I pulled him to help me out and in 15 mins Avyakta was sitting on Jhakkas (our server with the CVS repository).&lt;br /&gt;&lt;br /&gt;So CVS is ready.&lt;br /&gt;&lt;br /&gt;Figured out a lil but more about WebWorks. Pretty interesting. Have to try out stuff this weekend and maybe blog on it on monday.&lt;br /&gt;&lt;br /&gt;Also stumbled onto two other Open Source tools - Site Mesh and Lucene that i want to try out on this project.&lt;br /&gt;&lt;br /&gt;Site Mesh is an Open Source tool which uses the decorator pattern to make managing web content easier. Nice concept looks pretty simple to use.&lt;br /&gt;Lucene is another Open Source tool that provides search capability. Havent read much about it, but whatever little I have read about it sounds good.&lt;br /&gt;&lt;br /&gt;So two more tools to check out.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110692201558571480?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110692201558571480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110692201558571480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110692201558571480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110692201558571480'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/library-management-tool-avyakta.html' title='Library Management Tool &lt;-&gt; Avyakta'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110688761554034707</id><published>2005-01-27T20:45:00.000-08:00</published><updated>2005-01-28T01:53:20.083-08:00</updated><title type='text'>Library Management Project update.</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Not much progress on this front.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;We havent had time to sit down and do/read/try out what we want/have/supposed to do. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Am doing some general reading up on WebWork. Picked up a book "&lt;a href="http://www.amazon.com/gp/reader/0471463620/ref=sib_dp_pt/102-7417629-7853734#reader-link"&gt;Java Open Source Programming&lt;/a&gt;" that was lying around in office. Must say the section on WebWork has been written pretty well. Past few days I have been trying to get some good tutorials off the net that explain a lil bit more about WebWorks than just saying that its THE most amazing tool to use. But this book talks about XWork first and then builds on it to explain about WebWork. Pretty neat !!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Bugged Ajey and got access to a CVS repository here on Jakkhas. Tried setting up a CVS for our project. Failed miserably !!! ... arrggggghh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I always wondered how big projects (like the one that Im in currently) actually started out. How were all the initial decisions made ? How were the first few lines of code written ? how did things go from there ? ... this experiment of ours is giving me an insight into that process albeit on a very small scale. But interesting all the same.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Im waiting for the day when we will have cards to play and are actually doing some development work. Rather than have just a few guys/gals do this. I want to try something different. Like check in all the cards that we want to play into CVS and anyone who wants to contribute can pitch in, sign up for a card, and check in that funcitonality. So suppose some one is feeling like he has not coded much on a particular day and wants to code, refactor, bitch about code .. well they are welcome to contribute. :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;But before that we have tons of stuff to do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- &lt;a href="http://www.jayanthan.com/"&gt;Jayanthan&lt;/a&gt; has actually written some amazing stories. But they are too course grained to be called Story cards. So we have to get some kind hearted BA here to write actual story cards. Maybe we can push it as practise cards on to some unsuspecting soul ;-)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- Familiarize ourselves with stuff that were planning to use - hibernate, WebWork and Velocity I think (as of now)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- Set up the CVS for the project&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- Set up Continuous Integration. &lt;a href="http://www.skizz.biz/"&gt;Chris&lt;/a&gt; suggested Damage Control as it was much easier to use.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Thats all I can think of. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;This is going to be one helluva learning experience. (if we actually get around to doing something !!)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110688761554034707?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110688761554034707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110688761554034707' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110688761554034707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110688761554034707'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/library-management-project-update.html' title='Library Management Project update.'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110682619234812575</id><published>2005-01-27T03:40:00.000-08:00</published><updated>2005-01-27T03:43:12.350-08:00</updated><title type='text'>Thought For the Day !!!</title><content type='html'>"One more hack and were done !!! " - hehe&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110682619234812575?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110682619234812575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110682619234812575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110682619234812575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110682619234812575'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/thought-for-day.html' title='Thought For the Day !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110688764600048285</id><published>2005-01-25T20:47:00.000-08:00</published><updated>2005-01-27T20:47:26.000-08:00</updated><title type='text'>Statics ? Bad</title><content type='html'>Ohhhh .. I get it ..&lt;br /&gt;Statics kind of reduce the object orientedness of an Object oriented design.&lt;br /&gt;&lt;br /&gt;"static object references and methods are not elements of pure object-orientation, but they are often required for practical, convenience and speed reasons"&lt;br /&gt;&lt;br /&gt;a nice article on Statics and Singletons. Somethings I had never thought of before&lt;br /&gt;- A Static is not a reusable entity. Hence it is not garbage collected. So we have to make sure our static classes are not Resource Hogs !!!&lt;br /&gt;- Static variable are lost when they are serialized&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110688764600048285?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110688764600048285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110688764600048285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110688764600048285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110688764600048285'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/statics-bad.html' title='Statics ? Bad'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110662970741542258</id><published>2005-01-24T21:07:00.000-08:00</published><updated>2005-01-24T21:08:27.416-08:00</updated><title type='text'>Library Management System</title><content type='html'>A few of us at ThoughtWorks have decided to bite more than what we can chew.&lt;br /&gt;We decided to put together a Library Management System for our library here.&lt;br /&gt;Basically to figure out how a web based application works. I have never worked in a project from its inception. So I am waiting to see how different parts of a project all fit together. As of now the project that Im working on is too big for me to figure out how all the parts fit together.&lt;br /&gt;&lt;br /&gt;We had no idea about how to start this damn thing. So we spoke to Chris and he gave us some directions. We decided to use Hibernate as the O/R Mapping layer. WebWorks and Velocity to handle the Web part of the application and Java of course. Database not yet sure. But I guess MySQL would be a good choice.&lt;br /&gt;&lt;br /&gt;We also spoke to Naresh and got info on how to set up a project on a local CVS at ThoughtWorks.&lt;br /&gt;&lt;br /&gt;Things are moving at a painfully slow pace. But i guess thats the norm than the exception.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110662970741542258?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110662970741542258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110662970741542258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110662970741542258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110662970741542258'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/library-management-system.html' title='Library Management System'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110662973812869481</id><published>2005-01-24T11:48:00.000-08:00</published><updated>2005-01-25T07:59:49.196-08:00</updated><title type='text'>Maturity ??</title><content type='html'>some time back adding code excited me&lt;br /&gt;now removing code excites me&lt;br /&gt;&lt;br /&gt;:-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110662973812869481?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110662973812869481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110662973812869481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110662973812869481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110662973812869481'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/maturity.html' title='Maturity ??'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110657325565467883</id><published>2005-01-24T05:27:00.000-08:00</published><updated>2005-01-27T23:49:42.473-08:00</updated><title type='text'>Embarrassing !!!!</title><content type='html'>&lt;span style="font-family:verdana;"&gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;pre&gt;public class TestingPassByValue {&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;      String object1 = "Hello";&lt;br /&gt;      display(object1);&lt;br /&gt;      changeAndDisplay(object1);&lt;br /&gt;      display(object1);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static void changeAndDisplay(String object1) {&lt;br /&gt;      object1 = "Changed Hello";&lt;br /&gt;      display(object1);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static void display(String object1) {&lt;br /&gt;      System.out.println(object1);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ans:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Hello&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Changed Hello&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Hello&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Had to think why this was the case. I mean In Java Objects are passed around by Reference right !!!! and primitives are passed by Value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Well the Culprit lies in that sentence. In Java Objects are passed by Reference, but the problem is that the Objects themselves are not passed around, rather its the reference thats passed around. And the reference variables (primitives themselves) are passed by value. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So basically everything in Java is passed by Value, and objects being passed by reference is just a side effect ;-) ... Basics .. tch tch &lt;/span&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/10278333-110657325565467883?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110657325565467883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110657325565467883' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110657325565467883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110657325565467883'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/embarrassing.html' title='Embarrassing !!!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110654769261869165</id><published>2005-01-23T22:21:00.000-08:00</published><updated>2005-01-23T22:21:32.616-08:00</updated><title type='text'>JUnit recipes</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Was reading this book. Read a few chapters and came up with some weirdly interesting stuff. &lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;The JUnit framework uses Errors to indicate if the Asserts Fail !! .. Not exceptions but Errors. An AssertionFailedError to be precise. For 2 reasons&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;- Errors are Unchecked &lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;- We could have also used a unchecked exception, but then these are also thrown by the program that we are testing. So to differentiate who (the program or the test code) is actually throwing the unchecked exception JUnit throws an Error.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So basically there are 2 scenarios. We have an Assertion that has Failed and we have a program Error. The first is indicated by an Error being thrown by the JUnit framework and the second the program throwing an Exception.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Now the weird part is &lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;the failing Assertion throws an Error but this is a Failure scenario from JUnits perspective&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;and Program Error throws an Exception but is a Error scenario from JUnits perspective&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Striving to confuse :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110654769261869165?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110654769261869165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110654769261869165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654769261869165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654769261869165'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/junit-recipes.html' title='JUnit recipes'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110654764529332683</id><published>2005-01-23T22:20:00.000-08:00</published><updated>2005-01-23T22:20:45.293-08:00</updated><title type='text'>Wiproed or Infoscised !!!!</title><content type='html'>&lt;span style="font-family: verdana;"&gt;The Last staff meeting here kind of made me think of 2 new words. Wiproed and Infoscised. ;-)&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/10278333-110654764529332683?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110654764529332683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110654764529332683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654764529332683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654764529332683'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/wiproed-or-infoscised.html' title='Wiproed or Infoscised !!!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110654760602375654</id><published>2005-01-22T22:19:00.000-08:00</published><updated>2005-01-23T22:20:06.023-08:00</updated><title type='text'>Office Interviews</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Recently I started taking office interviews. I have paired with some 6-7 people on office interviews and its been on helluva experience. Each office interview has been an awesome learning experience. PeopleWise as well as Technically.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Recently Gabbar a.k.a Shreekanth (spl ?) and me were interviewing this guy and we were generally talking about JUnit and suddenly Gabbar asked this dude to write a JUnit framework. Brilliant. &lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;JUnit has a simple concept, powerful but simple. At the same time most people never look or think what goes on behind the running of a JUnit test. Before this interview I had never looked at the code, so as this dude was thinking about it I was also kinda thinking how JUnit might have done things internally and it was a pretty interesting experience. The candidate was kind of stumped though :). But I felt this was a nice question to ask at interviews as you actually get some code out of the other person, you could evaluate how a person could think thru a new problem, a problem that he/she was familiar with so you don't have to waste your time explaining things. And at the same time its an interesting problem.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Recently we were taking a phone screen and we were talking about Strings and String Buffers. Suresh asked when would we conciously use Strings in our applications ? Consider we have a Financial Application which passes around the Account Number. Now if this is a String then we are assured of its immutability, hence we can prevent hackers from modifying the Account number and performing operations with the Application using the compromised account number. I hadent thought of this use of Immutable objects. :-) .. like I said Phone screens and Office interviews have been pretty interesting.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;At a time when ThoughtWorks India is growing at the rate it is, I feel its imperative that we hire the best so that it can hopefully balance out the problems that sudden growth brings to a small company. Till a few days back I used to feel that we can get people who "will-get-there" and hope that they do, but I no longer subscribe to that. Let us grow, but with the best. &lt;/span&gt;&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110654760602375654?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110654760602375654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110654760602375654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654760602375654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654760602375654'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/office-interviews.html' title='Office Interviews'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110654517646908255</id><published>2005-01-22T21:38:00.000-08:00</published><updated>2005-01-27T23:54:19.986-08:00</updated><title type='text'>Home Brewed Iterator !!!</title><content type='html'>Somehow I seem to be fascinated by an Iterator ;-)&lt;br /&gt;So I decided to google for it and these were the phrases I gathered from the web&lt;br /&gt;&lt;br /&gt;- is an extremely powerful interface for accessing items from a collection one item at a time.&lt;br /&gt;- it is a looping construct where you don't need to know the data structure in order to loop over it.&lt;br /&gt;- it is separate from the collection itself (side benefit - allows more than 1 iterator to exist at a time !!)&lt;br /&gt;&lt;br /&gt;humm ... What the heck. I already knew all this. Decided that I needed another approach to know it better.&lt;br /&gt;So fired up my trusty IntelliJ IDE and decided to make my own iterator for my own collection object.&lt;br /&gt;&lt;br /&gt;I decided that "MyContainer" would somehow return a "MyContainerIterator" when I asked for an iterator. MyContainer would implement the collection using an ArrayList internally. MyContainerIterator would implement the Iterator interface.&lt;br /&gt;&lt;br /&gt;This was my Test Class&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// job: Understands how myContainer and myContainerIterator work and verifies it&lt;br /&gt;public class IteratorTest extends TestCase {&lt;br /&gt;    private MyContainer myContainer;&lt;br /&gt;&lt;br /&gt;    protected void setUp() throws Exception {&lt;br /&gt;        myContainer = new MyContainer();&lt;br /&gt;        myContainer.add("Hello");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testCreateIteratorReturnsAnIterator() {&lt;br /&gt;        assertNotNull(myContainer.iterator());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testAddingToMyContainer() {&lt;br /&gt;        assertEquals("Hello", myContainer.get(0));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testIteratorWorksWithMultipleAdditions() {&lt;br /&gt;        Iterator iterator = myContainer.iterator();&lt;br /&gt;        assertEquals("Hello", iterator.next());&lt;br /&gt;        myContainer.add("Yo");&lt;br /&gt;        assertEquals("Yo", iterator.next());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My Collection class&lt;br /&gt;&lt;br /&gt;// Job: Understands a collection&lt;br /&gt;public class MyContainer {&lt;br /&gt;    private List storage = new ArrayList();&lt;br /&gt;&lt;br /&gt;    public void add(Object s) {&lt;br /&gt;        storage.add(s);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object get(int i) {&lt;br /&gt;        return storage.get(i);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Iterator iterator() {&lt;br /&gt;        return new MyContainerIterator(storage);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My Iterator&lt;br /&gt;&lt;br /&gt;//job: Understands how to traverse over a MyContainer Collection&lt;br /&gt;public class MyContainerIterator implements Iterator {&lt;br /&gt;    private List storage;&lt;br /&gt;    int index;&lt;br /&gt;&lt;br /&gt;    public MyContainerIterator(List storage) {&lt;br /&gt;        this.storage = storage;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean hasNext() {&lt;br /&gt;        return index &lt; storage.size();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object next() {&lt;br /&gt;        return storage.get(index++);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void remove() {&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That was a pretty interesting exercise.&lt;br /&gt;&lt;br /&gt;------------------&lt;br /&gt;&lt;br /&gt;a small modification&lt;br /&gt;&lt;br /&gt;I just showed this piece of code to Suresh and we talked about quite a few modifications to this code. This was one of them&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Job: Understands a collection&lt;br /&gt;public class MyContainer {&lt;br /&gt;    private List storage = new ArrayList();&lt;br /&gt;&lt;br /&gt;    public void add(Object s) {&lt;br /&gt;        storage.add(s);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object get(int i) {&lt;br /&gt;        return storage.get(i);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Iterator iterator() {&lt;br /&gt;        return new MyContainerIterator(storage);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    //job: Understands how to traverse over a MyContainer Collection&lt;br /&gt;    private class MyContainerIterator implements Iterator {&lt;br /&gt;        private List storage;&lt;br /&gt;        int index;&lt;br /&gt;&lt;br /&gt;        public MyContainerIterator(List storage) {&lt;br /&gt;            this.storage = storage;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public boolean hasNext() {&lt;br /&gt;            return index &lt; storage.size();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public Object next() {&lt;br /&gt;            return storage.get(index++);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void remove() {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;By Making the Iterator an Inner Class of the collection itself, we felt it exhibhited better encapsulation as this iterator implementation can be optimised for the type of Collection that it supports and just expose an Iterator interface.&lt;br /&gt;&lt;br /&gt;The other things that we spoke about mainly revolved around the inefficieny of this whole thing. But then I wrote it to see how iterators worked.&lt;br /&gt;&lt;br /&gt;But another interesting case of how pair programming would have worked, had Suresh and myself paired on this exercise. This design would have come out much earlier instead of the code review kind of session after the code was written.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110654517646908255?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110654517646908255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110654517646908255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654517646908255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110654517646908255'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/home-brewed-iterator.html' title='Home Brewed Iterator !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110631775754537366</id><published>2005-01-21T06:28:00.000-08:00</published><updated>2005-01-21T06:29:17.546-08:00</updated><title type='text'>SICP - Overview and Introduction to LISP ( lecture 2A)</title><content type='html'>Higher Order Procedures&lt;br /&gt;&lt;br /&gt;This lecture started out with identifying common stuff between computations.&lt;br /&gt;The professor talked about how we should come up with an abstraction whenever we have a bunch of of things that are identical, so that we can reuse this common stuff. Awesome examples !&lt;br /&gt;&lt;br /&gt;I thought this was pretty neat cause this is the second lecture and were already talking about something practical like reuse of code, and I haven't yet seen a print statement nor have I seen any loop structure. My introduction to Computer science was a language and its syntax rather than the concepts like abstraction, reuse etc that are being exposed in these lectures.&lt;br /&gt;&lt;br /&gt;Anyways finally saw how a variable was defined in LISP. Same as a method&lt;br /&gt;(define variable_name .00001) and we have a variable named "variable_name"&lt;br /&gt;And both variables and procedures could be passed as parameters to another procedure. Weirdly neat !!&lt;br /&gt;&lt;br /&gt;The concept on an Anonymous procedure was brought out. Something like an anonymous inner class in Java. But this was kinda confusing.&lt;br /&gt;&lt;br /&gt;Finally figured out what a Higher Order Procedure meant: They are procedures that take procedural arguments and produce procedural values to help abstract and clarify some complex problems !!! That simple .. :-)&lt;br /&gt;&lt;br /&gt;The last few programs towards the end of the lecture were kind of OHT (over head transfer) :) ... So sat watching the video with glassy eyes hoping to gather the gist of the lecture rather than try and figure out what the mass of brackets were trying to achieve. Gknee had warned me that the lectures scale up in complexity pretty soon. Looks like that has already started. Initially the lectures are like kids play .. But soon, if your not careful U can get lost in the bunch of brackets that are thrown at you.&lt;br /&gt;&lt;br /&gt;Another interesting point that the professor made was the difference between functions and procedures.&lt;br /&gt;Functions are mathematical terms which map a value onto another value.&lt;br /&gt;Procedures are computational terms which compute functions.&lt;br /&gt;We often tend to use functions and procedures to mean the same i.e. procedures.&lt;br /&gt;&lt;br /&gt;"Wishful thinking is central to any engineering field, especially computer science" - professor&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110631775754537366?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110631775754537366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110631775754537366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110631775754537366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110631775754537366'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/sicp-overview-and-introduction-to-lisp_21.html' title='SICP - Overview and Introduction to LISP ( lecture 2A)'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110622916290184070</id><published>2005-01-20T05:52:00.000-08:00</published><updated>2005-01-21T06:17:38.186-08:00</updated><title type='text'> SICP - Overview and Introduction to LISP ( lecture 1B)</title><content type='html'>Well this lecture was pretty interesting.&lt;br /&gt;&lt;br /&gt;Initally the professor spoke about the substitution model.&lt;br /&gt;&lt;br /&gt;Two very interesting programs for addition of 2 numbers were introduced. Using these programs the concepts of Iterative and Recursive processes were introduced. Was very interesting.&lt;br /&gt;&lt;br /&gt;Iterative Process - X&lt;br /&gt;Time Complexity - O(X)&lt;br /&gt;Space Complexity - O(1)&lt;br /&gt;&lt;br /&gt;Recursive Process - X&lt;br /&gt;Time Complexity - O(X)&lt;br /&gt;Space Complexity - O(X)&lt;br /&gt;       Where X is some parameter that is used in the computation process.&lt;br /&gt;&lt;br /&gt;Fibonacci series were introduced.&lt;br /&gt;&lt;br /&gt;The last part was on the problem of "The towers of Hanoi". Long time since i have seen this problem. I had seen this last in my third semester of Engineering. We had hurridly hacked together a C programm in a C++ environment and subject :-)) .. Anyways it was interesting how the concept of recursion was introduced here. There were props and the code to solve this was very interesting. Somehow I felt that LISP kind of directly addressed the problem we have on hand with very little emphasis on the structure of code. Ya the code was kinda wierd with tons of parenthesis, but succinct at the same time. We could just think of the problem that we were trying to solve rather than worry about whether the syntax for main() was right.&lt;br /&gt;&lt;br /&gt;The solution for the Towers of Hanoi was done using a recursive process, and we were left with an excersise to try and see if we can do this the iterative way !!!&lt;br /&gt;&lt;br /&gt;There was an interesting line that the professor said - " The key to solving complicated problems is to know what not to look at".&lt;br /&gt;I thought this was a nice and simple way of saying what abstraction was all about, a very powerful statement at the same time cause this is a very important way of looking at problems.&lt;br /&gt;&lt;br /&gt;Things are definitely picking up !!! As far as I can remember I think i remained conciousness thru the lecture :-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110622916290184070?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110622916290184070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110622916290184070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622916290184070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622916290184070'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/sicp-overview-and-introduction-to-lisp_20.html' title=' SICP - Overview and Introduction to LISP ( lecture 1B)'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110622914481294490</id><published>2005-01-20T05:51:00.000-08:00</published><updated>2005-01-21T06:09:24.863-08:00</updated><title type='text'>SICP - Overview and Introduction to LISP ( lecture 1A)</title><content type='html'>Down with Viral Fever.&lt;br /&gt;Decided to check out the &lt;a href="http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/"&gt;SICP&lt;/a&gt; (Structure and Intepretations of Computer Programs) lectures. Gknee and &lt;a href="http://jroller.com/rss/yogi"&gt;Yogi&lt;/a&gt; were raving about them, and LISP was supposed to be THE thing to learn. So decided to find out what the big deal was :-)&lt;br /&gt;&lt;br /&gt;Here goes !!!&lt;br /&gt;Initially it was pretty boring. Yaaaawn ..&lt;br /&gt;&lt;br /&gt;The prof was talking about the very basics of computing. But it was interesting in some ways, cause this was a video shoot of a class room teaching. It was really funny to see these hippie looking students, some of which were looking like zombies. Hehe .. reminded me of some lectures that I have sat thru in Engineering :-)&lt;br /&gt;&lt;br /&gt;The thick Yellow piece of Chalk that the professor was using looked really good fun to use :-)&lt;br /&gt;&lt;br /&gt;Initially the lecturer spoke about how Computer Science has nothing to do with a Computer. What he meant was Computer science was the essence of this science where as the Computer was basically a tool that we used. Yawn .. .&lt;br /&gt;&lt;br /&gt;Learnt about some primitive elements in LISP. like + - &lt; * and some primitive data like numbers etc ... Yawn ...&lt;br /&gt;&lt;br /&gt;Learnt means of combination like using if()  Yawn ...&lt;br /&gt;&lt;br /&gt;also was introduced to the basic means of abstraction, and how to create methods using the define statement.&lt;br /&gt;&lt;br /&gt;Yawn .. yawn .. Y.A.W.N !!!!&lt;br /&gt;&lt;br /&gt;at the end of this session a slow moving electric impulse moves across my hibernating mind and is carrying the message "Is Gknee out of His mind ??"&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110622914481294490?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110622914481294490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110622914481294490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622914481294490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622914481294490'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/sicp-overview-and-introduction-to-lisp.html' title='SICP - Overview and Introduction to LISP ( lecture 1A)'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110622905245682593</id><published>2005-01-20T05:50:00.000-08:00</published><updated>2005-01-21T05:30:14.456-08:00</updated><title type='text'>practise .. practise .. practise.. </title><content type='html'>I got a Laptop from ThoughtWorks recently and I feel its an awesome inventment for the company.&lt;br /&gt;&lt;br /&gt;Well its simple actually.  (Before U think im Cucoo or something !!)&lt;br /&gt;&lt;br /&gt;Say your learning an musical instrument.  Its only when you have the instrument at home, do you actually tend to spend time with that instrument. Every few minutes that you are free you are bound to pick it up and play for sometime And this is when you become good. When you spend time with that instrument.&lt;br /&gt;&lt;br /&gt;Same difference ;-)&lt;br /&gt;&lt;br /&gt;Ever since i  got the laptop i have been able to spend so much more time on it, which kind of gives the same effect as spending more time on the musical instrument.&lt;br /&gt;&lt;br /&gt;I feel programmers are not just made. You are not born a master programmer. You have to  move from a Journey-man to the Master stage and everyone has to go thru this stage. Just that some might be faster and others slower depending upon the amount of time they spend on this(not the only reason of course). So by giving everyone laptops the company is bound to nurture more to-be-Masters which is awesome for any company.&lt;br /&gt;&lt;br /&gt;This was just a thought :-) ..&lt;br /&gt;&lt;br /&gt;ThoughtWork is Planing to give everyone a laptop soon, so i guess I can wait and see if there is any grain of truth in what I feel or its allbullshit !!!&lt;br /&gt;&lt;br /&gt;ps: &lt;a href="http://www.javaspecialists.co.za/archive/Issue100.html"&gt;Java Programmers arent Born&lt;/a&gt; Nice read !!!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110622905245682593?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110622905245682593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110622905245682593' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622905245682593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622905245682593'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/practise-practise-practise.html' title='practise .. practise .. practise.. '/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10278333.post-110622899733778643</id><published>2005-01-20T05:48:00.000-08:00</published><updated>2005-01-21T05:11:57.656-08:00</updated><title type='text'>Test Driven Development !!!</title><content type='html'>&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;Test Driven development .. ya ya .. ThoughtWorks does Things the agile way and TDD is one of the hallowed practices that we try and follow. I have heard tons of stuff about TDD .. but only recenty did i have an AhA moment with TDD ..&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;I was working with this rather difficult piece of code which had lotsa calculations in it and I just was not able to get it right .. I went thru the cycle .. try to fix .. build .. start up application and see if my fix worked .. but for some strange reason it kept failing ..&lt;br /&gt;&lt;br /&gt;I thought of adding a test for this, but being the lazy ass that i am .. i decided to just try it the non-test way once more .. and the "once more" kept getting pushed.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;Finally my friend Suresh (fed up of seeing me waste my time like this) told me to write a test for this. So I did that .. and trust me in 15 mins I had solved the problem !!! .. 15 mins ..&lt;br /&gt;&lt;br /&gt;Going the Test First way I noticed many things&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt; - the cycle of fixing the issue is much faster, as a test is well just a test. U dont have to compile and build the whole app and start it and go thru the GUI to get to the issue. Using the test U get right to the core of the issue. So it makes a huge difference.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- this way I have a test in place. So even if Im damn lazy .. i have tests surrounding my code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- no way some one can break my code as the tests will prevent that. For example last week I was fixing a bug in some obscure part of the code. The fix was simple ( which kind of triggered alarms ) and I checked in, and promptly broke the build. I had broken a ton of unit tests. When I looked at the tests I figured out that this 'bug' was not a 'bug'. It was a piece of intended funtionality. So there !!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- Cleaner code and better design of my code. This is one thing that I have consistently seen when I use TDD.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- I can express my intent to a certain extent thru the tests.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- I always like the part when i run tests on the code and see the green bar, Gives me a sence of accomplishment and confidence.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;- and doing things the TDD way is real fun. No doubt its a lil more difficult. But that only the first test that takes so much time. After that its just adding test .. adding functionality .. adding test .. adding functionality. some where along this process .. u dont like the look of the code .. go on a refactoring spree .. change every god damn thing .. and just make sure u get a green bar at the end of it and we're safe.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-family:verdana;" &gt;Beautiful !!!!! :-)&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10278333-110622899733778643?l=playatwork.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://playatwork.blogspot.com/feeds/110622899733778643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10278333&amp;postID=110622899733778643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622899733778643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10278333/posts/default/110622899733778643'/><link rel='alternate' type='text/html' href='http://playatwork.blogspot.com/2005/01/test-driven-development.html' title='Test Driven Development !!!'/><author><name>ROhan</name><uri>http://www.blogger.com/profile/14326999360223511768</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
