<?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-30469785</id><updated>2011-12-06T13:52:58.669+05:30</updated><category term='pics'/><category term='ruby'/><category term='SNMP'/><category term='dcb2'/><category term='indianrailways'/><category term='poem'/><category term='songs'/><category term='layoff'/><category term='java'/><category term='personal'/><category term='tool'/><category term='bleedindia'/><category term='movies'/><category term='designpattern'/><category term='semantic web'/><category term='programming'/><category term='glassfish'/><category term='videos'/><category term='games'/><category term='whitepaper'/><category term='open source'/><category term='book'/><category term='netbeans'/><category term='misc'/><category term='Outing'/><category term='firefox'/><category term='bangalore'/><category term='elections2009'/><category term='bojug'/><category term='sapient'/><category term='appengine'/><category term='devcampbangalore'/><category term='ajmer'/><category term='crap'/><category term='webthumb'/><category term='rails'/><category term='play'/><category term='wipro'/><category term='quotes'/><category term='History'/><category term='Yahoo BOSS'/><category term='productivity'/><category term='bsnl'/><category term='google'/><category term='barcampbangalore8'/><title type='text'>Anuj Mehta's Blog</title><subtitle type='html'>Frozen Thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default?start-index=101&amp;max-results=100'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30469785.post-3707635731601278260</id><published>2011-09-16T08:30:00.005+05:30</published><updated>2011-09-16T08:33:59.436+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pics'/><title type='text'>My Daughter Aarvi</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-e-UVw2HJKeQ/TnK8iowdHiI/AAAAAAAABEY/hWHyL-OzSlc/s1600/DSC01457.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-e-UVw2HJKeQ/TnK8iowdHiI/AAAAAAAABEY/hWHyL-OzSlc/s400/DSC01457.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5652787785545621026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-1FK3AAlSWlU/TnK8WwtnH5I/AAAAAAAABEQ/FjUV3RO1hRk/s1600/DSC01502.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-1FK3AAlSWlU/TnK8WwtnH5I/AAAAAAAABEQ/FjUV3RO1hRk/s400/DSC01502.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5652787581522747282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-IiZ9NkFDtvI/TnK8QnADb4I/AAAAAAAABEI/or0SfTyvcqo/s1600/DSC01501.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-IiZ9NkFDtvI/TnK8QnADb4I/AAAAAAAABEI/or0SfTyvcqo/s400/DSC01501.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5652787475836530562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-LgQb0DS9sRM/TnK8JHiNv2I/AAAAAAAABEA/UPnmncekGnQ/s1600/DSC01499.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-LgQb0DS9sRM/TnK8JHiNv2I/AAAAAAAABEA/UPnmncekGnQ/s400/DSC01499.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5652787347130793826" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3707635731601278260?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3707635731601278260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3707635731601278260&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3707635731601278260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3707635731601278260'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2011/09/my-daughter-aarvi.html' title='My Daughter Aarvi'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-e-UVw2HJKeQ/TnK8iowdHiI/AAAAAAAABEY/hWHyL-OzSlc/s72-c/DSC01457.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5053878279635126236</id><published>2011-08-02T08:26:00.003+05:30</published><updated>2011-08-02T08:27:24.882+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pics'/><title type='text'>Peace</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-kQIdCyGocyk/Tjdneuz-n0I/AAAAAAAABBA/ovI1pairevs/s1600/peace.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 337px;" src="http://2.bp.blogspot.com/-kQIdCyGocyk/Tjdneuz-n0I/AAAAAAAABBA/ovI1pairevs/s400/peace.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5636087236337246018" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5053878279635126236?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5053878279635126236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5053878279635126236&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5053878279635126236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5053878279635126236'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2011/08/peace.html' title='Peace'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kQIdCyGocyk/Tjdneuz-n0I/AAAAAAAABBA/ovI1pairevs/s72-c/peace.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5758289579861266134</id><published>2011-07-19T11:38:00.035+05:30</published><updated>2011-07-19T12:29:18.783+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><title type='text'>FindBugs</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-Lec8mfz2RM8/TiUikfAsiTI/AAAAAAAABAY/ZfrV_OqUAhI/s1600/umdFindbugs.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 195px;" src="http://1.bp.blogspot.com/-Lec8mfz2RM8/TiUikfAsiTI/AAAAAAAABAY/ZfrV_OqUAhI/s400/umdFindbugs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5630944919291726130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently as part of code improvement exercise in my project a used a static code analysis tool called &lt;a href="http://findbugs.sourceforge.net/"&gt;FindBugs&lt;/a&gt;. I find the tool very easy to use and its really helpful in detecting potential bugs in the code.&lt;br /&gt;&lt;br /&gt;FindBugs is an open source static analysis tool for defect detection. It analyzes code without running it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;FindBugs can be installed in either of two ways&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Downloading standalone FindBugs application&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1. Go to http://findbugs.sourceforge.net/downloads.html and download the zip file under the heading FindBugs tool.&lt;br /&gt;2. Now unzip the downloaded file and go to the bin folder and double click on &lt;span style="font-style:italic;"&gt;“findbugs.bat”&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt; batch file to open the standalone FindBugs UI interface&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Vbg4hZYVx7g/TiUizywpuyI/AAAAAAAABAg/STk18cPDaoA/s1600/p1.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 289px;" src="http://4.bp.blogspot.com/-Vbg4hZYVx7g/TiUizywpuyI/AAAAAAAABAg/STk18cPDaoA/s400/p1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5630945182291180322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Now click on FileNew Project and a new pop-up dialog comes up.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-sjKRjkXg1lU/TiUjYKKLqwI/AAAAAAAABAo/IcjFUHlZ_N0/s1600/p2.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 335px;" src="http://3.bp.blogspot.com/-sjKRjkXg1lU/TiUjYKKLqwI/AAAAAAAABAo/IcjFUHlZ_N0/s400/p2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5630945807047568130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. In this dialog specify the &lt;span style="font-weight:bold;"&gt;“Project name”&lt;/span&gt;. Now click on &lt;span style="font-weight:bold;"&gt;“Add”&lt;/span&gt; button adjacent to &lt;span style="font-weight:bold;"&gt;“Class archives and directories to analyze”&lt;/span&gt; and browse to the class folder of the files that you that want to analyze. Similarly click on &lt;span style="font-weight:bold;"&gt;“Add”&lt;/span&gt; button adjacent to &lt;span style="font-weight:bold;"&gt;“Source directories”&lt;/span&gt; and browse to src folder of the classes that you want to analyze. As an example refer to below snapshot&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-NsUIq69s1bM/TiUj8huJAQI/AAAAAAAABAw/tVLk7RCHyoU/s1600/p3.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 335px;" src="http://3.bp.blogspot.com/-NsUIq69s1bM/TiUj8huJAQI/AAAAAAAABAw/tVLk7RCHyoU/s400/p3.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5630946431847694594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5. Now click on &lt;span style="font-weight:bold;"&gt;“Finish”&lt;/span&gt; button. FindBugs will now recursively start analyzing all the class files within the specified folder and present you the list of bugs in your source code as shown below&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-3HH8F78jOEI/TiUkqwMESsI/AAAAAAAABA4/wFV04UZTMmQ/s1600/p4.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://3.bp.blogspot.com/-3HH8F78jOEI/TiUkqwMESsI/AAAAAAAABA4/wFV04UZTMmQ/s400/p4.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5630947226005293762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installing FindBugs eclipse plug-in&lt;/span&gt;&lt;br /&gt;Please refer to instruction on http://findbugs.sourceforge.net/downloads.html for installing FindBugs eclipse plug-in&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Coding mistakes to avoid&lt;/span&gt;&lt;br /&gt;Based on inputs from FindBugs here are some common coding errors that developers normally make and can be avoided.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Inefficient use of keySet iterator instead of entrySet iterator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Suppose we have following HashMap&lt;br /&gt;&lt;pre name="code" class="java"&gt;Map&lt;string, string=""&gt; myMap = new HashMap&lt;string, string=""&gt;();&lt;br /&gt;&lt;/string,&gt;&lt;/string,&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now we following three scenario’s for iterating over elements of Map&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Iterating over the keys of Map&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;In this case if we normally use &lt;span style="font-weight:bold;"&gt;“map.keySet”&lt;/span&gt; as shown below&lt;br /&gt;&lt;pre name="code" class="java"&gt;Iterator&lt;string&gt; iterator = myMap.keySet().iterator();&lt;br /&gt;while(iterator.hasNext())&lt;br /&gt;{&lt;br /&gt;  String key = iterator.next();&lt;br /&gt;}&lt;br /&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Iterating over values of Map&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;In this case we normally use &lt;span style="font-weight:bold;"&gt;“map.values()”&lt;/span&gt; as shown below&lt;br /&gt;&lt;pre name="code" class="java"&gt;Iterator&lt;string&gt; iterator = myMap.values().iterator();&lt;br /&gt;while(iterator.hasNext())&lt;br /&gt;{&lt;br /&gt;  String value = iterator.next();&lt;br /&gt;}&lt;br /&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Iterating over both key and value&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is the place where we normally make mistakes by doing following&lt;br /&gt;&lt;pre name="code" class="java"&gt;Iterator&lt;string&gt; iterator = myMap.keySet().iterator();&lt;br /&gt; while(iterator.hasNext())&lt;br /&gt; {&lt;br /&gt;  //Retrieving key&lt;br /&gt;  String key = iterator.next();&lt;br /&gt;  &lt;br /&gt;  //Accessing the map again for retrieving the 'value'&lt;br /&gt;  String value = myMap.get(key);&lt;br /&gt; }&lt;br /&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A better way is to use &lt;span style="font-weight:bold;"&gt;“entrySet”&lt;/span&gt; instead of &lt;span style="font-weight:bold;"&gt;“keySet”&lt;/span&gt; in this scenario. In this case the “entry” object contains both key and value and we don’t need to access the map twice.&lt;br /&gt; &lt;br /&gt;   &lt;pre name="code" class="java"&gt;      Iterator&amp;ltentry&amp;ltstring, string&amp;gt&amp;gt; iterator = myMap.entrySet().iterator();&lt;br /&gt;  while(iterator.hasNext())&lt;br /&gt;  {&lt;br /&gt;   Entry&amp;ltstring, string&amp;gt entry = iterator.next();&lt;br /&gt;   //Accessing the key&lt;br /&gt;   String key = entry.getKey();&lt;br /&gt;   //Accessing the value&lt;br /&gt;   String value = entry.getValue();&lt;br /&gt;  }&lt;br /&gt;   &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method invokes inefficient Number constructor; use static valueOf instead&lt;/span&gt;&lt;br /&gt;Suppose we have a primitive int variable and we need to create an Integer object out of it. Then we normally do following, which unnecessary creates an object of Integer class.&lt;br /&gt;&lt;pre name="code" class="java"&gt;       int val = 10;&lt;br /&gt; Integer intObj = new Integer(val);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A better way would be to use the static &lt;span style="font-weight:bold;"&gt;valueOf&lt;/span&gt; method of Integer class. Integer.valueOf(int) allows caching of values to be done by the compiler, class library, or JVM. Using of cached values avoids object allocation and the code will be faster.&lt;br /&gt;  &lt;pre name="code" class="java"&gt;     Integer intObj = Integer.valueOf(val);&lt;br /&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method concatenates strings using + in a loop&lt;/span&gt;&lt;br /&gt;Avoid using following&lt;br /&gt;     &lt;pre name="code" class="java"&gt;        String str = "";&lt;br /&gt;  List&lt;string&gt; nameList = new ArrayList&lt;string&gt;();&lt;br /&gt;  Iterator&lt;string&gt; iterator = nameList.iterator();&lt;br /&gt;  while(iterator.hasNext())&lt;br /&gt;   str += iterator.next();&lt;br /&gt;     &lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;Instead of this use StringBuffer/StringBuilder&lt;br /&gt; &lt;br /&gt;     &lt;pre name="code" class="java"&gt;        StringBuffer str = new StringBuffer();&lt;br /&gt;  List&lt;string&gt; nameList = new ArrayList&lt;string&gt;();&lt;br /&gt;  Iterator&lt;string&gt; iterator = nameList.iterator();&lt;br /&gt;  while(iterator.hasNext())&lt;br /&gt;   str.append(iterator.next()); //better way&lt;br /&gt;     &lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Possible null pointer dereference&lt;/span&gt;&lt;br /&gt;Refer to following code. What if &lt;span style="font-weight:bold;"&gt;“statusData”&lt;/span&gt; is &lt;span style="font-weight:bold;"&gt;null&lt;/span&gt;. Here in code we have a null check before printing our log statement but not before actually dereferencing this object. This is a very common error.&lt;br /&gt;&lt;br /&gt;     &lt;pre name="code" class="java"&gt;        Vector&lt;string&gt; statusData = MyClass.getTableData();&lt;br /&gt;  if(statusData != null)&lt;br /&gt;  {&lt;br /&gt;   System.out.println("Status Data is not null");&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;  System.out.println("Status data is null");&lt;br /&gt;  }&lt;br /&gt;  //What is statusData is null??&lt;br /&gt;  for(int i =0; i &amp;lt; statusData.size(); i++)&lt;br /&gt;   System.out.println("Data...." + statusData.elementAt(i));&lt;br /&gt; }&lt;br /&gt;    &lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Improper Exception handling&lt;/span&gt;&lt;br /&gt;Consider the following method. It throws &lt;span style="font-weight:bold;"&gt;IOException&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;pre name="code" class="java"&gt;      public static void setData(String data) throws IOException&lt;br /&gt; {&lt;br /&gt;  if(data == null)&lt;br /&gt;   throw new NullPointerException();&lt;br /&gt;  &lt;br /&gt;  //throw IOException for some error condition&lt;br /&gt;  if(outStream == null)&lt;br /&gt;   throw new IOException();&lt;br /&gt;  &lt;br /&gt;  //otherwise...set data&lt;br /&gt; }&lt;br /&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now here is the code segment where we call this method&lt;br /&gt;&lt;br /&gt;    &lt;pre name="code" class="java"&gt; try {&lt;br /&gt;  setData(null);&lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;   System.out.println("got exception");&lt;br /&gt;  }&lt;br /&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;There are two mistakes in the way exception handling has been done here&lt;br /&gt;1. We catch &lt;span style="font-weight:bold;"&gt;“Exception”&lt;/span&gt; instead of &lt;span style="font-weight:bold;"&gt;“IOException”&lt;/span&gt; which the method “setData” actually throws. This way unintentionally we are catching runtime exceptions also which we shouldn’t be doing.&lt;br /&gt;A better way would be to catch only those Exceptions which are thrown by the method&lt;br /&gt;            &lt;pre name="code" class="java"&gt;               try {&lt;br /&gt;   setData(null);&lt;br /&gt;  } catch (IOException e) {&lt;br /&gt;   System.out.println("got io");&lt;br /&gt;  }&lt;br /&gt;            &lt;/pre&gt;&lt;br /&gt;2. Second mistake is that we don’t do anything in the catch block. Exceptions should be propagated to the top level i.e. the initial calling method of the trace so that proper handling can be done and this will avoid execution of part of code which may be dependent on the result of the method throwing an exception.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5758289579861266134?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5758289579861266134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5758289579861266134&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5758289579861266134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5758289579861266134'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2011/07/findbugs.html' title='FindBugs'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Lec8mfz2RM8/TiUikfAsiTI/AAAAAAAABAY/ZfrV_OqUAhI/s72-c/umdFindbugs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-408008757143992264</id><published>2011-02-01T09:08:00.003+05:30</published><updated>2011-02-01T09:09:14.122+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='crap'/><title type='text'>Code quality metric :)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/TUeASptLtDI/AAAAAAAAA6Q/E8AEw8Tluho/s1600/wtfm.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 377px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/TUeASptLtDI/AAAAAAAAA6Q/E8AEw8Tluho/s400/wtfm.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5568560522188272690" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-408008757143992264?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/408008757143992264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=408008757143992264&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/408008757143992264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/408008757143992264'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2011/02/code-quality-metric.html' title='Code quality metric :)'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/TUeASptLtDI/AAAAAAAAA6Q/E8AEw8Tluho/s72-c/wtfm.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-677802254855169391</id><published>2010-10-20T12:19:00.002+05:30</published><updated>2010-10-20T13:26:30.908+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='designpattern'/><title type='text'>Singleton pattern is evil!</title><content type='html'>Singleton pattern is one of the most commonly used patterns. Though it has benefits of its own but there are some inherent problems associated with this pattern which I had observed in my recent work. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Scenario1:&lt;/span&gt;&lt;br /&gt;Consider following dummy example where we have a class “Dummy”&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class Dummy {&lt;br /&gt; &lt;br /&gt; private static Dummy dummyObject;&lt;br /&gt; private List&lt;String&gt; m_dataList;&lt;br /&gt; &lt;br /&gt; private Dummy()&lt;br /&gt; {&lt;br /&gt;  m_dataList = new ArrayList&lt;String&gt;();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public static Dummy getInstance()&lt;br /&gt; {&lt;br /&gt;  if(dummyObject == null)&lt;br /&gt;   dummyObject = new Dummy();&lt;br /&gt;  return dummyObject;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void saveData(String data)&lt;br /&gt; {&lt;br /&gt;  m_dataList.add(data);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public List&lt;String&gt; getData()&lt;br /&gt; {&lt;br /&gt;  return new ArrayList&lt;String&gt;(m_dataList);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now we will be using this class like this&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;  Dummy dummyObj = Dummy.getInstance();&lt;br /&gt;  dummyObject.saveData("some data");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now consider a scenario where we use object of this class in 2-3 classes for some specific operation only but since we have “static” reference to Dummy object it won’t ever be removed from memory till the lifetime of the product i.e. now we have resident in memory an object of Dummy class which is not frequently used. This makes a clear case of memory leak.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Proposed resolution&lt;/span&gt;&lt;br /&gt;We can provide a method for doing a clean-up i.e. releasing all the resources that this object uses. Onus of doing cleanup lies with the user of this class as only that class knows when it is done with this class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Scenario2:&lt;/span&gt;&lt;br /&gt;Consider a dummy class “InitManager” which is one of the many manager classes that are invoked at the starting of let’s say client or server. &lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class InitManager &lt;br /&gt;{&lt;br /&gt; private static InitManager initMgr;&lt;br /&gt; &lt;br /&gt; private InitManager()&lt;br /&gt; {&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public static InitManager getInstance()&lt;br /&gt; {&lt;br /&gt;  if(initMgr == null)&lt;br /&gt;   initMgr = new InitManager();&lt;br /&gt;  return initMgr;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * This method performs some boilerplate&lt;br /&gt;  * tasks.&lt;br /&gt;  */&lt;br /&gt; public void performTask()&lt;br /&gt; {&lt;br /&gt;  //do the initialization task&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now let’s suppose that this class is used only during initialization after which it’s not used throughout the execution of the product i.e. we do something like&lt;br /&gt;InitManager initMgrObject = InitManager.getInstance();&lt;br /&gt;initMgrObject.performTask();&lt;br /&gt;&lt;br /&gt;Now the object of InitManager will remain in memory during the lifetime of the product as it has “static” reference which will be released only when the application stops execution. This is clear case of memory leak. A better and simpler approach for this is to have static methods and there is no need to create objects in such cases.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class InitManager &lt;br /&gt;{&lt;br /&gt; public InitManager()&lt;br /&gt; {&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * This method performs some boilerplate&lt;br /&gt;  * tasks.&lt;br /&gt;  */&lt;br /&gt; public static void performTask()&lt;br /&gt; {&lt;br /&gt;  //do the initialization task&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-677802254855169391?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/677802254855169391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=677802254855169391&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/677802254855169391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/677802254855169391'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/10/singleton-pattern-is-evil.html' title='Singleton pattern is evil!'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2553653576207463581</id><published>2010-09-21T09:17:00.008+05:30</published><updated>2010-09-21T13:44:09.886+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><title type='text'>Dabaang : Dialogues which I love</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/TJhngQuqvSI/AAAAAAAAA6A/BJhK5qoIUB8/s1600/dabaangjpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 280px; height: 280px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/TJhngQuqvSI/AAAAAAAAA6A/BJhK5qoIUB8/s400/dabaangjpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5519275147286723874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Kamaal karte ho Pandey ji&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Kamini se yaad aaya….pandey ji..apki biwi kaisi hain&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Hum tumri jaan mein itna ched karenge itna ched karenge…ki.confuse ho jaoge ki..Saas kaha se ley aur pade kaha se..&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;101 kamino ki bali deke hamare maa baap ne hummein paida kiya hai&lt;br /&gt;Salman Khan: unhi kamino ke bhagwan hai hum.. abi badla lene aaye:)&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2553653576207463581?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2553653576207463581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2553653576207463581&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2553653576207463581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2553653576207463581'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/09/dabaang-dialogues-which-i-love.html' title='Dabaang : Dialogues which I love'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/TJhngQuqvSI/AAAAAAAAA6A/BJhK5qoIUB8/s72-c/dabaangjpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3785495932505637264</id><published>2010-07-10T16:39:00.003+05:30</published><updated>2010-07-10T16:43:36.442+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pics'/><title type='text'>Positive approach</title><content type='html'>This is what I call a &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Positive Approach!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/TDhVfpxCY5I/AAAAAAAAAxQ/vrqIY7Hy9GI/s1600/positiveapproach1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 292px; height: 400px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/TDhVfpxCY5I/AAAAAAAAAxQ/vrqIY7Hy9GI/s400/positiveapproach1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5492233747854156690" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3785495932505637264?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3785495932505637264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3785495932505637264&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3785495932505637264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3785495932505637264'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/07/positive-approach.html' title='Positive approach'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/TDhVfpxCY5I/AAAAAAAAAxQ/vrqIY7Hy9GI/s72-c/positiveapproach1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3510841411393169699</id><published>2010-05-31T16:26:00.013+05:30</published><updated>2010-06-01T08:11:39.886+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Chinese hacked my Gmail account!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/TAOdWo2K2GI/AAAAAAAAAv8/TRGcma0T-FU/s1600/Safe-gmail.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/TAOdWo2K2GI/AAAAAAAAAv8/TRGcma0T-FU/s400/Safe-gmail.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5477394584059959394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today morning when tried to log-in to my Gmail account, GMail asked me provide a cell number so that they can send a security code via SMS as it seems that the account has been misused. I thought gmail has gone mad and is just &lt;span style="font-style:italic;"&gt;freaking out&lt;/span&gt;. But to my dismay I saw following mail being sent to all my contacts&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dear friend,&lt;br /&gt;How are you doing now?&lt;br /&gt;I bought a notebook from the website last week  www.krrshop.com&lt;br /&gt;I have received the product in time.&lt;br /&gt;Not only its quality is very good,but alsoits price is very low.&lt;br /&gt;They also sell phone,TV,handheld game player,motorcycle and&lt;br /&gt;musical instruments.&lt;br /&gt;They import products from USA, Japan and South Korea,and they import&lt;br /&gt;the bestsellers.&lt;br /&gt;They have a good reputation,and offer the good suggest to the&lt;br /&gt;customers for the purchasing.&lt;br /&gt;If you want to buy any product,it is the good choice to browse the website.&lt;br /&gt;It is conviced that you will get benefits and joys.&lt;br /&gt;Greetings!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I started getting lot of mails from my friends like "Dude how much commision u got for sending this crap", "Is this your new business??"....&lt;br /&gt;At the bottom of my inbox I clicked on the &lt;span style="font-weight:bold;"&gt;Details&lt;/span&gt; hyper-link to see the activity information and to my dismay it clearly showed me that crackers from China had logged in to my account.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/TAObmFILNLI/AAAAAAAAAv0/Uwn2wJo3xvI/s1600/activity.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 335px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/TAObmFILNLI/AAAAAAAAAv0/Uwn2wJo3xvI/s400/activity.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5477392650326455474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I googled about this issue and I could see same happening with few other people, even an Android phone was hacked and same mail was sent through his Gmail account. I had followed following security tips mentioned in Gmail help forum&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First you need to check the bottom of the Inbox and make sure your account is not open at any other locations.  If it shows additional locations, open the Details window and "&lt;span style="font-weight:bold;"&gt;Sign out all other sessions&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Account Security:&lt;/span&gt;&lt;br /&gt;Settings -&gt; Accounts and Import -&gt; Google Account Settings -&gt; Change Password [pick a new secure password]&lt;br /&gt;Settings -&gt; Accounts and Import -&gt; Google Account Settings -&gt; Change Password Recovery Options [verify secret question, SMS and recovery e-mail address]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Potential Spam:&lt;/span&gt;&lt;br /&gt;Settings -&gt; General -&gt; Signature [make sure nothing as been added]&lt;br /&gt;Settings -&gt; General -&gt; Vacation Responder [make sure it's disabled and empty]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;E-mail Theft&lt;/span&gt;&lt;br /&gt;Settings -&gt; Accounts and Import -&gt; Send Mail As [make sure it is using your correct e-mail address]&lt;br /&gt;Settings -&gt; Filters [no filters that forward or delete e-mail]&lt;br /&gt;Settings -&gt; Forwarding and POP/IMAP -&gt; Forwarding [disabled or correct address]&lt;br /&gt;Settings -&gt; Forwarding and POP/IMAP -&gt; POP Download [disabled]&lt;br /&gt;Settings -&gt; Forwarding and POP/IMAP -&gt; IMAP Access [disabled]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3510841411393169699?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3510841411393169699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3510841411393169699&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3510841411393169699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3510841411393169699'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/05/chinese-hacked-my-gmail-account.html' title='Chinese hacked my Gmail account!!'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/TAOdWo2K2GI/AAAAAAAAAv8/TRGcma0T-FU/s72-c/Safe-gmail.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3916874419808361012</id><published>2010-05-20T11:22:00.002+05:30</published><updated>2010-05-20T11:25:45.962+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='crap'/><title type='text'>Future of Apple :)</title><content type='html'>Got a crappy forward message from a friend titled "Future of Apple" :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/S_TOZtvw2FI/AAAAAAAAAvs/grK_6E37dco/s1600/apple.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 313px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S_TOZtvw2FI/AAAAAAAAAvs/grK_6E37dco/s400/apple.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5473226388333975634" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3916874419808361012?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3916874419808361012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3916874419808361012&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3916874419808361012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3916874419808361012'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/05/future-of-apple.html' title='Future of Apple :)'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/S_TOZtvw2FI/AAAAAAAAAvs/grK_6E37dco/s72-c/apple.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8885881349035770971</id><published>2010-05-20T09:22:00.011+05:30</published><updated>2010-05-20T15:09:23.278+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Come-on HCL...grow up!!</title><content type='html'>Today I was uploading resume of one of my known person on &lt;a href="http://www.hclbpo.com/careers.html"&gt;HCL BPO career site&lt;/a&gt;. There were 2-3 pages where I need to enter the detailed information about the candidate. At the end of filling all the information this is what I got&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;System.FormatException: Input string was not in a correct format.&lt;br /&gt;at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer&amp;amp; number, NumberFormatInfo info, Boolean parseDecimal)&lt;br /&gt;at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)&lt;br /&gt;at System.Convert.ToInt32(String value)&lt;br /&gt;at User_ExperienceDetails.btnNext_Click(Object sender, EventArgs e) in e:\web sites\Iassist Beta\CARE\User\ExperienceDetails.aspx.cs:line 1022&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/S_S2O73D47I/AAAAAAAAAvk/uqdFjslSurI/s1600/frustration3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S_S2O73D47I/AAAAAAAAAvk/uqdFjslSurI/s400/frustration3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5473199814865052594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WTF it is!! Guys where is the usability?? The information that I can get from this error is&lt;br /&gt;1. Code running behind this application sucks! There is poor exception handling.&lt;br /&gt;2. The code is in .Net (I am a Java guy hence don't know the finer details)&lt;br /&gt;3. The string that I have input is in wrong format&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obviously instead of showing this error (its backtrace of an exception) user should be shown a meaningful error message and it should be pointed to the text field where the wrong data is entered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8885881349035770971?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8885881349035770971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8885881349035770971&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8885881349035770971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8885881349035770971'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/05/come-on-hclgrow-up.html' title='Come-on HCL...grow up!!'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/S_S2O73D47I/AAAAAAAAAvk/uqdFjslSurI/s72-c/frustration3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4123597022877717435</id><published>2010-05-14T16:56:00.012+05:30</published><updated>2010-05-14T17:46:25.658+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Change</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/S-0zgPg2gvI/AAAAAAAAAuc/C-FpEdE5h44/s1600/change.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/S-0zgPg2gvI/AAAAAAAAAuc/C-FpEdE5h44/s400/change.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5471085751338173170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's being said "&lt;span style="font-style:italic;"&gt;Only thing that is constant is change&lt;/span&gt;". In past few months a lot had changed for me, some were good and some were really bad and I would really like to &lt;span style="font-style:italic;"&gt;change&lt;/span&gt; those changes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Good One&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Marriage&lt;/span&gt; : Definitely one of the big change in recent times, but obviously one of the pleasant change especially when you get good life partner (Ya ya I know not all people are going to put this change under "good ones"....)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Mixed One&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Movement from Bangalore to Noida&lt;/span&gt; : I moved 6 months back from Bangalore to Noida. I am happy as Noida near to my home and I can go to my hometown more frequently. But I still miss Bangalore. Bangalore weather is awesome, there are no power cuts. One thing that really attracts me is the number of &lt;a href="http://anuj-mehta.blogspot.com/2009/04/list-of-users-group-in-bangalore.html"&gt;user groups&lt;/a&gt; that it bangalore has. I strongly feel that its very important to attend meetings of such user groups as you get to interact some of the finest minds in the industry, learn new things from people. Though there are some user groups in Delhi NCR but they are not that active and also sometimes distance is a hurdle for attending few meets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bad One&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Laziness&lt;/span&gt; : I had become really lethargic in past few months. Its been months since I had read any book, I don't blog, I don't actively code..the way I used to do.&lt;br /&gt;&lt;br /&gt;Probably there is a desperate need for a change...as its said "&lt;span style="font-style:italic;"&gt;Only thing that is constant is change&lt;/span&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4123597022877717435?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4123597022877717435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4123597022877717435&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4123597022877717435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4123597022877717435'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/05/change.html' title='Change'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/S-0zgPg2gvI/AAAAAAAAAuc/C-FpEdE5h44/s72-c/change.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3918778994790955079</id><published>2010-05-06T15:22:00.006+05:30</published><updated>2010-05-06T15:26:40.349+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Code Jam : Watersheds</title><content type='html'>Problem&lt;br /&gt;&lt;br /&gt;Geologists sometimes divide an area of land into different regions based on where rainfall flows down to. These regions are called drainage basins.&lt;br /&gt;&lt;br /&gt;Given an elevation map (a 2-dimensional array of altitudes), label the map such that locations in the same drainage basin have the same label, subject to the following rules.&lt;br /&gt;&lt;br /&gt;   * From each cell, water flows down to at most one of its 4 neighboring cells.&lt;br /&gt;   * For each cell, if none of its 4 neighboring cells has a lower altitude than the current cell's, then the water does not flow, and the current cell is called a sink.&lt;br /&gt;   * Otherwise, water flows from the current cell to the neighbor with the lowest altitude.&lt;br /&gt;   * In case of a tie, water will choose the first direction with the lowest altitude from this list: North, West, East, South.&lt;br /&gt;&lt;br /&gt;Every cell that drains directly or indirectly to the same sink is part of the same drainage basin. Each basin is labeled by a unique lower-case letter, in such a way that, when the rows of the map are concatenated from top to bottom, the resulting string is lexicographically smallest. (In particular, the basin of the most North-Western cell is always labeled 'a'.)&lt;br /&gt;&lt;br /&gt;Input&lt;br /&gt;&lt;br /&gt;The first line of the input file will contain the number of maps, T. T maps will follow, each starting with two integers on a line -- H and W -- the height and width of the map, in cells. The next H lines will each contain a row of the map, from north to south, each containing W integers, from west to east, specifying the altitudes of the cells.&lt;br /&gt;&lt;br /&gt;Output&lt;br /&gt;&lt;br /&gt;For each test case, output 1+H lines. The first line must be of the form&lt;br /&gt;&lt;br /&gt;Case #X:&lt;br /&gt;&lt;br /&gt;where X is the test case number, starting from 1. The next H lines must list the basin labels for each of the cells, in the same order as they appear in the input.&lt;br /&gt;&lt;br /&gt;Limits&lt;br /&gt;&lt;br /&gt;T ≤ 100;&lt;br /&gt;&lt;br /&gt;Small dataset&lt;br /&gt;&lt;br /&gt;1 ≤ H, W ≤ 10;&lt;br /&gt;0 ≤ altitudes &lt; 10.&lt;br /&gt;There will be at most two basins.&lt;br /&gt;&lt;br /&gt;Large dataset&lt;br /&gt;&lt;br /&gt;1 ≤ H, W ≤ 100;&lt;br /&gt;0 ≤ altitudes &lt; 10,000.&lt;br /&gt;There will be at most 26 basins.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;import java.io.BufferedReader;&lt;br /&gt;import java.io.FileNotFoundException;&lt;br /&gt;import java.io.FileReader;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;/**&lt;br /&gt; * &lt;br /&gt; * @author anuj.mehta&lt;br /&gt; */&lt;br /&gt;public class Watersheds {&lt;br /&gt; private final static int UP = 1;&lt;br /&gt; private final static int DOWN = 2;&lt;br /&gt; private final static int LEFT = 3;&lt;br /&gt; private final static int RIGHT = 4;&lt;br /&gt; private final static int SELF = 5;&lt;br /&gt; private static boolean basinFound = false;&lt;br /&gt; private static char basinName = 'a';&lt;br /&gt;&lt;br /&gt; public static void findFirstBasin(int[][] dirInfoMap, int curRow, int curCol, char[][] basinInfoMap)&lt;br /&gt; {&lt;br /&gt;  int dir = dirInfoMap[curRow][curCol];&lt;br /&gt;  if(dir == SELF)&lt;br /&gt;  {&lt;br /&gt;   basinInfoMap[curRow][curCol] = basinName;&lt;br /&gt;   basinFound = true;&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;  switch (dir) {&lt;br /&gt;   case UP:&lt;br /&gt;    curRow--;&lt;br /&gt;    break;&lt;br /&gt;   case DOWN:&lt;br /&gt;    curRow++;&lt;br /&gt;    break;&lt;br /&gt;   case LEFT:&lt;br /&gt;    curCol--;&lt;br /&gt;    break;&lt;br /&gt;   case RIGHT:&lt;br /&gt;    curCol++;&lt;br /&gt;  }&lt;br /&gt;  findFirstBasin(dirInfoMap, curRow, curCol, basinInfoMap);&lt;br /&gt;  if(basinFound)&lt;br /&gt;   basinInfoMap[curRow][curCol] = basinName;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public static char populateBasinNames(int[][] dirInfoMap, int curRow, int curCol, char[][] basinInfoMap)&lt;br /&gt; {&lt;br /&gt;  int dir = dirInfoMap[curRow][curCol];&lt;br /&gt;  switch(dir)&lt;br /&gt;  {&lt;br /&gt;  case SELF:&lt;br /&gt;   char name = basinInfoMap[curRow][curCol];&lt;br /&gt;   if(name == '\u0000')&lt;br /&gt;   {&lt;br /&gt;    basinName += 1;&lt;br /&gt;    basinInfoMap[curRow][curCol] = basinName;&lt;br /&gt;    return basinName;&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;    return name;&lt;br /&gt;  case UP:&lt;br /&gt;   curRow--;&lt;br /&gt;   break;&lt;br /&gt;  case DOWN:&lt;br /&gt;   curRow++;&lt;br /&gt;   break;&lt;br /&gt;  case LEFT:&lt;br /&gt;   curCol--;&lt;br /&gt;   break;&lt;br /&gt;  case RIGHT:&lt;br /&gt;   curCol++;&lt;br /&gt;  }&lt;br /&gt;  return populateBasinNames(dirInfoMap, curRow, curCol, basinInfoMap);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * @param args&lt;br /&gt;  */&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;  try {&lt;br /&gt;   BufferedReader br = new BufferedReader(new FileReader("Test.txt"));&lt;br /&gt;   int numOfMaps = Integer.parseInt(br.readLine());&lt;br /&gt;   for(int i =0; i &lt; numOfMaps; i++)&lt;br /&gt;   {&lt;br /&gt;    basinName = 'a';&lt;br /&gt;    String[] elevationMapDimensions = br.readLine().split(" ");&lt;br /&gt;    int height = Integer.parseInt(elevationMapDimensions[0]);&lt;br /&gt;    int width = Integer.parseInt(elevationMapDimensions[1]);&lt;br /&gt;    int[][] elevationMap = new int[height][width];&lt;br /&gt;    int[][] dirInfoMap = new int[height][width];&lt;br /&gt;    //Store the altitude data in array&lt;br /&gt;    for(int j = 0; j &lt; height; j++)&lt;br /&gt;    {&lt;br /&gt;     String[] altitudeData = br.readLine().split(" ");&lt;br /&gt;     for(int k = 0; k &lt; width; k++)&lt;br /&gt;     {&lt;br /&gt;      elevationMap[j][k] = Integer.parseInt(altitudeData[k]);&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //Now process array elements&lt;br /&gt;    for(int j =0; j &lt; height; j++)&lt;br /&gt;    {&lt;br /&gt;     for(int k =0; k &lt; width; k++)&lt;br /&gt;     {&lt;br /&gt;      int target = elevationMap[j][k];&lt;br /&gt;      int left = -1, right = -1, up = -1, down = -1; &lt;br /&gt;      &lt;br /&gt;      //get neighbours&lt;br /&gt;      if(k-1 &gt;= 0)&lt;br /&gt;       left = elevationMap[j][k-1];&lt;br /&gt;      if(k +1 &lt; width)&lt;br /&gt;       right = elevationMap[j][k+1];&lt;br /&gt;      if(j-1 &gt;= 0)&lt;br /&gt;       up = elevationMap[j-1][k];&lt;br /&gt;      if(j +1 &lt; height)&lt;br /&gt;       down = elevationMap[j+1][k];&lt;br /&gt;      int small = target;&lt;br /&gt;      int direction = SELF;&lt;br /&gt;      if(up != -1 &amp;&amp; up &lt; target)&lt;br /&gt;      {&lt;br /&gt;       small = up;&lt;br /&gt;       direction = UP;&lt;br /&gt;      }&lt;br /&gt;      if( left != -1 &amp;&amp; left &lt; target )&lt;br /&gt;      {&lt;br /&gt;       if(small == -2)&lt;br /&gt;       { &lt;br /&gt;        small = left;&lt;br /&gt;        direction = LEFT;&lt;br /&gt;       }&lt;br /&gt;       else if(left &lt; small)&lt;br /&gt;       {&lt;br /&gt;        small = left;&lt;br /&gt;        direction = LEFT;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      if( right != -1 &amp;&amp; right &lt; target )&lt;br /&gt;      {&lt;br /&gt;       if(small == -2)&lt;br /&gt;       {&lt;br /&gt;        small = right;&lt;br /&gt;        direction = RIGHT;&lt;br /&gt;       }&lt;br /&gt;       else if(right &lt; small)&lt;br /&gt;       {&lt;br /&gt;        small = right;&lt;br /&gt;        direction = RIGHT;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      if( down != -1 &amp;&amp; down &lt; target )&lt;br /&gt;      {&lt;br /&gt;       if(small == -2)&lt;br /&gt;       {&lt;br /&gt;        small = down;&lt;br /&gt;        direction = DOWN;&lt;br /&gt;       }&lt;br /&gt;       else if(down &lt; small)&lt;br /&gt;       {&lt;br /&gt;        small = down;&lt;br /&gt;        direction = DOWN;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      dirInfoMap[j][k] = direction;&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    char[][] basinInfoMap = new char[height][width];&lt;br /&gt;    int curRow = 0, curCol = 0;&lt;br /&gt;    basinFound = false;&lt;br /&gt;    //first find the first basin&lt;br /&gt;    findFirstBasin(dirInfoMap, curRow, curCol, basinInfoMap);&lt;br /&gt;    if(basinFound)&lt;br /&gt;     basinInfoMap[curRow][curCol] = basinName;&lt;br /&gt;    for(int row = 0; row &lt; height; row++)&lt;br /&gt;    {&lt;br /&gt;     for(int col = 0; col &lt; width; col++)&lt;br /&gt;     {&lt;br /&gt;      //populate rest of the basin info&lt;br /&gt;      char name = populateBasinNames(dirInfoMap, row, col, basinInfoMap);&lt;br /&gt;      basinInfoMap[row][col] = name;&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    for(int j = 0; j &lt; height; j++)&lt;br /&gt;    {&lt;br /&gt;     for(int k = 0; k &lt; width; k++)&lt;br /&gt;      System.out.print(basinInfoMap[j][k] + "\t");&lt;br /&gt;     System.out.println();&lt;br /&gt;    }&lt;br /&gt;    System.out.println("================================");&lt;br /&gt;   }&lt;br /&gt;  } catch (FileNotFoundException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (NumberFormatException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (IOException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3918778994790955079?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3918778994790955079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3918778994790955079&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3918778994790955079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3918778994790955079'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/05/code-jam-watersheds.html' title='Code Jam : Watersheds'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5127446908200929972</id><published>2010-04-27T12:39:00.008+05:30</published><updated>2010-04-27T12:47:45.159+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Code Jam  - Alien Language Solution</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;After years of study, scientists at Google Labs have discovered an alien language transmitted from a faraway planet. The alien language is very unique in that every word consists of exactly L lowercase letters. Also, there are exactly D words in this language.&lt;br /&gt;&lt;br /&gt;Once the dictionary of all the words in the alien language was built, the next breakthrough was to discover that the aliens have been transmitting messages to Earth for the past decade. Unfortunately, these signals are weakened due to the distance between our two planets and some of the words may be misinterpreted. In order to help them decipher these messages, the scientists have asked you to devise an algorithm that will determine the number of possible interpretations for a given pattern.&lt;br /&gt;&lt;br /&gt;A pattern consists of exactly L tokens. Each token is either a single lowercase letter (the scientists are very sure that this is the letter) or a group of unique lowercase letters surrounded by parenthesis ( and ). For example: (ab)d(dc) means the first letter is either a or b, the second letter is definitely d and the last letter is either d or c. Therefore, the pattern (ab)d(dc) can stand for either one of these 4 possibilities: add, adc, bdd, bdc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Input&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first line of input contains 3 integers, L, D and N separated by a space. D lines follow, each containing one word of length L. These are the words that are known to exist in the alien language. N test cases then follow, each on its own line and each consisting of a pattern as described above. You may assume that all known words provided are unique.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For each test case, output&lt;br /&gt;&lt;br /&gt;Case #X: K&lt;br /&gt;where X is the test case number, starting from 1, and K indicates how many words in the alien language match the pattern.&lt;br /&gt;&lt;br /&gt;Limits&lt;br /&gt;&lt;br /&gt;Small dataset&lt;br /&gt;&lt;br /&gt;1 ≤ L ≤ 10&lt;br /&gt;1 ≤ D ≤ 25&lt;br /&gt;1 ≤ N ≤ 10&lt;br /&gt;Large dataset&lt;br /&gt;&lt;br /&gt;1 ≤ L ≤ 15&lt;br /&gt;1 ≤ D ≤ 5000&lt;br /&gt;1 ≤ N ≤ 500&lt;br /&gt;Sample&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Input &lt;/span&gt;&lt;br /&gt; &lt;br /&gt;3 5 4&lt;br /&gt;abc&lt;br /&gt;bca&lt;br /&gt;dac&lt;br /&gt;dbc&lt;br /&gt;cba&lt;br /&gt;(ab)(bc)(ca)&lt;br /&gt;abc&lt;br /&gt;(abc)(abc)(abc)&lt;br /&gt;(zyx)bc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Output&lt;/span&gt;&lt;br /&gt;Case #1: 2&lt;br /&gt;Case #2: 1&lt;br /&gt;Case #3: 3&lt;br /&gt;Case #4: 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;My Solution&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;import java.io.BufferedReader;&lt;br /&gt;import java.io.FileNotFoundException;&lt;br /&gt;import java.io.FileReader;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.regex.Matcher;&lt;br /&gt;import java.util.regex.Pattern;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * &lt;br /&gt; * @author anuj.mehta&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;public class AlienLanguage {&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt; try {&lt;br /&gt;   BufferedReader br = new BufferedReader(new FileReader("Test.txt"));&lt;br /&gt;   String[] arr = br.readLine().split(" ");&lt;br /&gt;   int numOfWords = Integer.parseInt(arr[1]);&lt;br /&gt;   int numOfPatterns = Integer.parseInt(arr[2]);&lt;br /&gt;   &lt;br /&gt;   List&lt;String&gt; wordList = new ArrayList&lt;String&gt;();&lt;br /&gt;   for(int i =0; i &lt; numOfWords; i++)&lt;br /&gt;    wordList.add(br.readLine());&lt;br /&gt;   &lt;br /&gt;   List&lt;Pattern&gt; patternList = new ArrayList&lt;Pattern&gt;();&lt;br /&gt;   for(int i =0; i &lt; numOfPatterns; i++)&lt;br /&gt;    patternList.add(Pattern.compile( br.readLine().replace('(', '[').replace(')', ']')));&lt;br /&gt;   int index = 0;&lt;br /&gt;   for(Pattern p : patternList)&lt;br /&gt;   {&lt;br /&gt;    index++;&lt;br /&gt;    int count = 0;&lt;br /&gt;    for(String word : wordList)&lt;br /&gt;    {&lt;br /&gt;     Matcher m = p.matcher(word);&lt;br /&gt;     if(m.matches())&lt;br /&gt;      count++;&lt;br /&gt;    }&lt;br /&gt;    System.out.println("Case " + index + ": " + count);&lt;br /&gt;   }&lt;br /&gt;  } catch (FileNotFoundException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (IOException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5127446908200929972?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5127446908200929972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5127446908200929972&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5127446908200929972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5127446908200929972'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/04/code-jam-alien-language-solution.html' title='Code Jam  - Alien Language Solution'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2975013953603410417</id><published>2010-01-09T17:36:00.023+05:30</published><updated>2010-01-27T08:56:49.959+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pics'/><title type='text'>Auto Expo 2010</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0iD9MlJbzI/AAAAAAAAAhY/1OlUb9rJ39w/s1600-h/DSC00235.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0iD9MlJbzI/AAAAAAAAAhY/1OlUb9rJ39w/s400/DSC00235.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424730838540054322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iDYP3iUxI/AAAAAAAAAhI/3tLVswfzqXs/s1600-h/DSC00222.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iDYP3iUxI/AAAAAAAAAhI/3tLVswfzqXs/s400/DSC00222.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424730203767329554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iCOO6y0SI/AAAAAAAAAhA/GTxL0XnBWn0/s1600-h/DSC00218.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iCOO6y0SI/AAAAAAAAAhA/GTxL0XnBWn0/s400/DSC00218.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424728932202238242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0iCNcNvecI/AAAAAAAAAg4/RHfnZL28lLs/s1600-h/DSC00209.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0iCNcNvecI/AAAAAAAAAg4/RHfnZL28lLs/s400/DSC00209.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424728918591502786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iA4KN6zkI/AAAAAAAAAgw/0BJ3WJ-QXpo/s1600-h/DSC00207.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0iA4KN6zkI/AAAAAAAAAgw/0BJ3WJ-QXpo/s400/DSC00207.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424727453471526466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0iA3pMnA5I/AAAAAAAAAgo/a9cbwGY0PEA/s1600-h/DSC00202.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0iA3pMnA5I/AAAAAAAAAgo/a9cbwGY0PEA/s400/DSC00202.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424727444607665042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h_lHy2CvI/AAAAAAAAAgg/ARnnRVe2zfM/s1600-h/DSC00199.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h_lHy2CvI/AAAAAAAAAgg/ARnnRVe2zfM/s400/DSC00199.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424726026891954930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h_koq5NbI/AAAAAAAAAgY/JINKiLMunUw/s1600-h/DSC00194.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h_koq5NbI/AAAAAAAAAgY/JINKiLMunUw/s400/DSC00194.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424726018537108914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h97tZLl8I/AAAAAAAAAgQ/G8GiQ7lT5L8/s1600-h/DSC00190.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h97tZLl8I/AAAAAAAAAgQ/G8GiQ7lT5L8/s400/DSC00190.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424724215918729154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h9Lc0YUCI/AAAAAAAAAgI/MlGYiisHwsc/s1600-h/DSC00189.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h9Lc0YUCI/AAAAAAAAAgI/MlGYiisHwsc/s400/DSC00189.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424723386835685410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h9Kx4HXUI/AAAAAAAAAgA/1XxCw4j1N9s/s1600-h/DSC00185.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h9Kx4HXUI/AAAAAAAAAgA/1XxCw4j1N9s/s400/DSC00185.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424723375308627266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h79--2ZqI/AAAAAAAAAf4/Lh_9VEr9b-g/s1600-h/DSC00181.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h79--2ZqI/AAAAAAAAAf4/Lh_9VEr9b-g/s400/DSC00181.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424722055976609442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h79rUVe6I/AAAAAAAAAfw/WItVEa5t7ok/s1600-h/DSC00175.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h79rUVe6I/AAAAAAAAAfw/WItVEa5t7ok/s400/DSC00175.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424722050698017698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h6v1THRSI/AAAAAAAAAfg/7QKxk1v8_fs/s1600-h/DSC00167.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h6v1THRSI/AAAAAAAAAfg/7QKxk1v8_fs/s400/DSC00167.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424720713347450146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h6wXynsDI/AAAAAAAAAfo/x43PJOwlgps/s1600-h/DSC00173.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h6wXynsDI/AAAAAAAAAfo/x43PJOwlgps/s400/DSC00173.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424720722606403634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h5Mzi2rlI/AAAAAAAAAfQ/22ULriDEnJQ/s1600-h/DSC00164.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0h5Mzi2rlI/AAAAAAAAAfQ/22ULriDEnJQ/s400/DSC00164.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424719012069551698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h5NTPm0XI/AAAAAAAAAfY/KsOV7h9CRkA/s1600-h/DSC00167.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h5NTPm0XI/AAAAAAAAAfY/KsOV7h9CRkA/s400/DSC00167.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424719020578754930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h35HA04lI/AAAAAAAAAfI/MhC6t0VOrrM/s1600-h/DSC00163.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h35HA04lI/AAAAAAAAAfI/MhC6t0VOrrM/s400/DSC00163.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424717574186525266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h2vdxdYlI/AAAAAAAAAfA/Y16M1CXPYeE/s1600-h/DSC00160.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424716308985766482" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0h2vdxdYlI/AAAAAAAAAfA/Y16M1CXPYeE/s400/DSC00160.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h2u9KcUDI/AAAAAAAAAe4/yPxTWSKsOKs/s1600-h/DSC00157.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424716300232183858" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/S0h2u9KcUDI/AAAAAAAAAe4/yPxTWSKsOKs/s400/DSC00157.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h1b6S1_FI/AAAAAAAAAew/UR6h83vo3nk/s1600-h/DSC00156.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424714873532972114" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h1b6S1_FI/AAAAAAAAAew/UR6h83vo3nk/s400/DSC00156.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h0qRpzxcI/AAAAAAAAAeo/rUijvfOIgQY/s1600-h/DSC00153.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424714020809852354" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0h0qRpzxcI/AAAAAAAAAeo/rUijvfOIgQY/s400/DSC00153.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0hzu9KVWlI/AAAAAAAAAeg/TR4mAqXTj3o/s1600-h/DSC00152.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424713001696844370" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0hzu9KVWlI/AAAAAAAAAeg/TR4mAqXTj3o/s400/DSC00152.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0hzuF_MQtI/AAAAAAAAAeY/02YxCavaMp4/s1600-h/DSC00148.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424712986886161106" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0hzuF_MQtI/AAAAAAAAAeY/02YxCavaMp4/s400/DSC00148.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0hztWE8k0I/AAAAAAAAAeQ/kV9tHg_w2WY/s1600-h/DSC00147.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424712974025397058" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0hztWE8k0I/AAAAAAAAAeQ/kV9tHg_w2WY/s400/DSC00147.JPG" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2975013953603410417?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2975013953603410417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2975013953603410417&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2975013953603410417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2975013953603410417'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/01/auto-expo-2010.html' title='Auto Expo 2010'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/S0iD9MlJbzI/AAAAAAAAAhY/1OlUb9rJ39w/s72-c/DSC00235.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6475917141778936533</id><published>2010-01-08T15:49:00.034+05:30</published><updated>2010-01-08T16:45:37.126+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Profiling using Netbeans profiler</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0cTiO3ySyI/AAAAAAAAAeA/hrR4a-N7QYw/s1600-h/final.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0cTiO3ySyI/AAAAAAAAAeA/hrR4a-N7QYw/s400/final.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5424325755019610914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I just used Netbeans profiler for profiling a java based application which was getting hanged while using it. I was really impressed with the simplicity and elegance of the profiler. Using the profiler is a child's play and it gives you the required info in a nice GUI with charts and graphs which helps you in finding out where the problem lies. You can also view the live profiling results. Lets see how simple it is to profile an application using Netbeans profiler. I am using &lt;strong&gt;Netbeans 6.7.1&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;1. Initially open your project in Netbeans. Now go to &lt;strong&gt;Profile&lt;/strong&gt; menu and select &lt;strong&gt;Attach Profiler &lt;/strong&gt;sub-menu&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0cKdFTPf1I/AAAAAAAAAdY/VJ6DA49GPjk/s1600-h/ProfileMenu.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424315770946420562" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 250px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0cKdFTPf1I/AAAAAAAAAdY/VJ6DA49GPjk/s400/ProfileMenu.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. A new dailog for Attach Profiler opens up. Select the project name (jtharness in my case) from the drop down list corresponding to &lt;em&gt;Attach to&lt;/em&gt; label.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0cNA5u2olI/AAAAAAAAAdg/J8d6g5tBZmE/s1600-h/attach.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424318585339552338" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 316px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0cNA5u2olI/AAAAAAAAAdg/J8d6g5tBZmE/s400/attach.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. At the bottom of this dialog you can see following "&lt;em&gt;Attach Mode: Local direct attach to Java Application, change&lt;/em&gt;". Click on &lt;strong&gt;change&lt;/strong&gt;. A new &lt;strong&gt;Attach Wizard&lt;/strong&gt; pops up. In this select the appropriate &lt;strong&gt;Target type&lt;/strong&gt;, &lt;strong&gt;Attach method&lt;/strong&gt; and &lt;strong&gt;Attach invocation&lt;/strong&gt; and press Next button&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/S0cOQ7HPTVI/AAAAAAAAAdo/LoCqFVdV9Tg/s1600-h/wizard.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424319960099802450" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 309px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/S0cOQ7HPTVI/AAAAAAAAAdo/LoCqFVdV9Tg/s400/wizard.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. In the next page review your Attach Settings and press Next&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/S0cO6q_jp1I/AAAAAAAAAdw/fUYju_MLfC8/s1600-h/review.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424320677327120210" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 309px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/S0cO6q_jp1I/AAAAAAAAAdw/fUYju_MLfC8/s400/review.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Now the &lt;strong&gt;Mannual Integration&lt;/strong&gt; page opens up. Copy the startup option shown in Step 1 and use this option in CLI for java command while starting your appliccation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/S0cRiF3T-zI/AAAAAAAAAd4/O-CQifBuy-s/s1600-h/mannual.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5424323553578449714" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 309px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/S0cRiF3T-zI/AAAAAAAAAd4/O-CQifBuy-s/s400/mannual.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Now as I had mentioned above use the option given in Step 1 for starting your application so as to integrate the profiler. For eg: normally I start my application using the CLI command&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;java -jar javatest.jar&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I will replace this call with following&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;java -agentpath:"D:\Program Files\NetBeans 6.7.1\profiler3\lib\deployed\jdk15\windows\profilerinterface.dll=\"D:\Program Files\NetBeans 6.7.1\profiler3\lib\"",5140 -jar javatest.jar&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Now click Finish button. The original &lt;em&gt;&lt;strong&gt;Attach Profiler&lt;/strong&gt;&lt;/em&gt; dialog comes up, click on the &lt;strong&gt;Attach Button&lt;/strong&gt; and your profiler starts up!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6475917141778936533?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6475917141778936533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6475917141778936533&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6475917141778936533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6475917141778936533'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2010/01/profiling-using-netbeans-profiler.html' title='Profiling using Netbeans profiler'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/S0cTiO3ySyI/AAAAAAAAAeA/hrR4a-N7QYw/s72-c/final.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1851352409519934598</id><published>2009-11-09T15:39:00.003+05:30</published><updated>2009-11-09T15:44:24.594+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Joined Samsung Electronics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SvfqaJXS2VI/AAAAAAAAAcE/5qNuVNGG1QI/s1600-h/samsung_logo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SvfqaJXS2VI/AAAAAAAAAcE/5qNuVNGG1QI/s400/samsung_logo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5402044012965321042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally after spending 8 yearsin Karnataka (4 years in Manipal and 4 in Bangalore)  I back in North India near to my home :). Joined Samsung, Noida. Working at Wipro was fun, lets see how it goes here!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1851352409519934598?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1851352409519934598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1851352409519934598&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1851352409519934598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1851352409519934598'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/11/joined-samsung-electronics.html' title='Joined Samsung Electronics'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SvfqaJXS2VI/AAAAAAAAAcE/5qNuVNGG1QI/s72-c/samsung_logo.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5919427847458456033</id><published>2009-11-03T10:34:00.012+05:30</published><updated>2009-11-03T11:49:23.608+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Chetan Bhagat's 2 states - a lackluster</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Su-63o1CymI/AAAAAAAAAb8/e2dGexaYn2A/s1600-h/2states_bookcover.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 252px; height: 400px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Su-63o1CymI/AAAAAAAAAb8/e2dGexaYn2A/s400/2states_bookcover.jpg" alt="" id="BLOGGER_PHOTO_ID_5399739943255984738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recently I came to know about the new novel by &lt;a href="http://www.chetanbhagat.com/"&gt;Chetan Bhagat&lt;/a&gt; named &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;2 states&lt;/span&gt;&lt;/span&gt;. I was really eager about this book as I liked his previous two books namely &lt;span style="font-style: italic;"&gt;5 point someone&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;One night @ call center&lt;/span&gt;. So yesterday I went to Landmark with the intent of buying the book, in the book shop I managed to get an empty seat hence couldn't resist myself from reading the book there itself, when I started reading the book initially it seems to be a normal story; there was nothing great in it, but I told myself "be patient and keep reading" but once reached the half way through i.e. some 100 odd pages I told myself enough is enough, this is a crap novel and any further reading is complete wastage of time. 2 states seems to be sequel of &lt;span style="font-style: italic;"&gt;5 point some one&lt;/span&gt;, where the Hari of &lt;span style="font-style: italic;"&gt;5 point someone&lt;/span&gt; becomes Krish and enters the hallowed portals of IIM Ahemdabad to find his love Ananya, this time she is his classmate instead of professor's daughter and then a normal love story. He is a Punjabi and she is a Tamil Brahmin and their parents are against the inter-caste marriage.&lt;br /&gt;&lt;br /&gt;The thing that I used to like about Chetan's novels were the way he portrays the innocent love stories, combined with his witty one liners. But this book falls short of these, there is absolutely no humor and its a boring love story devoid of any adventure. Probably it's time that Chetan comes out of his comfort zone (of amataeur love stories) and try out something new!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5919427847458456033?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5919427847458456033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5919427847458456033&amp;isPopup=true' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5919427847458456033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5919427847458456033'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/11/chetan-bhagats-2-states-lackluster.html' title='Chetan Bhagat&apos;s 2 states - a lackluster'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/Su-63o1CymI/AAAAAAAAAb8/e2dGexaYn2A/s72-c/2states_bookcover.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-195235596073982095</id><published>2009-10-26T11:54:00.029+05:30</published><updated>2009-10-27T16:29:28.838+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='wipro'/><category scheme='http://www.blogger.com/atom/ns#' term='bangalore'/><title type='text'>Leaving Wipro and Bengaluru</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SubAzers-0I/AAAAAAAAAbs/dOlZfah16kM/s1600-h/WiproTec.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 272px; height: 320px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SubAzers-0I/AAAAAAAAAbs/dOlZfah16kM/s400/WiproTec.jpg" alt="" id="BLOGGER_PHOTO_ID_5397213194092346178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Leaving Wipro is definitely one of the toughest decision in recent times, the same was true while joining also :). During college I had offers from &lt;a href="http://www.vmware.com/"&gt;VMWare&lt;/a&gt;,  &lt;a href="http://www.ge.com/in/ourbusiness/industrial/iic.html"&gt;GE&lt;/a&gt; and Wipro, with the package of Wipro being the least and I still joined it. It has been roller coaster ride at Wipro, in past 4 years I had my share of both the best and worst days; be it having fun with colleagues, spending long time over the pool side in EC chatting with friends or working till late nights and over the weekends. Overall its been a good experience and I am going as a satisfied man. There are number of things that I really like about Wipro but the thing that I really like is its knowledge centricity.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Knowledge centric organization&lt;/span&gt; &lt;/blockquote&gt;&lt;br /&gt;Knowledge is at the core of Wipro. There is very high focus on the continuous knowledge up-gradation. Wipro library is simply awesome, the collection of books is incredible be it technical, general management or some serious management books. I was really happy with the number of books that I have read here. I know not many companies in India invest so much in books as Wipro does. Also the sort of trainings that we have be it from Wipro employees or from other companies is really good. I still remember when I attended a session on Cloud Computing by an evangelist from Amazon in 2007. Cloud computing became hot in 2008 and Wipro was way ahead in it. Once I attended a training on Social computing and Semantic Web I was really amazed with the presenters, the sort of research that they had done in this field. Before attending the training I thought I had very good knowledge about the topic and during training came to know that it just the tip of iceberg and I need to spend lot of time probably years to reach the level of expertise that these presenters have.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some bangalore buddies whom I really going to miss&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SubBLHBCJBI/AAAAAAAAAb0/ok1Nhc6Zjww/s1600-h/DSC00089.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SubBLHBCJBI/AAAAAAAAAb0/ok1Nhc6Zjww/s400/DSC00089.JPG" alt="" id="BLOGGER_PHOTO_ID_5397213600056222738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ravi, Kushal, Santosh and me (Left to right)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-195235596073982095?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/195235596073982095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=195235596073982095&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/195235596073982095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/195235596073982095'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/10/leaving-wipro-and-bengaluru.html' title='Leaving Wipro and Bengaluru'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SubAzers-0I/AAAAAAAAAbs/dOlZfah16kM/s72-c/WiproTec.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8113011229886497390</id><published>2009-10-25T15:03:00.030+05:30</published><updated>2009-11-03T11:20:10.482+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='indianrailways'/><title type='text'>Why I still travel by train?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SuQpt2vIz-I/AAAAAAAAAW4/OIsmXNQMXNE/s1600-h/engine.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SuQpt2vIz-I/AAAAAAAAAW4/OIsmXNQMXNE/s400/engine.jpg" alt="" id="BLOGGER_PHOTO_ID_5396484121260773346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recently I was on a &lt;a href="http://en.wikipedia.org/wiki/Diwali"&gt;Diwali&lt;/a&gt; visit to my native place Ajmer. By train it takes 48 hours to reach my home. &lt;span style="font-weight: bold;"&gt;Her Highness&lt;/span&gt; told me for this "&lt;span style="font-style: italic;"&gt;Are you nuts? You will be traveling for 4 days and staying at home only for 2 days. Can't you just take a flight and avoid this wastage of time?&lt;/span&gt;". I just smiled and told hopefully one day I will be able to explain you why I still travel by train. There are several reasons why I still travel by train. Here goes the reason's&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Affordable&lt;/span&gt; : No matter how much the airline guys shout about cheap travel they can't beat Indian Railways in terms of price. I pay 1400 bucks for 3 Tier AC and just 500 for Sleeper class. Now even if u get air ticket for free still u need to pay some 2000-3000 as tax, also the airports are far from city (at least Bangalore airport is far away...its some 50-55 kms from city)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Time for yourself&lt;/span&gt; : During my travel through train I get 2 full days just for myself without any distraction, there are no managers, no laptop, no work. This way I get sufficient time to think about my career - how I am doing and how to improve it further?. I get time to read my favorite books. I know people will say common you can save lot of time through air travel and read books at home...even though I read lot of books but still my laptop is my biggest distraction, in train there is none.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SuQpUCc20tI/AAAAAAAAAWo/InJWe-9uuvo/s1600-h/landscape1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SuQpUCc20tI/AAAAAAAAAWo/InJWe-9uuvo/s400/landscape1.jpg" alt="" id="BLOGGER_PHOTO_ID_5396483677728723666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Sight seeing&lt;/span&gt; :  I travel across the length of the country covering close to 2500 kms. During this travel I get a chance to see the diverse landscapes; from the hilly Western Ghats in Karnataka and Maharashtra, the rivers and lush green mountains on the way to the desiccated areas of Rajasthan. I enjoy watching the farmers toiling their farms with their bullocks, the herdsman driving the cattle. And guess what all this sight seeing for free!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SuQpiZXODWI/AAAAAAAAAWw/9nJe8tLk2VQ/s1600-h/landscape.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SuQpiZXODWI/AAAAAAAAAWw/9nJe8tLk2VQ/s400/landscape.jpg" alt="" id="BLOGGER_PHOTO_ID_5396483924397264226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight:bold;"&gt;Comfort&lt;/span&gt; : As mentioned in case of price, in case of comfort also the low cost airlines can never beat the mighty railways. This is what Shashi Tharoor has to say about economy class airlines "&lt;span style="font-style:italic;"&gt;Absolutely, in cattle class out of solidarity with all our holy cows!&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SuQr8VMdTCI/AAAAAAAAAXA/n4chLvsz2PM/s1600-h/love-aaj-kal-kal.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SuQr8VMdTCI/AAAAAAAAAXA/n4chLvsz2PM/s400/love-aaj-kal-kal.jpg" alt="" id="BLOGGER_PHOTO_ID_5396486568978238498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. &lt;span style="font-weight: bold;"&gt;The 1960 factor&lt;/span&gt; : Inspiration for this came from the movie &lt;a href="http://loveaajkal-illuminatifilms.erosentertainment.com/"&gt;Love Aaj Kal&lt;/a&gt; where the protagonist Veer Singh of 1960 era travels thousands of kilometers for just one glance of his sweetheart. This time it was same for me :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8113011229886497390?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8113011229886497390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8113011229886497390&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8113011229886497390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8113011229886497390'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/10/why-i-still-travel-by-train.html' title='Why I still travel by train?'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SuQpt2vIz-I/AAAAAAAAAW4/OIsmXNQMXNE/s72-c/engine.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3350015842453416234</id><published>2009-10-25T11:35:00.008+05:30</published><updated>2009-10-25T11:40:55.792+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore'/><category scheme='http://www.blogger.com/atom/ns#' term='pics'/><title type='text'>Leela Palace, Bangalore - few pics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SuPrzqBz4eI/AAAAAAAAAWg/dWYimrqM5bc/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SuPrzqBz4eI/AAAAAAAAAWg/dWYimrqM5bc/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396416051207725538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrr9z7klI/AAAAAAAAAWY/uQbkNCiBgrs/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrr9z7klI/AAAAAAAAAWY/uQbkNCiBgrs/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415919079264850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrjk8ErTI/AAAAAAAAAWQ/wss8Mlxnr4w/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrjk8ErTI/AAAAAAAAAWQ/wss8Mlxnr4w/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415774963576114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SuPrcB5k6II/AAAAAAAAAWI/BYhzMmkF4HA/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SuPrcB5k6II/AAAAAAAAAWI/BYhzMmkF4HA/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415645298780290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SuPrO6KSjMI/AAAAAAAAAWA/ry69wxIdUIM/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SuPrO6KSjMI/AAAAAAAAAWA/ry69wxIdUIM/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415419883097282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrG5HHSKI/AAAAAAAAAV4/abfFThI9M-k/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPrG5HHSKI/AAAAAAAAAV4/abfFThI9M-k/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415282162387106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPq9j7AKlI/AAAAAAAAAVw/Oli2LGEc0Cs/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SuPq9j7AKlI/AAAAAAAAAVw/Oli2LGEc0Cs/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396415121855621714" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3350015842453416234?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3350015842453416234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3350015842453416234&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3350015842453416234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3350015842453416234'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/10/leela-palace-bangalore-few-pics.html' title='Leela Palace, Bangalore - few pics'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SuPrzqBz4eI/AAAAAAAAAWg/dWYimrqM5bc/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-305016943407533382</id><published>2009-10-05T10:23:00.001+05:30</published><updated>2009-10-05T10:24:31.533+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>What is google wave?</title><content type='html'>A nice small video on what is Google wave?&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rDu2A3WzQpo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rDu2A3WzQpo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-305016943407533382?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/305016943407533382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=305016943407533382&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/305016943407533382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/305016943407533382'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/10/what-is-google-wave.html' title='What is google wave?'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-838121321176022874</id><published>2009-09-01T10:51:00.005+05:30</published><updated>2009-09-01T10:55:55.892+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Hilter's anger over Facebook's acquisition of FriendFeed</title><content type='html'>A funny video showing Hitler's frustration over Facebook's acquisition of FriendFeed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="580" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B3g6-GWCGt8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/B3g6-GWCGt8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-838121321176022874?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/838121321176022874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=838121321176022874&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/838121321176022874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/838121321176022874'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/09/hilters-anger-over-facebooks.html' title='Hilter&apos;s anger over Facebook&apos;s acquisition of FriendFeed'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7513909028827221469</id><published>2009-08-26T12:16:00.030+05:30</published><updated>2009-08-26T16:18:33.805+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Productivity woes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SpUSepPsGAI/AAAAAAAAAVQ/CAT2oEUxIM0/s1600-h/productivity.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px; height: 360px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SpUSepPsGAI/AAAAAAAAAVQ/CAT2oEUxIM0/s400/productivity.jpg" alt="" id="BLOGGER_PHOTO_ID_5374222048013588482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A couple of months ago I was going through a "&lt;span style="font-style: italic;"&gt;Productivity drought&lt;/span&gt;". In office I was shamelessly procrastinating my project work, aimlessly browsing the net, and in home watching any crap movie that I could get (I reached the height when I saw 2-3 Korean movies and that too with no subtitles). During that time I even thought of writing a book with title "&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;101 ways of killing time in office&lt;/span&gt;&lt;/span&gt;". I came up with this title as during my aimless browsing I even searched for a book with that name and couldn't find one so I thought probably I can jot down my thoughts which may be helpful to other lazy guys:)&lt;br /&gt;Luckily I got a break for 3-4 days from office as I need to travel to my hometown and I was able to think clearly about how can I utilize my time and overcome this indolence.&lt;br /&gt;&lt;br /&gt;In general I prefer multitasking. Normally I am involved in following activities&lt;br /&gt;1) Working on a project in office for which my company pays me.&lt;br /&gt;2) Work on a personal project. I try to come-up with some idea, spend time in its initial scoping and if it seems plausible I try to work on its implementation. I don't get a penny for this activity but I spend maximum time on this activity as somehow I find great satisfaction in creating something on my own.&lt;br /&gt;3) Reading books.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To break free from clutches of procrastination I did following&lt;br /&gt;1) &lt;span style="font-weight: bold;"&gt;Start early&lt;/span&gt; - I started waking up early so that I can reach office by 7:30 in morning. I am highly productive during the morning hours as most of my peers come by 10:00 and I can easily concentrate on work.&lt;br /&gt;&lt;br /&gt;2) &lt;span style="font-weight: bold;"&gt;Don't check your mails in first 2 hours of work&lt;/span&gt; - Earlier in the morning I used to spend close to 1 hour for checking mails be it official, Yahoo!, GMail and others, check scraps on orkut and read online news. Now I just check my official mails in morning and then start working. I work for 2 hours and then my check mails.&lt;br /&gt;&lt;br /&gt;3) &lt;span style="font-weight: bold;"&gt;Avoid context switching&lt;/span&gt; - Normally while working I used to keep opening some sites, blogs, twitter etc and spend some time on them. I noticed that these context switches were really affecting my concentration hence I started cut down on it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Going Forward&lt;/span&gt;&lt;br /&gt;Though these measures definitely helped me in improving my productivity but I still feel there is a lot to be improved. Especially my personal project has taken a beating. I am still in initial phase but I am progressing at snail's pace. Probable steps that may help&lt;br /&gt;1) &lt;span style="font-weight: bold;"&gt;Set daily/weekly targets&lt;/span&gt; - Probably I may need to break down the work in small tasks and set daily and weekly targets to complete them.&lt;br /&gt;2) &lt;span style="font-weight: bold;"&gt;Timeboxing the task&lt;/span&gt; - &lt;a href="http://en.wikipedia.org/wiki/Timeboxing"&gt;Timeboxing&lt;/a&gt; the tasks by setting time lines for small tasks, probably 60 to 90 minutes and strive to complete it in that time frame.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7513909028827221469?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7513909028827221469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7513909028827221469&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7513909028827221469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7513909028827221469'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/08/productivity-woes.html' title='Productivity woes'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SpUSepPsGAI/AAAAAAAAAVQ/CAT2oEUxIM0/s72-c/productivity.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-827778636628421003</id><published>2009-07-30T08:44:00.016+05:30</published><updated>2009-07-31T09:24:55.331+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Two incidents</title><content type='html'>Recently two incidents happened with me and I am sure they will have a lasting impression on me. Here goes the incidents&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SnET6xOu_oI/AAAAAAAAARk/n3N0cyRWrCM/s1600-h/slumdog.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 250px; height: 267px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SnET6xOu_oI/AAAAAAAAARk/n3N0cyRWrCM/s400/slumdog.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5364090531543449218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Few days back I went to a juice shop and ordered a juice. I was waiting for my juice and then a small boy came to me and started begging. I bluntly refused him and started looking away from him. Then person standing next to me ordered a milk shake and offered it to that boy, the boy seems really hungry and gulped down the milk shake, I could see shine in his eyes that moment. It is said "&lt;span style="font-style:italic;"&gt;Actions speak louder than words&lt;/span&gt;" and that person's actions made me feel guilty, I was really ashamed of myself. It's not that I don't do any charity...since the time I had started earning I make sure to donate every year a decent amount to an orphanage in my native but still I was feeling very bad. I am living a decent life..why this thing didn't occurred to me to help this boy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SnEW-CbrndI/AAAAAAAAARs/5euwqe3DYiA/s1600-h/muslim_girls.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 396px; height: 265px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SnEW-CbrndI/AAAAAAAAARs/5euwqe3DYiA/s400/muslim_girls.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5364093886235647442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. It was Saturday morning and out of my usual practice I woke up bit early. I went out to check if the newspaper has come but it hasn't so I went out in the balcony waiting for my newspaper guy to come. From the balcony I could see a bunch of Muslim girls standing together and chatting gayly. My newspaper man (He is  a Hindu) was coming on his bicycle and while taking a turn on the road he bent bit more and the newspapers kept on the rear-end of cycle started falling. Seeing this all the girls rushed towards the newspaper man, picked up all the fallen newspapers and helped the person in rearranging it. I just hoped that time why we all become elders and started fighting with others just because of caste, its better we all stay small and at least we won't fight with others or kill them just because they are of a caste which we don't like. Probably that bunch of small girls has taught me a better lesson than any book that I have read over the years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-827778636628421003?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/827778636628421003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=827778636628421003&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/827778636628421003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/827778636628421003'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/07/two-incidents.html' title='Two incidents'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/SnET6xOu_oI/AAAAAAAAARk/n3N0cyRWrCM/s72-c/slumdog.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6717953310142884438</id><published>2009-07-09T14:18:00.002+05:30</published><updated>2009-07-09T14:21:21.190+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Growing up!</title><content type='html'>Well I had just started feeling that I am growing up. Two months back my elder bro go engaged and one of my elder cousin got married.&lt;br /&gt;&lt;br /&gt;And finally I ended up getting engaged to &lt;span style="font-style: italic;"&gt;Taniya &lt;/span&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6717953310142884438?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6717953310142884438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6717953310142884438&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6717953310142884438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6717953310142884438'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/07/growing-up.html' title='Growing up!'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2371707842127908147</id><published>2009-06-26T16:17:00.004+05:30</published><updated>2009-06-26T16:34:44.481+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Out-Of-Box Thinking</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SkSn3KMGMkI/AAAAAAAAAQU/HFLv7S63B8Y/s1600-h/think-out-of-the-box.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 380px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SkSn3KMGMkI/AAAAAAAAAQU/HFLv7S63B8Y/s400/think-out-of-the-box.jpg" alt="" id="BLOGGER_PHOTO_ID_5351586823292727874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I came across a nice snippet on "Out of Box Thinking" from &lt;a href="http://www.frozenthoughts.com/"&gt;Frozen Thoughts&lt;/a&gt; and thought of sharing with others&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's heavily raining, a man is driving his car and he reaches near a bus stop. There are 3 people on the bus stop&lt;br /&gt;1. An old lady who is just on the verge of dying&lt;br /&gt;2. A friend who once saved his life&lt;br /&gt;3. A very beautiful girl&lt;br /&gt;&lt;br /&gt;Now the question is whom should our man help? Should he take the old lady to hospital and try to save her life or should he help his friend and repay for his help or should he take the girl along who make become his soul mate later?&lt;br /&gt;&lt;br /&gt;Here is the &lt;span style="font-style: italic;"&gt;Out-Of-Box&lt;/span&gt; solution to this problem&lt;br /&gt;He should ask his friend to drive the car and take the old lady to hospital and he can happily stay with the beautiful lady :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2371707842127908147?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2371707842127908147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2371707842127908147&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2371707842127908147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2371707842127908147'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/out-of-box-thinking.html' title='Out-Of-Box Thinking'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/SkSn3KMGMkI/AAAAAAAAAQU/HFLv7S63B8Y/s72-c/think-out-of-the-box.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4022533010031926921</id><published>2009-06-17T08:27:00.003+05:30</published><updated>2009-06-17T08:30:30.985+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>Same GNOME</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SjhbtYPKvrI/AAAAAAAAAP0/DzKxBmZQmfE/s1600-h/Same+GNOME.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SjhbtYPKvrI/AAAAAAAAAP0/DzKxBmZQmfE/s400/Same+GNOME.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5348125392660774578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yesterday I was just playing around with UBuntu 8.04 Desktop version. Normally I keep trying some command line utilities whenever I work on any Linux flavor but yesterday for a change I started playing few games. While trying out few games I came across a beautiful game called “&lt;span style="font-style:italic;"&gt;Same GNOME&lt;/span&gt;”. What a beauty! Though I am not a game buff but really became a fan of this game. The game is very simple you just need to find the balls of same color that are adjacent to each other and click on them, on clicking all these balls vanish (there should be at least two adjacent balls of same color for vanishing), the more number of adjacent balls you can the more points you score. While playing the game I was really impressed the underlying logic of this game, here it goes&lt;br /&gt;&lt;br /&gt;1. Whenever I place mouse on any ball there is an algorithm which looks for all the balls of same color that are adjacent to it and start blinking them so that the user can get idea how many balls will vanish.&lt;br /&gt;&lt;br /&gt;2. The game ends in one of two scenario’s&lt;br /&gt;&lt;br /&gt;a) All the balls have vanished.&lt;br /&gt;b) There is no further scope of vanishing of the existing balls (for balls to vanish there should be at least 2 balls of same color adjacent to each other). This means there is some background thread which keeps polling after every sequence of ball vanishing whether there are any adjacent ball group available or not. I would really love to write an algorithm for doing such type of look up.&lt;br /&gt;&lt;br /&gt;So here is home work for me (Oops office work for me as I can’t cut down my sleeping hours at home) to come up with the algorithms of the above defined scenarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4022533010031926921?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4022533010031926921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4022533010031926921&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4022533010031926921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4022533010031926921'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/same-gnome.html' title='Same GNOME'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SjhbtYPKvrI/AAAAAAAAAP0/DzKxBmZQmfE/s72-c/Same+GNOME.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7068716845974059263</id><published>2009-06-16T10:03:00.003+05:30</published><updated>2009-06-16T10:07:51.002+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>On the cover of HipHop magazine</title><content type='html'>Finally I made it to the cover of HipHop magazine :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Sjcg5iud90I/AAAAAAAAAPs/fCDqb62B09k/s1600-h/bcab49f0cf2069b9e6103ea5ad7c6_1901.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 400px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Sjcg5iud90I/AAAAAAAAAPs/fCDqb62B09k/s400/bcab49f0cf2069b9e6103ea5ad7c6_1901.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347779255472092994" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7068716845974059263?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7068716845974059263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7068716845974059263&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7068716845974059263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7068716845974059263'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/on-cover-of-hiphop-magazine.html' title='On the cover of HipHop magazine'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/Sjcg5iud90I/AAAAAAAAAPs/fCDqb62B09k/s72-c/bcab49f0cf2069b9e6103ea5ad7c6_1901.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4548646560817106757</id><published>2009-06-08T09:52:00.008+05:30</published><updated>2009-06-08T09:58:58.683+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>IACOCCA: An Autobiography</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SiySYfmoDuI/AAAAAAAAAPI/rLNe79VAeBs/s1600-h/LeeIacocca.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 243px; height: 400px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SiySYfmoDuI/AAAAAAAAAPI/rLNe79VAeBs/s400/LeeIacocca.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5344807807279959778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This book is autobiography of Lee Iaccoca, an American legend who rose through the ranks to become the President of Ford Motor Company but only to be fired by Henry few years later, he later joined Chrysler who was on the verge of bankruptcy and dramatically turned around the company. The language of this book is lucid; some parts are exciting and awe-inspiring while some parts are bit boring (especially the some details about banks, congress which I find unnecessary), nevertheless overall this is a must read book for anyone who dreams of doing something big in his life.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Initial days&lt;br /&gt;&lt;/span&gt;Lee Iaccoca's father migrated from Italy to America alone with hardly any money with him. In America with his hard work he started his small business which started flourishing all because of his hard work and good knack for business. Thus Lee learnt an important lesson from his father ‘&lt;span style="font-style:italic;"&gt;America is a land of opportunities provided you are willing to work hard&lt;/span&gt;’. Lee was always good in academics and did his engineering from Leigh University and fellowship for graduate work from Princeton.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SiySR-f4DoI/AAAAAAAAAPA/IghtlZinerY/s1600-h/1964-mustang-rc.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SiySR-f4DoI/AAAAAAAAAPA/IghtlZinerY/s400/1964-mustang-rc.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5344807695314062978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Mustang, 1964&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Ford Story&lt;br /&gt;&lt;/span&gt;After passing out from Princeton he was selected in Ford for working in engineering department but he was eager to work in a department where the real action was – sales or marketing. Hence after some deliberation he managed to move to sales. He worked hard in sales and quickly rose through the ranks and became General Manager. Even though he had risen very quickly to become GM of biggest division of the world’s second largest company he still don’t have any car to his credit. He came up with a car named “&lt;span style="font-style:italic;"&gt;Mustang&lt;/span&gt;” which was targeted at younger generation, the car focused on styling, performance and low price. Mustang became an incredible hit in market and Iaccoca was made vice-president of the corporate car and truck group. Later he was moved to Lincoln-Mercury group which made high-priced upscale cars; the unit was in loss for twenty years. Lee did his magic in this division also and came up with a new car in luxury segment &lt;span style="font-style:italic;"&gt;Mark – III&lt;/span&gt;. Like Mustang Mark-III was big hit in market. Riding on success of &lt;span style="font-style:italic;"&gt;Mustang &lt;/span&gt;and &lt;span style="font-style:italic;"&gt;Mark-III&lt;/span&gt; Iaccoca became President of Ford next only to Henry Ford-II. Lee continued to do good work in Ford and during his tenure as President Ford had some of the most profitable quarters. But Ford being a psycho was worried due to growing reputation of Lee that eventually Lee will take over the Ford hence he started firing the associates of Lee and ultimately fired Lee Iaccoca.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Chrysler Story&lt;br /&gt;&lt;/span&gt;Getting fired from Ford was a big shocker for Lee as he had worked really hard for part thirty two years in Ford and has very successful. He later joined Chrysler as its President (and later became its Chairman) little did he know that his troubles had just started. Chrysler was on the brink of bankruptcy when Lee Iaccoca joined it. Its cars were lousy so were the senior management, it was in depth of billions of dollars and to add to misery the fuel prices were sky rocketing due to trouble in Iran and the American economy was doing badly. Lee Iaccoca started clearing the mess by first firing 33 out of 35 senior managers and he brought most of his old aides who had retired from Ford. Thus after forming a new team he started doing cost cutting in every division. In spite of his all efforts the situation was still pathetic and ultimately he was forced to either file for bankruptcy or get loan from government. Then there was a long struggle for obtaining the loan from government, during this process he came up with “&lt;span style="font-style:italic;"&gt;equality of sacrifice&lt;/span&gt;” where he cut his salary to $1.00 per year and asked his workers to take some salary cuts. In spite of widespread opposition Chrysler was able to obtain a loan guarantee of 1.2 Billion dollars. Then Chrysler came up with K-car, convertibles and  mini-vans which became a big hit in market and helped in the reversal of fortunes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4548646560817106757?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4548646560817106757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4548646560817106757&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4548646560817106757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4548646560817106757'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/iacocca-autobiography.html' title='IACOCCA: An Autobiography'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SiySYfmoDuI/AAAAAAAAAPI/rLNe79VAeBs/s72-c/LeeIacocca.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6555603385060110532</id><published>2009-06-03T11:14:00.011+05:30</published><updated>2009-06-03T11:28:03.884+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>A Web App for Identity Search - part 3</title><content type='html'>Now for parsing the response obtained from the LinkedIn ruby gem we need to have a good understanding of microformats.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Microformats&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Microformats are set of simple, open data formats built upon existing standards for markup and data. They add structure and semantics to web publishing by adding metadata and other attributes to existing (X) HTML elements. There are several types of Microformats like rel-home, rel-tag, rel-me, XFN, hCard, hCalendar, hResume etc. LinkedIn stores all the profiles in hResume format hence we will focus on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;hResume&lt;/span&gt;&lt;br /&gt;hResume is a microformat for publishing resume’s and CV’s. It is a compound microformat as it utilizes 3 other microformats: rel-tag, hCard and hCalendar. Below is the structure of hResume and its subordinate microformats.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SiYOP5ujIII/AAAAAAAAAO4/Qoe_45PlbI4/s1600-h/Chart.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 222px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SiYOP5ujIII/AAAAAAAAAO4/Qoe_45PlbI4/s400/Chart.png" alt="" id="BLOGGER_PHOTO_ID_5342973674278559874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In our case hCard is used for representing contact information of a person while the hCalendar is generally used for representing event information. In our case hCalendar is used for representing educational background and the professional experience information. Like for ex for educational background the ‘summary’ can be something like brief details of the course while the start and end will have start and end date of the course. Below is the code snippet for retrieving information from hResume&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;    first_name = params[:first_name]&lt;br /&gt;    @title = "Details of " + first_name&lt;br /&gt;    last_name = params[:last_name]&lt;br /&gt;    org = params[:org]&lt;br /&gt;    locality = params[:locality]&lt;br /&gt;    @linkedin = Linkedin.new&lt;br /&gt;    people = @linkedin.find({:given_name =&gt; first_name, :family_name =&gt; last_name,&lt;br /&gt;        :org =&gt; org, :locality =&gt; locality})&lt;br /&gt;&lt;br /&gt;    @people_array = Array.new&lt;br /&gt;    people.each { |p|&lt;br /&gt;        person_obj = Person.new&lt;br /&gt;        person_obj.summary = p.summary if p.properties.include?(SUMMARY)&lt;br /&gt;        person_obj.skills = p.skills if p.properties.include?(SKILLS)&lt;br /&gt;&lt;br /&gt;      if p.contact.properties.include?(URL)&lt;br /&gt;        person_obj.init_snapshot_url_hash&lt;br /&gt;        et = EasyThumb.new('ed65ca5fb868192ce9837456c8908bca', '4201')&lt;br /&gt;        if p.contact.url.kind_of?(Array)&lt;br /&gt;          p.contact.url.each { |site_name|&lt;br /&gt;            temp_url = et.build_url(:url =&gt; site_name , :size =&gt; :medium2, :cache =&gt; 1)&lt;br /&gt;            person_obj.add_url_to_snapshot_hash(site_name, temp_url)&lt;br /&gt;          }&lt;br /&gt;        else&lt;br /&gt;          site_name = p.contact.url&lt;br /&gt;          temp_url = et.build_url(:url =&gt; site_name , :size =&gt; :medium2, :cache =&gt; 1)&lt;br /&gt;          person_obj.add_url_to_snapshot_hash(site_name, temp_url)&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;&lt;br /&gt;        if p.education.kind_of?(Array)&lt;br /&gt;            person_obj.init_edu_obj_arry&lt;br /&gt;            p.education.each { |klass|&lt;br /&gt;              temp_edu_obj = Person::Education.new&lt;br /&gt;              temp_edu_obj.summary = klass.summary unless klass.summary.nil?&lt;br /&gt;&lt;br /&gt;            if klass.dtstart.kind_of?(String)&lt;br /&gt;                temp_edu_obj.start_year = klass.dtstart&lt;br /&gt;              elsif klass.dtstart.kind_of?(Time)&lt;br /&gt;                temp_edu_obj.start_year = klass.dtstart.year&lt;br /&gt;              end&lt;br /&gt;&lt;br /&gt;            if klass.dtend.kind_of?(String)&lt;br /&gt;                temp_edu_obj.end_year = klass.dtend&lt;br /&gt;              elsif klass.dtend.kind_of?(Time)&lt;br /&gt;                temp_edu_obj.end_year = klass.dtend.year&lt;br /&gt;              end&lt;br /&gt;              person_obj.add_element_to_edu_obj_array(temp_edu_obj)&lt;br /&gt;            }&lt;br /&gt;          else&lt;br /&gt;            person_obj.init_edu_obj&lt;br /&gt;            person_obj.set_edu_summary p.education.summary unless p.education.summary.nil?&lt;br /&gt;            person_obj.set_edu_start_year p.education.dtstart.year unless p.education.dtstart.nil?&lt;br /&gt;            person_obj.set_edu_end_year p.education.dtend.year unless p.education.dtend.nil?&lt;br /&gt;          end if p.properties.include?(EDUCATION)&lt;br /&gt;&lt;br /&gt;      if p.experience.kind_of?(Array)&lt;br /&gt;          person_obj.init_exp_obj_array&lt;br /&gt;          p.experience.each { |exp|&lt;br /&gt;            temp_exp_obj = Person::Experience.new&lt;br /&gt;            temp_exp_obj.description = exp.description unless exp.description.nil?&lt;br /&gt;            temp_exp_obj.summary = exp.summary unless exp.summary.nil?&lt;br /&gt;&lt;br /&gt;            if exp.dtstart.kind_of?(Time)&lt;br /&gt;              temp_exp_obj.start_year = exp.dtstart.year&lt;br /&gt;            elsif exp.dtstart.kind_of?(String)&lt;br /&gt;              temp_exp_obj.start_year = exp.dtstart&lt;br /&gt;            end&lt;br /&gt;&lt;br /&gt;            if exp.dtend.kind_of?(Time)&lt;br /&gt;              temp_exp_obj.end_year = exp.dtend.year&lt;br /&gt;            elsif exp.dtend.kind_of?(String)&lt;br /&gt;              temp_exp_obj.end_year = exp.dtend&lt;br /&gt;            end&lt;br /&gt;&lt;br /&gt;            person_obj.add_element_to_exp_obj_array(temp_exp_obj)&lt;br /&gt;          }&lt;br /&gt;        elsif p.experience.kind_of?(hCalendar)&lt;br /&gt;          person_obj.init_exp_obj&lt;br /&gt;          person_obj.set_exp_summary = p.experience.summary unless p.experience.nil?&lt;br /&gt;          person_obj.set_exp_description = p.experience.description unless p.experience.nil?&lt;br /&gt;&lt;br /&gt;          if p.experience.dtstart.kind_of?(Time)&lt;br /&gt;            person_obj.set_exp_start_year = p.experience.dtstart.year&lt;br /&gt;          elsif p.experience.dtstart.kind_of?(String)&lt;br /&gt;            person_obj.set_exp_start_year = p.experience.dtstart&lt;br /&gt;          end&lt;br /&gt;&lt;br /&gt;          if p.experience.dtend.kind_of?(Time)&lt;br /&gt;            person_obj.set_exp_end_year = p.experience.dtend.year&lt;br /&gt;          elsif p.experience.dtend.kind_of?(String)&lt;br /&gt;            person_obj.set_exp_end_year = p.experience.dtend&lt;br /&gt;          end&lt;br /&gt;        end if p.properties.include?(EXPERIENCE)&lt;br /&gt;        @people_array &lt;&lt; person_obj&lt;br /&gt;      } if people.kind_of?(Array)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Getting the current snapshot of website dynamically&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The application shows the current snapshot of the website’s of the person in question so that user can glance over the information and if he interested he can click on the snapshot which will take them to that website. For getting this snapshot we had used the WebThumb Web Service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Limitations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. The application is highly dependent on one site i.e. LinkedIn which is not correct. In future I plan to search from other social networking sites. For which we can use Open Social API which provides a common API for accessing a number of social networking sites.&lt;br /&gt;2. There is a lot of scope in improving the GUI. It can be made Rich.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References&lt;/span&gt;&lt;br /&gt;• http://en.wikipedia.org/wiki/Semantic_Web&lt;br /&gt;• Introduction to Semantic Web http://www.w3.org/2008/Talks/0924-Vienna-IH/Slides.pdf&lt;br /&gt;• Microformats http://microformats.org/&lt;br /&gt;• Getting semantic with microformats http://www.ablognotlimited.com/articles/getting-semantic-with-microformats-introduction/&lt;br /&gt;• Yahoo BOSS API http://developer.yahoo.com/search/boss/&lt;br /&gt;• WebThumb http://webthumb.bluga.net/home&lt;br /&gt;• Writing a LinkedIn API library using Yahoo! BOSS web search http://developer.yahoo.net/blog/archives/2008/10/boss_is_the_gre.html&lt;br /&gt;• Open Social http://www.opensocial.org/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Related Post&lt;/span&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search.html"&gt;Part1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search-part-2.html"&gt;Part2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6555603385060110532?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6555603385060110532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6555603385060110532&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6555603385060110532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6555603385060110532'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/web-app-for-identity-search-part-3.html' title='A Web App for Identity Search - part 3'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SiYOP5ujIII/AAAAAAAAAO4/Qoe_45PlbI4/s72-c/Chart.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-496474516721343515</id><published>2009-06-01T12:01:00.002+05:30</published><updated>2009-06-22T09:25:50.685+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>The Blog's Author</title><content type='html'>My pic's&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SiN2EunE-kI/AAAAAAAAAOw/vuGTQkV5Fes/s1600-h/01062009564.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SiN2EunE-kI/AAAAAAAAAOw/vuGTQkV5Fes/s400/01062009564.jpg" alt="" id="BLOGGER_PHOTO_ID_5342243406595029570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;In Office&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Sj8AeLc7G2I/AAAAAAAAAQM/FUO3WctnSIg/s1600-h/IMAGE_254.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Sj8AeLc7G2I/AAAAAAAAAQM/FUO3WctnSIg/s400/IMAGE_254.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349995400809618274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-weight:bold;"&gt;In Forum (the butterfly in background is made up of paper cups)&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/30469785-496474516721343515?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/496474516721343515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=496474516721343515&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/496474516721343515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/496474516721343515'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/06/blogs-author.html' title='The Blog&apos;s Author'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SiN2EunE-kI/AAAAAAAAAOw/vuGTQkV5Fes/s72-c/01062009564.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1498943434664968369</id><published>2009-05-29T09:43:00.019+05:30</published><updated>2009-06-03T11:39:21.207+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>A Web App For Identity Search - Part 2</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Overview of the application&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let’s have a bird’s eye view of the application. To begin with the user enters the details of the person whom they are searching. Details include name, organization and locality.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/Sh9h9QWJw8I/AAAAAAAAAN4/HRB_KSb19ok/s1600-h/Input+details.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/Sh9h9QWJw8I/AAAAAAAAAN4/HRB_KSb19ok/s400/Input+details.PNG" alt="" id="BLOGGER_PHOTO_ID_5341095388072494018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now the user presses Search button, which triggers the search operation on the internet. The application now fetches the matching information and displays it as shown below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Sh9hzBgL3AI/AAAAAAAAANw/1cqyOhwqYp4/s1600-h/Details+of+anuj.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Sh9hzBgL3AI/AAAAAAAAANw/1cqyOhwqYp4/s400/Details+of+anuj.PNG" alt="" id="BLOGGER_PHOTO_ID_5341095212289350658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Life cycle of the application&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Sh9irsqy6HI/AAAAAAAAAOA/1TmGk2cuXDk/s1600-h/New+block+diag.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Sh9irsqy6HI/AAAAAAAAAOA/1TmGk2cuXDk/s400/New+block+diag.png" alt="" id="BLOGGER_PHOTO_ID_5341096185949251698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is a Ruby on Rails based application. Its life cycle is as follows&lt;br /&gt;&lt;br /&gt;1. User enters the details of a person.&lt;br /&gt;&lt;br /&gt;2. These details are sent to a LinkedIn ruby gem.&lt;br /&gt;&lt;br /&gt;3. LinkedIn gem internally passes these details to Yahoo BOSS API.&lt;br /&gt;&lt;br /&gt;4. Yahoo BOSS API searches the details on LinkedIn site and returns all the matching profiles.&lt;br /&gt;&lt;br /&gt;5. The LinkedIn ruby gem now filters the returned profile based on the input details like name, organization and location. After filtering the profiles are sent to controller.&lt;br /&gt;&lt;br /&gt;6. The controller now does parsing of the profiles it receives and stores relevant data. As part of parsing it also retrieves the URL’s associated with that person. These URL’s are sent to WebThumb web service.&lt;br /&gt;&lt;br /&gt;7. WebThumb stores the snapshots as images and returns the URL of those images.&lt;br /&gt;&lt;br /&gt;8. Finally controller sends all the details to view for rendering.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Details of the application&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The application is written in Ruby and it runs on Rails. Rails is a framework for building web applications. Rails use MVC design pattern. The Model does all the “business logic”, it interacts with the database for various operations like persistence and retrieval of data, View renders output information and Controller ties everything together, it takes input from user, performs action based on user’s request and do all the co-ordination. For this application we don’t need to store data as based on user input we dynamically get details from internet, process it and display it. Hence for this application we had disabled the Model component. We will now dive into the details&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Using Yahoo BOSS API and getting LinkedIn details&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To start with, initially based on input details we need to search the web (for this application only the LinkedIn site) and get the detailed information. For performing these tasks I am using ‘&lt;span style="font-style: italic;"&gt;ruby-linkedin-0.0.1&lt;/span&gt;’ ruby gem. This gem internally passes the inputs details to Yahoo BOSS API and restricts the search only to LinkedIn. The matching profiles from LinkedIn are in &lt;span style="font-style: italic;"&gt;hResume microformat&lt;/span&gt;. It uses ‘&lt;span style="font-style: italic;"&gt;mofo&lt;/span&gt;’ microformat parser for parsing and filtering the profiles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Processing the people data obtained&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The LinkedIn ruby gem returns an array of profiles that matches input details. We now need to save all the details of person in an instance variable of controller class as we can access only instance variables from the View files. Hence in controller module I had added a new class called person which contains access methods for summary, skills, and two inner class called Education and Experience.&lt;br /&gt;Below is the code of class Person&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;class Person&lt;br /&gt;  def initialize&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  attr_accessor :summary, :skills&lt;br /&gt;&lt;br /&gt;  class Education&lt;br /&gt;    attr_accessor :summary, :start_year, :end_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # Methods for create, set and get for an object&lt;br /&gt;  # of Education class&lt;br /&gt;  def init_edu_obj&lt;br /&gt;    @edu_obj = Education.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_edu_summary summary&lt;br /&gt;    @edu_obj.summary = summary&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_edu_start_year start_year&lt;br /&gt;    @edu_obj.start_year = start_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_edu_end_year end_year&lt;br /&gt;    @edu_obj.end_year = end_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_edu_obj&lt;br /&gt;    @edu_obj&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # Methods for create, set and get for an array of Education&lt;br /&gt;  # class objects&lt;br /&gt;  def init_edu_obj_arry &lt;br /&gt;    @education_obj_array = Array.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def add_element_to_edu_obj_array element&lt;br /&gt;    @education_obj_array &lt;&lt; element&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_edu_obj_array&lt;br /&gt;    @education_obj_array&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  class Experience&lt;br /&gt;    attr_accessor :summary, :description, :start_year, :end_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # Methods for create, set and get of Experince class object&lt;br /&gt;  def init_exp_obj&lt;br /&gt;    @exp_obj = Experience.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_exp_obj&lt;br /&gt;    @exp_obj&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_exp_summary summary&lt;br /&gt;    @exp_obj.summary = summary&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_exp_description description&lt;br /&gt;    @exp_obj.description = description&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_exp_start_year start_year&lt;br /&gt;    @exp_obj.start_year = start_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def set_exp_end_year end_year&lt;br /&gt;    @exp_obj.end_year = end_year&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  #Methods for create, get and set of an array of Experience&lt;br /&gt;  # class objects&lt;br /&gt;&lt;br /&gt;  def init_exp_obj_array&lt;br /&gt;    @exp_obj_array = Array.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_exp_obj_array&lt;br /&gt;    @exp_obj_array&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def add_element_to_exp_obj_array element&lt;br /&gt;    @exp_obj_array &lt;&lt; element&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def init_snapshot_url_hash&lt;br /&gt;    @snapshot_url_hash = Hash.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_snapshot_url_hash&lt;br /&gt;    @snapshot_url_hash&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def add_url_to_snapshot_hash site_name, url&lt;br /&gt;    @snapshot_url_hash[site_name] = url&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Related posts&lt;/span&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search.html"&gt;Part1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/06/web-app-for-identity-search-part-3.html"&gt;Part3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1498943434664968369?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1498943434664968369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1498943434664968369&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1498943434664968369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1498943434664968369'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search-part-2.html' title='A Web App For Identity Search - Part 2'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/Sh9h9QWJw8I/AAAAAAAAAN4/HRB_KSb19ok/s72-c/Input+details.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4110881984034878195</id><published>2009-05-26T14:19:00.006+05:30</published><updated>2009-06-03T11:30:12.056+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>A Web App for Identity Search</title><content type='html'>As mentioned in my earlier post &lt;a href="http://anuj-mehta.blogspot.com/2009/04/opening-up.html"&gt;Opening up&lt;/a&gt; about sharing the white papers that I had written in past 18 months, here is my second white paper on building an Identity search web app&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstract&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This paper presents a novel approach of doing an identity search. The application shows all the important details in a single window. The details include the person’s educational background, professional experience, his/her organization website and his/her blog. It is a Ruby on Rails based application and is Semantic Web compliant. This paper explains in detail the rationale behind building this application and an in depth details of how this application was built. The paper throws light on the limitations of the current approach and how it can be improved in future so as to make this a ‘serious’ identity search web application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;What is common between Facebook, YouTube, Flickr, LinkedIn and Twitter? Well easy to guess, they all are social networking sites which focus on building online community where people share their interest and activities. In Facebook people create their own profile and share their interests through various online communities, YouTube and Flickr are videos and image management and sharing sites, LinkedIn is a business networking site where people create their profile but unlike Facebook the profile contains mainly details about educational background and their profession and use it for serious business networking. Lastly Twitter is a micro-blogging service. In past few years a trend can be observed that majority of data is user generated i.e. information is “&lt;span style="font-style: italic;"&gt;by the people, for the people and of the people&lt;/span&gt;”. Compared to the era of 1990’s where there were relatively few information producers and a large number of consumers, the situation has changed now and there is lot more focus on an individual, people try to project themselves either through their profiles in Facebook, LinkedIn or by having their personal Weblogs. Thus now there is a personal space for everyone on web.&lt;br /&gt;&lt;br /&gt;Let’s see one more aspect of web. It is a vast ocean of information. Currently most of the information on web is represented using natural language (like English, Russian, Hindi, etc) or using graphics multimedia etc. This information can be processed by humans as they can easily form association between disparate forms of data even if they use different terminologies. However the same task is difficult for machines, it is difficult for them to make sense from say an image, draw analogies or to combine information from heterogeneous sources and make associations among them. There are several tasks which involve tedious work of finding, sharing and combining information on the web; it would be nice if such tasks can be automated i.e. performed by machines (intelligent agents).&lt;br /&gt;For ex: Consider an automatic reservation system. The system should&lt;br /&gt;&lt;br /&gt;1. know about my preference&lt;br /&gt;2. build up knowledge using past&lt;br /&gt;3. combine the local knowledge with run time services like airline preferences, dietary requirements, calendaring, etc&lt;br /&gt;&lt;br /&gt;For making these tasks automated we need a way in which data should be possibly combined, merged on a web scale, there should be some data that describes other data; machines should be able to reason about the data. To make this happen we need a way of defining semantics of the information and services on the web. This concept of making data on web more meaningful is generally referred to as &lt;span style="font-style: italic;"&gt;Semantic Web&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Keeping in mind of the above defined two trends of internet i.e. “&lt;span style="font-style: italic;"&gt;greater focus on identity of an individual&lt;/span&gt;” and “&lt;span style="font-style: italic;"&gt;Semantic Web&lt;/span&gt;” a Web Application (Web App) has been created. It is based on following premise&lt;br /&gt;&lt;br /&gt;1. It is an identity search application. It scans the web and displays the details of an individual like his/her educational background, professional experience, blog, company details etc.&lt;br /&gt;&lt;br /&gt;2. It fetches data only from Semantic Web compliant websites. Currently it takes data from websites which uses microformat. The details of microformat will be discussed later in detail.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Related Posts&lt;/span&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search-part-2.html"&gt;Part2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/06/web-app-for-identity-search-part-3.html"&gt;Part3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4110881984034878195?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4110881984034878195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4110881984034878195&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4110881984034878195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4110881984034878195'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/web-app-for-identity-search.html' title='A Web App for Identity Search'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3971152230352635174</id><published>2009-05-18T20:55:00.002+05:30</published><updated>2009-05-18T21:03:02.239+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bojug'/><title type='text'>BOJUG Meet - Building Enterprise RIA with Java and Adobe Flex</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/ShF-DZRj6eI/AAAAAAAAANo/1XAyJdXDLjA/s1600-h/bojug.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 231px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/ShF-DZRj6eI/AAAAAAAAANo/1XAyJdXDLjA/s400/bojug.gif" alt="" id="BLOGGER_PHOTO_ID_5337185630199998946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;When&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Saturday, 30st May 2009&lt;br /&gt;Starting time: 11.00 AM&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Duration&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;2 hours&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Where&lt;/span&gt;:&lt;br /&gt;Adobe Systems&lt;br /&gt;Near Dairy circle&lt;br /&gt;Salarpuria Infinity, 3rd Floor&lt;br /&gt;#5, Bannerghatta Road&lt;br /&gt;Bangalore, Karnataka&lt;br /&gt;India&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Topics&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;1) Quick introduction to Enterprise RIA with a few demos&lt;br /&gt;2) Coding demos of BlazeDS Remoting and messaging - how Flex connects to Java back ends&lt;br /&gt;3) Building an enterprise dashboard using Flex and Java&lt;br /&gt;&lt;br /&gt;Register at &lt;a href="http://bojug.wikispaces.com/"&gt;BOJUG wiki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3971152230352635174?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3971152230352635174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3971152230352635174&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3971152230352635174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3971152230352635174'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/bojug-meet-building-enterprise-ria-with.html' title='BOJUG Meet - Building Enterprise RIA with Java and Adobe Flex'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/ShF-DZRj6eI/AAAAAAAAANo/1XAyJdXDLjA/s72-c/bojug.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1292955077939523253</id><published>2009-05-18T16:29:00.003+05:30</published><updated>2009-05-18T16:43:39.343+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajmer'/><title type='text'>List of hotels in ajmer</title><content type='html'>These days I am in my hometown Ajmer. I was searching on web for a list of hotels in Ajmer but to my dismay I couldn't find any proper list. Left with no option I had pickup my vehicle and roam around in the city in the scorching heat. To save others from trouble here is list of some good hotels in Ajmer along with their address and contact numbers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://spreadsheets.google.com/pub?key=rH4hachgAzmwi36GrwK8ZuQ&amp;amp;output=html&amp;amp;gid=0&amp;amp;single=true&amp;amp;widget=true" width="500" frameborder="0" height="300"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1292955077939523253?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1292955077939523253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1292955077939523253&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1292955077939523253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1292955077939523253'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/httpspreadsheets.html' title='List of hotels in ajmer'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-325452953559574760</id><published>2009-05-08T08:53:00.004+05:30</published><updated>2009-05-08T09:13:07.092+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='layoff'/><title type='text'>Freescale to lay off 250 at Bangalore centre</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SgOpqqsPAdI/AAAAAAAAANg/Ap5t9ipSHFM/s1600-h/freescale.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SgOpqqsPAdI/AAAAAAAAANg/Ap5t9ipSHFM/s400/freescale.jpg" alt="" id="BLOGGER_PHOTO_ID_5333292934216221138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One more bad news of layoff!! God knows where this all will end. This time it's at Texas based company Freescale Semiconductor. Freescale is a leading manufacturer of micro controllers, microprocessors and semiconductors. The layoff are happening at it's Bangalore center due to restructuring of the Cellular Product Group (CPG). For more details refer to following news item of economic times&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://economictimes.indiatimes.com/News/News-By-Industry/Jobs/Freescale-to-lay-off-250-at-Bangalore-centre/articleshow/4470002.cms"&gt;Freescale to lay off 250 at Bangalore centre&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more related article which says the complete Bangalore unit is getting closed&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.jobeehive.com/layoff/freescale-semiconductor/bangalore-india/767"&gt;Layoffs at Freescale Semiconductor in April 2009&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the Freescale employees there is a job opening with a startup&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Required experience&lt;/span&gt; &lt;span style="font-style: italic;"&gt;5-8 yrs of experience, have experience in multiple embedded OS&lt;br /&gt;(embedded linux, Nucleus, Andoird), SMS and other apps, the GSM stack, C/C++&lt;br /&gt;skills, security on device (secure sockets, encryption, compression etc).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I came across this opening in &lt;a href="http://tech.groups.yahoo.com/group/bangalore_barcamp/message/5655"&gt;Barcamp mailing list&lt;/a&gt; and thought of sharing with others&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-325452953559574760?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/325452953559574760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=325452953559574760&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/325452953559574760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/325452953559574760'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/freescale-to-lay-off-250-at-bangalore.html' title='Freescale to lay off 250 at Bangalore centre'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SgOpqqsPAdI/AAAAAAAAANg/Ap5t9ipSHFM/s72-c/freescale.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4607412109617283019</id><published>2009-05-06T15:38:00.004+05:30</published><updated>2009-05-07T09:50:28.106+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore'/><title type='text'>Get daily weather forecast of bangalore for free via SMS</title><content type='html'>"&lt;span style="font-style:italic;"&gt;It can rain any time in Bangalore hence better be prepared&lt;/span&gt;" .For getting daily free weather forecast of Bangalore city subscribe to my Google SMS Channel&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://labs.google.co.in/smschannels/subscribe/BangaloreWeatherForecast"&gt;BangaloreWeatherForecast&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Here is the preview of forecast&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SgFkkkkQq0I/AAAAAAAAANY/1GBzS--20h4/s1600-h/weather.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 400px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SgFkkkkQq0I/AAAAAAAAANY/1GBzS--20h4/s400/weather.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5332654013237209922" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4607412109617283019?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4607412109617283019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4607412109617283019&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4607412109617283019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4607412109617283019'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/get-daily-weather-forecast-of-bangalore.html' title='Get daily weather forecast of bangalore for free via SMS'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SgFkkkkQq0I/AAAAAAAAANY/1GBzS--20h4/s72-c/weather.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7488030051770775560</id><published>2009-05-06T12:04:00.001+05:30</published><updated>2009-05-06T12:06:26.582+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Politicians</title><content type='html'>&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Politicians are like diapers. They both need changing regularly and for the same reason.&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7488030051770775560?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7488030051770775560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7488030051770775560&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7488030051770775560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7488030051770775560'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/politicians.html' title='Politicians'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4486504945390547191</id><published>2009-05-04T11:08:00.007+05:30</published><updated>2009-05-04T11:36:52.494+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google SMS Channel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Sf6C-bg4s4I/AAAAAAAAANQ/bDX64tYYSkI/s1600-h/googleSms.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 164px; height: 77px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Sf6C-bg4s4I/AAAAAAAAANQ/bDX64tYYSkI/s400/googleSms.PNG" alt="" id="BLOGGER_PHOTO_ID_5331843017902437250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I recently came across one more nice offering from Google. It's Google SMS Channels.Currently there are a number of SMS channels regarding news updates, job openings, word a day to name a few, users can subscribe them and receive updates via SMS. Also you can create your own channels for your group and send SMS's to all members of your group via web.&lt;br /&gt;&lt;br /&gt;I had created SMS channel "&lt;span style="font-style: italic;"&gt;anujmehta&lt;/span&gt;" which is linked to my blog hence people can get updates via SMS whenever I add a new post on my blog. You can subscribe to my SMS channel by clinking on following link&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://labs.google.co.in/smschannels/subscribe/anujmehta"&gt;Subscribe to anujmehta&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below image shows a preview of the type of updates via SMS you will get about my blog&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Sf6ByZXLJoI/AAAAAAAAANI/nKnR6KOnTRg/s1600-h/smsChannel.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 236px; height: 400px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Sf6ByZXLJoI/AAAAAAAAANI/nKnR6KOnTRg/s400/smsChannel.PNG" alt="" id="BLOGGER_PHOTO_ID_5331841711654774402" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4486504945390547191?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4486504945390547191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4486504945390547191&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4486504945390547191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4486504945390547191'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/05/google-sms-channel.html' title='Google SMS Channel'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/Sf6C-bg4s4I/AAAAAAAAANQ/bDX64tYYSkI/s72-c/googleSms.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6012489201124108013</id><published>2009-04-29T10:51:00.039+05:30</published><updated>2009-09-17T13:34:43.453+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>Generic CLI API for System/Network Management Systems - Part 3</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;Proof-Of-Concept: Parsing of command output using ANTLR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As a Proof-Of-Concept Gen-CLI API uses libraries of a freely available parser generator called ANTLR for the code generation based on the rules. ANTLR stands for ANother Tool for Language Recognition. It is a sophisticated parser generator which can be used to implement language interpreters, compilers and other translators. Gen-CLI API takes the templates of command syntax and command response as input. These templates (rules) are expressed in the EBNF (Extended Backus-Naur Form) notation.&lt;br /&gt;&lt;br /&gt;Below is output of &lt;span style="FONT-STYLE: italic"&gt;route &lt;/span&gt;command in Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;root@Server:/home/user# route&lt;br /&gt;Kernel IP routing table&lt;br /&gt;Destination Gateway Genmask Flags Metric Ref Use Iface&lt;br /&gt;172.31.0.0 * 255.255.0.0 U 0 0 0 eth0&lt;br /&gt;link-local * 255.255.0.0 U 1000 0 0 eth0&lt;br /&gt;default 172.31.44.1 0.0.0.0 UG 0 0 0 eth0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Grammar for parsing output&lt;/span&gt;&lt;br /&gt;Below is the grammar for parsing command response of ‘&lt;span style="FONT-STYLE: italic"&gt;route&lt;/span&gt;’ command.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;grammar&lt;/span&gt; routeResponse;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;options&lt;/span&gt; {&lt;br /&gt;language=Java;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;start&lt;/span&gt; : 'Kernel IP routing table' theTitles+=TITLE+ rowValue*;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;rowValue&lt;/span&gt;: rowData+=ADDR+ rowData+=FLAG rowData+=INT+ rowData+=IFACE;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;ADDR&lt;/span&gt; : 'link-local'&lt;br /&gt;'default'&lt;br /&gt;'localhost'&lt;br /&gt;IP_ADDR&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;TITLE&lt;/span&gt; : 'Destination''Gateway''Genmask''Flags''Metric''Ref''Use''Iface';&lt;br /&gt;&lt;br /&gt;fragment&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;IP_ADDR&lt;/span&gt; : INT '.' INT '.' INT '.' INT&lt;br /&gt;'*'&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;FLAG&lt;/span&gt; : ('U' //route is up&lt;br /&gt;'H' //target is a host&lt;br /&gt;'G' //use gateway&lt;br /&gt;'R' //reinstate route for dynamic routing&lt;br /&gt;'D' //dynamically installed by daemon or redirect&lt;br /&gt;'M' //modified from routing daemon or redirect&lt;br /&gt;'A' //installed by addrconf&lt;br /&gt;'C' //cache entry&lt;br /&gt;'!')* //reject route&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;INT&lt;/span&gt; : '0'..'9'+;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;IFACE&lt;/span&gt; : ('0'..'9''a'..'z')+;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;WS&lt;/span&gt; : (' ''\r''\t''\n')+ {skip();};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here &lt;span style="FONT-STYLE: italic"&gt;routeResponse&lt;/span&gt; is the grammar name denoted by ‘&lt;span style="FONT-WEIGHT: bold"&gt;grammar&lt;/span&gt; routeResponse’. In the grammar &lt;span style="FONT-STYLE: italic"&gt;start&lt;/span&gt; and &lt;span style="FONT-STYLE: italic"&gt;rowValue&lt;/span&gt; are two Parser Rules. The parser rules specify the grammatical structure. ADDR, TITLE, IP_ADDR, FLAG, INT, IFACE and WS are Lexical Rules. Lexical rules specify the tokens.&lt;br /&gt;In this grammar the parser rule &lt;span style="FONT-STYLE: italic"&gt;start&lt;/span&gt; is the entry point of execution. This rule parses and stores all the titles, then invokes a parser rule &lt;span style="FONT-STYLE: italic"&gt;rowValue&lt;/span&gt; which will parse and store a row. These parser rules will use lexical rules for getting tokens.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this example of parsing command response we ignore all the white spaces, tabs and newlines. Hence there is a lexical rule for this&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;WS&lt;/span&gt; : (' ''\r''\t''\n')+ {skip();};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here WS (White Space is the rule name. It looks for white space, return, tab or a newline character and issue an action by calling skip() method asking ANTLR to throw out the matching character. These characters are surrounded by parenthesis and a plus sign i.e. ( ) + which denotes to match for one or more consecutive occurrence of these characters.&lt;br /&gt;&lt;br /&gt;As mentioned earlier &lt;span style="FONT-STYLE: italic"&gt;start&lt;/span&gt; is the entry point of execution. It is defined as follows&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;start&lt;/span&gt; : 'Kernel IP routing table' theTitles+=TITLE+ rowValue*;&lt;br /&gt;&lt;br /&gt;This rule can pictorially depicted as&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SffkqWwHjKI/AAAAAAAAAMw/GdNZkJLKymM/s1600-h/route.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5329980100329311394" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 50px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SffkqWwHjKI/AAAAAAAAAMw/GdNZkJLKymM/s400/route.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here the parser first looks for the heading ‘&lt;span style="FONT-STYLE: italic"&gt;Kernel IP routing table&lt;/span&gt;’. On finding the heading it looks for a list of one or more titles and stores them in theTitles. Corresponding to this rule internally a parser code will be generated and it will create an ArrayList (for java) and stores all the matched titles in it.&lt;br /&gt;&lt;br /&gt;In the statement&lt;br /&gt;theTitles+=TITLE+&lt;br /&gt;theTitles is a list for storing titles and TITLE is a lexical rule. “TITLE+” means to match for one or more tokens (rule for matching is defined in TITLE) and “theTitles+=” means to store all the matched titles in the list.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The definition of the lexical rule TITLE&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;TITLE&lt;/span&gt; : 'Destination''Gateway''Genmask''Flags''Metric''Ref''Use''Iface';&lt;br /&gt;&lt;br /&gt;Here TITLE has defined a number of headings separated by OR i.e. ‘’ to signify match one of these headings. Control goes back once match is successful.&lt;br /&gt;&lt;br /&gt;After matching of titles the parser rule start expects zero or more rows hence it is defined as ‘rowValue*’ where * denotes zero or more occurrences. Here &lt;span style="FONT-STYLE: italic"&gt;rowValue&lt;/span&gt; is a parser rule which is defined as follows&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;rowValue&lt;/strong&gt;: rowData+=ADDR+ rowData+=FLAG rowData+=INT+ rowData+=IFACE;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SffkiIay63I/AAAAAAAAAMo/xisgvroRmUM/s1600-h/rowValue.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5329979959042829170" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 63px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SffkiIay63I/AAAAAAAAAMo/xisgvroRmUM/s400/rowValue.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hence each row (after the titles) consists of following&lt;br /&gt;&lt;br /&gt;• One or more ADDR.&lt;br /&gt;• One Flag.&lt;br /&gt;• One or more integers.&lt;br /&gt;• One interface.&lt;br /&gt;&lt;br /&gt;Here ADDR is a lexical rule which is defined as&lt;br /&gt;&lt;br /&gt;ADDR : 'link-local'&lt;br /&gt;'default'&lt;br /&gt;'localhost'&lt;br /&gt;IP_ADDR&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ADDR uses a “fragment” lexical rule IP_ADDR. IP_ADDR is called as fragment rule as it is never called by any parser rule. It is used by another lexical rule. Hence definition of IP_ADDR is&lt;br /&gt;&lt;br /&gt;fragment&lt;br /&gt;IP_ADDR : INT '.' INT '.' INT '.' INT&lt;br /&gt; | '*'&lt;br /&gt; ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thus IP_ADDR can be either of following&lt;br /&gt;• INT.INT.INT.INT i.e. 192.168.10.55&lt;br /&gt;• *&lt;br /&gt;&lt;br /&gt;INT is a lexical rule used in both IP_ADDR and parser rule rowValue hence it is not a fragment rule. It is defined as&lt;br /&gt;&lt;br /&gt;INT : '0'..'9'+;&lt;br /&gt;&lt;br /&gt;Here INT is defined as one or more digits between 0 and 9.&lt;br /&gt;&lt;br /&gt;Now coming back to the explanation of ADDR. If we see the output of &lt;em&gt;route&lt;/em&gt; command then &lt;em&gt;Destination&lt;/em&gt; can have its value as an IP_ADDR or ‘link-local’, ‘default’ or ‘localhost’. Gateway can have its value as IP_ADDR (which is subset of rule ADDR) and &lt;em&gt;Genmask&lt;/em&gt; can have its value as IP_ADDR. Hence for parsing values of &lt;em&gt;Destination&lt;/em&gt;, &lt;em&gt;Gateway&lt;/em&gt; and &lt;em&gt;Genmask&lt;/em&gt; for each row the parser rule &lt;em&gt;rowValue&lt;/em&gt; is defined as “rowData+=ADDR+”. Here parser expects one or more ADDR and store the scanned tokens in list “rowData”.&lt;br /&gt;Now next value in row in output of “route” command is Flags. In the parser rule &lt;em&gt;rowValue&lt;/em&gt; it is defined as “rowData+=FLAG” which means it expects one FLAG.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; FLAG : ('U'  //route is up&lt;br /&gt; | 'H'   //target is a host&lt;br /&gt; | 'G'   //use gateway&lt;br /&gt; | 'R'   //reinstate route for dynamic routing&lt;br /&gt; | 'D'   //dynamically installed by daemon or redirect&lt;br /&gt; | 'M'   //modified from routing daemon or redirect&lt;br /&gt; | 'A'   //installed by addrconf&lt;br /&gt; | 'C'   //cache entry&lt;br /&gt; | '!')+ //reject route&lt;br /&gt; ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here FLAG will be combination of one or more flags defined above.&lt;br /&gt;After Flags in the output of “route” command the values of Metric, Ref and Use all are of integer type hence in rowValue it is defined as &lt;br /&gt;    “rowData+=INT+” &lt;br /&gt;i.e. the parser expects one or more integer values. These scanned tokens are stored in list &lt;em&gt;rowData&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally in the end it is interface value i.e. Iface which is of alpha-numeric type. Hence IFACE is defined as&lt;br /&gt;&lt;br /&gt;IFACE : ('0'..'9'|'a'..'z')+;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dynamic parsing code corresponding to grammar&lt;/strong&gt;Grammar described above is given as input to Gen-CLI API for defining the format of command response. Based on input grammar ANTLR generates a number of files.&lt;br /&gt;The noteworthy are the lexer and parser files. These two files can be generated in a number of languages like C, C++, Java, C#, Objective C and Python. Choice of language can be specified in “options” block in the grammar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;options &lt;/strong&gt;{&lt;br /&gt;language=Java;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;By default the code is generated in Java. Below is description of parser and lexer files generated dynamically based on the grammar provided as input&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;routeResponseLexer&lt;/strong&gt;: This code scans the stream of input characters (in this case it is output of ‘route’ command) and forms a list of tokens based on lexical rules defined in grammar above. It has a method nextToken() which is used by parser to get the next matching token in input data.&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;routeResponseParser&lt;/strong&gt;: As described earlier lexical rules defines the grammatical structure. This file contains code corresponding to parser rules. It gets tokens from TokenStream (part of Lexer) and parses them to see if it matches with grammatical structure. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br /&gt;1. US Patent application number 20040117452: XML-based network management system and method for configuration management of heterogeneous network devices By Byung Joon Lee, Tae Sang Choi, Tae Soo Jeong&lt;br /&gt;&lt;br /&gt;2. http://www.antlr.org/&lt;br /&gt;3. The Definitive ANTLR Reference: Building Domain-Specific Languages by Terence Parr&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork.html"&gt;Part 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_27.html"&gt;Part 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6012489201124108013?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6012489201124108013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6012489201124108013&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6012489201124108013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6012489201124108013'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_29.html' title='Generic CLI API for System/Network Management Systems - Part 3'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SffkqWwHjKI/AAAAAAAAAMw/GdNZkJLKymM/s72-c/route.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2391227180360871325</id><published>2009-04-28T10:22:00.002+05:30</published><updated>2009-04-28T10:25:12.804+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='songs'/><title type='text'>Broken String Lyrics: James Morrison and Nelly Fertado</title><content type='html'>A nice song by James Morrison and Nelly&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;Let me hold you&lt;br /&gt;For the last time&lt;br /&gt;It's the last chance to feel again&lt;br /&gt;But you broke me&lt;br /&gt;Now I can't feel anything&lt;br /&gt;&lt;br /&gt;When I love you&lt;br /&gt;It's so untrue&lt;br /&gt;I can't even convince myself&lt;br /&gt;When I'm speaking&lt;br /&gt;It's the voice of someone else&lt;br /&gt;&lt;br /&gt;Oh it tears me up&lt;br /&gt;I tried to hold on but it hurts too much&lt;br /&gt;I tried to forgive but it's not enough&lt;br /&gt;To make it all okay&lt;br /&gt;&lt;br /&gt;You can't play on broken strings&lt;br /&gt;You can't feel anything&lt;br /&gt;That your heart don't want to feel&lt;br /&gt;I can't tell you something that ain't real&lt;br /&gt;&lt;br /&gt;Oh the truth hurts&lt;br /&gt;A lie is worse&lt;br /&gt;I can't like it anymore&lt;br /&gt;And I love you a little less than before&lt;br /&gt;&lt;br /&gt;Oh what are we doing&lt;br /&gt;We are turning into dust&lt;br /&gt;Playing house in the ruins of us&lt;br /&gt;&lt;br /&gt;Running back through the fire&lt;br /&gt;When there's nothing left to save&lt;br /&gt;It's like chasing the very last train&lt;br /&gt;When it's too late too late&lt;br /&gt;&lt;br /&gt;Oh it tears me up&lt;br /&gt;I tried to hold on but it hurts too much&lt;br /&gt;I tried to forgive but it's not enough&lt;br /&gt;To make it all okay&lt;br /&gt;&lt;br /&gt;You can't play on broken strings&lt;br /&gt;You can't feel anything&lt;br /&gt;That your heart don't want to feel&lt;br /&gt;I can't tell you something that ain't real&lt;br /&gt;&lt;br /&gt;Oh the truth hurts&lt;br /&gt;A lie's worse&lt;br /&gt;I can't like it anymore&lt;br /&gt;When I love you a little less than before&lt;br /&gt;&lt;br /&gt;But we're running through the fire&lt;br /&gt;When there's nothing left to say&lt;br /&gt;It's like chasing the very last train&lt;br /&gt;When we both know it's too late too late&lt;br /&gt;&lt;br /&gt;You can't play on broken strings&lt;br /&gt;You can't feel anything&lt;br /&gt;That your heart don't want to feel&lt;br /&gt;I can't tell you something that ain't real&lt;br /&gt;&lt;br /&gt;Oh the truth hurts&lt;br /&gt;A lie's worse&lt;br /&gt;I can't like it anymore&lt;br /&gt;When I love you a little less than before&lt;br /&gt;&lt;br /&gt;Oh and I love you a little less than before&lt;br /&gt;&lt;br /&gt;Let me hold you for the last time&lt;br /&gt;It's the last chance to feel again&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2391227180360871325?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2391227180360871325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2391227180360871325&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2391227180360871325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2391227180360871325'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/broken-string-lyrics-james-morrison-and.html' title='Broken String Lyrics: James Morrison and Nelly Fertado'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-788926379896273762</id><published>2009-04-27T14:34:00.014+05:30</published><updated>2009-09-17T13:34:43.453+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>Generic CLI APi for System/Network Management Systems - Part 2</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;Proposed Solution&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The solution to the above mentioned problem should:&lt;br /&gt;1. Take care of internal details of command construction and parsing.&lt;br /&gt;2. Decouple parsing code from the syntax of CLI command and command response. Any change in syntax should be dynamically reflected in parsing code.&lt;br /&gt;&lt;br /&gt;The proposed Generic CLI API (Gen-CLI API) promises to offer a solution that takes care of the aforementioned requirements. It takes the template of command syntax and command response as input (Processing rules/template). These templates are sent as input to a parser generator. Based on these templates the parser generator generates code for constructing CLI command and for parsing command response. Thus whenever there is a change in the syntax of a CLI command or command response, the developer just needs to change the template file and feed them to parser generator which will generate the code on-the-fly. This approach avoids the painful activity of manual modification of parsing code whenever there is a change in format; making the management application system development and maintenance easier.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SfV2VF-ipjI/AAAAAAAAAMg/BkKB179wK6I/s1600-h/Command+generation.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5329295838816675378" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 110px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SfV2VF-ipjI/AAAAAAAAAMg/BkKB179wK6I/s400/Command+generation.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SfV2Lq0UxgI/AAAAAAAAAMY/nFPencD3kj8/s1600-h/flow+diag+2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5329295676907243010" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 181px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SfV2Lq0UxgI/AAAAAAAAAMY/nFPencD3kj8/s400/flow+diag+2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 1: The device management application sends a request to data processing layer for performing an action.&lt;br /&gt;&lt;br /&gt;Step2: The decision engine forwards the request to command creator.&lt;br /&gt;&lt;br /&gt;Step 3: Command creator contains the code for generating CLI command. After constructing CLI command it sends the command to the device communication layer.&lt;br /&gt;&lt;br /&gt;Step 4: The device communication layer sends the CLI command for execution on the managed device.&lt;br /&gt;&lt;br /&gt;Step 5: The managed device sends back the command response in raw form to the device communication layer.&lt;br /&gt;&lt;br /&gt;Step 6: This raw command response is sent to response parser which contains the code for converting it into formatted output&lt;br /&gt;&lt;br /&gt;Step 7: The formatted command response is then sent back to the data processing layer.&lt;br /&gt;&lt;br /&gt;Step 8: Based on the command response the decision engine decides whether to send the response back to the presentation layer or forward it to command creator, latter is for handling the case where the command expects response from the user as part of executing a command.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Advantages&lt;/span&gt;&lt;br /&gt;1. The command syntax and output template or rules can be expressed in a standard format such as EBNF grammar Rules.&lt;br /&gt;&lt;br /&gt;2. Parsing code can be easily changed as it is dynamically generated based on the template of command syntax and response.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Implications&lt;/span&gt;&lt;br /&gt;1. This method requires that the Device CLI developer generates the template for the command and the response. This template will be the input for the Management application to process the command and parse response.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork.html"&gt;Part 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_29.html"&gt;Part 3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-788926379896273762?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/788926379896273762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=788926379896273762&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/788926379896273762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/788926379896273762'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_27.html' title='Generic CLI APi for System/Network Management Systems - Part 2'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SfV2VF-ipjI/AAAAAAAAAMg/BkKB179wK6I/s72-c/Command+generation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6550151939888362547</id><published>2009-04-25T13:46:00.005+05:30</published><updated>2009-09-17T13:34:43.454+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>Generic CLI API for System/Network Management Systems - Part 1</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;Abstract&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;A rule based method for device management systems which dynamically generates parsing code for CLI commands, thus making the development and maintenance of the management applications easier than before. The format of the command syntax and command response is specified as a set of rules, based on which the CLI command and the parsing code for command response is generated.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Problem Statement&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the years there are numerous technological advancements in the field of protocols and formats used for transmitting device management data. For network management system four common protocols are used&lt;br /&gt;1. SNMP and its associated management information base (MIB) data block.&lt;br /&gt;2. The Command Line Interface (CLI).&lt;br /&gt;3. The Common Management Information Protocol (CMIP).&lt;br /&gt;4. XML-based products and formats, such as NETCONF.&lt;br /&gt;&lt;br /&gt;In spite of technological advancements CLI is still popular among device administrators. CLI has been one of the (in many cases, the only) interface to manage Network, Computing and Storage elements. As of this writing, there is no Industry standard available for CLI request and response, thus hampering interoperability between various device management systems in large data centers. Most of device management systems have vendor specific, proprietary CLI implementation. This type of implementation is rigid as the parsing code for command syntax and output is tightly coupled with the format of command syntax and response. Any change in command or response syntax leads to the dreadful activity of manually changing the parsing code. This adds additional overhead for code maintenance.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Other Approaches&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• There is yet another approach called XML-CLI, where the command syntax is encoded in an XML file (conforming to a predefined schema).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_27.html"&gt;Part 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork_29.html"&gt;Part 3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6550151939888362547?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6550151939888362547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6550151939888362547&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6550151939888362547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6550151939888362547'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork.html' title='Generic CLI API for System/Network Management Systems - Part 1'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7390835002563623713</id><published>2009-04-25T13:30:00.005+05:30</published><updated>2009-04-25T13:50:48.673+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitepaper'/><title type='text'>Opening up</title><content type='html'>In past 18 months I had developed 2 Proof-Of-Concepts (POC's) and written 2 white papers based on that and currently working on my 3rd white paper. These white papers had reviewed by very few people and has not debated much. Hence in order to share these papers with a wider audience so that I can get a better feedback on my works I am finally "&lt;span style="font-style:italic;"&gt;Opening up&lt;/span&gt;" by sharing these papers. I had written following white papers&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://anuj-mehta.blogspot.com/2009/04/generic-cli-api-for-systemnetwork.html"&gt;Generic CLI API for System/Network Management Systems.&lt;/a&gt;&lt;br /&gt;2. An Identity Search Web Application.&lt;br /&gt;3. Is Relational Database Doomed?? (Currently working on it)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7390835002563623713?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7390835002563623713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7390835002563623713&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7390835002563623713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7390835002563623713'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/opening-up.html' title='Opening up'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3069253725715548571</id><published>2009-04-21T08:38:00.023+05:30</published><updated>2009-04-21T13:59:43.067+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outing'/><title type='text'>Trip to makedatu</title><content type='html'>Long long ago Anuj Mehta (that’s me) went for an outing. Well it's a bit of exaggeration but it seems to be that it’s been ages since last I stepped out of Bangalore for an outing. Last time when I went for an outing was 1 year back in March ’08. But still in past 1 year I was too busy shuttling between offices (thanks to ProCurve as this is my 3rd office in a span of 1 year and I never felt need for exploring out of city). So finally on the historic day i.e. 17th April I along with my team went out for an outing to Makedatu situated some 90 km from Bangalore. So we all; a group of 14 enthusiasts started at around 9:00 in morning towards Makedatu. On the way to Makedatu first we started playing &lt;span style="font-style: italic;"&gt;Antakashari&lt;/span&gt;; it was real fun especially the choice of songs was really nice be it the good old &lt;span style="font-style: italic;"&gt;"Noori Noori"&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;"Ring Ring Ringa"&lt;/span&gt; of Slumdog.&lt;br /&gt;&lt;br /&gt;Later we started playing Dumb Charades and finally in around 2 hours we reached our destination i.e. Makedatu. Makedatu stands for (Make = sheep) and (datu = jump) i.e. a place where a sheep jumps from one side of valley to other (this is what my colleagues told me and I am more interested in eating that sheep rather than let it jump:) ). Ok lets leave the sheep and lets come back to Makedatu…so finally we reached the place. The place that we reached is actually known as Sangam where 2 tributaries of Kaveri meets (not sure whether it is correct as all that matters to me is that I want to enjoy in water), we now crossed the sangam and reached the other side from where Makedatu is some 4 km far. There is no proper road for these 4 km. We took a rickety bus for reaching Makedatu…look below the pic of the bus and travel in it at your own risk as it can crumble any time&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Se2BoTuch1I/AAAAAAAAAMI/-4bum1qraKs/s1600-h/bus.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Se2BoTuch1I/AAAAAAAAAMI/-4bum1qraKs/s400/bus.jpg" alt="" id="BLOGGER_PHOTO_ID_5327056463738996562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/Se1-xjLNdHI/AAAAAAAAAL4/QuiaKQ3ilBU/s1600-h/bus1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/Se1-xjLNdHI/AAAAAAAAAL4/QuiaKQ3ilBU/s400/bus1.jpg" alt="" id="BLOGGER_PHOTO_ID_5327053323970114674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;          &lt;span style="font-weight: bold;"&gt;Myself and Pradeep in THE bus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So finally we reached makedatu but to my dismay we couldn’t find any safe place to take bath and we decided to take bath back in Sangam. Here are some pics of Makedatu where sheep has once jumped&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Se1vGNyKWKI/AAAAAAAAALw/U68Z44nJbx4/s1600-h/Makedatu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Se1vGNyKWKI/AAAAAAAAALw/U68Z44nJbx4/s400/Makedatu.jpg" alt="" id="BLOGGER_PHOTO_ID_5327036086819117218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don’t tell me the sheep has jumped from one side of lake to other? It had to be Godzilla&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So finally after some mountain climbing and some photography we set out to come back to sangam and I was really hungry by now. But our return journey was even more adventurous than the clunky bus in which we reached here. Now instead of bus there was Jeep waiting for us, somehow some 9-10 people were squeezed inside it with 2 people standing out in back of jeep and the drivers kid was sitting on the bonnet of jeep.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Se1sO6zmTiI/AAAAAAAAALg/6yGqddGVK_o/s1600-h/jeep1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Se1sO6zmTiI/AAAAAAAAALg/6yGqddGVK_o/s400/jeep1.jpg" alt="" id="BLOGGER_PHOTO_ID_5327032937808809506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;                       &lt;span style="font-weight: bold;"&gt;Looks great na!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Se076j_f6QI/AAAAAAAAALY/D1b3viPD98c/s1600-h/jeep2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326979811529189634" style="margin: 0px auto 10px; display: block; width: 400px; cursor: pointer; height: 300px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Se076j_f6QI/AAAAAAAAALY/D1b3viPD98c/s400/jeep2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally we reached back to sangam and the adventurous ride has exponentially increased my hunger. So we all had our lunch (thanks to Ladoos for making nice parathans and vegetables). After lunch we headed towards the sangam for having some fun (of which I had been deprived till now). Here are some pics&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/Se07DDFsuJI/AAAAAAAAALQ/LYAjoaPW1Fs/s1600-h/anuj.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326978857804019858" style="margin: 0px auto 10px; display: block; width: 400px; cursor: pointer; height: 300px; text-align: center;" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/Se07DDFsuJI/AAAAAAAAALQ/LYAjoaPW1Fs/s400/anuj.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;                         &lt;span style="font-weight: bold;"&gt;That's me&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/Se06NEVEIpI/AAAAAAAAALI/vIHfBX7L-4o/s1600-h/sangam.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326977930423968402" style="margin: 0px auto 10px; display: block; width: 400px; cursor: pointer; height: 300px; text-align: center;" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/Se06NEVEIpI/AAAAAAAAALI/vIHfBX7L-4o/s400/sangam.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style="font-weight: bold;"&gt;My team playing games in water.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/Se05WgChxFI/AAAAAAAAALA/lXAGsnI9YC0/s1600-h/team.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326976992969606226" style="margin: 0px auto 10px; display: block; width: 400px; cursor: pointer; height: 300px; text-align: center;" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/Se05WgChxFI/AAAAAAAAALA/lXAGsnI9YC0/s400/team.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3069253725715548571?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3069253725715548571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3069253725715548571&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3069253725715548571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3069253725715548571'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/trip-to-makedatu.html' title='Trip to makedatu'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/Se2BoTuch1I/AAAAAAAAAMI/-4bum1qraKs/s72-c/bus.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7772502236691394022</id><published>2009-04-20T11:15:00.027+05:30</published><updated>2009-04-20T11:59:35.451+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore'/><title type='text'>List of user's group in bangalore</title><content type='html'>Bangalore being the Silicon Valley of India has a host of user's group where techies meet and mingle with some of the best minds of the industry. Below is the list of the user's group which I am aware of&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight:bold;"&gt;Barcamp Bangalore&lt;/span&gt; : This is definitely most famous unconference among the techies in Bangalore and it's not limited only to techies,here you can mingle with people from diverse backgrounds. It has a very active mailing list - &lt;a href="http://tech.groups.yahoo.com/group/bangalore_barcamp/"&gt;Barcamp Bangalore Group&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight:bold;"&gt;DevCamp Bangalore&lt;/span&gt; : This is an unconference for developers. It's wiki - &lt;a href="http://devcamp.in/wiki/Main_Page"&gt;DevCamp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight:bold;"&gt;Bangalore Linux User's Group&lt;/span&gt; : User's group for Linux aficionados. &lt;a href="http://blug.in/index.php/Main_Page"&gt;BLUG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight:bold;"&gt;Bangalore Open Java User's Group (BOJUG)&lt;/span&gt; : Java user's group. &lt;a href="https://bojug.dev.java.net/"&gt;BOJUG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5. &lt;span style="font-weight:bold;"&gt;B.Net&lt;/span&gt; : India's most active Microsoft users group for .NET, Here's the link &lt;a href="http://bdotnet.in/"&gt;B.NET&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. &lt;span style="font-weight:bold;"&gt;Bangalore RUG&lt;/span&gt; :  This is the Bangalore's Ruby Users Group. Its mailing list &lt;a href="http://groups.google.com/group/bangalorerug"&gt;Bangalore RUG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7. &lt;span style="font-weight:bold;"&gt;Bangalore MySQL User Group&lt;/span&gt; :  A group for MySQL. Here the link of group &lt;a href="http://mysql.meetup.com/297/"&gt;MySQL Users Group&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8. &lt;span style="font-weight:bold;"&gt;Bangalore Python Users Group&lt;/span&gt; : The user's group for Python developers. &lt;a href="http://mail.python.org/mailman/listinfo/bangpypers"&gt;BangPypers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;9. &lt;span style="font-weight:bold;"&gt;Free Software Users Group&lt;/span&gt; : A group of Free Software users. &lt;a href="http://bangalore.gnu.org.in/index.php/Main_Page"&gt;FSUG-Bangalore&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10. &lt;span style="font-weight:bold;"&gt;Bangalore BSD Users Group&lt;/span&gt; : This is a user's group for Open Source UNIX based like Linux, DragonFly BSD, OpenBSD, NetBSD, Darwin, MacOsX and OpenBSD. &lt;a href="http://www.bangbug.org/"&gt;BANGBUG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;11. &lt;span style="font-weight:bold;"&gt;Bangalore Flex Users Group&lt;/span&gt; : User group for people interested in Adobe Flex. &lt;a href="http://groups.google.com/group/bangalorefx"&gt;bangaloreFX&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;12. &lt;span style="font-weight:bold;"&gt;Bangalore Open Solaris Users Group&lt;/span&gt; : User group for Sun Solaris. &lt;a href="http://opensolaris.org/os/project/bosug/"&gt;BOSUG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;13. &lt;span style="font-weight:bold;"&gt;OWASP Bangalore Chapter&lt;/span&gt; : This is group for people who want to know more about application security. &lt;a href="http://www.owasp.org/index.php/Bangalore"&gt;Bangalore - OWASP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;14. &lt;span style="font-weight:bold;"&gt;Bangalore Drupal Users&lt;/span&gt; : Users group for people interested in learning about Drupal. &lt;a href="http://groups.drupal.org/bangalore"&gt;Drupal Group&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7772502236691394022?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7772502236691394022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7772502236691394022&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7772502236691394022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7772502236691394022'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/list-of-users-group-in-bangalore.html' title='List of user&apos;s group in bangalore'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4651170387400720450</id><published>2009-04-15T14:49:00.022+05:30</published><updated>2009-04-15T16:09:56.491+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><title type='text'>Movies watched in last few weeks</title><content type='html'>In last few weeks I saw a number of movies, some of which were nice but some were really horrible, but I shameless killed my time by watching even those crap movies. Here goes the list of those movies&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SeWs6l2SRKI/AAAAAAAAAKg/ETN6KvSTK-E/s1600-h/its-a-wonderful-life.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 279px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SeWs6l2SRKI/AAAAAAAAAKg/ETN6KvSTK-E/s400/its-a-wonderful-life.jpg" alt="" id="BLOGGER_PHOTO_ID_5324852257027671202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.imdb.com/title/tt0038650/"&gt;&lt;span style="font-weight: bold;"&gt;It's a wonderful life&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a timeless movie, even though it was released way beck in 1946 but the message is still true "&lt;span style="font-style: italic;"&gt;It's a wonderful life&lt;/span&gt;". It's a story of George Bailey who from his childhood wants to go out and visit, explore other countries, wants to do big things in life like building skyscrapers, bridges etc. but fate has something else in store for him and due to some unavoidable circumstances he is not able to leave his city and had to continue working in his father's place. Hence he considers himself one of the unluckiest guy. Later he finds himself in a real mess and tries to suicide but is saved by an angel who changes his life.&lt;br /&gt;This is a must watch for everyone especially software engineers like me who from their childhood are dreaming about going onsite but are not able to go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SeWu5LpDToI/AAAAAAAAAKo/wBRo9iJRvkA/s1600-h/gulaal.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SeWu5LpDToI/AAAAAAAAAKo/wBRo9iJRvkA/s400/gulaal.jpg" alt="" id="BLOGGER_PHOTO_ID_5324854431836229250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.imdb.com/title/tt1261047/"&gt;&lt;span style="font-style: italic;"&gt;Gulaal&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more solid performance by &lt;a href="http://en.wikipedia.org/wiki/Kay_Kay_Menon"&gt;Kay Kay Menon&lt;/a&gt;. He is simply the best. This movie is set in my home state the one and only Rajasthan. It's a story of a secessionist group who wants to separate from indian government and wants to form their own independent state called &lt;span style="font-style:italic;"&gt;Rajputana&lt;/span&gt;. Kay Kay Menon is the secretary of this group. This movies shows the dark side of college politics and ragging (here juniors are not the only one who gets ragged, even the teachers are badly affected by it). Kay Kay Menon drives the college politics to meet his ends. The story revolves around a new simple stupid student who joins college to study but unfortunately gets dragged into dirty college politics and in turn spoil his life. Apart from impeccable acting of Menon I also liked the way they show the mix of religious, traditional and modern rajasthan, this is truly commendable and I am sure all rajasthani's will notice it. This one is also a must watch for everyone.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SeW0_czH0oI/AAAAAAAAAKw/TC6uF6yEnH0/s1600-h/13b-wallpaper.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 283px; height: 400px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SeW0_czH0oI/AAAAAAAAAKw/TC6uF6yEnH0/s400/13b-wallpaper.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5324861136590852738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.imdb.com/title/tt1385824/"&gt;&lt;span style="font-style:italic;"&gt;13B&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;13B is a thriller. The movie is just OK and can be watched once. This is story of a family which shifts to a new flat (whose address is 13B) and finds themselves in a mess. The ghosts has controlled the TV and they show their own version of a serial (it may sound funny but you won't feel while watching the movie). Through this serial the ghosts tell their story about how they all were killed and they want to take the revenge with the killer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SeW4A13cx3I/AAAAAAAAAK4/57s8HQ01H3w/s1600-h/Straight+(2009).jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 277px; height: 400px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SeW4A13cx3I/AAAAAAAAAK4/57s8HQ01H3w/s400/Straight+(2009).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5324864459034642290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.imdb.com/title/tt1399602/"&gt;&lt;span style="font-style:italic;"&gt;Straight&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A totally crap movie. This is a story of Pinu Patel (Vinay Pathak) who is confused whether is should get along with a guy or a gal. Don't even try to watch this movie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4651170387400720450?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4651170387400720450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4651170387400720450&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4651170387400720450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4651170387400720450'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/movies-watched-in-last-few-weeks.html' title='Movies watched in last few weeks'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SeWs6l2SRKI/AAAAAAAAAKg/ETN6KvSTK-E/s72-c/its-a-wonderful-life.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1034991991817429430</id><published>2009-04-15T12:31:00.004+05:30</published><updated>2009-04-15T13:11:52.024+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Lady Gaga - Poker face</title><content type='html'>One of my personal favorite song. &lt;br /&gt;&lt;br /&gt;&lt;object width="340" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SAHfJsqalks&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/SAHfJsqalks&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1034991991817429430?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1034991991817429430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1034991991817429430&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1034991991817429430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1034991991817429430'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/lady-gaga-poker-face.html' title='Lady Gaga - Poker face'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5768144421084242395</id><published>2009-04-08T12:00:00.004+05:30</published><updated>2009-04-08T12:06:29.167+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='appengine'/><title type='text'>Java support for Google App Engine</title><content type='html'>Google has today announced support for Java language for the Google App Engine. Earlier they supported only Python (which I don't know and have no interest in learning it). Refer to below link for details&lt;br /&gt;&lt;br /&gt;&lt;a href="http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html"&gt;Seriously this time new language on App Engine: Java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5768144421084242395?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5768144421084242395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5768144421084242395&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5768144421084242395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5768144421084242395'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/04/java-support-for-google-app-engine.html' title='Java support for Google App Engine'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6349568700930084075</id><published>2009-03-31T09:41:00.004+05:30</published><updated>2009-03-31T09:53:07.714+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='dcb2'/><category scheme='http://www.blogger.com/atom/ns#' term='devcampbangalore'/><title type='text'>DevCamp Bangalore 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SdGYLaRlzpI/AAAAAAAAAKY/RivnhO4RO-o/s1600-h/Devcamp22009.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 104px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SdGYLaRlzpI/AAAAAAAAAKY/RivnhO4RO-o/s400/Devcamp22009.jpg" alt="" id="BLOGGER_PHOTO_ID_5319199956700352146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="hcalendar-DevCamp-2" class="vevent"&gt;&lt;a href="http://devcamp.in/wiki/Main_Page" class="url"&gt;&lt;abbr title="2009-04-11T10:00+05:3000" class="dtstart"&gt;April 11, 2009  10&lt;/abbr&gt; – &lt;abbr title="2009-04-11T18:00+05:30" class="dtend"&gt;6pm&lt;/abbr&gt; :  &lt;span class="summary"&gt;DevCamp 2&lt;/span&gt; at &lt;span class="location"&gt;ThoughtWorks, Bangalore&lt;/span&gt;&lt;/a&gt;&lt;div class="description"&gt;DevCamp is an un-conference by the hackers, for the hackers and of the hackers. I had attended the DevCamp last year and it was really nice and very informative. You get to meet some of the best minds of the industry there.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This &lt;a href="http://microformats.org/wiki/hcalendar"&gt;hCalendar event&lt;/a&gt; brought to you by the &lt;a href="http://microformats.org/code/hcalendar/creator"&gt;hCalendar Creator&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6349568700930084075?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6349568700930084075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6349568700930084075&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6349568700930084075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6349568700930084075'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/devcamp-bangalore-2.html' title='DevCamp Bangalore 2'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SdGYLaRlzpI/AAAAAAAAAKY/RivnhO4RO-o/s72-c/Devcamp22009.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6378668111910093213</id><published>2009-03-25T09:56:00.008+05:30</published><updated>2009-03-26T09:52:48.340+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='elections2009'/><category scheme='http://www.blogger.com/atom/ns#' term='bleedindia'/><title type='text'>Bleed India - No tension. Don't vote in election</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Scm0yU8APQI/AAAAAAAAAKQ/vhYtL1XuFEE/s1600-h/bleedIndia.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 284px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Scm0yU8APQI/AAAAAAAAAKQ/vhYtL1XuFEE/s400/bleedIndia.PNG" alt="" id="BLOGGER_PHOTO_ID_5316979611794423042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today I came across a wonderful site called &lt;a href="http://bleedindia.com/index.html"&gt;BleedIndia&lt;/a&gt;. The site has witty remarks on lazy people like me who keep complaining about our bad politicians but don't do their basic duties of voting.&lt;br /&gt;&lt;br /&gt;See the hilarious manifesto of Pappu Raj -- &lt;a href="http://bleedindia.com/pdf/moneyfesto.pdf"&gt;manifesto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6378668111910093213?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6378668111910093213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6378668111910093213&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6378668111910093213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6378668111910093213'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/bleed-india-no-tension-dont-vote-in.html' title='Bleed India - No tension. Don&apos;t vote in election'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/Scm0yU8APQI/AAAAAAAAAKQ/vhYtL1XuFEE/s72-c/bleedIndia.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8884468846300083958</id><published>2009-03-20T13:51:00.002+05:30</published><updated>2009-03-20T14:17:21.737+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Word cloud of my blog</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/ScNXUWFt1FI/AAAAAAAAAKI/siBesKlHLfk/s1600-h/wordle.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/ScNXUWFt1FI/AAAAAAAAAKI/siBesKlHLfk/s400/wordle.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5315187992265872466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tag cloud taken from http://www.wordle.net/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8884468846300083958?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8884468846300083958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8884468846300083958&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8884468846300083958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8884468846300083958'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/tag-cloud-of-my-blog.html' title='Word cloud of my blog'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/ScNXUWFt1FI/AAAAAAAAAKI/siBesKlHLfk/s72-c/wordle.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7618139668937171568</id><published>2009-03-18T14:09:00.005+05:30</published><updated>2009-03-18T14:24:13.092+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google calendar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/ScCzW7fsJNI/AAAAAAAAAKA/6v4In6R4j3Y/s1600-h/google-calendar_logo.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 80px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/ScCzW7fsJNI/AAAAAAAAAKA/6v4In6R4j3Y/s400/google-calendar_logo.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5314444766806287570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Very often it happens that I register for some event like a &lt;a href="https://bojug.dev.java.net/"&gt;BOJUG&lt;/a&gt; meet. The event is supposed to happen after 2-3 weeks and by the time the day for event comes I just forget about it, also many times it happens that one of my friends birthday is on weekend and since I don't have internet connection in my home and hence I can't access Orkut where I see birthday reminders so I forget to wish some of my friends (and sometimes parties also). &lt;br /&gt;&lt;br /&gt;You see I was in terrible position but &lt;a href="http://www.google.com/calendar/"&gt;Google Calendar&lt;/a&gt; came to my rescue. It has set of nice features but the best thing that I like is I can get notifications/reminders through SMS which comes handy when you don't have internet access. Now I have added all the events that I wish to attend in the calendar, through Orkut I have added birthday's of all my friends to calendar and I get notification through SMS about the events and birthday's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7618139668937171568?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7618139668937171568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7618139668937171568&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7618139668937171568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7618139668937171568'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/google-calendar.html' title='Google calendar'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/ScCzW7fsJNI/AAAAAAAAAKA/6v4In6R4j3Y/s72-c/google-calendar_logo.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3768990027034669432</id><published>2009-03-16T15:45:00.001+05:30</published><updated>2009-03-26T09:53:26.949+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='elections2009'/><title type='text'>Congress party 'Jai ho' film</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gOlcGruEZ44&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gOlcGruEZ44&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3768990027034669432?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3768990027034669432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3768990027034669432&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3768990027034669432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3768990027034669432'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/congress-party-jai-ho-film.html' title='Congress party &apos;Jai ho&apos; film'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4338187411954677468</id><published>2009-03-16T12:19:00.012+05:30</published><updated>2009-03-16T13:17:37.472+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Destination Moon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Sb33ViuchCI/AAAAAAAAAJ4/r0AaXd0yba4/s1600-h/Destination+Moon.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 300px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Sb33ViuchCI/AAAAAAAAAJ4/r0AaXd0yba4/s400/Destination+Moon.jpg" alt="" id="BLOGGER_PHOTO_ID_5313675084837979170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;It is not a question of whether we can afford to go to moon. Is the whether we can ignore it?&lt;/span&gt;&lt;br /&gt;                                   -Dr. K Kasturirangan, Former Chairman, ISRO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Over the weekend I read a nice book “Destination Moon” which celebrates the success of Indian Space program. In lucid language it describes in layman words the significance of space program in general and the Chandrayaan-1 project in particular. The book is divided into 7 chapters. Here is the brief description of first 5 chapters&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb327GAzM8I/AAAAAAAAAJw/_QHr96EHMss/s1600-h/Moon.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 387px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb327GAzM8I/AAAAAAAAAJw/_QHr96EHMss/s400/Moon.jpg" alt="" id="BLOGGER_PHOTO_ID_5313674630453736386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chapter 1 digs into the history of Chanrayaan-1 project with its inception in 1999. On 11th May, 1999 there was a function in New Delhi to commemorate one year of Pokhran-2. This function was attended by a number of scientists, academia's (and of course by our ministers and member of parliaments). During this function Dr. Nair gave the usual presentation on the success of Indian space program except for a noteworthy announcement that India is now capable of sending a mission to moon. Next day it was headlines in Indian express.  Also this chapter explains the rationale behind this mission. Indian space program has long focused on using technology to solve the problems of country like for improving the way of communication, using satellites for getting better knowledge of natural resources, weather conditions etc but this mission marked as the starting of a new era and there was more focus in uncovering the mysteries of the deep space and dedicated efforts towards research. The mission was focused in unraveling the mysteries of formation of moon, as in the future moon will play a major role as humans try to settle out in other planets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chapter 2 focuses on moon and Indian ethos. Moon has long been part of culture since it was discovered by Galileo with his telescope. It has been part and parcel of our life be it in form of poetry, songs, mythology, stories etc. None of us can forget the good-old &lt;a href="http://manishchauhan.blogspot.com/2005/08/chanda-mama-door-ke.html"&gt;Chandama dur ke&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Chapter 3 digs into the history of various missions to moon especially taken by US and USSR during the cold war era.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/Sb32u9vaM8I/AAAAAAAAAJo/W7y7xPqAk1w/s1600-h/launch.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 387px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/Sb32u9vaM8I/AAAAAAAAAJo/W7y7xPqAk1w/s400/launch.jpg" alt="" id="BLOGGER_PHOTO_ID_5313674422074880962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chapter 4 celebrates the success of Indian Space program. It talks in detail about the capabilities of the launch vehicles: Polar Satellite Launch Vehicle (PSLV) and Geo-synchronous Satellite Launch Vehicle (GSLV), Indian Remote Sensing (IRS), the INSAT series of satellites. These advancements in space technology helped in improving communication, spreading education to the remotest parts of the country through the INSAT satellites, remote medical procedures through telemedicine and the list goes on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb32ndsCXTI/AAAAAAAAAJg/tJhVSxNBr0I/s1600-h/chandrayaant.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 297px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb32ndsCXTI/AAAAAAAAAJg/tJhVSxNBr0I/s400/chandrayaant.jpg" alt="" id="BLOGGER_PHOTO_ID_5313674293211716914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chapter 5 focuses in details of Chandrayaan-1, India’s maiden mission to moon. This mission is concentrated on getting detailed information about the topography and the natural resources, look for presence of water on earth as earlier exploration discovered the presence of Hydrogen and others. Chandrayaan-1 has 11 payloads with 5 from India and rest all from other countries. It tells about the role of each payload.&lt;br /&gt;&lt;br /&gt;To summarize it is a nice book written in very simple language and gives a good insight of the Chandrayaan-1 mission.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4338187411954677468?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4338187411954677468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4338187411954677468&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4338187411954677468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4338187411954677468'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/destination-moon.html' title='Destination Moon'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/Sb33ViuchCI/AAAAAAAAAJ4/r0AaXd0yba4/s72-c/Destination+Moon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2211667428409112650</id><published>2009-03-16T09:43:00.007+05:30</published><updated>2009-03-16T09:56:41.562+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Reverse Engineering: Creating UML diagrams with existing code</title><content type='html'>Very often it happens that whenever a new person joins the project the seniors gave him/her the design documents of the project and in most of the cases they tell “&lt;span style="font-style:italic;"&gt;Hey there has been lot of changes in the original design and the class and sequence diagram that you see in this document is obsolete&lt;/span&gt;” and the poor chap has go through the arduous task of going through the source code to understand the design. This is a common problem in every project and but fortunately the reverse engineering feature of Netbeans comes to our rescue using which we can create UML diagrams of an existing code. Let’s look at a small example&lt;br /&gt;&lt;br /&gt;I had defined an abstract class Person&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;abstract public class Person&lt;br /&gt;{&lt;br /&gt;    protected String name;&lt;br /&gt;    protected boolean haveBrain;&lt;br /&gt;&lt;br /&gt;    Person(String name)&lt;br /&gt;    {&lt;br /&gt;        this.name = name;&lt;br /&gt;    }&lt;br /&gt;   protected abstract void display();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are 2 classes SoftwareEngineer and Farmer which extends the class Person&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class SoftwareEngg extends Person&lt;br /&gt;{&lt;br /&gt;    SoftwareEngg(String name)&lt;br /&gt;    {&lt;br /&gt;        super(name);&lt;br /&gt;        haveBrain = false;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    protected void display()&lt;br /&gt;    {&lt;br /&gt;        System.out.println("Hi dude I am a Software engineer");&lt;br /&gt;        System.out.println("Name: " + name);&lt;br /&gt;        System.out.println("Do I have brain? " + haveBrain);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class Farmer extends Person&lt;br /&gt;{&lt;br /&gt;    Farmer(String name)&lt;br /&gt;    {&lt;br /&gt;        super(name);&lt;br /&gt;        haveBrain = true;&lt;br /&gt;    }&lt;br /&gt;    @Override&lt;br /&gt;    protected void display()&lt;br /&gt;    {&lt;br /&gt;        System.out.println("Ram ram bhaiya!");&lt;br /&gt;        System.out.println("Name: " + name);&lt;br /&gt;        System.out.println("Do I have brain? " + haveBrain);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also I had created a Factory class that returns an object of Person&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class PersonFactory&lt;br /&gt;{&lt;br /&gt;    public static Person getPerson(int ch, String name)&lt;br /&gt;    {&lt;br /&gt;        switch(ch)&lt;br /&gt;        {&lt;br /&gt;            case 1: return new SoftwareEngg(name);&lt;br /&gt;            case 2: return new Farmer(name);&lt;br /&gt;        }&lt;br /&gt;        return new Farmer(name);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally there is a class called PersonImpl that has the main method&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class PersonImpl&lt;br /&gt;{&lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;        Person per = PersonFactory.getPerson(1, "TheDude");&lt;br /&gt;        per.display();&lt;br /&gt;        per = PersonFactory.getPerson(2, "Ramlal");&lt;br /&gt;        per.display();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Steps for generating UML diagrams&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. I am using Netbeans 6.5. Go to Tools --&gt; Plugins and in the Available plug-ins search for “uml” and install the UML package and restart the IDE.&lt;br /&gt;&lt;br /&gt;2. Once the IDE restarts right click on the Project node (in the Project navigation tree) and select “Reverse Engineer” option. A new node &lt;ProjectName&gt;-Model will be created and you will see something like this in output/log window&lt;br /&gt;&lt;br /&gt;                Begin processing Reverse Engineering&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                Parsing 5 elements&lt;br /&gt;&lt;br /&gt;                Analyzing attributes &amp; operations for 5 symbols&lt;br /&gt;&lt;br /&gt;                Resolving 5 attribute types&lt;br /&gt;&lt;br /&gt;                Integrating 5 elements&lt;br /&gt;&lt;br /&gt;                Building the query cache.&lt;br /&gt;&lt;br /&gt;                ================================&lt;br /&gt;                Task Successful (total time: 2 seconds) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Now the project navigator looks something like this&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb3SddIaotI/AAAAAAAAAJY/nBXm9-YJUNI/s1600-h/projNavigator.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 329px; height: 310px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/Sb3SddIaotI/AAAAAAAAAJY/nBXm9-YJUNI/s400/projNavigator.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313634538845020882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Now right click on sub node reverseengg (“reverseengg” is the package name of my original project) and select “Create Diagram From Selected Elements…”, a new dialog will pop up and you can select any diagram. For this case I will select Class diagram and boom! we get a nice class diagram showing the relation between various classes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/Sb3SWIwGAhI/AAAAAAAAAJQ/IwQ3A9grT3o/s1600-h/classDiagram.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 166px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/Sb3SWIwGAhI/AAAAAAAAAJQ/IwQ3A9grT3o/s400/classDiagram.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313634413115212306" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2211667428409112650?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2211667428409112650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2211667428409112650&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2211667428409112650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2211667428409112650'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/reverse-engineering-creating-uml.html' title='Reverse Engineering: Creating UML diagrams with existing code'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/Sb3SddIaotI/AAAAAAAAAJY/nBXm9-YJUNI/s72-c/projNavigator.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4139474740715001372</id><published>2009-03-09T16:31:00.001+05:30</published><updated>2009-03-09T16:33:00.946+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Fighting robots</title><content type='html'>A cool video of robots fighting&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/TAxi38FE8xo&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/TAxi38FE8xo&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4139474740715001372?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4139474740715001372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4139474740715001372&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4139474740715001372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4139474740715001372'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/fighting-robots.html' title='Fighting robots'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-325092114015061568</id><published>2009-03-06T16:26:00.002+05:30</published><updated>2009-03-06T16:30:09.777+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>A picture is worth a thousand words</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SbEB8vOvHHI/AAAAAAAAAJI/Ip1FBi74kkU/s1600-h/frog.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SbEB8vOvHHI/AAAAAAAAAJI/Ip1FBi74kkU/s400/frog.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5310027578628578418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The picture exactly describes my situation :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-325092114015061568?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/325092114015061568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=325092114015061568&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/325092114015061568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/325092114015061568'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/picture-is-worth-thousand-words.html' title='A picture is worth a thousand words'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/SbEB8vOvHHI/AAAAAAAAAJI/Ip1FBi74kkU/s72-c/frog.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6791917223404658906</id><published>2009-03-02T10:04:00.006+05:30</published><updated>2009-03-02T10:14:37.032+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><title type='text'>Internet the way I see</title><content type='html'>What is common between Facebook, YouTube, Flickr, LinkedIn and Twitter? Well easy to guess, they all are social networking sites which focus on building online community where people share their interest and activities. In Facebook people create their own profile and share their interests through various online communities, YouTube and Flickr are videos and image management and sharing sites, LinkedIn is a business networking site where people create their profile but unlike Facebook the profile contains mainly details about educational background and their profession and use it for serious business networking. Lastly Twitter is a micro-blogging service. In past few years a trend can be observed that majority of data is user generated i.e. information is “&lt;span style="font-style: italic;"&gt;by the people, for the people and of the people&lt;/span&gt;”. Compared to the era of 1990’s where there were relatively few information producers and a large number of consumers, the situation has changed now and there is lot more focus on an individual, people try to project themselves either through their profiles in Facebook, LinkedIn or by having their personal Weblogs. Thus now there is a personal space for everyone on web.&lt;br /&gt;&lt;br /&gt;Let’s see one more aspect of web. It is a vast ocean of information. Currently most of the information on web is represented using natural language (like English, Russian, Hindi, etc) or using graphics multimedia etc. This information can be processed by humans as they can easily form association between disparate forms of data even if they use different terminologies. However the same task is difficult for machines, it is difficult for them to make sense from say an image, draw analogies or to combine information from heterogeneous sources and make associations among them. There are several tasks which involve tedious work of finding, sharing and combining information on the web; it would be nice if such tasks can be automated i.e. performed by machines (intelligent agents).&lt;br /&gt;&lt;br /&gt;For ex: Consider an automatic reservation system. The system should&lt;br /&gt;1. know about my preference&lt;br /&gt;2. build up knowledge using past&lt;br /&gt;3. combine the local knowledge with runtime services&lt;br /&gt;    • airline preferences&lt;br /&gt;    • dietary requirements&lt;br /&gt;    • calendaring&lt;br /&gt;    • etc&lt;br /&gt;&lt;br /&gt;For making these tasks automated we need a way in which data should be possibly combined, merged on a web scale, there should be some data that describes other data; machines should be able to reason about the data. To make this happen we need a way of defining semantics of the information and services on the web. This concept of making data on web more meaningful is generally referred to as &lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;Semantic Web&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To conclude following trends can be seen&lt;br /&gt;1. Greater focus on an individual&lt;br /&gt;2. Semantic web&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did search of "Semantic Web" on Google trends and here is what is shows&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SatjjOxoomI/AAAAAAAAAJA/L-uesBqLp0w/s1600-h/semantic+web.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 207px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SatjjOxoomI/AAAAAAAAAJA/L-uesBqLp0w/s400/semantic+web.PNG" alt="" id="BLOGGER_PHOTO_ID_5308446042699113058" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6791917223404658906?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6791917223404658906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6791917223404658906&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6791917223404658906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6791917223404658906'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/03/internet-way-i-see.html' title='Internet the way I see'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SatjjOxoomI/AAAAAAAAAJA/L-uesBqLp0w/s72-c/semantic+web.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4744065232517777593</id><published>2009-02-27T08:39:00.008+05:30</published><updated>2009-06-10T12:51:56.571+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='play'/><title type='text'>The Training</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Disclaimer&lt;/span&gt;: &lt;span style="font-style:italic;"&gt;All characters appearing in this work are fictitious. Any resemblance to real persons, living or dead, is purely coincidental.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CHARACTERS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Billu&lt;/span&gt;: No he is not barber; he is a YASE (Yet Another Software Engineer). Billu is a industrious in nature but he has just one problem, he don’t use his brain hence all that he do is work like a donkey for a whole year and in the end gets a BAD appraisal. But in spite of all these failures he never leaves his hope and every morning he listens to his favorite song “&lt;a href="http://anuj-mehta.blogspot.com/2008/02/hum-honge-kamyab.html"&gt;Hum honge kamayab ek din&lt;/a&gt;…”&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shekhar&lt;/span&gt;: He is a Billu’s Project Manager, graduated from one of the India’s best technical institute and unlike Billu he is highly successful in his career.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Suri&lt;/span&gt;: He is Billu’s colleague, he likes two things in life first his girl friend Taani and second the evening dance classes where he met Taani for first time and fell in love with her.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Taani&lt;/span&gt;: Suri’s girl friend. She hates anyone who calls her “Taaniji”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;ACT ONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;It’s 2:30 PM, Wednesday and Billu is as usual working on computer. A new mails pops up. It is regarding a 2 day training starting from next Monday. The training is on Cloud Computing and will be conducted by renowned Prof Kapoor of IISc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Billu: Shekhar there is 2 day training on Cloud Computing starting from Monday. Can I attend it?&lt;br /&gt;&lt;br /&gt;Shekhar (bit annoyingly): Well as you know economy is not doing well and I can’t afford to loose any productivity as this training is not related to our project.&lt;br /&gt;&lt;br /&gt;Billu: Shekhar I had been working on Cloud computing over the weekends for past 1 year. I had developed some Proof-Of-Concepts (POC’s) on it. Please can I attend it?&lt;br /&gt;&lt;br /&gt;Shekhar: Hmm. Ok you can attend if you can finish the component on which you are working by Friday.&lt;br /&gt;&lt;br /&gt;Billu: But this is a big module and it’s very difficult to finish in such a short time.&lt;br /&gt;&lt;br /&gt;Shekhar (remains silent)&lt;br /&gt;&lt;br /&gt;Billu: Ok I work till late night and finish it by Friday.&lt;br /&gt;    &lt;br /&gt;                         &lt;br /&gt;                           &lt;span style="font-weight: bold;"&gt;ACT TWO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Billu works till late night for 2 days and finally is able to finish the module by Friday noon time. He now goes to update Shekhar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Billu (jubilantly): Shekhar I had finished the module and checked-in the code. Can I attend the training now?&lt;br /&gt;&lt;br /&gt;Shekhar (as usual annoyingly): See as you know economy is not doing well. Suri has lot of work. You can attend training if you can help him finish his work.&lt;br /&gt;&lt;br /&gt;Billu (bit depressed): Ok Shekhar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;ACT THREE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Billu goes to Suri’s cubicle to help him. As usual Suri is busy on Orkut checking out gals profiles.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Billu: Hi Suri. Shekhar has asked me to help you with your module.&lt;br /&gt;&lt;br /&gt;Suri: Thanks. Shekhar has given me the toughest module. I am struggling hard with it. I have been working till late nights for past 1 month.&lt;br /&gt;&lt;br /&gt;Billu: Ok tell me what all you have done&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;As expected Suri hasn’t done anything&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Billu (thinking): This stupid is full time busy on Orkut. I am screwed big time. Oh god my training??&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Billu now start helping Suri. Suri gets a call from Taani&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Suri: Hello Taaniji!! How are you?&lt;br /&gt;&lt;br /&gt;Taani (irritatingly): WTF! How many times do I need to tell you don’t call me “Taaniji”&lt;br /&gt;&lt;br /&gt;Suri: Oh sorry. Anyway tell me what happened?&lt;br /&gt;&lt;br /&gt;Taani: Just to remind you that tomorrow we are going to Goa so finish all your work today.&lt;br /&gt;&lt;br /&gt;Suri: Ok Taaniji!!&lt;br /&gt;&lt;br /&gt;Suri (to Billu): Hey Billu I am leaving now. I need to do packing as I am going to Goa tomorrow.&lt;br /&gt;&lt;br /&gt;Billu: WTF! How can you go to Goa? You haven’t done anything in your module.&lt;br /&gt;&lt;br /&gt;Suri: See I cannot work more than this. I had my personal life also.&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Suri leaves office and as usual our poor chap Billu works late night over the weekend and finishes Suri’s module .He attends the training on Monday, Tuesday. In the training he presents his POC’s to prof. The prof is excited to see the POC’s and asks Billu to file a patent.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;ACT FOUR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It’s Wednesday morning. Billu is very ecstatic over the idea of filing a patent. He reaches office.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Billu (to Shekhar): Good morning Shekhar. The training was very informative. Prof Kapoor was very impressed with my ideas and POC’s. He had asked me to file patent on it.&lt;br /&gt;&lt;br /&gt;Shekhar (remains silent)&lt;br /&gt;&lt;br /&gt;Billu: Shekhar is everything alright? You seems to be bit disturbed.&lt;br /&gt;&lt;br /&gt;Shekhar (looking straight at Billu): Well as you know the economy is not doing well. Over the weekend there has been a major restructuring in the organization, some of the projects are ramped down including ours. We had been asked to ‘rightsize’ the work force. We are decreasing the headcount in India operations.&lt;br /&gt;&lt;br /&gt;Billu (worried): Oh. Is anyone getting fired from our team also?&lt;br /&gt;&lt;br /&gt;Shekhar (in a serious tone): Well yes there is a structuring in our team also. Unfortunately you are in the list. I am sorry but there are few things which are not in my control.&lt;br /&gt;&lt;br /&gt;Billu (in alarming tone): Shekhar but I had always worked so hard and now I am on the verge of filing a patent. Why me?&lt;br /&gt;&lt;br /&gt;Shekhar (remains silent)&lt;br /&gt;&lt;br /&gt;Billu: What about suri? Is he also in list?&lt;br /&gt;&lt;br /&gt;Shekhar: Since our project is ramped down and there was an urgent requirement for a project in US hence suri will be flying in a week’s time. Anyway Billu here is the check of your severance package. You are relieved of all your duties from today onwards.&lt;br /&gt;&lt;br /&gt;Billu: Sir please help me. I had worked so hard for you.&lt;br /&gt;&lt;br /&gt;Shekhar: Sorry Billu it’s a decision taken by upper management.&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Billu takes the check and starts sobbing. Suri is in his cubicle and plays a song loudly as Billu leaves office “&lt;span style="font-weight: bold;"&gt;Hum honge kamayab, honge kamayab ek din…..&lt;/span&gt;&lt;/span&gt;”)&lt;br /&gt;&lt;br /&gt;So as we saw the poor chap just couldn’t understand that “Economy is not doing well” and ultimately lost his job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4744065232517777593?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4744065232517777593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4744065232517777593&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4744065232517777593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4744065232517777593'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/training.html' title='The Training'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4180193530157360719</id><published>2009-02-25T14:05:00.003+05:30</published><updated>2009-02-25T14:11:52.142+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcampbangalore8'/><title type='text'>Barcamp Bangalore 8</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SaUDBv2e_GI/AAAAAAAAAIw/b7k9NLWlVhM/s1600-h/bcblogo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 120px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SaUDBv2e_GI/AAAAAAAAAIw/b7k9NLWlVhM/s400/bcblogo.png" alt="" id="BLOGGER_PHOTO_ID_5306651064485739618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The 8th edition of &lt;a href="http://barcampbangalore.org/"&gt;Bangalore Barcamp&lt;/a&gt; will be on 7th and 8th March at Yahoo! I had never been to any of barcamp sessions but this time I am planning to go as its completely focus on &lt;span style="font-style: italic;"&gt;technology&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4180193530157360719?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4180193530157360719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4180193530157360719&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4180193530157360719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4180193530157360719'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/barcamp-bangalore-8.html' title='Barcamp Bangalore 8'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SaUDBv2e_GI/AAAAAAAAAIw/b7k9NLWlVhM/s72-c/bcblogo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8442628622392588015</id><published>2009-02-19T09:40:00.005+05:30</published><updated>2009-02-19T09:50:36.464+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo BOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='webthumb'/><title type='text'>WebApp for Identity search: first look</title><content type='html'>For past few days I was working on a Web Application for identity search from internet. The application returns details of a person like his educational background, professional experience, some of his URL’s like his blog, his company site etc. This is a Ruby on Rails based application and I am using &lt;a href="http://developer.yahoo.com/search/boss/"&gt;Yahoo BOSS API&lt;/a&gt; for doing internet search and a Web service called &lt;a href="http://webthumb.bluga.net/home"&gt;WebThumb&lt;/a&gt; for taking snapshots of websites.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you see in the below image the person enters his information like Name, organization and location.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SZzcdsTOqII/AAAAAAAAAIU/R0p0gBuz6EQ/s1600-h/Input+details.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SZzcdsTOqII/AAAAAAAAAIU/R0p0gBuz6EQ/s400/Input+details.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5304356863801731202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now I do processing of the details and display the information of the person. I am taking live snapshot of the websites. The first website below is my blog and other one is company site which is still getting loaded. The users can click on these images to go the website.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SZzcT0DSGGI/AAAAAAAAAIM/OXn0MODVQgo/s1600-h/Details+of+anuj.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SZzcT0DSGGI/AAAAAAAAAIM/OXn0MODVQgo/s400/Details+of+anuj.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5304356694083639394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first look is pretty bad as the GUI sucks. Hopefully soon I will be able to make GUI Rich and get more details of a person by covering more sites from internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8442628622392588015?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8442628622392588015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8442628622392588015&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8442628622392588015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8442628622392588015'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/webapp-for-identity-search-first-look.html' title='WebApp for Identity search: first look'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SZzcdsTOqII/AAAAAAAAAIU/R0p0gBuz6EQ/s72-c/Input+details.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2286893589574197382</id><published>2009-02-17T17:17:00.000+05:30</published><updated>2009-02-17T17:18:01.320+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Web 2.0 is Us/ing Us</title><content type='html'>This is a must watch for everyone&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6gmP4nk0EOE&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6gmP4nk0EOE&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2286893589574197382?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2286893589574197382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2286893589574197382&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2286893589574197382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2286893589574197382'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/web-20-is-using-us.html' title='Web 2.0 is Us/ing Us'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8411456417725542898</id><published>2009-02-17T17:10:00.001+05:30</published><updated>2009-02-17T17:11:21.490+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>History of the internet</title><content type='html'>A cool video explaining the history of internet in animated way&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9hIQjrMHTv4&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/9hIQjrMHTv4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8411456417725542898?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8411456417725542898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8411456417725542898&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8411456417725542898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8411456417725542898'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/history-of-internet.html' title='History of the internet'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7199690916371766996</id><published>2009-02-17T10:09:00.011+05:30</published><updated>2009-02-17T10:41:51.778+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='webthumb'/><title type='text'>Taking snapshot of a website</title><content type='html'>I came across a wonderful web-service called &lt;a href="http://webthumb.bluga.net/home"&gt;Webthumb&lt;/a&gt; for taking snapshot of a website. I created a small Ruby on Rails application for using it. It's a very simple API and my Web App was ready in 10 minutes.&lt;br /&gt;&lt;br /&gt;I will be showing here some code of controllers and views. For basics of creating a Ruby on Rails APP refer to my earlier post &lt;a href="http://anuj-mehta.blogspot.com/2009/01/ruby-on-rails-netbeans-creating-webapp.html"&gt;Ruby on Rails + Netbeans: creating a web App in 10 mins&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this APP I take name of a website from user and then I display it's snapshot.&lt;br /&gt;For initial setup refer to following &lt;a href="http://github.com/simplificator/rwebthumb/blob/master/README"&gt;Readme&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since I want to display the snapshot on my APP I will be using EasyThumb. Below is code of controller that receives the website name and send it EasyThumb. EasyThumb takes a snapshot of the requested website and returns the URL of the snapshot.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;def display_sanpshot&lt;br /&gt;   name = params[:website_name]&lt;br /&gt;   et = EasyThumb.new('YOUR_API_KEY', 'USER_ID')&lt;br /&gt;   @image_url = et.build_url(:url =&gt; name , :size =&gt; :large, :cache =&gt; 1)&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the above code image_url contains the URL of snapshot. Below is the View code where I display the snapshot&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;  &amp;lt;title&gt;web thumb&amp;lt;/title&gt;&lt;br /&gt;  &amp;lt;style type="text/css"&gt;&lt;br /&gt;.thumbnail {&lt;br /&gt; position: relative;&lt;br /&gt;}&lt;br /&gt;.thumbnailMessage {&lt;br /&gt; position: absolute;&lt;br /&gt; top: 0;&lt;br /&gt; left: 0;&lt;br /&gt; width: 200px;&lt;br /&gt; height: 200px;&lt;br /&gt; background: gray;&lt;br /&gt; text-align: center;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt; &amp;lt;div class="thumbnail"&gt;&lt;br /&gt;&amp;lt;img src = "&lt;%= @image_url %&gt;"&lt;br /&gt;title="Generated Thumbnail" width=200 height=200&lt;br /&gt;onload="document.getElementById('tmessage1').style.display = 'none'"&lt;br /&gt;&gt;&lt;br /&gt;&amp;lt;div class="thumbnailMessage" id="tmessage1"&gt;&lt;br /&gt;The image is being generated please wait&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7199690916371766996?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7199690916371766996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7199690916371766996&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7199690916371766996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7199690916371766996'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/taking-snapshot-of-website.html' title='Taking snapshot of a website'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-5988947454320696033</id><published>2009-02-16T09:59:00.003+05:30</published><updated>2009-02-16T10:05:36.970+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sapient'/><title type='text'>Sapient fires employees</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SZjr-sD_VVI/AAAAAAAAAIE/UXDOUBxX91A/s1600-h/sapient.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 159px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SZjr-sD_VVI/AAAAAAAAAIE/UXDOUBxX91A/s400/sapient.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5303248023441069394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sapient has fired more than 300 employees in India. Below is the link for the news item published in The Hindu. One thing that really amuses me is that you can see "&lt;span style="font-style:italic;"&gt;The human side&lt;/span&gt;" written on all the buses of Sapient that picks up the employees. Now where is the human side??&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hindu.com/2009/02/16/stories/2009021659840400.htm"&gt;Weekend is when the axe falls&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-5988947454320696033?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/5988947454320696033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=5988947454320696033&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5988947454320696033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/5988947454320696033'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/02/sapient-fires-employees.html' title='Sapient fires employees'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/SZjr-sD_VVI/AAAAAAAAAIE/UXDOUBxX91A/s72-c/sapient.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7223464797139340684</id><published>2009-01-23T17:00:00.003+05:30</published><updated>2009-01-23T17:15:44.812+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Invest in technology</title><content type='html'>Over the years one thing that has been very close to my heart is about learning, keep learning no matter how much you know or how old you are. In general majority of software engineers with whom I had interacted just focus on their project work, they have almost no interest in knowing more about any new technology be it new programming language, framework or others. People just don't invest in technology. In one of my personal favorite book "Pragmatic programmers- from journeyman to master" the authors discuss about investing in technology in a similar manner the way we invest in stocks.&lt;br /&gt;&lt;br /&gt;Recently I came across an interesting article in Javalobby by John on same topic. Here is the link to the article&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.dzone.com/articles/capital-investment-developers-"&gt;Capital Investment for Developers - Keep Yourself Marketable!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7223464797139340684?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7223464797139340684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7223464797139340684&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7223464797139340684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7223464797139340684'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/01/invest-in-technology.html' title='Invest in technology'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1037244765874946193</id><published>2009-01-22T10:52:00.002+05:30</published><updated>2009-01-22T10:55:22.071+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Robots in Firefox</title><content type='html'>Type &lt;span style="font-weight:bold;"&gt;about:robots&lt;/span&gt; as a URL in Firefox and see robots in Firefox&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SXgDFvoS0QI/AAAAAAAAAH8/5P-zeFBTNsA/s1600-h/robots.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SXgDFvoS0QI/AAAAAAAAAH8/5P-zeFBTNsA/s400/robots.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5293984759193719042" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1037244765874946193?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1037244765874946193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1037244765874946193&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1037244765874946193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1037244765874946193'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/01/robots-in-firefox.html' title='Robots in Firefox'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SXgDFvoS0QI/AAAAAAAAAH8/5P-zeFBTNsA/s72-c/robots.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7190457520341088556</id><published>2009-01-09T14:47:00.022+05:30</published><updated>2009-01-09T15:17:55.927+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Ruby on Rails + Netbeans: Creating a webapp in 10 mins</title><content type='html'>We will create a Ruby on Rails based simple web application which takes name of a person and greets him. Rails is ruby based framework for creating web applications. The framework is based on MVC (Model, View and Control) architecture. Model is the module that provides easy access of database; Controller has logic and data flow intelligence while the View displays data on browser. For this application we don’t need to store any data hence we will disable support for database access. For this example I am using Rails 2.1.2 and Netbeans 6.5. The application will finally look like this&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_21JGp-BS3SA/SWcaRSpnz5I/AAAAAAAAAHE/2L7njllj1Tk/s1600-h/image1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SWcaRSpnz5I/AAAAAAAAAHE/2L7njllj1Tk/s400/image1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289225171736448914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SWcaZicB7dI/AAAAAAAAAHM/LLZorGHbRQk/s1600-h/image2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SWcaZicB7dI/AAAAAAAAAHM/LLZorGHbRQk/s400/image2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289225313413361106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. In Netbeans click on File --&gt; New Project. In the New Project dialogue select Ruby as category and “Ruby on Rails Application” as projects. Then press Next&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SWcakn7PrjI/AAAAAAAAAHU/2jVW2YjjIbw/s1600-h/step1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SWcakn7PrjI/AAAAAAAAAHU/2jVW2YjjIbw/s400/step1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289225503865024050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. In the next dialogue set project name as &lt;span style="font-style: italic;"&gt;simple_web_application&lt;/span&gt;. Since we are not using database for this application press Finish.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SWcauja1iSI/AAAAAAAAAHc/9p5pfmeWCUs/s1600-h/step2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 237px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SWcauja1iSI/AAAAAAAAAHc/9p5pfmeWCUs/s400/step2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289225674454042914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Now Netbeans generates the project for you. Among the generated folders noteworthy are Controllers, Models and Views. You will see database.yml being opened in the editor. This file contains database related configuration parameters. Since in our application we are not using any database hence we don’t need to make any changes in this file. You can simple close this file.&lt;br /&gt;&lt;br /&gt;4. Now we will generate the controllers and view for this application. Right click on the project node simple_web_application and select Generate option.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_21JGp-BS3SA/SWca5fY6q4I/AAAAAAAAAHk/nSfYsA3yd9E/s1600-h/step3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SWca5fY6q4I/AAAAAAAAAHk/nSfYsA3yd9E/s400/step3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289225862350809986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Now you see the Rails generator dialogue. In the generator drop down list select &lt;span style="font-style: italic;"&gt;controller&lt;/span&gt; and specify names for controller and views. Here I had specified ‘main’ as controller and ‘page1’ as the view name. Press OK.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SWcbFZ6J4JI/AAAAAAAAAHs/QFtYCZHfTEg/s1600-h/step4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SWcbFZ6J4JI/AAAAAAAAAHs/QFtYCZHfTEg/s400/step4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289226067038036114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. The Rails generator quickly generates the controller and views classes for you. The main_controller.rb is the controller class and page1.html.erb is view class. In view class we can put data in HMTL or RTHML format. The RHTML is the ruby HTML format. Following are things of importance for RHTML&lt;br /&gt;   • The ruby statements (code to be executed, but not included in HTML page) are  enclosed in &lt;% %&gt;&lt;br /&gt;   • Ruby values to be included in the resultant HTML are enclosed in &lt;%= %&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the views we will create a form and add a text filed and submit button.&lt;br /&gt;Add the following code in view class page1.html.erb&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;    &lt;% form_tag(:action =&gt; 'display_name', :controller =&gt; 'main') do-%&gt;&lt;br /&gt;    &lt;%= label_tag 'name','Name' %&gt;&lt;br /&gt;    &lt;%= text_field_tag :first_name, params[:first_name] %&gt;&lt;br /&gt;    &lt;p&gt;&lt;%= submit_tag "Submit"%&gt;&lt;/p&gt;&lt;br /&gt;    &lt;%end-%&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now we need to define the methods in controller. Put following code in main_controller.rb&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;class MainController &lt; ApplicationController&lt;br /&gt;  def page1&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def display_name&lt;br /&gt;    @name = params[:first_name]&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here we had defined an additional method “display_name” which will retrieve the name from text field and send it to second page which will greet the user.&lt;br /&gt;&lt;br /&gt;7. We now need create one more view which greets the user. Right click on the sub tree node main in Views folder and select ERB file&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SWcZ-REhAsI/AAAAAAAAAG8/6XCgDJqCq5A/s1600-h/step5.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SWcZ-REhAsI/AAAAAAAAAG8/6XCgDJqCq5A/s400/step5.JPG" alt="" id="BLOGGER_PHOTO_ID_5289224844894864066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8. Give the file name as &lt;span style="font-style:italic;"&gt;display_name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_21JGp-BS3SA/SWccIXEpqOI/AAAAAAAAAH0/73jx7weuCI4/s1600-h/step6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SWccIXEpqOI/AAAAAAAAAH0/73jx7weuCI4/s400/step6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289227217327991010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now add following code in display_name.erb file&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;  Hello &lt;%= @name %&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We also need to set the routes. Copy following code in /config/routes.rb file&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;ActionController::Routing::Routes.draw do |map|&lt;br /&gt;  # The priority is based upon order of creation: first created -&gt; highest priority.&lt;br /&gt;&lt;br /&gt;  # Sample of regular route:&lt;br /&gt;  #   map.connect 'products/:id', :controller =&gt; 'catalog', :action =&gt; 'view'&lt;br /&gt;  # Keep in mind you can assign values other than :controller and :action&lt;br /&gt;&lt;br /&gt;  # Sample of named route:&lt;br /&gt;  #   map.purchase 'products/:id/purchase', :controller =&gt; 'catalog', :action =&gt; 'purchase'&lt;br /&gt;  # This route can be invoked with purchase_url(:id =&gt; product.id)&lt;br /&gt;&lt;br /&gt;  # Sample resource route (maps HTTP verbs to controller actions automatically):&lt;br /&gt;  #   map.resources :products&lt;br /&gt;&lt;br /&gt;  # Sample resource route with options:&lt;br /&gt;  #   map.resources :products, :member =&gt; { :short =&gt; :get, :toggle =&gt; :post }, :collection =&gt; { :sold =&gt; :get }&lt;br /&gt;&lt;br /&gt;  # Sample resource route with sub-resources:&lt;br /&gt;  #   map.resources :products, :has_many =&gt; [ :comments, :sales ], :has_one =&gt; :seller&lt;br /&gt;  &lt;br /&gt;  # Sample resource route with more complex sub-resources&lt;br /&gt;  #   map.resources :products do |products|&lt;br /&gt;  #     products.resources :comments&lt;br /&gt;  #     products.resources :sales, :collection =&gt; { :recent =&gt; :get }&lt;br /&gt;  #   end&lt;br /&gt;&lt;br /&gt;  # Sample resource route within a namespace:&lt;br /&gt;  #   map.namespace :admin do |admin|&lt;br /&gt;  #     # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)&lt;br /&gt;  #     admin.resources :products&lt;br /&gt;  #   end&lt;br /&gt;&lt;br /&gt;  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.&lt;br /&gt;   map.root :controller =&gt; "main", :action =&gt; 'page1'&lt;br /&gt;&lt;br /&gt;   map.conect '/main/display_name',:controller =&gt; 'main', :action =&gt; 'display_name'&lt;br /&gt;  # See how all your routes lay out with "rake routes"&lt;br /&gt;&lt;br /&gt;  # Install the default routes as the lowest priority.&lt;br /&gt;  # Note: These default routes make all actions in every controller accessible via GET requests. You should&lt;br /&gt;  # consider removing the them or commenting them out if you're using named routes and resources.&lt;br /&gt;  #map.connect ':controller/:action/:id'&lt;br /&gt;  #map.connect ':controller/:action/:id.:format'&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;9. Delete the index.html file from /public folder. And the application is ready. Just Run it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7190457520341088556?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7190457520341088556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7190457520341088556&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7190457520341088556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7190457520341088556'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/01/ruby-on-rails-netbeans-creating-webapp.html' title='Ruby on Rails + Netbeans: Creating a webapp in 10 mins'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SWcaRSpnz5I/AAAAAAAAAHE/2L7njllj1Tk/s72-c/image1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8858184148264447025</id><published>2009-01-05T13:35:00.003+05:30</published><updated>2009-01-05T13:38:43.636+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rails: disabling database access for rails app's</title><content type='html'>Rails is ruby based framework for creating web applications. The framework is based on MVC (Model, View and Control) architecture. Model is the module that provides easy access of database; Controller has logic and data flow intelligence while the View displays data on browser. While most of the applications are backed by database but there are scenarios where applications don’t need database for persisting data. For those applications we need to disable ActiveRecord. ActiveRecord is the class which accesses database. Below defined steps were performed on Rails 2.1.2&lt;br /&gt;&lt;br /&gt;1. Add following line in environment.rb located in /config directory&lt;br /&gt;        &lt;pre name= "code" class="ruby"&gt;  &lt;br /&gt;        config.frameworks -= [ :active_record ]&lt;br /&gt;        &lt;/pre&gt;&lt;br /&gt;   This line should come after following line&lt;br /&gt;        &lt;pre name= "code" class="ruby"&gt;   &lt;br /&gt;         Rails::Initializer.run do |config|&lt;br /&gt;        &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. Comment all the lines starting with ActiveRecord::Base in /config/initializers/new_rails_defaults.rb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8858184148264447025?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8858184148264447025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8858184148264447025&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8858184148264447025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8858184148264447025'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2009/01/rails-disabling-database-access-for.html' title='Rails: disabling database access for rails app&apos;s'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4263292290746020960</id><published>2008-12-31T17:45:00.004+05:30</published><updated>2009-01-01T09:32:15.166+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>2008 - a satisfying year</title><content type='html'>I am not one of those who is easily satisfied with oneself, I expect a lot from myself (unfortunately I am never able to achieve even half of my goals). But I was really satisfied indeed happy with the way things went on this year. In the February I came with a good idea and I implemented a Proof-Of-Concept for the same, it was a simple idea but good enough to draw attention of my seniors. I was just on the verge of filing a patent on this but stopped at the last moment when I came across a very similar patent filed by CISCO guys in 2007, our theory was same even though my implementation is was completely different and much better (this is obvious) than theirs. Also this year finally I got some appreciation of my work (this happened for the first time in past 3.5 years:) ).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4263292290746020960?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4263292290746020960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4263292290746020960&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4263292290746020960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4263292290746020960'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/2008-satisfying-year.html' title='2008 - a satisfying year'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3823563565326857133</id><published>2008-12-30T18:49:00.001+05:30</published><updated>2008-12-30T18:51:08.420+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><title type='text'>The Ghajini Effect</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_21JGp-BS3SA/SVogL0z_RVI/AAAAAAAAAF8/XP4H6h90vBg/s1600-h/image001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 284px; height: 320px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SVogL0z_RVI/AAAAAAAAAF8/XP4H6h90vBg/s320/image001.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5285572500200047954" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3823563565326857133?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3823563565326857133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3823563565326857133&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3823563565326857133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3823563565326857133'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/ghajini-effect.html' title='The Ghajini Effect'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SVogL0z_RVI/AAAAAAAAAF8/XP4H6h90vBg/s72-c/image001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7340898141062803679</id><published>2008-12-30T10:06:00.002+05:30</published><updated>2008-12-30T10:09:57.930+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><title type='text'>Rab ne bana di jodi</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/SVmlicSBtJI/AAAAAAAAAF0/oveJH-d4-ws/s1600-h/try.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5285437648821925010" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 118px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SVmlicSBtJI/AAAAAAAAAF0/oveJH-d4-ws/s320/try.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This one is complete entertainer. If you feel exhaustive for past few weeks maybe due to your work, or due to some emotional or personal reasons or whatever, here is the movie for you. Plot of the movie is nothing great as usual under some dramatic conditions (which we had already seen thousand of times earlier in Bollywood movies) a young charismatic girl Taani(Anushka Sharma) marries a bit old, stupid and boring guy Surinder (Shah Rukh Khan). As expected the girl is unhappy with the guy, one day she saw there is a training camp for dance which will be followed by a dance competition and the winner will be declared as Dancing Jodi. She joins that training camp and meets a guy (this guy is his husband but he changes his outfit and appearance so as to look young and make the gal happy) with whom she falls in love and finally they won the competition and become the dance Jodi.&lt;br /&gt;The story is nothing great but it’s all SRK show. The maestro does it once again. The way he acts as a simple stupid person is awe-inspiring. His acting is impeccable filled with sublime emotion. I really admire his dedication towards his work.&lt;br /&gt;&lt;br /&gt;Anushka is gorgeous. This was her first movie but she has certainly stolen my heart. Just like SRK in the film I will also repeat the same dialogue “&lt;em&gt;Kal maine usse pahli baar dekha aur usse dekhte hi love ho gaya&lt;/em&gt;”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7340898141062803679?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7340898141062803679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7340898141062803679&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7340898141062803679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7340898141062803679'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/rab-ne-bana-di-jodi.html' title='Rab ne bana di jodi'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SVmlicSBtJI/AAAAAAAAAF0/oveJH-d4-ws/s72-c/try.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2093706787237158036</id><published>2008-12-26T10:02:00.002+05:30</published><updated>2008-12-26T10:12:23.334+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Quotes of year</title><content type='html'>Two quotes which really inspired me&lt;br /&gt;&lt;br /&gt;1. This is by &lt;a href="http://www.catb.org/~esr/" rel ="muse"&gt;Eric S Raymond&lt;/a&gt; from his famous essay &lt;a href="http://www.catb.org/~esr/faqs/hacker-howto.html"&gt;How to become a hacker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;    To follow the path:&lt;br /&gt;    look to the master,&lt;br /&gt;    follow the master,&lt;br /&gt;    walk with the master,&lt;br /&gt;    see through the master,&lt;br /&gt;    become the master.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;2. This one by Swami Vivekananda &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Physical weakness is the cause of at least one-third of our miseries..First of all our young men must be strong. Religion will come afterwards...Be strong, my young friends, that is my advice to you. You will be nearer to heaven through football than through the study of the Gita..You will understand the Gita better with your biceps, your muscles, a little stronger. You will understand the mighty genius and the mighty strength of Krishna better with a little strong blood in you. You will understand the Upanishads better and the glory of the Atman, when your body stands firm on your feet and you feel yourselves as men.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2093706787237158036?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2093706787237158036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2093706787237158036&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2093706787237158036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2093706787237158036'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/quotes-of-year.html' title='Quotes of year'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2851748913765768859</id><published>2008-12-17T15:40:00.005+05:30</published><updated>2008-12-17T15:48:28.728+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='bojug'/><title type='text'>Bangalore Open Java Users Group (BOJUG)</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/SUjQVAww0aI/AAAAAAAAAFs/Yw52ZjA6tbw/s1600-h/bojug_03.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5280699622492262818" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 185px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SUjQVAww0aI/AAAAAAAAAFs/Yw52ZjA6tbw/s320/bojug_03.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BOJUG is Banglore’s Java Users Group. The purpose of this group is to share ideas, discuss java related technologies. The groups has members from most of the software companies in bangalore noteworthy are ThoughWorks, Cisco, Sun Microsystems and others.&lt;br /&gt;&lt;br /&gt;The group meets once in a month and there are presentations by group members on various topics. Also somtimes there are presentation’s by some companies who want to spread awareness of there products and the new technologies in which they are working, recently there was a presentation by folks from &lt;a href="http://www.terracotta.org/"&gt;Terracotta&lt;/a&gt; on clustered JVM. In coming weeks there will a presentation on JBoss by RedHat folks also.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://bojug.dev.java.net/"&gt;BOJUG Home&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;BOJUG mailing list where you ask queries and see anouncement of topics and venue for coming meets: &lt;a href="http://groups.google.com/group/bojug"&gt;BOJUG mailing list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Feel free to ask me if you need any more info about this group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2851748913765768859?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2851748913765768859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2851748913765768859&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2851748913765768859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2851748913765768859'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/bangalore-open-java-users-group-bojug.html' title='Bangalore Open Java Users Group (BOJUG)'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SUjQVAww0aI/AAAAAAAAAFs/Yw52ZjA6tbw/s72-c/bojug_03.gif' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4527115816915897607</id><published>2008-12-16T10:38:00.004+05:30</published><updated>2008-12-16T10:44:09.017+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>The Pragmatic Programmer: from journeyman to master</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/SUc4DEzchvI/AAAAAAAAAFc/JEZIvhqFMLc/s1600-h/cover-PragmaticProg.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 320px;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SUc4DEzchvI/AAAAAAAAAFc/JEZIvhqFMLc/s320/cover-PragmaticProg.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5280250713595479794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wow what a book!! For those who are looking for enligthment here is the book. A must read book for all the programmers. This book discusses the practical aspects that need to be taken care, what to do and what not to do, and finally how to become Pragmatic Programmer. Here are some snippets from this book which I like&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;Broken Window Policy&lt;/strong&gt;: Don’t leave “broken windows” (bad designs, wrong decisions or poor code). Fix them as soon as possible. If there are time constraints then “go on top of things” by adding suitable comments with the offending code or a reminder like //TODO&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;Invest in technology&lt;/strong&gt;: Manage your knowledge portfolio intelligently&lt;br /&gt;    • Invest regularly&lt;br /&gt;    • Diversify As a baseline you need to know the inns and outs of the technology u are working in, but don’t stop there. Learn different technologies.&lt;br /&gt;    • Buy low, sell high Learn an emerging technology before it becomes popular.&lt;br /&gt;    • Review and rebalance your portfolio&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;DRY Principle&lt;/strong&gt;: DRY (Don’t Repeat Yourself) every piece of knowledge must have a single, unambiguous, authentic representation with a system.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;Orthogonality&lt;/strong&gt;: Decoupling or independence of modules in a system.&lt;br /&gt;&lt;br /&gt;5. &lt;strong&gt;Design by Contract&lt;/strong&gt;: Developed by Bertrand Meyer. It focuses on documenting (and agreeing to) the rights and responsibilities of software modules to ensure program correctness.&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;Decoupling and Law of Demeter&lt;/strong&gt;: The law of Demeter for functions attempts to minimize coupling between the modules in any given program. It tries to prevent you from reaching into an object to gain access to a third object’s methods. See the figure below for details&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/SUc4Lmm5M9I/AAAAAAAAAFk/tIqjCGMUlCo/s1600-h/clip_image002.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 225px;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SUc4Lmm5M9I/AAAAAAAAAFk/tIqjCGMUlCo/s320/clip_image002.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5280250860108592082" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4527115816915897607?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4527115816915897607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4527115816915897607&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4527115816915897607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4527115816915897607'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/pragmatic-programmer-from-journeyman-to.html' title='The Pragmatic Programmer: from journeyman to master'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SUc4DEzchvI/AAAAAAAAAFc/JEZIvhqFMLc/s72-c/cover-PragmaticProg.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3194928871915727037</id><published>2008-12-08T10:37:00.006+05:30</published><updated>2008-12-09T16:54:26.452+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>this pointer not available in this() and super()</title><content type='html'>Very often I have seen code in my projects something similar to this&lt;br /&gt;&lt;br /&gt;&lt;pre class="java" name="code"&gt;&lt;br /&gt;public class Construct&lt;br /&gt;{&lt;br /&gt;Construct(String name)&lt;br /&gt;{&lt;br /&gt;System.out.println("Hello " + name);&lt;br /&gt;String message = "How r u?";&lt;br /&gt;displayMessage(message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Construct(String name, String message)&lt;br /&gt;{&lt;br /&gt;System.out.print("Hello " + name + " " + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void displayMessage(String message)&lt;br /&gt;{&lt;br /&gt;System.out.print(message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Construct obj = new Construct("Anuj");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In this class there is unnecessary code duplication. In the first constructor we display same message for all the names while in second constructor we can specify custom messages. To avoid the code duplication I called this() in case of first constructor&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class Construct&lt;br /&gt;{&lt;br /&gt;Construct(String name)&lt;br /&gt;{&lt;br /&gt;this(name, new String("How r u?"));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Construct(String name, String message)&lt;br /&gt;{&lt;br /&gt;System.out.print("Hello " + name + " " + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Construct obj = new Construct("Anuj");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This code seems fine in this case but when the message that we pass from first constructor is bit lengthy then the code will be bit cluttered. So I thought why not create a private method getMessage() to do the same thing and called this method from first constructor&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class Construct&lt;br /&gt;{&lt;br /&gt;Construct(String name)&lt;br /&gt;{&lt;br /&gt;this(name, getMessage());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Construct(String name, String message)&lt;br /&gt;{&lt;br /&gt;System.out.print("Hello " + name + " " + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private String getMessage()&lt;br /&gt;{&lt;br /&gt;return new String("How r u?");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Construct obj = new Construct("Anuj");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;But to my dismay my IDE started giving me error “cannot reference this supertype constructor has been called”. This means the this pointer is not available at the time of calling this() and super() and I need to create static method instead. This is so because in this() method the method call getMessage() is equivalent to this.getMessage(). So I changed method to static and it worked fine.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class Construct&lt;br /&gt;{&lt;br /&gt;Construct(String name)&lt;br /&gt;{&lt;br /&gt;this(name, getMessage());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Construct(String name, String message)&lt;br /&gt;{&lt;br /&gt;System.out.print("Hello " + name + " " + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static String getMessage()&lt;br /&gt;{&lt;br /&gt;return new String("How r u?");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Construct obj = new Construct("Anuj");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3194928871915727037?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3194928871915727037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3194928871915727037&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3194928871915727037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3194928871915727037'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/very-often-i-have-seen-code-in-my.html' title='this pointer not available in this() and super()'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-1162432593933386442</id><published>2008-12-02T09:56:00.003+05:30</published><updated>2008-12-02T10:07:30.644+05:30</updated><title type='text'>Sky is happy</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/STS5JX43LzI/AAAAAAAAAFU/xxawbizD6rg/s1600-h/Moon-Dec1st2008.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5275044634240167730" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 294px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/STS5JX43LzI/AAAAAAAAAFU/xxawbizD6rg/s320/Moon-Dec1st2008.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yesterday in the evening while coming back from office I looked at sky and it seems strange to me. Sky is smiling, what an amazing view. For the first I felt sad that my mobile don't have a camera I don't want to miss this view. Later today I came to know that Venus and Jupiter has alligned themselves with moon.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hindu.com/2008/12/02/stories/2008120259360400.htm"&gt;Celestial smile lights up the night sky &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-1162432593933386442?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/1162432593933386442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=1162432593933386442&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1162432593933386442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/1162432593933386442'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/12/sky-is-happy.html' title='Sky is happy'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/STS5JX43LzI/AAAAAAAAAFU/xxawbizD6rg/s72-c/Moon-Dec1st2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4508123861601114923</id><published>2008-11-21T16:37:00.002+05:30</published><updated>2008-11-21T16:46:06.679+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Mail from god</title><content type='html'>Just came across an old mail from God aka &lt;a href="http://www.research.att.com/~bs/"&gt;Bjarne Stroustrup&lt;/a&gt;. I was ecstatic when I received a mail from him as I never expected a reply for such a naive query. Below is the mail&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;From: Bjarne Stroustrup [mailto:bs@cs.tamu.edu]&lt;br /&gt;Sent: Saturday, August 18, 2007 7:12 AM&lt;br /&gt;To: Anuj Mehta&lt;br /&gt;Subject: Re: Deletion of a Pointer Twice&lt;/strong&gt;&lt;br /&gt;Bjarne Stroustrup wrote:&lt;br /&gt;&gt; From: "Anuj Mehta" &lt;mehta.anuj@wipro.com&gt;&lt;br /&gt;&gt; To: &lt;bs@research.att.com&gt;&lt;br /&gt;&gt; Subject: Deletion of a Pointer Twice&lt;br /&gt;&gt; Date: Thu, 21 Jun 2007 09:17:06 +0530&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt; Hi&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt; In my project I am getting a runtime error which is due to deletion of a&lt;br /&gt;&gt; pointer twice.&lt;br /&gt;&gt;&lt;br /&gt;&gt; Code size of the project is really huge.&lt;br /&gt;&gt;&lt;br /&gt;&gt; Also the stack trace does not point towards a particular pointer so that I&lt;br /&gt;&gt; can make it NULL after deletion.&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt; I tried to put a try/catch but the control does not come to catch block. I&lt;br /&gt;&gt; had tried catch (std::exception &amp;amp; excep)&lt;br /&gt;&gt;&lt;br /&gt;&gt; Can u please suggest me a way through which I can solve this problem?&lt;br /&gt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Don't delete a pointer twice.&lt;br /&gt;&lt;br /&gt;I don't see any alternative to tracking down that bug. It is serious and&lt;br /&gt;could easily be the indicator of some serious problems with resource&lt;br /&gt;management. Try using a leak detector; sometimes they can catch double&lt;br /&gt;deletions.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt;&lt;br /&gt;&gt; Regards,&lt;br /&gt;&gt;&lt;br /&gt;&gt; Anuj Mehta&lt;br /&gt;&gt;&lt;br /&gt;&gt; "Nothing endures but change"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4508123861601114923?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4508123861601114923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4508123861601114923&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4508123861601114923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4508123861601114923'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/11/mail-from-god.html' title='Mail from god'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7923977478140432359</id><published>2008-11-19T10:18:00.003+05:30</published><updated>2008-11-19T11:00:41.972+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>There is a way to be good again</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/SSOkQiQH9xI/AAAAAAAAAFM/i1aL-aDVSuk/s1600-h/kite+runner.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 206px; height: 320px;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SSOkQiQH9xI/AAAAAAAAAFM/i1aL-aDVSuk/s320/kite+runner.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5270236592932910866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Past 3 days were very emotional for me as&lt;br /&gt;&lt;br /&gt;1. I was reading "Kite Runner" by Khalid Hosseini.&lt;br /&gt;2. Yet another BAD appraisal.&lt;br /&gt;&lt;br /&gt;I am used to such appraisal's hence I stopped worrying about. But I am still worrying about Hasan and Amir, on whom the "Kite Runner" is based. Phew what a book, it's one of those rare books that touches your soul and leaves a long lasting imprint on your mind. It's an emotional story of two friends (Amir and Hasan) based in Afghanistan, they grow up together and later due to some circumstances their lives takes different path. There is war on Afghanistan and Amir settles in America while Hasan stays in Afghanistan. During their childhood days Amir did some mistakes because of which Hasan suffers, but later he gets a way to be good again. Thus the central theme of this book "There is a way to be good again".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: Yesterday a friend of mine Rohit told me that he can't write comments on my blog as I blocked anonymous people for writing comments. I was really glad that some people are reading my blog. I will remove the restrictions and please do write your valuable comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7923977478140432359?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7923977478140432359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7923977478140432359&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7923977478140432359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7923977478140432359'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/11/there-is-way-to-be-good-again.html' title='There is a way to be good again'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/SSOkQiQH9xI/AAAAAAAAAFM/i1aL-aDVSuk/s72-c/kite+runner.bmp' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-2308211515438264567</id><published>2008-11-10T10:28:00.002+05:30</published><updated>2008-11-10T10:34:06.512+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Quotes on programmers</title><content type='html'>A good programmer is someone who always looks both ways before crossing a one-way street.  &lt;strong&gt;~Doug Linder&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If debugging is the process of removing bugs, then programming must be the process of putting them in.  &lt;strong&gt;~Author Unknown&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Everyone knows that debugging is twice as hard as writing a program in the first place.  So if you are as clever as you can be when you write it, how will you ever debug it?  &lt;strong&gt;~Brian Kernighan&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.  &lt;strong&gt;~Martin Golding&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Any fool can write code that a computer can understand.  Good programmers write code that humans can understand.  &lt;strong&gt;~Martin Fowler&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Beta.  Software undergoes beta testing shortly before it’s released.  Beta is Latin for “still doesn’t work.”  &lt;strong&gt;~Author Unknown&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Controlling complexity is the essence of computer programming.  &lt;strong&gt;~Brian Kernighan&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Good code is its own best documentation.  As you’re about to add a comment, ask yourself, “How can I improve the code so that this comment isn’t needed?”  &lt;strong&gt;~Steve McConnell&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Programming is similar to a game of golf.  The point is not getting the ball in the hole but how many strokes it takes.  &lt;strong&gt;~Harlan Mills&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When debugging, novices insert corrective code; experts remove defective code.  &lt;strong&gt;~Richard Pattis&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-2308211515438264567?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/2308211515438264567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=2308211515438264567&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2308211515438264567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/2308211515438264567'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/11/quotes-on-programmers.html' title='Quotes on programmers'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8740767658400871988</id><published>2008-11-06T16:33:00.002+05:30</published><updated>2008-11-06T16:36:19.109+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>@Override</title><content type='html'>A nice article by Peter on the very confusing topic of @Override annotation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.sun.com/ahe/entry/override"&gt;@Override&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8740767658400871988?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8740767658400871988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8740767658400871988&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8740767658400871988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8740767658400871988'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/11/override.html' title='@Override'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7661791624452794270</id><published>2008-10-16T12:02:00.005+05:30</published><updated>2008-11-03T17:14:30.726+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Few tips/lessons for a software engineer</title><content type='html'>I am working as a software engineer for more than 3 years now. In my limited experience I had worked on 4 projects, started with System Testing, contributed to maintenance of a project and finally did proper development work. In these years I came across numerous 'so-called' software engineers and bloody managers. Here are some tips/lessons for other software engineers from my experience&lt;br /&gt;&lt;br /&gt;1. All managers have one thing in common; they all are bastards. Don't ever beleive them.&lt;br /&gt;2. Focus on your work and learning rather than how much money you are making, your progressions. The real satisfaction that you get when you develop an ultimate peice of software OR when you solve a very difficult problem in much more than earning lacs of rupees.&lt;br /&gt;3. Avoid spoonfeeding. Struggle as much as you can but try to solve by yourself. Start this process today otherwise it will be very late for you. In my project once a guy with 10 year experience asked me "Hey I am getting NullPointerException. What should I do?"...I replied "Commit Suicide!!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7661791624452794270?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7661791624452794270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7661791624452794270&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7661791624452794270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7661791624452794270'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/10/few-tipslessons-for-software-engineer.html' title='Few tips/lessons for a software engineer'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7381602363992901217</id><published>2008-10-16T11:51:00.001+05:30</published><updated>2008-10-16T11:56:21.738+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Books and Reading..</title><content type='html'>A really nice video of hardly 1 minute. Hopefully one day I will also write like this&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QDNm4y7_2Xw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/QDNm4y7_2Xw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7381602363992901217?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7381602363992901217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7381602363992901217&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7381602363992901217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7381602363992901217'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/10/books-and-reading.html' title='Books and Reading..'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4771914208449112589</id><published>2008-10-07T19:32:00.004+05:30</published><updated>2008-10-08T13:39:06.267+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Building GlassFish v3 using SVN</title><content type='html'>Steps for building Glassfish v3 using SVN&lt;br /&gt;&lt;br /&gt;• First things first!! You need internet connectivity for building it at least first time as maven will download lots of jars. Also uninstall Java 6 from your system. Java 6 won’t create any problem during building but you will get exception when you try to run glassfish server.&lt;br /&gt;&lt;br /&gt;• Download the latest binary of SVN from &lt;a href="http://www.collab.net/downloads/subversion/"&gt;Collabnet Subversion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;• Download latest binary of Maven from &lt;a href="http://maven.apache.org/download.html"&gt;Download Maven&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;• Checkout the latest copy of glassfish v3 branch&lt;br /&gt;&lt;em&gt;svn checkout https://glassfish-svn.dev.java.net/svn/glassfish-svn/trunk/v3 \ glassfish-v3-branch --username JAVA_NET_USERNAME&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;• Increase the JVM size otherwise the build will fail with errors like OutofMemory&lt;br /&gt;&lt;em&gt;set maven_opts=-Xmx512m &lt;/em&gt;(Windows)&lt;br /&gt;Incase u still get errors increase this value&lt;br /&gt;&lt;br /&gt;• Now execute following. Here we are skipping the tests as some of the tests fail&lt;br /&gt;&lt;em&gt;mvn install -Dmaven.test.skip=true&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;• Once build is successful a zip file with following name “glassfish-10.0-SNAPSHOT.zip” will be created in ${branch-dir}\distributions\glassfish\target\&lt;br /&gt;&lt;br /&gt;• Unzip the file and it will create dir with name ‘glassfish’. Then execute following&lt;br /&gt;&lt;em&gt;java –jar glassfish\modules\glassfish.jar&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;And finally your glassfish server is up and running. Test it on browser &lt;br /&gt;http://localhost:8080/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/SOxqfaVxHHI/AAAAAAAAAEc/APV_6VfDsUI/s1600-h/glassfish.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SOxqfaVxHHI/AAAAAAAAAEc/APV_6VfDsUI/s320/glassfish.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5254691953113635954" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4771914208449112589?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4771914208449112589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4771914208449112589&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4771914208449112589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4771914208449112589'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/10/building-glassfish-v3-using-svn.html' title='Building GlassFish v3 using SVN'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/SOxqfaVxHHI/AAAAAAAAAEc/APV_6VfDsUI/s72-c/glassfish.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-831818843991361348</id><published>2008-10-07T09:52:00.004+05:30</published><updated>2008-10-16T11:56:42.594+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>My future</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/meojjJXcdNI&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/meojjJXcdNI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-831818843991361348?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/831818843991361348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=831818843991361348&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/831818843991361348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/831818843991361348'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/10/my-future.html' title='My future'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-15956712069337602</id><published>2008-10-04T16:28:00.015+05:30</published><updated>2008-10-16T12:26:49.085+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Books read in 2008...so far</title><content type='html'>In past 2 years I had adopted a good habit of reading books. Whenever I am free (which means neither I am working nor sleeping...as I spent most of my time in these 2 activities only) I just pick up a book and keep reading till I dose off. Last year I read 13 books and I was happy about it (as it was the only good thing that happened to me last year) &lt;a href="http://anuj-mehta.blogspot.com/2007/12/books-read-in-2007.html"&gt;Books read in 2007&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Last year I read only novels/non-technical books but this year for a change I started reading some technical books also. Here the list goes of the books that I have read in 2008 so far&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Technical Books&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.&lt;a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612"&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is one of the best book on design pattern. It is commonly referred as Design pattern book by &lt;em&gt;gang of four&lt;/em&gt;. It's an excellent book and must read for any developer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/SOdRBQdyFeI/AAAAAAAAAD0/8sez6P2dIBo/s1600-h/gang+of+four.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253256572392576482" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SOdRBQdyFeI/AAAAAAAAAD0/8sez6P2dIBo/s320/gang+of+four.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.amazon.com/Best-Software-Writing-Selected-Introduced/dp/1590595009"&gt;The Best Software Writing I: Selected and Introduced by Joel Spolsky &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A nice collection of software writings selected by Joel Spolsky&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"&gt;The Mythical Man-Month: Essays on Software Engineering&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is collection of essays on Software engineering. One of my personal favourite book. The author Frederick P Brooks wrote this book some 20-30 years back and discusses about his experiences in various projects in IBM mainly IBM Systems/360. This is a timeless book on Software engg and definitely a must read for any software professional.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/SOdUGcDxbmI/AAAAAAAAAD8/sFQ-q7nd4Yw/s1600-h/mythical.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253259959938936418" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SOdUGcDxbmI/AAAAAAAAAD8/sFQ-q7nd4Yw/s320/mythical.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.&lt;a href="http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601"&gt;Java Concurrency in Practice&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This book is completely dedicated to threads and family of things in Java. Its a heavy stuff for me hence in spite of my all efforts I couldn't read it completely.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apart from technical books I read a number of essay's. I will recommend following to sw professionals&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;The Cathedral and the Bazaar&lt;/strong&gt; By Eric S Raymond&lt;br /&gt;2. &lt;strong&gt;How to becomes a Hacker&lt;/strong&gt; By Eric S Raymond&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Non-Technical Books&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.amazon.com/Albert-Einstein-Biography-Greenwood-Biographies/dp/0313330808"&gt;Albert Einstein: A biography&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A nice book on Einstein. Einstein and Hilter both are from Germany. I had read biography of both the people. But I am more impressed by Hitler.The way he cunningly captured half of Europe was amazing. No doubt he was devil on earth but I really appreciate his shrewdness.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/SOdas7fyEjI/AAAAAAAAAEE/wCWpdV_2bVk/s1600-h/einstein.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253267218282713650" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_21JGp-BS3SA/SOdas7fyEjI/AAAAAAAAAEE/wCWpdV_2bVk/s320/einstein.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.amazon.com/Speeches-That-Changed-World-Transcripts/dp/1905204027"&gt;Speeches That Changed the World: The Stories and Transcripts of the Moments That Made History &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The book is simply awesome. Very nice collection of books except for last one which is George Bush address to nation after 9/11. Bush sucks!! He is root cause of all the evil that is happening in the world ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/SOdbwkB0QXI/AAAAAAAAAEM/vpRQrQ9Cdzg/s1600-h/speech.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253268380214116722" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_21JGp-BS3SA/SOdbwkB0QXI/AAAAAAAAAEM/vpRQrQ9Cdzg/s320/speech.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Plays by Chekhov : After a long time read I read plays. The plays are bit depressing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://www.amazon.com/Chancellor-Manuscript-Robert-Ludlum/dp/0553260944"&gt;The Chancellor Manuscript By Robert Ludlum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/SOdeDPbU6UI/AAAAAAAAAEU/V_nvUKagxfI/s1600-h/The_Little_Prince.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253270900124739906" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SOdeDPbU6UI/AAAAAAAAAEU/V_nvUKagxfI/s320/The_Little_Prince.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. &lt;a href="http://www.amazon.com/Little-Prince-Antoine-Saint-Exup%C3%A9ry/dp/0156012197"&gt;The Little Prince&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A book with hardly 80 pages but really nice.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. One night@ Call Center By Chetan Bhagat&lt;br /&gt;&lt;br /&gt;7. Doctors By Eric Segal&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-15956712069337602?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/15956712069337602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=15956712069337602&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/15956712069337602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/15956712069337602'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/10/books-read-in-2008so-far.html' title='Books read in 2008...so far'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_21JGp-BS3SA/SOdRBQdyFeI/AAAAAAAAAD0/8sez6P2dIBo/s72-c/gang+of+four.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4940192502073112953</id><published>2008-09-24T14:51:00.006+05:30</published><updated>2009-01-09T15:19:38.508+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>NetBeans sucks!!</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_21JGp-BS3SA/SNoL9ov_NdI/AAAAAAAAADs/l1Ky0Pzhv48/s1600-h/eclipse_logo.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_21JGp-BS3SA/SNoL9ov_NdI/AAAAAAAAADs/l1Ky0Pzhv48/s320/eclipse_logo.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5249521469192353234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Being a java developer I am big fan of Eclipse. Its really simple to use, there are lot of pluggins available though it hogs bit more memory. Last year Sun made lot of fuss about NetBeans as the "Best IDE of world", "The only IDE you need" and all crap marketing techniques. Hence I thought of evaluating it. Of all what I have explored things that i like is that it has integrated Database, Glassfish. Creating JavaEE applications is very easy and quick on NetBeans. I have never tried these on Eclipse but still I find Netbeans nice in these cases.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_21JGp-BS3SA/SNoG45tV9UI/AAAAAAAAADc/ntmyL2io5YA/s1600-h/netbeans6ns0.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249515890287179074" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_21JGp-BS3SA/SNoG45tV9UI/AAAAAAAAADc/ntmyL2io5YA/s320/netbeans6ns0.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But one thing which I hate in NetBeans is it hogs your system resources. It unnecessary steals lot of CPU cycles even for small tasks like whenever it pops up a file selector dialog and before you could select a file your system is hung. My laptop has 1 GB RAM and sometimes it becomes difficult for me to work on NetBeans even though it is the only application that I have opened. Hopefully things will improve in subsequent releases but right now it sucks!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4940192502073112953?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4940192502073112953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4940192502073112953&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4940192502073112953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4940192502073112953'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/09/netbeans-sucks.html' title='NetBeans sucks!!'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_21JGp-BS3SA/SNoL9ov_NdI/AAAAAAAAADs/l1Ky0Pzhv48/s72-c/eclipse_logo.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-860095543864130205</id><published>2008-09-18T16:28:00.003+05:30</published><updated>2008-09-18T16:36:14.336+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNMP'/><title type='text'>Simple? Network Management Protocol</title><content type='html'>Some six months back I started working on SNMP. I need to implement RFC 3165 i.e. the Disman Script MIB. I went through the RFC and gosh it all went over my head. It says something about SNMP, OID and all crap things which I had never heard off (truly speaking I did heard abt them in college but networking was the subject which I really used to hate as somehow I just got B grade in that subject).&lt;br /&gt;&lt;br /&gt;So I thought lets google it and then I found a really nice article on SNMP. I just read it once and within 2-3 days I was ready with RFC implementation. Here is the link to that article&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rane.com/note161.html"&gt;SNMP: Simple? Network Management Protocol&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-860095543864130205?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/860095543864130205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=860095543864130205&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/860095543864130205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/860095543864130205'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/09/simple-network-management-protocol.html' title='Simple? Network Management Protocol'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8219707521313540447</id><published>2008-08-23T12:03:00.006+05:30</published><updated>2008-09-18T16:37:41.462+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Frozen Thoughts- an awakening</title><content type='html'>Last week I was back in Wipro office after a gruelling month at HP. As usual I met all the faltu guys there and went to my favourite place in office...the wipro library I simply love it, the collection of books that I find there is amazing.&lt;br /&gt;There I picked up a Magazine "Frozen Thoughts" and boss it was love at first sight for me. What an amazing magazine. It's language is simple and the articles really touch your heart. It was really an awakening for me. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.frozenthoughts.com/"&gt;Frozen Thoughts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I am just waiting for my next visit to wipro so that I can read 5-6 more issues of Frozen thoughts&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8219707521313540447?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8219707521313540447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8219707521313540447&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8219707521313540447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8219707521313540447'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/08/frozen-thoughts-awakening.html' title='Frozen Thoughts- an awakening'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3767137884023086416</id><published>2008-06-25T09:59:00.002+05:30</published><updated>2009-01-09T15:21:00.888+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Is this teamwork??</title><content type='html'>According to Word web dictionary ‘teamwork’ is defined as “Cooperative work done by a team (especially when it is effective)”. Very true I really believe in team work. I think a team can do wonders. We should help others whenever required. India’s 2020 World Cup win was a fine example of great team work. But here I am not going to discuss advantages of teamwork; probably there are already millions of nice articles written on benefits of team work.&lt;br /&gt;&lt;br /&gt;In my three year stint in Wipro somehow I feel team work is commonly abused term. I have seen lot of deadwoods in the projects where I had worked. These people just can’t do any hard work; they will find all the reasons of not doing work. Finally due to project deliverables pressure the lead/manager of the team will call a meeting and ask someone who is technically good to help these guys. Hence this techie will be forced to spoon feed them or he may even end up doing their task just for the same of so called “team work”. Is this a team work?? Definitely not.&lt;br /&gt;&lt;br /&gt;So what’s the solution?? Even I am still finding it. Do let me know your views on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3767137884023086416?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3767137884023086416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3767137884023086416&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3767137884023086416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3767137884023086416'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/06/is-this-teamwork.html' title='Is this teamwork??'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-169768172099156056</id><published>2008-06-25T09:54:00.004+05:30</published><updated>2008-09-18T16:38:08.195+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Am i unlucky??</title><content type='html'>I thought of writing this article a month back but due to my laziness I keep procrastinate it. This article is about being lucky or unlucky. We always consider ourselves unlucky and blame our luck for all failures. But I think there is no bad luck or good luck, it’s your perseverance that matters.&lt;br /&gt;&lt;br /&gt;From my childhood I never got anything by luck, even for simple things I used to struggle. I used to toil for hours to achieve something which others can get with minimal effort. Sometimes I used to think &lt;br /&gt;“Dude, I am the most unlucky one. Will lady luck ever smile on me?? Probably never”&lt;br /&gt;&lt;br /&gt;But in spite of all this I never stopped working hard. My mantra was &lt;br /&gt;“Never, never say die”. &lt;br /&gt;No matter how many times I may fail I never stopped trying. I had failed so many times in my efforts that now it don’t even matter for me whether I succeed or failed. But last month it so happened that finally Lady Luck did smiled on me.&lt;br /&gt;&lt;br /&gt;It all started as a normal week for me. Monday, Tuesday went just like that, as usual I worked for long hours and reached home tired with pains in my eyes. On Wednesday for a change I came bit early from office and read an article in Opportunities magazine section of THE HINDU (It was for the first time that I read an article in Opportunities section as normally I used to look out for job opportunities only). Here is the link to article&lt;br /&gt;&lt;a href = "http://www.thehindujobs.com/0805/2008052150020100.htm"&gt;Perceive possibilities, turn them into opportunities Perceive possibilities... &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was a nice and inspiring article on turning possibilities into opportunities. I completely agree with the article “&lt;strong&gt;Lady Luck smiles only on those who do hard work&lt;/strong&gt;”. I was really impressed with the article. I was going a rough patch for past few years; in spite of all efforts I couldn’t do any great thing. I started thinking on finding “Opportunity in adversity”. Fortunately I got opportunity next day morning; in fact I got two great opportunities back to back (No it’s not related to any onsite opportunity…I don’t measure success with money). Same day in evening I got one more big success. I was on cloud nine. Same thing continue on Friday also and I became a hero overnight, I was ecstatic. My life was completely changed in just two days. Later that day I started thinking about things that had happened. Truly speaking I did nothing special in those days. Was I was simply lucky? I was but confused but was sure of one thing ‘behind all these my hard is the real reason’&lt;br /&gt;&lt;br /&gt;The lesson which I learnt from this episode was&lt;br /&gt;“No matter how many times you may fail, no matter what other people may think of yourself, never loose your self confidence. Keep faith in yourself, you are the &lt;br /&gt;best”. &lt;br /&gt;&lt;br /&gt;To end I would like to quote few lines from a poem of Emily Dickinson &lt;br /&gt; &lt;br /&gt;&lt;em&gt;Luck is not chance -- &lt;br /&gt;Luck is not chance --&lt;br /&gt;It's Toil --&lt;br /&gt;Fortune's expensive smile&lt;br /&gt;Is earned --&lt;br /&gt;The Father of the Mine&lt;br /&gt;Is that old-fashioned Coin&lt;br /&gt;We spurned --&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-169768172099156056?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/169768172099156056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=169768172099156056&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/169768172099156056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/169768172099156056'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/06/am-i-unlucky.html' title='Am i unlucky??'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3378938135448047015</id><published>2008-05-02T13:49:00.006+05:30</published><updated>2008-09-18T16:41:57.278+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Advice To Young Programmers</title><content type='html'>Today I read a very  nice article on "Advice to young programmers" by Alex Stepenov.&lt;br /&gt;Here it goes....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is the summary of speech given by Alex Stepenov (Principal Scientist, Adobe Systems) at Adobe India on 30 Nov 2004. (Sourced from http://lists.asiaosc.org/pipermail/dglug/2005-August/000321.html) &lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;Study, Study and Study &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Never ever think that you have acquired all or most of the knowledge which exists in the world. Almost everybody in US at age of 14 and everybody in India at age of 24 starts thinking that he has acquired all the wisdom and knowledge that he needs. This should be strictly avoided. You should be habituated to studies. Exactly in the same way as you are habituated to brushing teeth and taking bath every morning. The habit of study must become a part of your blood. And the study should be from both the areas: CS, since it is your profession, and something from non-CS...Something which does not relate to your work. This would expand your knowledge in other field too. A regular study, everyday, is extremely essential. It does not matter whether you study of 20 minutes of 2 hours, but consistency is a must.&lt;br /&gt;&lt;br /&gt;You should always study basics and fundamentals. There is no point in going for advanced topics. When I was at the age of 24, I wanted to do PhD in program verification, though I was not able to understand anything from that. The basic reason was that my fundamental concepts were not clear. Studying Algebraic Geometry is useless if you do not understand basics in Algebra and Geometry. Also, you should always go back and re-read and re-iterate over the fundamental concepts. What is the exact definition of `fundamental'? The stuff which is around for a while and which forms basic part of the concepts can be regarded as more fundamental. Of course, everybody understands what a fundamental means.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are few books which I would strongly recommend that every CS professional should read and understand. &lt;br /&gt;Structure and Interpretation of Computer Programs by Albenson and Sussman. I personally do not like the material present in this book and I do have some objections about it but this is the best book I have ever seen which explains all the concepts in programming in a clear and excellent way. This book is available online at "http://mitpress.mit.edu/sicp/". &lt;br /&gt;&lt;br /&gt;Introduction to Computer Architecture by Hennessy and Patterson. How many of you have shipped the programs by writing them in assembly? A very good understanding of basics of how a computer operates is what every CS professional must have. H&amp;P Wrote two books on CA. I am talking about their first book, the introductory text for understanding basic aspects of how a computer works. Even if you feel that you know whatever is written in that book, do not stop reading. It's good to revise basics again and again. &lt;br /&gt;&lt;br /&gt;A fundamental of Programming by Donald Knuth the core of CS is algorithms and Data structures. Every CS professional must have the 3 volumes of Knuth's Book on programming. It really does not matter if you take 30 years of your life to understand what Knuth has written, what is more important is that you read at least some part of that book everyday without fail. &lt;br /&gt;&lt;br /&gt;Introduction to Algorithms by Cormen, Leiserson and Rivest. This book should be read daily to keep your concepts fresh. This is the best book for fundamental concepts in algorithms. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;Learn Professional Ethics&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;As a CS Professional, you are morally obliged to do a good job. What this means is that you are supposed to do your job not for your manager but for yourself. This is already told in Bhagwatgeeta: Doing duties of your life.&lt;br /&gt;&lt;br /&gt;The direct implication of this is never ever writing a bad code. You don't need to be fastest and run after shipping dates; rather you need to write quality code. Never write junk code. Rewrite it till it is good. Thoroughly test every piece of code that you write. Do not write codes which are "sort of alright". You might not achieve perfection, but at least your code should be of good quality. Let me quote my own example in this context. You might have heard about STL, The Standard Template Library that ships in with C++ compilers. I wrote it 10 years ago, in 1994. While implementing one of the routines in the STL, namely the "search routine", I was a bit lazy and instead of writing a good linear order implementation of KMP which was difficult to code, I wrote a best quadratic implementation. I knew that I could make the search faster by writing a linear-order implementation, but I was lazy and I did not do that. And, after 10 years of my writing STL, exactly the same implementation is still used inside STL and STL ships with an inefficient quadratic implementation of search routine even today!! You might ask me: why can't you rewrite that? Well. I cannot, because that code is no more my property!! Further, nobody today will be interested in a standalone efficient STL. People would prefer one which automatically ships out with the compiler itself. Moral is, you should have aesthetic beauty built inside you. You should "feel" uneasy on writing bad code and should be eager to rewrite the code till it becomes up to the quality. And to the judge the quality, you need to develop sense regarding which algorithms to use under what circumstances.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;Figure out your Goals &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Always aspire doing bigger things in life. "Viewing promotion path as your career" is a completely wrong goal. If you are really interested in studying and learning new things, never ever aspire for being a manager. Managers cannot learn and study. They have no time. "Company ladder aspiration" is not what should be important for you.&lt;br /&gt;&lt;br /&gt;You might feel that you want to do certain things which you cannot do till you become a manager. When you become a manager, you will soon realize that now you just cannot do anything!&lt;br /&gt;&lt;br /&gt;You will have a great experience as programmers. But if you care for people and love people, you will never enjoy being a manager...most good managers are reluctant managers. If you see people as people, you cannot survive at management level.&lt;br /&gt;&lt;br /&gt;Always aspire for professional greatness. Our profession is very beautiful because we create abstract models and implement them in reality. There is a big fun in doing that. We have a profession which allows us to do creative things and even gives nice salary for that.&lt;br /&gt;&lt;br /&gt;The three biggest mistakes that people usually make are aiming for money, aiming for promotion and aiming for fame. The moment you get some of these, you aspire for some more. And then there is no end. I do not mean that you should not earn money, but you should understand how much money would satisfy your needs. &lt;br /&gt;&lt;br /&gt;Bill Gates might be the richest person in the world; he is certainly not the happiest. Our lives are far better than his. Find your goal, and do best in the job that you have. Understand that what is in your pocket does not matter. That is in your brain finally matters. Money and fame do not matter. Knowledge matters.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;Follow your culture &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I have seen the tradition that whatever junk is created in US, it rapidly spreads up in the rest of the world, and India is not an exception for this. This cultural change creates a very strong impact on everybody's life. Habits of watching spicy Bollywood or Hollywood movies and listening to pop songs and all such stupid stuff gets very easily cultivated in people of your age...but believe me, there is nothing great in that. This all just makes you run away from your culture. And there is no wisdom in running away from your culture. Indian culture, which has great Vedas and stories like Mahabharata and Bhagwatgeeta is really great and even Donald Knuth, enjoys reading that. You should understand that fundamental things in Indian culture teach you a lot and you should never forget them.&lt;br /&gt;&lt;br /&gt;Finally, I would like to conclude by saying that it's your life. do not waste it on stupid things...develop your tests, and start the fight.&lt;br /&gt;&lt;br /&gt;This is the summary of speech Given by Alex Stepenov (Principal Scientist, Adobe Systems) at Adobe India.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3378938135448047015?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3378938135448047015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3378938135448047015&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3378938135448047015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3378938135448047015'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/05/advice-to-young-programmers.html' title='Advice To Young Programmers'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-7372576140000655083</id><published>2008-03-29T16:38:00.007+05:30</published><updated>2008-09-18T16:42:27.040+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outing'/><title type='text'>My Escapades: Hogenakal Falls</title><content type='html'>I went to Hogenakal Falls this wednesday on team outing.&lt;br /&gt;Here are some of pics&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                           ME WITH KUMARA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/R-4lum5V3pI/AAAAAAAAADI/9P_DHe91txQ/s1600-h/DSC01163.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/R-4lum5V3pI/AAAAAAAAADI/9P_DHe91txQ/s320/DSC01163.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5183121703795285650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        DUDES IN BOAT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/R-4mEW5V3qI/AAAAAAAAADQ/5n29ZbsgFFc/s1600-h/DSC01032.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/R-4mEW5V3qI/AAAAAAAAADQ/5n29ZbsgFFc/s320/DSC01032.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5183122077457440418" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-7372576140000655083?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/7372576140000655083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=7372576140000655083&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7372576140000655083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/7372576140000655083'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/03/my-escapades-hogenakal-falls.html' title='My Escapades: Hogenakal Falls'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/R-4lum5V3pI/AAAAAAAAADI/9P_DHe91txQ/s72-c/DSC01163.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-3702375378456881933</id><published>2008-03-29T12:02:00.011+05:30</published><updated>2008-10-16T12:25:27.770+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bsnl'/><title type='text'>Influence of Chak De India</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_21JGp-BS3SA/R-3ks25V3mI/AAAAAAAAACw/oXPZOqxdXFI/s1600-h/chak_de_india.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_21JGp-BS3SA/R-3ks25V3mI/AAAAAAAAACw/oXPZOqxdXFI/s320/chak_de_india.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5183050205474709090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Last week i went to my hometown (Ajmer). I went there to a BSNL office for some work. There in BSNL office i saw following written on the employee's notice board (in hindi)&lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;         &lt;strong&gt;Chak De India rule: No player should keep ball with him for more than&lt;br /&gt;                             5 seconds&lt;br /&gt;         Chak De BSNL rule : No employee should keep a customer's file with him &lt;br /&gt;                             for more than 30 mins&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-3702375378456881933?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/3702375378456881933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=3702375378456881933&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3702375378456881933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/3702375378456881933'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/03/influence-of-chak-de-india.html' title='Influence of Chak De India'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_21JGp-BS3SA/R-3ks25V3mI/AAAAAAAAACw/oXPZOqxdXFI/s72-c/chak_de_india.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-649088493352415338</id><published>2008-03-13T15:53:00.001+05:30</published><updated>2008-09-18T16:38:36.051+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><title type='text'>एक लड़की मुझे सताती है</title><content type='html'>अंधेरी सी रात में एक खिड़की &lt;br /&gt;&lt;br /&gt;डगमगाती है&lt;br /&gt;&lt;br /&gt;सच बताऊँ यारों तो, एक लड़की &lt;br /&gt;&lt;br /&gt;मुझे सताती है।&lt;br /&gt;&lt;br /&gt;भोली भाली सूरत उसकी&lt;br /&gt;&lt;br /&gt;मखमलीं सी पलकें है&lt;br /&gt;&lt;br /&gt;हलकी इस रोशनी में, मुझे&lt;br /&gt;&lt;br /&gt;देख शर्माती है&lt;br /&gt;&lt;br /&gt;सच बताऊँ यारो तो इक लड़की&lt;br /&gt;&lt;br /&gt;मुझे सताती है&lt;br /&gt;&lt;br /&gt;बिखरी-बिखरी जुल्फे उसकी &lt;br /&gt;&lt;br /&gt;शायद घटा बुलाती है, उसके&lt;br /&gt;&lt;br /&gt;आंखो के काजल से बारिश&lt;br /&gt;&lt;br /&gt;भी हो जाती है&lt;br /&gt;&lt;br /&gt;दूर खड़ी वो खिड़की पर &lt;br /&gt;&lt;br /&gt;मुझे देख मुस्कुराती है।&lt;br /&gt;&lt;br /&gt;सच बताऊँ यारों तो इक लड़की &lt;br /&gt;&lt;br /&gt;मुझे सताती है&lt;br /&gt;&lt;br /&gt;उसकी पायल की छम-छम से&lt;br /&gt;&lt;br /&gt;एक मदहोशी सी छा जाती है&lt;br /&gt;&lt;br /&gt;ज्यों की आंख बंद करु मैं&lt;br /&gt;&lt;br /&gt;तो, सामने वो जाती है &lt;br /&gt;&lt;br /&gt;सच बताऊँ यारों तो इक &lt;br /&gt;&lt;br /&gt;लड़की मुझे सताती है&lt;br /&gt;&lt;br /&gt;अंधेरी सी रात में एक खिड़की &lt;br /&gt;&lt;br /&gt;डगमगाती है&lt;br /&gt;&lt;br /&gt;ज्यों ही आंख खोलता हँ&lt;br /&gt;&lt;br /&gt;मैं तो ख्वाब वो बन जाती है&lt;br /&gt;&lt;br /&gt;रोज रात को इसी तरह &lt;br /&gt;&lt;br /&gt;इक लड़की मुझे सताती है।&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-649088493352415338?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/649088493352415338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=649088493352415338&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/649088493352415338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/649088493352415338'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/03/blog-post.html' title='एक लड़की मुझे सताती है'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6129399888613680177</id><published>2008-02-28T14:40:00.003+05:30</published><updated>2008-09-18T16:39:08.105+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><title type='text'>Hum Honge Kamyab</title><content type='html'>These days when I am struggling with my career I remember an inspiration poem which I learnt in school. Here it goes....&lt;br /&gt;&lt;br /&gt;HO'NGE' KAM YAB, HO'NGE' KAM YAB&lt;br /&gt;HUM HO'NGE' KAM YAB EK DIN&lt;br /&gt;HO' HO'MAN ME' HAI VISHWAS&lt;br /&gt;PURA HAI VISHWAS&lt;br /&gt;HUM HO'NGE' KAM YAB EK DIN ||&lt;br /&gt;&lt;br /&gt;HO'GE' SHANTI CHARO'M OR&lt;br /&gt;HO'GEE SHANTI CHARO'M OR&lt;br /&gt;HO'GEE SHANTI CHARO'M OR EK DIN ||&lt;br /&gt;HO' HO'MAN ME' HAI VISHWAS&lt;br /&gt;PURA HAI VISHWAS&lt;br /&gt;HO'GEE SHANTI CHARO'M OR EK DIN ||&lt;br /&gt;&lt;br /&gt;HUM CHALE'NGE' SATH-SATH&lt;br /&gt;DAL HATHO'M ME' HATH&lt;br /&gt;HUM CHALE'NGE' SATH-SATH EK DIN ||&lt;br /&gt;HO' HO'MAN ME' HAI VISHWAS&lt;br /&gt;PURA HAI VISHWAS&lt;br /&gt;HUM CHALE'NGE' SATH-SATH EK DIN ||&lt;br /&gt;&lt;br /&gt;NAHE' DAR KISEE KAA AJ&lt;br /&gt;NAHEE BHAY KISEE KAA AJ&lt;br /&gt;NAHE' DAR KISEE KAA AJ KE DIN ||&lt;br /&gt;HO' HO'MAN ME' HAI VISHWAS&lt;br /&gt;PURA HAI VISHWAS&lt;br /&gt;NAHE' DAR KISEE KAA AJ KE DIN ||&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6129399888613680177?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6129399888613680177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6129399888613680177&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6129399888613680177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6129399888613680177'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/02/hum-honge-kamyab.html' title='Hum Honge Kamyab'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-8435445622784411855</id><published>2008-02-28T14:24:00.008+05:30</published><updated>2008-09-18T16:43:22.593+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>25</title><content type='html'>Last Friday (22nd Feb) i crossed a milestone. I am 25 yrs old now.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_21JGp-BS3SA/R8Z466rXJOI/AAAAAAAAACc/1a7kHI6UqVo/s1600-h/Touch25.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_21JGp-BS3SA/R8Z466rXJOI/AAAAAAAAACc/1a7kHI6UqVo/s320/Touch25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5171954175660467426" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-8435445622784411855?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/8435445622784411855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=8435445622784411855&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8435445622784411855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/8435445622784411855'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/02/25_28.html' title='25'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_21JGp-BS3SA/R8Z466rXJOI/AAAAAAAAACc/1a7kHI6UqVo/s72-c/Touch25.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-6636306190389494762</id><published>2008-02-02T15:09:00.001+05:30</published><updated>2008-09-18T16:44:15.435+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Memoirs of college life</title><content type='html'>It’s been more than 2 and half years since I left my college.&lt;br /&gt;Truly speaking I couldn’t do much significant in these years though I never wasted my time and was busy as bee.&lt;br /&gt;Toady while working in office (it’s Saturday today) there was something which really disturbed me (or rather I should say distracted me from my work he he.. this is what I call the classical Anuj Mehta). Actually one of my colleagues had a breakup with his girl friend. The girl went with another guy. So just like all the ashiq’s my colleague was very disheartened and I tried to console him.&lt;br /&gt;&lt;br /&gt;Now what connection does it had with my remembering of my college?? Well there is.&lt;br /&gt;In past 2.5 years the only thing that I did was struggle. Struggle with CAT preparation, with work and end result was disaster in both.&lt;br /&gt;I was badly screwed in CAT and it was supplemented by bad appraisals. I was busy studying, reading more and more, working as hard as I could but to my dismay nothing worked for me. In all this chaos I think I forgot about one thing girls.&lt;br /&gt;Though truly speaking I never had a girl friend (My colleagues and college friends no me better, no girl can tolerate my boring talks for more than 15 minutes especially when I am interested more in Hitler and philosophical discussions). But in college it was bit different. I ran behind few girls, innumerable crushes (sometimes on lecturers also).&lt;br /&gt;&lt;br /&gt;So now is the time to get back to form and start running behind girls once again.&lt;br /&gt;So all the guys having girl friends be sacred of me. You may soon loose your girl to me ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-6636306190389494762?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/6636306190389494762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=6636306190389494762&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6636306190389494762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/6636306190389494762'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/02/memoirs-of-college-life.html' title='Memoirs of college life'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30469785.post-4696322098325711552</id><published>2008-01-07T17:38:00.001+05:30</published><updated>2008-09-18T16:42:57.275+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><title type='text'>Where the mind is without fear and the head is held high</title><content type='html'>Where the mind is without fear and the head is held high&lt;br /&gt;Where knowledge is free&lt;br /&gt;Where the world has not been broken up into fragments&lt;br /&gt;By narrow domestic walls&lt;br /&gt;Where words come out from the depth of truth&lt;br /&gt;Where tireless striving stretches its arms towards perfection&lt;br /&gt;Where the clear stream of reason has not lost its way&lt;br /&gt;Into the dreary desert sand of dead habit&lt;br /&gt;Where the mind is led forward by thee&lt;br /&gt;Into ever-widening thought and action&lt;br /&gt;Into that heaven of freedom, my father, let my country awake.&lt;br /&gt;&lt;br /&gt;- from Gitanjali, Offering of Songs, published in English in&lt;br /&gt;1910, written by Nobel laureate Rabindranath Tagore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30469785-4696322098325711552?l=anuj-mehta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuj-mehta.blogspot.com/feeds/4696322098325711552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30469785&amp;postID=4696322098325711552&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4696322098325711552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30469785/posts/default/4696322098325711552'/><link rel='alternate' type='text/html' href='http://anuj-mehta.blogspot.com/2008/01/where-mind-is-without-fear-and-head-is.html' title='Where the mind is without fear and the head is held high'/><author><name>Anuj Mehta</name><uri>http://www.blogger.com/profile/15698663493667691434</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_21JGp-BS3SA/SZ4p4qKlkoI/AAAAAAAAAIg/0EQRvDl446M/S220/anuj1.jpg'/></author><thr:total>0</thr:total></entry></feed>
