<?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-8926261999471799923</id><updated>2012-02-03T02:26:09.629-08:00</updated><title type='text'>InLoveWithNature</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>99</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8798620304565174322</id><published>2012-02-03T02:18:00.000-08:00</published><updated>2012-02-03T02:26:09.643-08:00</updated><title type='text'>Recording tests with JMeter</title><content type='html'>We had a requirement of load/performance testing in one of my earlier projects. Instead of using commercial and expensive Silk performer, we gave a try to open source &lt;a href="http://jmeter.apache.org/index.html"&gt;Apache JMeter&lt;/a&gt; and it worked really well for the purpose that we were looking for.&lt;br /&gt;&lt;br /&gt;The Apache JMeter is an open source software, a 100% pure Java application designed to load test functional behavior and measure performance.&lt;br /&gt;&lt;br /&gt;There is an excellent step by step guide available @&lt;a href="http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf"&gt;JMeter proxy Step-by-step&lt;/a&gt; for how to record tests with JMeter. The guide explains the steps for creating a test plan with JMeter's proxy. The proxy records the requests sent to the server.&lt;br /&gt;&lt;br /&gt;There are different kind of Listeners available for viewing load test results like Aggregate Report, Aggregate Graph, Summary Report, View Results Tree, Monitor Results, etc. Sharing one sample output of Aggregate Report :-&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-kurHHyqixxM/Tyu1K1DSK1I/AAAAAAAAAPY/5bOMAe9Veuk/s1600/aggregate.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 254px;" src="http://3.bp.blogspot.com/-kurHHyqixxM/Tyu1K1DSK1I/AAAAAAAAAPY/5bOMAe9Veuk/s400/aggregate.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5704852550639037266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While setting up the load tests, we also need to take care of some config elements for more accurate results like HTTP Cookie Manager, HTTP Authorization Manager,HTTP Cache Manager, HTTP Request Defaults,HTTP Header Manager, etc. &lt;br /&gt;&lt;br /&gt;I could not go through all the elements of test plan in depth due to time constraint, but one can go through these documentation links for stepping into more technical details :-&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://jmeter.apache.org/usermanual/index.html"&gt;JMeter User Manual&lt;/a&gt; &lt;br /&gt;- &lt;a href="http://jmeter.apache.org/usermanual/test_plan.html"&gt;Elements of a Test Plan&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://jmeter.apache.org/usermanual/component_reference.html"&gt;Component Reference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8798620304565174322?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8798620304565174322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/recording-tests-with-jmeter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8798620304565174322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8798620304565174322'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/recording-tests-with-jmeter.html' title='Recording tests with JMeter'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-kurHHyqixxM/Tyu1K1DSK1I/AAAAAAAAAPY/5bOMAe9Veuk/s72-c/aggregate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8089401142946916376</id><published>2012-02-02T06:05:00.000-08:00</published><updated>2012-02-02T21:03:48.696-08:00</updated><title type='text'>Installing VM(with Ubuntu + RVM + Ruby + Rails) on my Windows 7 system</title><content type='html'>I wanted to give a try on my Windows 7 system to create and run Virtual Machine with Ubuntu OS. As my colleague &lt;a href="http://mrails.blogspot.in"&gt;Manohar&lt;/a&gt; rightly pointed out the reason @&lt;a href="http://mrails.blogspot.in/2011/08/ruby-on-rails-development-platform-in.html"&gt;Ruby on Rails Development Platform in Enterprise&lt;/a&gt; behind this, I followed the instructions to install VMWare and Ubuntu on my Windows 7 laptop.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;A.&lt;/span&gt; &lt;a href="http://www.vmware.com/products/player/faqs.html"&gt;Download&lt;/a&gt; and Install VMWare Player which is free for personal non-commercial use. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;B.&lt;/span&gt; &lt;a href="http://www.ubuntu.com/download/ubuntu/download"&gt;Download&lt;/a&gt; 64-bit ISO of Ubuntu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;C.&lt;/span&gt; Create a New Virtual Machine for Ubuntu 64-bit using VMware Player. The steps are simple. It takes default 512 MB of RAM but I allocated 2 GB of RAM. It took me around 1 and half hour to install all the necessary files for ubuntu. So have a patience!&lt;br /&gt;&lt;br /&gt;My host system configuration :-&lt;br /&gt;Processor: Intel Core Dual i5 CPU, RAM: 6GB, 64-bit Operating System, Windows 7 Home Premium&lt;br /&gt;&lt;br /&gt;Some issues that I faced and the corresponding resolution :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(1)&lt;/span&gt; With Ubuntu 32-bit(recommended) ISO file download, the VMWare could not identify the 64-bit Ubuntu OS. So I downloaded 64-bit ISO file for Ubuntu 11.10 verison. With this file, the VMWare was able to detect 64-bit Ubuntu OS correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(2)&lt;/span&gt; When I went ahead with the installation, I got 2 warnings/errors :-&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-f0AbPKLJnds/TyqZYRGKzoI/AAAAAAAAAPA/MWnlfMp4Gs4/s1600/ubuntu_e1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 341px;" src="http://4.bp.blogspot.com/-f0AbPKLJnds/TyqZYRGKzoI/AAAAAAAAAPA/MWnlfMp4Gs4/s400/ubuntu_e1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5704540520203341442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-otB27y0wKJU/TyqZqsKW93I/AAAAAAAAAPM/Y2q-gJEiM8w/s1600/ubuntu_e2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://1.bp.blogspot.com/-otB27y0wKJU/TyqZqsKW93I/AAAAAAAAAPM/Y2q-gJEiM8w/s400/ubuntu_e2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5704540836706318194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To run virtualization software and virtual machines, hardware virtualization technology  should be enabled. I enabled Virtualization Technology (VT) in motherboard BIOS settings which is disabled by default and then restarted my machine. This resolved my issue and Ubuntu(64-bit) was then successfully installed on my VM.&lt;br /&gt;&lt;br /&gt;I followed the steps mentioned @&lt;a href="http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/"&gt;Ubuntu, Ruby, RVM, Rails, and You&lt;/a&gt; to install RVM, Ruby 1.9.3, Rails 3.1.3 and mysql2. The steps are self explanatory and straight forward to follow. Thanks to &lt;a href="http://ryanbigg.com/"&gt;Ryan Bigg&lt;/a&gt; for this !&lt;br /&gt;&lt;br /&gt;Now I am ready to try out some ruby/rails development on Ubuntu @ my home pc :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8089401142946916376?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8089401142946916376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/installing-vmwith-ubuntu-rvm-ruby-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8089401142946916376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8089401142946916376'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/installing-vmwith-ubuntu-rvm-ruby-rails.html' title='Installing VM(with Ubuntu + RVM + Ruby + Rails) on my Windows 7 system'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-f0AbPKLJnds/TyqZYRGKzoI/AAAAAAAAAPA/MWnlfMp4Gs4/s72-c/ubuntu_e1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3950426980382912157</id><published>2012-02-01T20:54:00.000-08:00</published><updated>2012-02-02T04:55:55.884-08:00</updated><title type='text'>Snaps from Sudhagad fort</title><content type='html'>My wife and I recently visited Sudhagad fort near Pali. Sharing few snaps captured from Sudhagad fort. (Sunset view is my favorite! :-)&lt;br /&gt;&lt;br /&gt;Tailbaila view from top :-&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-T9Hnojw0lh0/TyqHi_AkwzI/AAAAAAAAAOo/WdEsXkt0KD4/s1600/IMG_0909.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-T9Hnojw0lh0/TyqHi_AkwzI/AAAAAAAAAOo/WdEsXkt0KD4/s400/IMG_0909.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704520913117299506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-HCY6-Om-5wM/TyqGIZf0VXI/AAAAAAAAANs/J3v5zXVxmMc/s1600/IMG_0948.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-HCY6-Om-5wM/TyqGIZf0VXI/AAAAAAAAANs/J3v5zXVxmMc/s400/IMG_0948.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704519356859569522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sunset view :-&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-6c0uE8gHeag/TyqHplHhhKI/AAAAAAAAAO0/oBmnU62lqX8/s1600/IMG_0966.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-6c0uE8gHeag/TyqHplHhhKI/AAAAAAAAAO0/oBmnU62lqX8/s400/IMG_0966.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704521026426209442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-SFbKuGysF6w/TyqGWitqrTI/AAAAAAAAAOE/aKIKkjZ2JLI/s1600/IMG_0979.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-SFbKuGysF6w/TyqGWitqrTI/AAAAAAAAAOE/aKIKkjZ2JLI/s400/IMG_0979.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704519599851744562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Ki6X2cDArT4/TyqGcZApxhI/AAAAAAAAAOQ/HTf24fvca1M/s1600/IMG_0981.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-Ki6X2cDArT4/TyqGcZApxhI/AAAAAAAAAOQ/HTf24fvca1M/s400/IMG_0981.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704519700326237714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-WBl6FjoBFB4/TyqGjspYVNI/AAAAAAAAAOc/ivMImbOZHHc/s1600/IMG_0984.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-WBl6FjoBFB4/TyqGjspYVNI/AAAAAAAAAOc/ivMImbOZHHc/s400/IMG_0984.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5704519825856419026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy the nature beauty ! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3950426980382912157?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3950426980382912157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/snaps-from-sudhagad-fort.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3950426980382912157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3950426980382912157'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2012/02/snaps-from-sudhagad-fort.html' title='Snaps from Sudhagad fort'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-T9Hnojw0lh0/TyqHi_AkwzI/AAAAAAAAAOo/WdEsXkt0KD4/s72-c/IMG_0909.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7207031789005720486</id><published>2012-01-31T07:29:00.000-08:00</published><updated>2012-01-31T07:32:09.088-08:00</updated><title type='text'>Security Check Fever</title><content type='html'>Terrorist attack is not new to Mumbai, rather I should say to India. After the Mumbai terrorist attack in year 2008 in which around 200 people were openly killed by Pakistani terrorists, the security measure concern was again raised as usual as it has been for every such terrorist attack in past. Security was again made tight in every government as well as private organizations, public places, etc.&lt;br /&gt;&lt;br /&gt;However, this Security check Fever unfortunately did not last for long. We Mumbaikars tend to forget things fast as we are so called very busy people tied to the running clock. Thousands of candles were lighted protesting the so called Coward Terrorist Act and our security chain started to become weak once again. &lt;br /&gt;&lt;br /&gt;The organization that I work in is India's one of the largest business process outsourcing service organizations. My organization was no exception to this temporary security fever. Initially, the security was made very tight. But since past couple of years, what I have observed is :-&lt;br /&gt;&lt;br /&gt;1) Security guards most of the times only pat on the bag/sack to check whether a person is carrying any weighted thing.&lt;br /&gt;2) They just ask people whether you are carrying any laptops/media or not.&lt;br /&gt;3) In one of the office buildings there is no metal detector entrance gate or even no metal detector equipments.&lt;br /&gt;4) The bag is usually not opened properly and checked.    &lt;br /&gt;5) The I-card at the very entrance is usually not verified with the person's face carrying the I-card.&lt;br /&gt;6) The decklids of cars are only opened and checked. Security guards don't realize that the things can be carried away or brought inside from inside the car as well. From the bags inside the car or from under the seats for example.&lt;br /&gt;7) Under Car Inspection mirrors are rarely used.&lt;br /&gt;8) Person's shirt/trousers pockets are never checked at all.&lt;br /&gt;&lt;br /&gt;I do not want to add more items to this list. The issue is when are we going to learn from History ? After all, the attacker has no different face to identify.&lt;br /&gt;I would not be surprised if any terrorist attack strikes again in any part of Mumbai. And the only responsible people for letting this attack successful would be we, ourselves. So please be cautious and tighten our security measures !&lt;br /&gt;Vande Mataram !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7207031789005720486?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7207031789005720486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2012/01/security-check-fever.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7207031789005720486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7207031789005720486'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2012/01/security-check-fever.html' title='Security Check Fever'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4679306819953584602</id><published>2012-01-07T22:04:00.000-08:00</published><updated>2012-01-07T22:27:29.512-08:00</updated><title type='text'>Kashmir photos</title><content type='html'>I along with my family went to Kashmir tour in the last week of December 2011. The nature beauty truly mesmerized our minds. Sharing some snaps of the paradise on the earth. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-OHuDYUASbqo/Twkzm5VKt0I/AAAAAAAAAMM/hHPPtlAPlVg/s1600/DSCN0032.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-OHuDYUASbqo/Twkzm5VKt0I/AAAAAAAAAMM/hHPPtlAPlVg/s400/DSCN0032.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695139947104352066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Ukm0valcEmo/Twk0A2dTQkI/AAAAAAAAAMY/lP5GzukuGkc/s1600/DSCN0117.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-Ukm0valcEmo/Twk0A2dTQkI/AAAAAAAAAMY/lP5GzukuGkc/s400/DSCN0117.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695140393009758786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-jUXt5N_7_KY/Twk0fUKHfUI/AAAAAAAAAMk/ejRJSbYzDZU/s1600/IMG_0292.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-jUXt5N_7_KY/Twk0fUKHfUI/AAAAAAAAAMk/ejRJSbYzDZU/s400/IMG_0292.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695140916378434882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0bFUe0UMWlg/Twk1ho_0_rI/AAAAAAAAAMw/69JFcXSW1pk/s1600/IMG_0404.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-0bFUe0UMWlg/Twk1ho_0_rI/AAAAAAAAAMw/69JFcXSW1pk/s400/IMG_0404.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695142055843790514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Sav98u9GjyI/Twk11JvoTcI/AAAAAAAAAM8/vlMsRM5xsGI/s1600/IMG_0475.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-Sav98u9GjyI/Twk11JvoTcI/AAAAAAAAAM8/vlMsRM5xsGI/s400/IMG_0475.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695142391051734466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fcCtTWn2oOE/Twk2jGKfJDI/AAAAAAAAANI/HwE8QK52DsI/s1600/IMG_0667.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-fcCtTWn2oOE/Twk2jGKfJDI/AAAAAAAAANI/HwE8QK52DsI/s400/IMG_0667.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695143180364620850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-8STTJdE837I/Twk3IjnmflI/AAAAAAAAANU/Afoe4jnTmEg/s1600/IMG_0718.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-8STTJdE837I/Twk3IjnmflI/AAAAAAAAANU/Afoe4jnTmEg/s400/IMG_0718.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695143823926525522" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4679306819953584602?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4679306819953584602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2012/01/kashmir-photos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4679306819953584602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4679306819953584602'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2012/01/kashmir-photos.html' title='Kashmir photos'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-OHuDYUASbqo/Twkzm5VKt0I/AAAAAAAAAMM/hHPPtlAPlVg/s72-c/DSCN0032.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7071988317956137919</id><published>2011-12-22T05:59:00.000-08:00</published><updated>2011-12-22T06:05:37.476-08:00</updated><title type='text'>Other side of our Indian History</title><content type='html'>Sharing &lt;span style="font-weight:bold;"&gt;Last Speech by Nathuram Godse :-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JANUARY 30th, 1949 - The Mahatma was assassinated by a man called Naturam Godse. After he shot him, instead of running away, he stood his ground and surrounded. He said, "No one should think that Gandhi was killed by a madman"&lt;br /&gt;&lt;br /&gt;One of the best speeches of All time, which is compared to Socrates's speech in his trial. &lt;span style="font-weight:bold;"&gt;The Judge was astonished by his speech and commented that if India had followed the Jury system of giving judgments, Godse would have been adjudicated as "Not Guilty" by the Jury, cause after the speech, the whole audience was in tears.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the speech given by Nathuram Godse in the court in his last trial for the murder of Mahatma Gandhi.&lt;br /&gt;&lt;br /&gt;"Born in a devotional Brahmin family, I instinctively came to revere Hindu religion, Hindu history and Hindu culture. I had, therefore, been intensely proud of Hinduism as a whole. As I grew up I developed a tendency to free thinking unfettered by any superstitious allegiance to any isms, political or religious. That is why I worked actively for the eradication of untouchability and the caste system based on birth alone. I openly joined anti-caste movements and maintained that all Hindus were of equal status as to rights, social and religious and should be considered high or low on merit alone and not through the accident of birth in a particular caste or profession. I used publicly to take part in organized anti-caste dinners in which thousands of Hindus, Brahmins, Kshatriyas, Vaisyas, Chamars and Bhangis participated. We broke the caste rules and dined in the company of each other.&lt;br /&gt;&lt;br /&gt;I have read the speeches and writings of Dadabhai Nairoji, Vivekanand, Gokhale, Tilak, along with the books of ancient and modern history of India and some prominent countries like England, France, America and' Russia. Moreover I studied the tenets of Socialism and Marxism. But above all I studied very closely whatever Veer Savarkar and Gandhiji had written and spoken, as to my mind these two ideologies have contributed more to the moulding of the thought and action of the Indian people during the last thirty years or so, than any other single factor has done.&lt;br /&gt;&lt;br /&gt;All this reading and thinking led me to believe it was my first duty to serve Hindudom and Hindus both as a patriot and as a world citizen. To secure the freedom and to safeguard the just interests of some thirty crores (300 million) of Hindus would automatically constitute the freedom and the well being of all India, one fifth of human race. This conviction led me naturally to devote myself to the Hindu Sanghtanist ideology and programme, which alone, I came to believe, could win and preserve the national independence of Hindustan, my Motherland, and enable her to render true service to humanity as well.&lt;br /&gt;&lt;br /&gt;Since the year 1920, that is, after the demise of Lokamanya Tilak, Gandhiji's influence in the Congress first increased and then became supreme. His activities for public awakening were phenomenal in their intensity and were reinforced by the slogan of truth and non-violence, which he paraded ostentatiously before the country. No sensible or enlightened person could object to those slogans. In fact there is nothing new or original in them. They are implicit in every constitutional public movement. But it is nothing but a mere dream if you imagine that the bulk of mankind is, or can ever become, capable of scrupulous adherence to these lofty principles in its normal life from day to day. In fact, honour, duty and love of one's own kith and kin and country might often compel us to disregard non-violence and to use force. I could never conceive that an armed resistance to an aggression is unjust. I would consider it a religious and moral duty to resist and, if possible, to overpower such an enemy by use of force. [In the Ramayana] Rama killed Ravana in a tumultuous fight and relieved Sita. [In the Mahabharata], Krishna killed Kansa to end his wickedness; and Arjuna had to fight and slay quite a number of his friends and relations including the revered Bhishma because the latter was on the side of the aggressor. It is my firm belief that in dubbing Rama, Krishna and Arjuna as guilty of violence, the Mahatma betrayed a total ignorance of the springs of human action.&lt;br /&gt;&lt;br /&gt;In more recent history, it was the heroic fight put up by Chhatrapati Shivaji that first checked and eventually destroyed the Muslim tyranny in India. It was absolutely essentially for Shivaji to overpower and kill an aggressive Afzal Khan, failing which he would have lost his own life. In condemning history's towering warriors like Shivaji, Rana Pratap and Guru Gobind Singh as misguided patriots, Gandhiji has merely exposed his self-conceit. He was, paradoxical, as it may appear, a violent pacifist who brought untold calamities on the country in the name of truth and non-violence, while Rana Pratap, Shivaji and the Guru will remain enshrined in the hearts of their countrymen forever for the freedom they brought to them.&lt;br /&gt;&lt;br /&gt;The accumulating provocation of thirty-two years, culminating in his last pro-Muslim fast, at last goaded me to the conclusion that the existence of Gandhi should be brought to an end immediately. Gandhi had done very well in South Africa to uphold the rights and well being of the Indian community there. But when he finally returned to India he developed a subjective mentality under which he alone was to be the final judge of what was right or wrong. If the country wanted his leadership, it had to accept his infallibility; if it did not, he would stand aloof from the Congress and carry on his own way. Against such an attitude there can be no halfway house. Either Congress had to surrender its will to his and had to be content with playing second fiddle to all his eccentricity, whimsicality, metaphysics and primitive vision, or it had to carry on without him. He alone was the Judge of everyone and everything; he was the master brain guiding the civil disobedience movement; no other could know the technique of that movement. He alone knew when to begin and when to withdraw it. The movement might succeed or fail, it might bring untold disaster and political reverses but that could make no difference to the Mahatma's infallibility. 'A Satyagrahi can never fail' was his formula for declaring his own infallibility and nobody except himself knew what a Satyagrahi is.&lt;br /&gt;&lt;br /&gt;Thus, the Mahatma became the judge and jury in his own cause. These childish insanities and obstinacies, coupled with a most severe austerity of life, ceaseless work and lofty character made Gandhi formidable and irresistible. Many people thought that his politics were irrational but they had either to withdraw from the Congress or place their intelligence at his feet to do with, as he liked. In a position of such absolute irresponsibility Gandhi was guilty of blunder after blunder, failure after failure, disaster after disaster.&lt;br /&gt;&lt;br /&gt;Gandhi's pro-Muslim policy is blatantly in his perverse attitude on the question of the national language of India. It is quite obvious that Hindi has the most prior claim to be accepted as the premier language. In the beginning of his career in India, Gandhi gave a great impetus to Hindi but as he found that the Muslims did not like it, he became a champion of what is called Hindustani. Everybody in India knows that there is no language called Hindustani; it has no grammar; it has no vocabulary. It is a mere dialect; it is spoken, but not written. It is a bastard tongue and crossbreed between Hindi and Urdu, and not even the Mahatma's sophistry could make it popular. But in his desire to please the Muslims he insisted that Hindustani alone should be the national language of India. His blind followers, of course, supported him and the so-called hybrid language began to be used. The charm and purity of the Hindi language was to be prostituted to please the Muslims. All his experiments were at the expense of the Hindus.&lt;br /&gt;&lt;br /&gt;From August 1946 onwards the private armies of the Muslim League began a massacre of the Hindus. The then Viceroy, Lord Wavell, though distressed at what was happening, would not use his powers under the Government of India Act of 1935 to prevent the rape, murder and arson. The Hindu blood began to flow from Bengal to Karachi with some retaliation by the Hindus. The Interim Government formed in September was sabotaged by its Muslim League members right from its inception, but the more they became disloyal and treasonable to the government of which they were a part, the greater was Gandhi's infatuation for them. Lord Wavell had to resign as he could not bring about a settlement and he was succeeded by Lord Mountbatten. King Log was followed by King Stork.&lt;br /&gt;&lt;br /&gt;The Congress, which had boasted of its nationalism and socialism, secretly accepted Pakistan literally at the point of the bayonet and abjectly surrendered to Jinnah. India was vivisected and one-third of the Indian territory became foreign land to us from August 15, 1947. Lord Mountbatten came to be described in Congress circles as the greatest Viceroy and Governor-General this country ever had. The official date for handing over power was fixed for June 30, 1948, but Mountbatten with his ruthless surgery gave us a gift of vivisected India ten months in advance. This is what Gandhi had achieved after thirty years of undisputed dictatorship and this is what Congress party calls 'freedom' and 'peaceful transfer of power'. The Hindu-Muslim unity bubble was finally burst and a theocratic state was established with the consent of Nehru and his crowd and they have called 'freedom won by them with sacrifice' - whose sacrifice? When top leaders of Congress, with the consent of Gandhi, divided and tore the country - which we consider a deity of worship - my mind was filled with direful anger.&lt;br /&gt;&lt;br /&gt;One of the conditions imposed by Gandhi for his breaking of the fast unto death related to the mosques in Delhi occupied by the Hindu refugees. But when Hindus in Pakistan were subjected to violent attacks he did not so much as utter a single word to protest and censure the Pakistan Government or the Muslims concerned. Gandhi was shrewd enough to know that while undertaking a fast unto death, had he imposed for its break some condition on the Muslims in Pakistan, there would have been found hardly any Muslims who could have shown some grief if the fast had ended in his death. It was for this reason that he purposely avoided imposing any condition on the Muslims. He was fully aware of from the experience that Jinnah was not at all perturbed or influenced by his fast and the Muslim League hardly attached any value to the inner voice of Gandhi.&lt;br /&gt;&lt;br /&gt;Gandhi is being referred to as the Father of the Nation. But if that is so, he had failed his paternal duty inasmuch as he has acted very treacherously to the nation by his consenting to the partitioning of it. I stoutly maintain that Gandhi has failed in his duty. He has proved to be the Father of Pakistan. His inner-voice, his spiritual power and his doctrine of non-violence of which so much is made of, all crumbled before Jinnah's iron will and proved to be powerless.&lt;br /&gt;&lt;br /&gt;Briefly speaking, I thought to myself and foresaw I shall be totally ruined, and the only thing I could expect from the people would be nothing but hatred and that I shall have lost all my honour, even more valuable than my life, if I were to kill Gandhiji. But at the same time I felt that the Indian politics in the absence of Gandhiji would surely be proved practical, able to retaliate, and would be powerful with armed forces. No doubt, my own future would be totally ruined, but the nation would be saved from the inroads of Pakistan. People may even call me and dub me as devoid of any sense or foolish, but the nation would be free to follow the course founded on the reason which I consider to be necessary for sound nation-building. After having fully considered the question, I took the final decision in the matter, but I did not speak about it to anyone whatsoever. I took courage in both my hands and I did fire the shots at Gandhiji on 30th January 1948, on the prayer-grounds of Birla House.&lt;br /&gt;&lt;br /&gt;I do say that my shots were fired at the person whose policy and action had brought rack and ruin and destruction to millions of Hindus. There was no legal machinery by which such an offender could be brought to book and for this reason I fired those fatal shots.&lt;br /&gt;&lt;br /&gt;I bear no ill will towards anyone individually but I do say that I had no respect for the present government owing to their policy, which was unfairly favourable towards the Muslims. But at the same time I could clearly see that the policy was entirely due to the presence of Gandhi. I have to say with great regret that Prime Minister Nehru quite forgets that his preachings and deeds are at times at variances with each other when he talks about India as a secular state in season and out of season, because it is significant to note that Nehru has played a leading role in the establishment of the theocratic state of Pakistan, and his job was made easier by Gandhi's persistent policy of appeasement towards the Muslims.&lt;br /&gt;&lt;br /&gt;I now stand before the court to accept the full share of my responsibility for what I have done and the judge would, of course, pass against me such orders of sentence as may be considered proper. But I would like to add that I do not desire any mercy to be shown to me, nor do I wish that anyone else should beg for mercy on my behalf. My confidence about the moral side of my action has not been shaken even by the criticism levelled against it on all sides. I have no doubt that honest writers of history will weigh my act and find the true value thereof some day in future."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7071988317956137919?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7071988317956137919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/12/other-side-of-our-indian-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7071988317956137919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7071988317956137919'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/12/other-side-of-our-indian-history.html' title='Other side of our Indian History'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6656851972119632563</id><published>2011-12-19T10:22:00.000-08:00</published><updated>2011-12-19T10:25:00.835-08:00</updated><title type='text'>Steve Jobs</title><content type='html'>I recently read one Marathi book - 'Steve Jobs:Ek Zapatlela Tantradnya (A Passionate Technologist)' written by Achyut Godbole and Atul Kahate. It's a brief biography of Steve Jobs - about his passion, life, attitude, innovations, revolutions and dreams.&lt;br /&gt;&lt;br /&gt;The authors have referred to some of the books including 'Steve Jobs: The Exclusive Biography' by Walter Isaacson for writing his biography in brief while touching some important aspects.&lt;br /&gt;&lt;br /&gt;I would like to mention one incident which I liked the most from this book. While Steve was viewing one printed circuit board of the earlier apple computer, he found that few circuit lines were not as straight as they should have been. So he immediately asked the engineers to change its design for making it perfect. His thinking was - 'Internal design beauty is as important as external design. We should strive for perfection.' &lt;br /&gt;&lt;br /&gt;From his quotes - &lt;br /&gt;'Design is the fundamental soul of a man-made creation that ends up expressing itself in successive outer layers of the product or service. The iMac is not just the color or translucence or the shape of the shell. The essence of the iMac is to be the finest possible consumer computer in which each element plays together.'&lt;br /&gt;&lt;br /&gt;Really a lot of things to learn from him ! Hats off to you Steve !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6656851972119632563?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6656851972119632563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/12/steve-jobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6656851972119632563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6656851972119632563'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/12/steve-jobs.html' title='Steve Jobs'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6470215346582858421</id><published>2011-11-24T06:33:00.000-08:00</published><updated>2011-11-24T06:43:19.425-08:00</updated><title type='text'>Inverted Waterfall chart with Highcharts</title><content type='html'>Pushed inverted waterfall chart implementation with &lt;a href="http://www.highcharts.com"&gt;Highcharts&lt;/a&gt; to Github @&lt;a href="http://github.com/NiranjanSarade/inverted-waterfall-chart"&gt;inverted-waterfall-chart&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;e.g. Zero Gap, i.e. Planned Savings = Actual Savings&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-P1WxojMh02k/Ts5WumOg2mI/AAAAAAAAALo/UiIR-oDfzaQ/s1600/chart1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 202px;" src="http://3.bp.blogspot.com/-P1WxojMh02k/Ts5WumOg2mI/AAAAAAAAALo/UiIR-oDfzaQ/s400/chart1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5678571538696165986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Positive Gap, i.e. Actual Savings &gt; Planned Savings&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-pwrj6aCN8Zs/Ts5XCQor5HI/AAAAAAAAAL0/KD5V5EbOvZ0/s1600/chart2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 203px;" src="http://1.bp.blogspot.com/-pwrj6aCN8Zs/Ts5XCQor5HI/AAAAAAAAAL0/KD5V5EbOvZ0/s400/chart2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5678571876497745010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Negative Gap, i.e. Actual Savings &lt; Planned Savings&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-JwwBK4JGVF4/Ts5Xa6xukaI/AAAAAAAAAMA/rMUauDJ3o7I/s1600/chart3.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 202px;" src="http://2.bp.blogspot.com/-JwwBK4JGVF4/Ts5Xa6xukaI/AAAAAAAAAMA/rMUauDJ3o7I/s400/chart3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5678572300126818722" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6470215346582858421?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6470215346582858421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/11/inverted-waterfall-chart-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6470215346582858421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6470215346582858421'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/11/inverted-waterfall-chart-with.html' title='Inverted Waterfall chart with Highcharts'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-P1WxojMh02k/Ts5WumOg2mI/AAAAAAAAALo/UiIR-oDfzaQ/s72-c/chart1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1345322052065386624</id><published>2011-10-11T02:11:00.000-07:00</published><updated>2011-10-11T02:14:15.642-07:00</updated><title type='text'>Poems</title><content type='html'>This is the collection of some of my poems written in my mother tongue - Marathi language :-&lt;br /&gt;&lt;br /&gt;http://dhundamanasi.wordpress.com/about/&lt;br /&gt;http://dhundamanasi.wordpress.com/&lt;br /&gt;&lt;br /&gt;Enjoy ... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1345322052065386624?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1345322052065386624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/10/poems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1345322052065386624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1345322052065386624'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/10/poems.html' title='Poems'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8047811316648459607</id><published>2011-09-25T05:14:00.000-07:00</published><updated>2011-09-25T05:23:39.686-07:00</updated><title type='text'>Good to know about Indian coins</title><content type='html'>I read this information about Indian coins in one Consumer magazine.&lt;br /&gt;Indian coins are mainly produced in four cities:- Delhi,Mumbai, Hyderabad and Kolkata. The production in city puts an identification mark under the year of issue. Coins produced in:&lt;br /&gt;1. Delhi - have a dot&lt;br /&gt;2. Mumbai - have a diamond&lt;br /&gt;3. Hyderabad - have a star&lt;br /&gt;4. Kolkata - nothing beneath the year.&lt;br /&gt;&lt;br /&gt;http://www.oceanofweb.com/interesting/facts-indian-coins.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8047811316648459607?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8047811316648459607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/09/good-to-know-about-indian-coins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8047811316648459607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8047811316648459607'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/09/good-to-know-about-indian-coins.html' title='Good to know about Indian coins'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7919441620468659497</id><published>2011-07-26T02:09:00.000-07:00</published><updated>2011-07-26T02:43:13.434-07:00</updated><title type='text'>Alluring nature and Indian village farms</title><content type='html'>The rain is in full swing here and my friends of Shivashourya trekkers, Mumbai recently had a Panhalgad to Pavankhind - Vishalgad 2011 Padabhraman activity trek. They also visited waterfall in Marleshwar on their return journey. The trek was as usual fantastic. Unfortunately I was not able to join them due to some reasons. However, they sent the photographs to me. The photos reminded me of my last year visit (Paalakhi mohim) to the same place. I am sharing some beautiful nature snaps that my friends shared with me.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-h_CI40GXwz4/Ti6JY1nM3iI/AAAAAAAAALA/Kn1oHf2YpBY/s1600/Bali%2BRaja.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/-h_CI40GXwz4/Ti6JY1nM3iI/AAAAAAAAALA/Kn1oHf2YpBY/s400/Bali%2BRaja.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633591243688435234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-_c_YOvL0B6c/Ti6JfhCquII/AAAAAAAAALI/MiP8FTGf-cE/s1600/Sheti.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/-_c_YOvL0B6c/Ti6JfhCquII/AAAAAAAAALI/MiP8FTGf-cE/s400/Sheti.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633591358425577602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Crp6EuOCsEQ/Ti6Jl3XzorI/AAAAAAAAALQ/pHRfcFOBKmU/s1600/Shetkari%2Bdada.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-Crp6EuOCsEQ/Ti6Jl3XzorI/AAAAAAAAALQ/pHRfcFOBKmU/s400/Shetkari%2Bdada.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633591467499037362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-mfLOgQTk2sw/Ti6Js6mRkgI/AAAAAAAAALY/1M1HNAFtJu8/s1600/MArleshwar2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/-mfLOgQTk2sw/Ti6Js6mRkgI/AAAAAAAAALY/1M1HNAFtJu8/s400/MArleshwar2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633591588624110082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-tu4QCI8uKBE/Ti6JzzVlauI/AAAAAAAAALg/C6OLjX-qc7A/s1600/MArleshwar%2Bdhabdaba.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/-tu4QCI8uKBE/Ti6JzzVlauI/AAAAAAAAALg/C6OLjX-qc7A/s400/MArleshwar%2Bdhabdaba.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633591706934143714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I remember one very good quote from John Muir about the nature - "Climb the mountains and get their good tidings.  Nature's peace will flow into you as sunshine flows into trees.  The winds will blow their own freshness into you, and the storms their energy, while cares will drop off like autumn leaves !"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7919441620468659497?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7919441620468659497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/alluring-nature-and-indian-village.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7919441620468659497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7919441620468659497'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/alluring-nature-and-indian-village.html' title='Alluring nature and Indian village farms'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-h_CI40GXwz4/Ti6JY1nM3iI/AAAAAAAAALA/Kn1oHf2YpBY/s72-c/Bali%2BRaja.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2674468682311697305</id><published>2011-07-25T02:38:00.000-07:00</published><updated>2011-07-25T03:00:06.997-07:00</updated><title type='text'>Contributing to ScaffoldHub.org</title><content type='html'>Few months back, my colleague &lt;a href="http://patshaughnessy.net/"&gt;Pat Shaughnessy&lt;/a&gt; launched &lt;a href="http://scaffoldhub.org"&gt;ScaffoldHub.org&lt;/a&gt;. It is a collection of Rails scaffold generators contributed by members of the Rails community.&lt;br /&gt;&lt;br /&gt;The basic idea behind this website is to take rails standard scaffolding one step farther; it’s a gallery of different variations on the simple CRUD app that the standard Rails scaffold generator produces. Each of these is called a "scaffold."&lt;br /&gt;&lt;br /&gt;Each scaffold might use a certain JQuery plugin (e.g. autocomplete or date picker) or Rails gem (e.g. Paperclip or Will Paginate). This is a great way to get a jump start on learning how to use that particular plugin or gem with Rails. In seconds you see something working in your app, and then you can take a look at the generated scaffolding code in detail to see how it works and adapt it to your needs.&lt;br /&gt;&lt;br /&gt;Thanks Pat for building this site ! Pat has also written a nice blog about how to contribute a scaffold @&lt;a href="http://patshaughnessy.net/2011/4/30/contributing-a-new-scaffold-to-scaffoldhub"&gt;contributing-a-new-scaffold-to-scaffoldhub&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I contributed 3 scaffolds to Scaffoldhub.org. Initially, it took me some time to contribute my first scaffold to this site, however for rest of my scaffolds, it was really quick as I already knew the steps.&lt;br /&gt;&lt;br /&gt;Here are my 3 scaffolds that you may want to try :-&lt;br /&gt;(1) &lt;a href="http://www.scaffoldhub.org/scaffolds/clearabletextfield"&gt;ClearableTextField&lt;/a&gt; - Standard Rails scaffolding with JQuery Clearable Text Field plugin. It shows up a cross icon to clear value when user inputs something in a form field and the icon disappears when you clear the field. &lt;br /&gt;&lt;br /&gt;(2) &lt;a href="http://www.scaffoldhub.org/scaffolds/wheel_color_picker"&gt;WheelColorPicker&lt;/a&gt; - JQuery Wheel Color Picker scaffold adds color picker functionality to HTML form inputs in the round color wheel fashion. The Wheel Color Picker dialog appears as user focuses the input. &lt;br /&gt;&lt;br /&gt;(3) &lt;a href="http://www.scaffoldhub.org/scaffolds/cleditor"&gt;Cleditor&lt;/a&gt; - The cleditor scaffold is based on CLEditor jQuery plugin which provides a lightweight, full featured, cross browser HTML editor that can be easily added into any web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2674468682311697305?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2674468682311697305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/contributing-to-scaffoldhuborg.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2674468682311697305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2674468682311697305'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/contributing-to-scaffoldhuborg.html' title='Contributing to ScaffoldHub.org'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7267186006957542704</id><published>2011-07-02T11:49:00.000-07:00</published><updated>2011-07-05T01:29:57.556-07:00</updated><title type='text'>Something good to read !</title><content type='html'>After a long time, I got a chance to read two wonderful books - 'The old man and his God' and 'Wise and Otherwise'. The books are written by Sudha Murthy. She has shared her own real life experiences in such a beautiful narrative way that they touch your heart. The most important thing behind narrating these incidences is to pass on a specific message to the reader so that he/she can think over it, can relate the stories to his/her own life experiences and last but not the least can act upon it.&lt;br /&gt;&lt;br /&gt;The stories such as freedom of speech, the journey, two faces of poverty, the grateful tenant, an old man's ageless wisdom, forgetting our own history, a bond betrayed on rakhi day, light as many candles as possible, bahut kuch hota hain, Salaam Namaste, crisis of confidence, etc. teach us many things. I am sharing some good thoughts from this book.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;This is the reply that an old man from Kalahandi forest gave to Sudha Murthy when she showed him some Indian currency :&lt;br /&gt;"This is just a piece of paper. For this paper, people fight, go away from our ancestral land,leave our forest and go to cities. Have we not led a complete life without the piece of paper? Our ancestors did. We are children of God, settled here happily without this paper. This is God's land. Nobody owns this land. No river is created by us. No mountain is made by us. The wind does not listen to us. The rain does not ask our permission. These are gifts of God. How can we 'sell' or 'buy' land, I do not understand. When nothing is yours, then how can you make such transactions?"&lt;br /&gt;The writer ends this chapter with following question: Who is more civilized- this wise old man in the forest or those of us with our fingers on the pulse of the Internet?&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;Everybody should know his/her own capacity and strength. One should also know one's limitations. It is more difficult to recognize our weaknesses than our strengths. Don't aim for the sky. Keep your feet firmly on the ground and work around you. There is so much misery and gloom, but it is better to light a single candle than to remain in darkness. Try to light as many candles as possible.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;Education means more than scoring good marks in exams or receiving certificates. Life is an exam where the syllabus is unknown and question papers are not set. Nor are there model answer papers. There are various types of questions that can come from any direction, but one should not run away. Education and financial independence are tools that can help us face difficulties, but confidence must be developed throughout life.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;Each patient is precious. If a patient dies, it is just one more hospital death for the doctor. But for the unfortunate family, it is a permanent loss.&lt;br /&gt;&lt;br /&gt;There are a lot of good messages like above ones in these two books. I am sure I have lit a small candle of interest into your minds, and you are certainly going to read these books if you haven't already. Happy reading ! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7267186006957542704?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7267186006957542704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/something-good-to-read.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7267186006957542704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7267186006957542704'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/07/something-good-to-read.html' title='Something good to read !'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2873778778263804939</id><published>2011-04-14T11:47:00.001-07:00</published><updated>2011-04-14T11:52:29.442-07:00</updated><title type='text'>LogFileTailer - simple sinatra app</title><content type='html'>It is never too late to contribute. Following on my year 2009 post - &lt;a href="http://niranjansarade.blogspot.com/2009/04/sinatra-web-application-framework-in.html"&gt;sinatra - web application framework in ruby&lt;/a&gt;, I recently pushed that code to github @http://github.com/NiranjanSarade/LogFileTailer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2873778778263804939?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2873778778263804939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/logfiletailer-simple-sinatra-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2873778778263804939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2873778778263804939'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/logfiletailer-simple-sinatra-app.html' title='LogFileTailer - simple sinatra app'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8723889757846581109</id><published>2011-04-12T08:06:00.000-07:00</published><updated>2011-04-12T08:20:21.455-07:00</updated><title type='text'>Converting Unix newlines (LF) to Windows newlines (CR\LF)</title><content type='html'>In one of my earlier projects, I faced an issue with newline characters in csv file. The csv file generated on a unix system was uploaded to Windows system through sftp. However, the program on the Windows server was not able to parse the file properly as the csv file contained Unix newlines (LF) instead of Windows newlines (CR\LF) at the end of each line.&lt;br /&gt;&lt;br /&gt;The problem is UNIX/Linux uses a Line Feed character (\n) as a line terminator while Windows uses Carriage Return\Line Feed pairs (\r\n).&lt;br /&gt;&lt;br /&gt;For those who want to know what is the exact difference between CR, LF and EOL characters, here is a brief description :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Carriage Return (CR)&lt;/span&gt; character (0x0D, \r) moves the cursor to the beginning of the line without advancing to the next line.  This character is used as a new line character in Commodore and Early Macintosh operating systems (OS-9 and earlier).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Line Feed (LF)&lt;/span&gt; character (0x0A, \n) moves the cursor down to the next line without returning to the beginning of the line.  This character is used as a new line character in UNIX based systems (Linux, Mac OSX, etc)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The End of Line (EOL)&lt;/span&gt; character (0x0D0A, \r\n) is actually two ASCII characters and is a combination of the CR and LF characters.  It moves the cursor both down to the next line and to the beginning of that line.  This character is used as a new line character in most other non-Unix operating systems including Microsoft Windows, Symbian OS and others.&lt;br /&gt;&lt;br /&gt;I was able to resolve this issue with 'Sed' (Stream Editor). (http://www.grymoire.com/Unix/Sed.html)&lt;br /&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/915666.js?file=gistfile1.rb"&gt;&lt;/script&gt;&lt;br /&gt;The command matches the regexp pattern ($ - ending position of line or the position just before a string-ending newline) and replaces it with '\r' (Carriage Return). So the end result would be conversion from '\n' to '\r\n' which will support windows new line format.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8723889757846581109?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8723889757846581109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/converting-unix-newlines-lf-to-windows.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8723889757846581109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8723889757846581109'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/converting-unix-newlines-lf-to-windows.html' title='Converting Unix newlines (LF) to Windows newlines (CR\LF)'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-845035073139010937</id><published>2011-04-08T14:05:00.000-07:00</published><updated>2011-04-08T14:21:48.506-07:00</updated><title type='text'>Setting up Oracle XE locally for your Rails app</title><content type='html'>I recently pushed 'database_initializer.rb' to github @http://github.com/NiranjanSarade/oracle_xe_database_initializer. Please check its README for more information.&lt;br /&gt;&lt;br /&gt;This can be used to set up your schema and other database objects in your local Oracle XE database.  The script assumes that you have following set up on your machine :-&lt;br /&gt;&lt;br /&gt;1. Oracle client&lt;br /&gt;2. activerecord-oracle_enhanced-adapter gem&lt;br /&gt;3. Oracle XE (http://www.oracle.com/technetwork/database/express-edition/downloads/index.html)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-845035073139010937?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/845035073139010937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/setting-up-oracle-xe-locally-for-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/845035073139010937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/845035073139010937'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/04/setting-up-oracle-xe-locally-for-your.html' title='Setting up Oracle XE locally for your Rails app'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-325171510907999330</id><published>2011-03-24T14:04:00.000-07:00</published><updated>2011-03-24T14:05:07.647-07:00</updated><title type='text'>Approach for Oracle view unit testing with Rspec</title><content type='html'>A View in Oracle and in other database systems is simply the representation of a SQL statement (select query). It provides access to a subset of columns from one or more tables.&lt;br /&gt;&lt;br /&gt;In a rails migration, when you incorporate a view definition which represents data from multiple tables with multiple joins and multiple conditions, how will you ensure that the view is fetching the data that it is supposed to fetch? How will you test the view logic?&lt;br /&gt;&lt;br /&gt;And here, Unit Testing plays a very important role. Today, I am going to tell you the simple approach that we can follow for unit testing the view definition with Rspec. &lt;br /&gt;&lt;br /&gt;First, with rails convention, you will create the model class (which maps to the view name) extending ActiveRecord::Base.&lt;br /&gt;You will then set up the test data as you generally set for testing other model methods. (You can use factory_girl or simple model methods)&lt;br /&gt;The purpose is to unit test each and every column data of the view according to the joins and the conditions. It all depends on the view logic that you have written according to your business requirement. The view definition can include decode statements, group by/ order by clauses, oracle aggregator functions e.g. sum, max, etc., function calls from the view sql, if-else logic to name a few. &lt;br /&gt;&lt;br /&gt;With this, you have all the unit level requirement specs ready for your view which you can validate by running your Rspecs. Simple but succinct ! Isn't it ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-325171510907999330?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/325171510907999330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/approach-for-oracle-view-unit-testing_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/325171510907999330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/325171510907999330'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/approach-for-oracle-view-unit-testing_24.html' title='Approach for Oracle view unit testing with Rspec'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5898177474442771602</id><published>2011-03-21T11:50:00.000-07:00</published><updated>2011-03-21T12:21:06.729-07:00</updated><title type='text'>Installing windows platform specific gem libxml-ruby with Bundler</title><content type='html'>I was facing some issue in installing 'libxml-ruby' gem on my windows machine with bundler. The entry in the Gemfile was :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;gem 'libxml-ruby', '1.1.3', :require =&gt; 'libxml'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This works perfect on unix machines, but fails on windows machine (which is my local development platform) during building native libraries.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://rubyinstaller.org/add-ons/devkit/"&gt;DevKit&lt;/a&gt; has already been set up on my machine. So I tried doing gem install first :-&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-xqsFjwSXg08/TYeh_95wdRI/AAAAAAAAAK0/rb9T38Hgb9A/s1600/libxml1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 169px;" src="http://1.bp.blogspot.com/-xqsFjwSXg08/TYeh_95wdRI/AAAAAAAAAK0/rb9T38Hgb9A/s400/libxml1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5586611983097034002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, I mentioned the platform while doing gem install and it worked as below :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;D:\&gt;gem install libxml-ruby -v=1.1.3 --platform x86-mswin32-60&lt;br /&gt;Temporarily enhancing PATH to include DevKit...&lt;br /&gt;Building native extensions.  This could take a while...&lt;br /&gt;Successfully installed libxml-ruby-1.1.3-x86-mswin32-60&lt;br /&gt;1 gem installed&lt;br /&gt;Installing ri documentation for libxml-ruby-1.1.3-x86-mswin32-60...&lt;br /&gt;Installing RDoc documentation for libxml-ruby-1.1.3-x86-mswin32-60...&lt;br /&gt;D:\&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However, with bundle install, it gave the same error on the windows machine : ERROR: Failed to build gem native extension.&lt;br /&gt;I tried specifying Gemfile :platforms option - 'mswin', 'mingw' for Windows platform, but it did not work. &lt;br /&gt;&lt;br /&gt;Finally, the :path parameter rescued me out of the pain. With :path parameter, you can specify that a gem is located in a particular location on the file system. The ':path' option requires that the directory in question either contains a '.gemspec' for the gem, or that you specify an explicit version that bundler should use. So the bundler uses the gem from the source specified in the path and it resolved my issue with installing libxml-ruby gem with bundler on windows machine. The steps that I followed :-&lt;br /&gt;&lt;br /&gt;(1) Download the libxml-ruby-1.1.3-x86-mswin32-60.gem gem from http://rubyforge.org/frs/?group_id=494 and do gem install&lt;br /&gt;OR&lt;br /&gt;gem install libxml-ruby -v=1.1.3 --platform x86-mswin32-60&lt;br /&gt;&lt;br /&gt;(2)From app_root&gt;gem unpack libxml-ruby-1.1.3-x86-mswin32-60&lt;br /&gt;&lt;br /&gt;(3) Gemfile.lock :- &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;gem 'libxml-ruby-1.1.3-x86-mswin32-60', '1.1.3', :require =&gt; 'libxml', :path =&gt; 'vendor/gems/libxml-ruby-1.1.3-x86-mswin32-60'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(4) Now, when you execute bundle install, it will bundle the gem from the source specified in the :path - &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;Using libxml-ruby-1.1.3-x86-mswin32-60 (1.1.3) from source at vendor/gems/libxml-ruby-1.1.3-x86-mswin32-60&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5898177474442771602?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5898177474442771602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/installing-windows-platform-specific.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5898177474442771602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5898177474442771602'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/installing-windows-platform-specific.html' title='Installing windows platform specific gem libxml-ruby with Bundler'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-xqsFjwSXg08/TYeh_95wdRI/AAAAAAAAAK0/rb9T38Hgb9A/s72-c/libxml1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4688251162808979696</id><published>2011-03-16T11:05:00.001-07:00</published><updated>2011-03-16T11:20:34.089-07:00</updated><title type='text'>Moving on to Bundler to manage my Rails 2.3.9 app's gem dependencies</title><content type='html'>Recently I faced some gem dependency issues on one of our servers where we have a good amount of rails applications. (more Rails 2.3.x apps as compared to a couple of Rails 3.0.x apps). (This was a cruise box used by all apps to execute rspecs and generate metric_fu reports after you commit your code - Continuous Integration concept :-)&lt;br /&gt;&lt;br /&gt;My app was using Rails 2.3.9, and due to some reason, I did not get a chance earlier to move my application to use Bundler for managing all the gem dependencies. Finally, I made it :-) &lt;br /&gt;&lt;br /&gt;I followed 2 links  :-&lt;br /&gt;http://gembundler.com/&lt;br /&gt;http://gouravtiwari.blogspot.com/2011/03/bundler-with-rails-222.html&lt;br /&gt;&lt;br /&gt;Since then, I have not faced any gem dependency issues on any of the boxes.&lt;br /&gt;So what are you waiting for ? If you haven't done it till date, do it now ... or you will spend (waste?) time in resolving weird gem dependency issues ... :-)&lt;br /&gt;&lt;br /&gt;A good learning for me !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4688251162808979696?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4688251162808979696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/moving-on-to-bundler-to-manage-my-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4688251162808979696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4688251162808979696'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/moving-on-to-bundler-to-manage-my-rails.html' title='Moving on to Bundler to manage my Rails 2.3.9 app&apos;s gem dependencies'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4274741120784542339</id><published>2011-03-04T08:46:00.001-08:00</published><updated>2011-03-04T09:21:33.076-08:00</updated><title type='text'>Avoid oracle sequence during ActiveRecord model record insert</title><content type='html'>I was writing rspecs for one ActiveRecord model in my project and was connecting to different schema in which the corresponding mapping table was defined. The schema object (tables) definition was a legacy code, what I meant to say is I used the already existing object definition from that schema which was not using oracle sequence. There was no primary key for that table as well.&lt;br /&gt;&lt;br /&gt;I was setting up the data for that table in my rspec using ActiveRecord insert.&lt;br /&gt;&lt;br /&gt;e.g.  AnotherSchema::TableObject.create(:ts =&gt; 123, :proj_code =&gt; "ABC", ...)&lt;br /&gt;    &lt;br /&gt;But, in Rails, when you try to insert the record with ActiveRecord Model, it always looks for a sequence, either a default one (Table_Object_seq) or explicitly defined one with set_sequence_name in the Model class. &lt;br /&gt;&lt;br /&gt;So, it threw error as expected :-&lt;br /&gt;OCIError: ORA-02289: sequence does not exist: select "Table_Object_seq&lt;br /&gt;".nextval id from dual&lt;br /&gt;&lt;br /&gt;I could have defined a sequence on this table only in the test database, but I googled around for a way to avoid oracle sequence in a model and I got this link :-&lt;br /&gt;http://www.dixis.com/?p=127&lt;br /&gt;&lt;br /&gt;I followed the suggestion and it worked for me :-)&lt;br /&gt;&lt;br /&gt;What I did was :-&lt;br /&gt;&lt;br /&gt;Monkeypatching OracleEnhanced Adapter's next_sequence_value method :-&lt;br /&gt;&lt;br /&gt; &lt;iframe src="http://paste.org/pastebin/api/29754" width="100%" frameborder="0" height="250"&gt;Your browser does not support iframes.&lt;/iframe&gt;&lt;br /&gt;and adding set_sequence_name to the Model class :-&lt;br /&gt;&lt;br /&gt;set_sequence_name 'autogenerated'&lt;br /&gt;&lt;br /&gt;It avoided the default oracle sequence look up while inserting new records with Rails ActiveRecord methods which solved my problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4274741120784542339?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4274741120784542339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/avoid-oracle-sequence-during.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4274741120784542339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4274741120784542339'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/03/avoid-oracle-sequence-during.html' title='Avoid oracle sequence during ActiveRecord model record insert'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2850066190111737704</id><published>2011-02-28T08:37:00.000-08:00</published><updated>2011-02-28T08:41:43.572-08:00</updated><title type='text'>Fantastic photography</title><content type='html'>Sharing few fantastic photographs that my wife forwarded to me ... Enjoy !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-QC32x0FfqvI/TWvQBao1pvI/AAAAAAAAAKs/hsucAB-_slo/s1600/6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/-QC32x0FfqvI/TWvQBao1pvI/AAAAAAAAAKs/hsucAB-_slo/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578781286177548018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-pX6S2d41b7E/TWvP-7NDkMI/AAAAAAAAAKk/SThuJhPUDvQ/s1600/5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://4.bp.blogspot.com/-pX6S2d41b7E/TWvP-7NDkMI/AAAAAAAAAKk/SThuJhPUDvQ/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578781243379781826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-aCWX8jajDy0/TWvP79idY8I/AAAAAAAAAKc/cketlD1aq1o/s1600/4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://2.bp.blogspot.com/-aCWX8jajDy0/TWvP79idY8I/AAAAAAAAAKc/cketlD1aq1o/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578781192466817986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-trLBakU6S5k/TWvP40emZ3I/AAAAAAAAAKU/hlIvBYIQEJI/s1600/3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 364px;" src="http://3.bp.blogspot.com/-trLBakU6S5k/TWvP40emZ3I/AAAAAAAAAKU/hlIvBYIQEJI/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578781138495104882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-klfmKNKibrs/TWvP1v8YhcI/AAAAAAAAAKM/cvJ65-Qdles/s1600/2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 301px; height: 400px;" src="http://4.bp.blogspot.com/-klfmKNKibrs/TWvP1v8YhcI/AAAAAAAAAKM/cvJ65-Qdles/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578781085738239426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-8lCF8bHuP0Q/TWvPv9qfT0I/AAAAAAAAAKE/zjIlljc6pzY/s1600/1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-8lCF8bHuP0Q/TWvPv9qfT0I/AAAAAAAAAKE/zjIlljc6pzY/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5578780986342068034" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2850066190111737704?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2850066190111737704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/fantastic-photography.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2850066190111737704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2850066190111737704'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/fantastic-photography.html' title='Fantastic photography'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-QC32x0FfqvI/TWvQBao1pvI/AAAAAAAAAKs/hsucAB-_slo/s72-c/6.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5172701489963932893</id><published>2011-02-16T09:25:00.000-08:00</published><updated>2011-02-17T13:41:10.557-08:00</updated><title type='text'>Speech by Shankar Abhyakar on Veer Savarkar</title><content type='html'>Few days ago, I listened to a great speech series (in Marathi language) given by Vidyavachaspati Shankar Abhyankar on Swatantryaveer Vinayak Damodar Savarkar. (http://www.savarkar.org/en/audio)&lt;br /&gt;&lt;br /&gt;I have always admired greatness of Savarkar. He was a fearless freedom fighter, social reformer, writer, dramatist, poet, historian, political leader and philosopher to name a few. After listening to the speech, my respect about him got multiplied by thousand times. A good amount of information about Veer Savarkar and some of his books are made available at http://www.savarkar.org/ in both Marathi and English languages. Please read and get inspired ! &lt;br /&gt;&lt;br /&gt;Vande Mataram !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5172701489963932893?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5172701489963932893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/speech-by-shankar-abhyakar-on-veer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5172701489963932893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5172701489963932893'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/speech-by-shankar-abhyakar-on-veer.html' title='Speech by Shankar Abhyakar on Veer Savarkar'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1493440531910813736</id><published>2011-02-12T07:24:00.000-08:00</published><updated>2011-02-14T19:34:22.265-08:00</updated><title type='text'>Do you really need a Code Beautifier ?</title><content type='html'>A food of thought! As a good developer, do you really need a Code Beautifier?&lt;br /&gt;&lt;br /&gt;This thought came to my mind when I was reviewing my friend's code which was not properly intended for whatever reason and appeared to me as if scribbled on a paper. Soon I got frustrated comprehending the code with my brain muscles stretching out beyond their limits. When I asked the reason behind improper indentation, I got an answer (rather a question) - Do we have a good code beautifier which would properly intend the code without human intervention? That was an unexpected answer to me. There are certainly a lot of paid and open source code beautifier tools available, but do we really need them when we write a code?  &lt;br /&gt;&lt;br /&gt;Why can't we make it a good practice to properly intend the code when we write? Almost all IDEs provide good facility to have proper indentation and formatting. Why am I emphasizing so much on this? In my opinion, a good readable and logically structured code is necessary not merely for outlook. It actually reflects your mind - your attitude, discipline and neatness. This also brings a very important aspect when you are collaborating amongst your development team. &lt;br /&gt;&lt;br /&gt;Yes, when you download a third party code and if that code is not properly formatted, then the code beautifier tools play a good role in making the code clean and readable. The code beautifiers are meant for existing ugly code faces, they are not meant for fresh development! &lt;br /&gt;&lt;br /&gt;The ultimate message is - whenever you are creating something, be it a code or anything... make it always beautiful .... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1493440531910813736?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1493440531910813736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/do-you-really-need-code-beautifier.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1493440531910813736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1493440531910813736'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/02/do-you-really-need-code-beautifier.html' title='Do you really need a Code Beautifier ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5102366653525572824</id><published>2011-01-05T10:50:00.001-08:00</published><updated>2011-01-05T10:59:23.835-08:00</updated><title type='text'>Going crazy with to_proc - A nice post by Iain Hecker</title><content type='html'>In my project, I was trying to pass an argument to my object's method being called as &amp;:symbol_name in the collect method of an Array.&lt;br /&gt;&lt;br /&gt;I googled to find whether any one has faced this before and I found a very nice post by Iain Hecker - http://iain.nl/2010/02/going-crazy-with-to_proc/&lt;br /&gt;&lt;br /&gt;With his implementation, I was able to solve my problem. Thanks Iain !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5102366653525572824?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5102366653525572824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2011/01/going-crazy-with-toproc-nice-post-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5102366653525572824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5102366653525572824'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2011/01/going-crazy-with-toproc-nice-post-by.html' title='Going crazy with to_proc - A nice post by Iain Hecker'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-9200854314659679393</id><published>2010-12-22T11:13:00.000-08:00</published><updated>2010-12-22T11:46:30.333-08:00</updated><title type='text'>It's time to REWORK !</title><content type='html'>A couple of weeks ago, while I was talking to my colleague &lt;a href="http://gouravtiwari.blogspot.com/"&gt;Gourav&lt;/a&gt; in his team room, a book lying on his desk caught my eye. The front cover image of a crumpled paper and the title of the book - &lt;a href="http://37signals.com/rework/"&gt;REWORK&lt;/a&gt; - sounded interesting to me. I asked my friend whether I could borrow that book for some days from him and as expected, he happily agreed :-)&lt;br /&gt;Thanks Gourav for this beautiful book !&lt;br /&gt;&lt;br /&gt;The book has been written by Jason Fried and David Hansson, the founders of &lt;a href="http://37signals.com/"&gt;37signals&lt;/a&gt;. (the authors say the book is a by-product :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OmmzqBBD1U/TRJPXIbtAZI/AAAAAAAAAJ0/eVmPvI5IlF0/s1600/rework.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 292px; height: 400px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/TRJPXIbtAZI/AAAAAAAAAJ0/eVmPvI5IlF0/s400/rework.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5553588549320507794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can read through any chapter of this book and you will feel like - yes, this is how it should be ... The authors speak the truth as it emerges from their practical and sound business experience. As the book review says, you do not need to be a workaholic, you do not need to staff up, you do not need to waste time on paperwork or meetings, etc. ... Those are all just excuses. What you really need to do is stop talking and start working.&lt;br /&gt;&lt;br /&gt;The authors touch various aspects in running a successful business such as productivity, progress, competitors, promotion, hiring, damage control, culture, etc. They conclude the book with a chapter - 'Inspiration is perishable.' I am tempted to share some part of this chapter as I liked it the most.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"We all have ideas. Ideas are immortal. They last forever.&lt;br /&gt;&lt;br /&gt;What doesn't last forever is inspiration. Inspiration is like fresh fruit or milk. It has an expiration date.&lt;br /&gt;&lt;br /&gt;If you want to do something, you've got to do it now. You can't put it on a shelf and wait two months to get around to it. You can't just say you'll do it later. Later, you won't be pumped up about it anymore.&lt;br /&gt;&lt;br /&gt;Inspiration is a magical thing, a productivity multiplier, a motivator. But it won't wait for you. Inspiration is a now thing. If it grabs you, grab it right back and put it to work."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hmm ... worth reading this book my friends !&lt;br /&gt;Ohh ... have you already started googling around this book name ? ... That's what I anticipate from whoever has not read this book before :-)&lt;br /&gt;&lt;br /&gt;Enjoy reading ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-9200854314659679393?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/9200854314659679393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/its-time-to-rework.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9200854314659679393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9200854314659679393'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/its-time-to-rework.html' title='It&apos;s time to REWORK !'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_3OmmzqBBD1U/TRJPXIbtAZI/AAAAAAAAAJ0/eVmPvI5IlF0/s72-c/rework.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5737492557920927067</id><published>2010-12-21T18:19:00.000-08:00</published><updated>2010-12-21T19:17:58.866-08:00</updated><title type='text'>My first Android app with Rhodes</title><content type='html'>Few days back, I attended a free online course on 'Develop Mobile apps on Android phones with &lt;a href="http://rhomobile.com/products/rhodes/"&gt;Rhodes&lt;/a&gt;'. The course was made available on &lt;a href="http://www.rubylearning.org/class/"&gt;RubyLearning.org&lt;/a&gt; by Ruby mentor and evangelist &lt;a href="http://satishtalim.com/"&gt;Satish Talim&lt;/a&gt;. Though it was a very basic course, I got a good hands on the Rhodes framework. Good learning for me ! :-)&lt;br /&gt;&lt;br /&gt;I am not going to list down the steps for building this sample app as these are very well explained in the online course by Satish Talim. Similar steps are also available at &lt;a href="http://rhohub.com/"&gt;Rhohub&lt;/a&gt; and Rhodes sites under documentation. So I would request everyone who is interested to learn Rhodes to attend this course. It is definitely a good beginning.&lt;br /&gt;&lt;br /&gt;The app that I created was a simple Contact app where you can enter Contact's name, email, phone and country and can perform CRUD operations on the Contact model. I pushed my app to Rhohub via Git. This is snapshot of my app on Android emulator :-&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_3OmmzqBBD1U/TRFpWwQ4LoI/AAAAAAAAAJs/s-12AtIhlZo/s1600/android.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/TRFpWwQ4LoI/AAAAAAAAAJs/s-12AtIhlZo/s400/android.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5553335655158263426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks good and simple ! Isn't it? Planning to try some advance things with Rhodes now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5737492557920927067?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5737492557920927067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/my-first-android-app-with-rhodes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5737492557920927067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5737492557920927067'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/my-first-android-app-with-rhodes.html' title='My first Android app with Rhodes'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/TRFpWwQ4LoI/AAAAAAAAAJs/s-12AtIhlZo/s72-c/android.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5398602433607238102</id><published>2010-12-07T11:51:00.000-08:00</published><updated>2010-12-07T12:32:08.787-08:00</updated><title type='text'>The Secret book by Rhonda Byrne</title><content type='html'>Another good book that I read few days ago! Thanks to my friend Swati Desai for gifting me this wonderful book which talks about spreading only positive thoughts and energy into the Universe. The book reminded me of the famous Alchemist quote :- "When a person really desires something, all the universe conspires to help that person to realize his dream." &lt;br /&gt;&lt;br /&gt;As the book says, the negative thought gets only multiplied in your mind. It is true. When you have a negative thought about a person or his behavior, you will notice it really gets multiplied. You tend to think more negative things about the person which never existed before in your mind about that person. It is of no use to your state of mind and also to the person who you are thinking about. You start to attract your dominant thoughts. You spoil your own life.&lt;br /&gt;&lt;br /&gt;Instead why not try to inculcate positive thoughts into our mind? The thoughts full of positive energy, positive attitude and positive beliefs ! As the book says, happy and positive feelings will attract more happy and positive circumstances. It costs zero money from your pocket.  &lt;br /&gt;&lt;br /&gt;Hmm... it's time to act on it now!&lt;br /&gt;&lt;br /&gt;This is the official website of The Secret :- http://www.thesecret.tv/&lt;br /&gt;&lt;br /&gt;I have signed up for the the Secret Scrolls on this site. Have you ?&lt;br /&gt;&lt;br /&gt;Enjoy reading ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5398602433607238102?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5398602433607238102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/secret-book-by-rhonda-byrne.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5398602433607238102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5398602433607238102'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/secret-book-by-rhonda-byrne.html' title='The Secret book by Rhonda Byrne'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4986824864267624997</id><published>2010-12-01T09:06:00.001-08:00</published><updated>2010-12-01T09:23:51.971-08:00</updated><title type='text'>The Passionate Programmer by Chad Fowler</title><content type='html'>At the outset I would like to thank my colleague &lt;a href="http://rubyizednrailified.blogspot.com/"&gt;Amit Kumar&lt;/a&gt; who gave me 'The Passionate Programmer' book to read. When he handed over the book to me, he said - "Do not only read, but try to implement as well !" That's really true Amit. &lt;br /&gt;&lt;br /&gt;While I was going through the chapters, I found that there are many small things that we can begin to implement to make a remarkable career in software development as the book title says. I liked the way Chad has correlated his musical experience with the software development career smoothly. You really enjoy and learn a lot while reading this book. It is a sort of introspection for yourself.&lt;br /&gt;&lt;br /&gt;Please also read :-&lt;br /&gt;http://pragdave.blogs.pragprog.com/pragdave/2009/05/the-passionate-programmer.html&lt;br /&gt;&lt;br /&gt;I plan to implement some concepts/thoughts from this great book ! :-)&lt;br /&gt;&lt;br /&gt;Enjoy reading !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4986824864267624997?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4986824864267624997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/passionate-programmer-by-chad-fowler.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4986824864267624997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4986824864267624997'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/12/passionate-programmer-by-chad-fowler.html' title='The Passionate Programmer by Chad Fowler'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6753437980931568842</id><published>2010-11-29T12:41:00.000-08:00</published><updated>2010-11-29T13:02:02.724-08:00</updated><title type='text'>jQuery UI Multiselect</title><content type='html'>There was one requirement of selecting multiple values for an attribute in my project and I was searching for some fancy but simple to use multiselect UI widget which will allow the user to select/drag drop multiple values from the panel of available items to the panel of selected items. &lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://quasipartikel.at/multiselect/"&gt;jQuery UI Multiselect&lt;/a&gt; and was able to use that in my project within a very short time. It is really easy to use and provides some good features like :-&lt;br /&gt;&lt;br /&gt;    - Search within available options&lt;br /&gt;    - Displaying count of selected and available items&lt;br /&gt;    - Select All / Deselect All links&lt;br /&gt;    - Dragging items from the available list to the selected list directly&lt;br /&gt;&lt;br /&gt;You can configure the multiselect widget with options like sortable, searchable, dividerLocation for the panel width division, etc.&lt;br /&gt;&lt;br /&gt;I personally liked the look and feel and the functionality of this ui widget !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6753437980931568842?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6753437980931568842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/11/there-was-one-requirement-of-selecting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6753437980931568842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6753437980931568842'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/11/there-was-one-requirement-of-selecting.html' title='jQuery UI Multiselect'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2402364837592816737</id><published>2010-11-03T20:48:00.000-07:00</published><updated>2010-11-03T20:57:45.054-07:00</updated><title type='text'>The Oscar Wilde Collection</title><content type='html'>Here is a link to the collection of Oscar Wilde's stories, poems and plays. &lt;br /&gt;&lt;br /&gt;http://www.oscarwildecollection.com/&lt;br /&gt;&lt;br /&gt;'The Picture of Dorian Gray' is the best I think.&lt;br /&gt;&lt;br /&gt;Enjoy reading !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2402364837592816737?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2402364837592816737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/11/oscar-wilde-collection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2402364837592816737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2402364837592816737'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/11/oscar-wilde-collection.html' title='The Oscar Wilde Collection'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3265244499281448541</id><published>2010-10-23T08:24:00.000-07:00</published><updated>2010-10-23T08:43:09.432-07:00</updated><title type='text'>Who will cry when you die by Robin Sharma</title><content type='html'>I recently read 'Who will cry when you die?' book written by Robin Sharma - the author of the best seller 'The Monk who sold his Ferrari'. The book is a collection of 101 life lessons explained in a very short but succinct manner. Even if we practice only some of these lessons in our day to day life, it will certainly enrich the quality of our personal and professional life. Listing some of the lessons that I liked the most:-&lt;br /&gt;&lt;br /&gt;- Start Your Day Well&lt;br /&gt;- Talk to Yourself&lt;br /&gt;- Remember, Genius Is 99 Percent Inspiration&lt;br /&gt;- Get Up Early&lt;br /&gt;- Laugh More&lt;br /&gt;- Spend a Day Without Your Watch&lt;br /&gt;- Take More Risks&lt;br /&gt;- Live a Life&lt;br /&gt;- Always Carry a Book with You&lt;br /&gt;- Enjoy the Path, Not Just the Reward&lt;br /&gt;- Get Good at Asking&lt;br /&gt;- Connect with Nature&lt;br /&gt;- Use Your Commute Time&lt;br /&gt;- Get Serious About Setting Goals&lt;br /&gt;- Walk in the Woods&lt;br /&gt;- Listen to Music Daily&lt;br /&gt;- Learn to Meditate&lt;br /&gt;- Stop Complaining and Start Living&lt;br /&gt;- See Your Day as Your Life&lt;br /&gt;- Be Humble&lt;br /&gt;- Don’t Finish Every Book You Start&lt;br /&gt;- Sleep Less&lt;br /&gt;- Learn How to Walk&lt;br /&gt;- Plant a Tree&lt;br /&gt;- Be an Adventurer&lt;br /&gt;- Respect Your Instincts&lt;br /&gt;- Love Your Work&lt;br /&gt;&lt;br /&gt;Enjoy reading !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3265244499281448541?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3265244499281448541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/who-will-cry-when-you-die-by-robin.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3265244499281448541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3265244499281448541'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/who-will-cry-when-you-die-by-robin.html' title='Who will cry when you die by Robin Sharma'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1292232159125118143</id><published>2010-10-19T08:04:00.000-07:00</published><updated>2010-10-19T08:12:04.710-07:00</updated><title type='text'>The right perspective</title><content type='html'>I must thank my friend Sudhir Bangera for sending this very nice story to begin with my day of work. It's actually a food of thought for all ... Sharing the same.&lt;br /&gt;&lt;br /&gt;Two brothers grew up in an orphanage. The warden of the institution was a pesky fellow, who would often say terrible things to the children.&lt;br /&gt;&lt;br /&gt;Years passed. The little boys grew up to become fine young men, and in time got married and had families of their own.&lt;br /&gt;&lt;br /&gt;The elder brother grew up to become bad tempered and gave his family lot of grief. The younger brother, however, turned out to be a good parent and husband. He was successful both in his professional and personal life. People who knew them would express surprise over how the two brothers were so different from each other, in spite of facing the same circumstances while growing up.&lt;br /&gt;&lt;br /&gt;The elder brother would say, “The warden, whom we all looked upon as almost a father,  set us a bad example. I had no one to guide me, so I couldn’t help but turn out the way he was. It’s not my fault, I have become like him because of my circumstances.”&lt;br /&gt;&lt;br /&gt;And, the younger brother would say, “The warden never taught me good values or behavior. But growing up, I made a promise to myself, to hold him as an example of what not to be and to make sure that I don’t to do the things he did.”&lt;br /&gt;&lt;br /&gt;How many times have we blamed our failures over bad circumstances or rotten luck? True success and happiness comes from making the best out of a bad situation and looking at things with the right perspective. Look at the brighter side of situations ...&lt;br /&gt;&lt;br /&gt;Have a thoughtful day ahead ! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1292232159125118143?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1292232159125118143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/right-perspective.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1292232159125118143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1292232159125118143'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/right-perspective.html' title='The right perspective'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-9096789551776350558</id><published>2010-10-17T10:26:00.000-07:00</published><updated>2010-10-17T10:47:28.615-07:00</updated><title type='text'>Panoramic view of Naigara falls</title><content type='html'>Sharing some beautiful snaps of Naigara falls that I have tried to capture in my small camera... Enjoy !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_3OmmzqBBD1U/TLszkJbBA5I/AAAAAAAAAI8/y6BYg4ZbTmw/s1600/Usa+081.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/TLszkJbBA5I/AAAAAAAAAI8/y6BYg4ZbTmw/s400/Usa+081.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529069663624954770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs0vu5dI8I/AAAAAAAAAJE/1h-An9slJQA/s1600/Usa+079.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs0vu5dI8I/AAAAAAAAAJE/1h-An9slJQA/s400/Usa+079.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529070962174927810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLs1R7Jj7YI/AAAAAAAAAJM/ZdaXkiIQTbs/s1600/Usa+104.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLs1R7Jj7YI/AAAAAAAAAJM/ZdaXkiIQTbs/s400/Usa+104.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529071549579259266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs1qTnmnUI/AAAAAAAAAJU/WHfEeIHtKmU/s1600/Usa+107.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs1qTnmnUI/AAAAAAAAAJU/WHfEeIHtKmU/s400/Usa+107.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529071968464575810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs13NC_ajI/AAAAAAAAAJc/Lfza8z6f0gc/s1600/Usa+083.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLs13NC_ajI/AAAAAAAAAJc/Lfza8z6f0gc/s400/Usa+083.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529072190038698546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OmmzqBBD1U/TLs1-fIDyPI/AAAAAAAAAJk/VgkG9AvxZCA/s1600/Usa+084.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/TLs1-fIDyPI/AAAAAAAAAJk/VgkG9AvxZCA/s400/Usa+084.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5529072315150878962" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-9096789551776350558?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/9096789551776350558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/panoramic-view-of-naigara-falls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9096789551776350558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9096789551776350558'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/panoramic-view-of-naigara-falls.html' title='Panoramic view of Naigara falls'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/TLszkJbBA5I/AAAAAAAAAI8/y6BYg4ZbTmw/s72-c/Usa+081.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8648200908168148656</id><published>2010-10-16T17:38:00.000-07:00</published><updated>2010-10-16T18:00:27.173-07:00</updated><title type='text'>Mount Washington photos</title><content type='html'>On October 2, 2010, my wife and I visited Mount Washington (New Hampshire) along with my friends. Mt. Washington is the highest peak in the Northeastern United States. (6288 ft). It was a wonderful experience that can not be expressed in the words. I have tried to capture the nature's beauty in my camera! Sharing some photos...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLpIR2ZN3gI/AAAAAAAAAIU/yLx4W-fslGs/s1600/Usa+268.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TLpIR2ZN3gI/AAAAAAAAAIU/yLx4W-fslGs/s400/Usa+268.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5528810964046962178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpIvMTXVPI/AAAAAAAAAIc/UgcRHbXx6eU/s1600/Usa+281.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpIvMTXVPI/AAAAAAAAAIc/UgcRHbXx6eU/s400/Usa+281.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5528811468144202994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_3OmmzqBBD1U/TLpI9VZFeKI/AAAAAAAAAIk/158OpQqiOrY/s1600/Usa+274.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/TLpI9VZFeKI/AAAAAAAAAIk/158OpQqiOrY/s400/Usa+274.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5528811711102285986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpJJe-292I/AAAAAAAAAIs/_GFtIOcn1K0/s1600/Usa+264.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpJJe-292I/AAAAAAAAAIs/_GFtIOcn1K0/s400/Usa+264.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5528811919835068258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpKGVTmcnI/AAAAAAAAAI0/Z7HLsW3si2E/s1600/Usa+267.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TLpKGVTmcnI/AAAAAAAAAI0/Z7HLsW3si2E/s400/Usa+267.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5528812965209731698" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8648200908168148656?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8648200908168148656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/mount-washington-photos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8648200908168148656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8648200908168148656'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/mount-washington-photos.html' title='Mount Washington photos'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3OmmzqBBD1U/TLpIR2ZN3gI/AAAAAAAAAIU/yLx4W-fslGs/s72-c/Usa+268.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7440000326104761011</id><published>2010-10-15T09:37:00.000-07:00</published><updated>2010-10-15T09:51:57.379-07:00</updated><title type='text'>We do not have enough time to improve ?</title><content type='html'>I was reading a book - 'Who will cry when you die?' by Robin Sharma and came across a very nice and thought provoking quote by him :-&lt;br /&gt;&lt;br /&gt;"Saying that you don't have time to improve your thoughts and your life is like saying you don't have time to stop for gas because you are too busy driving. Eventually it will catch up with you."&lt;br /&gt;&lt;br /&gt;I am sure reading this quote must have started a thought cycle in your mind !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7440000326104761011?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7440000326104761011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/we-do-not-have-enough-time-to-improve.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7440000326104761011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7440000326104761011'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/we-do-not-have-enough-time-to-improve.html' title='We do not have enough time to improve ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-86230104130946784</id><published>2010-10-11T08:34:00.001-07:00</published><updated>2010-10-11T16:44:38.985-07:00</updated><title type='text'>Analyze your app performance with newrelic_rpm</title><content type='html'>I used newrelic_rpm(2.13.1) (http://www.newrelic.com/) - Ruby performance management system in my rails application to find out the performance bottlenecks and it helped me a lot.&lt;br /&gt;&lt;br /&gt;First, it took me only 2 minutes to set up newrelic into my application. Second, the detailed level of information that it provided helped me to debug at granular level starting from sql query execution time to individual template load time. I also liked the Pie chart representation of the analysis.&lt;br /&gt;&lt;br /&gt;Here are the installation steps :-&lt;br /&gt;http://support.newrelic.com/faqs/docs/ruby-agent-installation&lt;br /&gt;&lt;br /&gt;Readme doc :-&lt;br /&gt;http://github.com/newrelic/rpm/blob/master/README.rdoc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-86230104130946784?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/86230104130946784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/analyze-your-app-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/86230104130946784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/86230104130946784'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/10/analyze-your-app-performance.html' title='Analyze your app performance with newrelic_rpm'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1016769951939976462</id><published>2010-09-30T12:52:00.000-07:00</published><updated>2010-10-04T14:23:45.286-07:00</updated><title type='text'>Moving rails app from 2.3.5 to 2.3.9</title><content type='html'>In my last post, at the end, I mentioned about migrating my rails app from version 2.3.5 to 2.3.9 for making it more closer to rails 3.0. I worked on the same and it went well. I localized rack-1.1.0 version as rails 2.3.9 has this dependency. Most of the steps that I followed were similar to my earlier post except the change in version number.&lt;br /&gt;&lt;br /&gt;Listing the deprecation warnings that need to be fixed that I received during the migration :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(1)&lt;/span&gt; DEPRECATION WARNING: Giving :session_key to SessionStore is deprecated, please &lt;br /&gt;use :key instead. (called from new at app_root/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb:72)&lt;br /&gt;&lt;br /&gt;Change :session_key to :key in environment.rb file :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt; config.action_controller.session = {&lt;br /&gt;    :key =&gt; '_radar_session',&lt;br /&gt;    :secret      =&gt; '271c2f352da72.....'&lt;br /&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(2)&lt;/span&gt; DEPRECATION WARNING: config.load_paths is deprecated and removed in Rails 3, please use autoload_paths instead&lt;br /&gt;&lt;br /&gt;Change in the environment.rb file :-&lt;br /&gt;&lt;br /&gt;From config.load_paths to config.autoload_paths&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(3)&lt;/span&gt; DEPRECATION WARNING: Date#last_month is deprecated and has been removed in Rails 3, please use Date#prev_month instead. (called from ./spec/models/my_model_name_spec.rb:10)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(4)&lt;/span&gt; DEPRECATION WARNING: Time#last_month is deprecated and has been removed in Rails 3, please use Time#prev_month instead. (called from ./spec/models/my_model_name_spec.rb:41)&lt;br /&gt;&lt;br /&gt;Here are the actual changes in rails 2.3.9 :-&lt;br /&gt;app_root\vendor\rails\activesupport\lib\active_support\core_ext\date\calculations.rb&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(5)&lt;/span&gt; DEPRECATION WARNING: Rake tasks in vendor/plugins/xss_terminate/tasks are deprecated. Use lib/tasks instead. (called from app_root/vendor/rails/railties/lib/tasks/rails.rb:10)&lt;br /&gt;&lt;br /&gt;Move the tasks folder inside the lib folder of the plugin directory and the deprecation warning should go away. But you may need to change some require file paths according to new placement of tasks folder. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(6)&lt;/span&gt; DEPRECATION WARNING: Object#returning has been deprecated in favor of Object#tap. (called from helper at app_root/vendor/gems/rspec-rails-1.3.0/lib/spec/rails/example/helper_example_group.rb:59)&lt;br /&gt;&lt;br /&gt;I googled around for this deprecation warning and found some useful articles. Sharing one of those articles :- &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Upgrading to Rails 3: Beware of the Object#tap pattern&lt;br /&gt;http://feeds.simonecarletti.com/simonecarletti/en&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I also tried with rspec-rails-1.3.2 gem, but it also threw same deprecation warning. So I just opened the corresponding class and extended the implementation as :-&lt;br /&gt;&lt;br /&gt;From&lt;br /&gt;&lt;span style="font-style:italic;"&gt;@helper_object ||= returning HelperObject.new do |helper_object|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To&lt;br /&gt;&lt;span style="font-style:italic;"&gt;@helper_object ||= HelperObject.new.tap do |helper_object|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I made similar change for app_root\vendor\gems\rspec-rails-1.3.0\lib\spec\rails\mocks.rb :-&lt;br /&gt;&lt;br /&gt;From&lt;br /&gt;&lt;span style="font-style:italic;"&gt;returning model_class.new do |model|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To&lt;br /&gt;&lt;span style="font-style:italic;"&gt;model_class.new.tap do |model|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, I am much closer to moving my app to Rails 3.0 version :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1016769951939976462?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1016769951939976462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/moving-rails-app-from-235-to-239.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1016769951939976462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1016769951939976462'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/moving-rails-app-from-235-to-239.html' title='Moving rails app from 2.3.5 to 2.3.9'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1929265645857224798</id><published>2010-09-28T12:31:00.001-07:00</published><updated>2010-10-04T14:19:29.509-07:00</updated><title type='text'>Migrating rails app from 2.2.2 to 2.3.5</title><content type='html'>I recently migrated my rails app from rails version 2.2.2 to 2.3.5. I enjoyed the work as it was a good learning for me. Listing the steps that I followed and some issues that I faced during the migration.&lt;br /&gt;&lt;br /&gt;Gems installed on my windows machine :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;mongrel (1.1.5 x86-mingw32)&lt;br /&gt;rake (0.8.7)&lt;br /&gt;rack (1.0.1)&lt;br /&gt;rubygems-update (1.3.7)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(1)&lt;/span&gt; I installed rails :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;gem install rails -v=2.3.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(2)&lt;/span&gt; Deleted rails folder (2.2.2) from app/vendor.&lt;br /&gt;&lt;br /&gt;environment.rb file - &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Go to the project root and execute :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;rake rails:update --trace&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It will update some js files and also renames application.rb to application_controller.rb&lt;br /&gt;&lt;br /&gt;** Invoke rails:update (first_time)&lt;br /&gt;** Invoke rails:update:scripts (first_time)&lt;br /&gt;** Execute rails:update:scripts&lt;br /&gt;** Invoke rails:update:javascripts (first_time)&lt;br /&gt;** Execute rails:update:javascripts&lt;br /&gt;** Invoke rails:update:configs (first_time)&lt;br /&gt;** Execute rails:update:configs&lt;br /&gt;** Invoke rails:update:application_controller (first_time)&lt;br /&gt;** Execute rails:update:application_controller&lt;br /&gt;app_root/app/controllers/application.rb has been renamed to app_root/app/controllers/application_controller.rb, update your SCM as necessary&lt;br /&gt;** Execute rails:update&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(3)&lt;/span&gt; Rename application_spec.rb to application_controller_spec.rb&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(4)&lt;/span&gt; Localize rails version into the app.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;rake rails:freeze:gems&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(5)&lt;/span&gt; I was having rspec(1.2.3) and rspec-rails(1.2.3) plugins which I removed and installed rspec(1.3.0) and rspec-rails(1.3.0) gems instead and then localized in the app/vendor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;gem install rspec -v 1.3.0&lt;br /&gt;gem install rspec-rails -v 1.3.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;environment.rb file :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;config.gem "rack", :version =&gt; "1.0.1"&lt;br /&gt;config.gem "rspec-rails", :lib =&gt; false, :version =&gt; "&gt;= 1.3.0"&lt;br /&gt;config.gem "rspec", :lib =&gt; false, :version =&gt; "&gt;= 1.3.0"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Go to the project root and execute :-&lt;br /&gt;&lt;span style="font-style:italic;"&gt;rake gems:unpack&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(6)&lt;/span&gt; I kept a copy of my customized spec/spec_helper.rb file because I wanted to run "ruby script/generate rspec" for upgrading rspec-rails in the app which overwrites these three files :-&lt;br /&gt;&lt;br /&gt;  * spec/spec.opts&lt;br /&gt;  * spec/rcov.opts&lt;br /&gt;  * spec/spec_helper.rb&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(7)&lt;/span&gt; While running the specs, I got flash.now[:message] specs failing. &lt;br /&gt;&lt;br /&gt;I added following in the spec/spec_helper.rb file to fix the issue with that spec.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;module DisableFlashSweeping&lt;br /&gt;  def sweep&lt;br /&gt;  end&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;module EnableFlashSweeping&lt;br /&gt;  def sweep&lt;br /&gt;    keys.each do |k|&lt;br /&gt;      unless @used[k]&lt;br /&gt;         use(k)&lt;br /&gt;      else&lt;br /&gt;         delete(k)&lt;br /&gt;         @used.delete(k)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;        # clean up after keys that could have been left over by calling reject! or shift on the flash&lt;br /&gt;        (@used.keys - keys).each{ |k| @used.delete(k) }&lt;br /&gt;  end&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And I used the calls in the spec before the action as :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;it 'should retain the flash message only for the current request' do&lt;br /&gt;    controller.instance_eval { flash.extend(DisableFlashSweeping) }&lt;br /&gt;    post :create, :work_loc =&gt; {:country =&gt; "India", :state =&gt; "Maharashtra"}  &lt;br /&gt;    response.should be_success&lt;br /&gt;    flash[:message].should == "Error in Loc mapping!"&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;(8)&lt;/span&gt; I changed in rspec from &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;response.should render_template(:states)&lt;/span&gt;  '&lt;br /&gt;TO&lt;br /&gt;&lt;span style="font-style:italic;"&gt;controller.should_receive(:render).with(:partial =&gt; 'states')&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(9)&lt;/span&gt; Changed response.headers["Status"] to response.status in some of the controller specs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(10)&lt;/span&gt; I got one deprecation warning about formatted_url :-&lt;br /&gt;&lt;br /&gt;DEPRECATION WARNING: formatted_action_name_controller_name_url() has been deprecated. Please pass format to the standard action_name_controller_name_url method instead.. &lt;br /&gt;&lt;br /&gt;So changed :action from &lt;br /&gt;&lt;span style="font-style:italic;"&gt;:action =&gt; formatted_action_name_controller_name_url('js')&lt;/span&gt;&lt;br /&gt;to&lt;br /&gt;&lt;span style="font-style:italic;"&gt;:action =&gt; action_name_controller_name_url(:format =&gt; 'js')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, along with the rspecs, my app is looking good with rails 2.3.5&lt;br /&gt;&lt;br /&gt;Planning to go ahead with migrating to 2.3.9 to make the app more closer to Rails 3.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1929265645857224798?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1929265645857224798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/migrating-rails-app-from-222-to-235.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1929265645857224798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1929265645857224798'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/migrating-rails-app-from-222-to-235.html' title='Migrating rails app from 2.2.2 to 2.3.5'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4181956511764752543</id><published>2010-09-21T08:00:00.000-07:00</published><updated>2010-09-21T08:09:52.706-07:00</updated><title type='text'>The Last Lecture by Randy Pausch</title><content type='html'>Today I received an email from my uncle about The Last Lecture by Randy Pausch. I was wondering why I did not get this email from anyone else before as it seems a quite old email. It's ok ! The important thing is I got a chance to read Randy's simple but succinct view points about life. I can not resist myself to share those with all.&lt;br /&gt;----&lt;br /&gt;On September 18, 2007, Carnegie Mellon professor and alumnus Randy Pausch delivered a one-of-a-kind last lecture that made the world stop and pay attention. It became an Internet sensation viewed by millions, an international media story, and a best-selling book "The Last Lecture" that has been published in 35 languages. To this day, people everywhere continue to talk about Randy, share his message and put his life lessons into action in their own lives. &lt;br /&gt;&lt;br /&gt;In a letter to his wife Jai and his children, Dylan, Logan , and Chloe, he wrote this beautiful "guide to a better life" for his wife and children to follow. May you be blessed by his insight. &lt;br /&gt;&lt;br /&gt;POINTS ON HOW TO IMPROVE YOUR LIFE &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Personality:&lt;/span&gt;&lt;br /&gt;1. Don't compare your life to others'. You have no idea what their journey is all about.&lt;br /&gt;2. Don't have negative thoughts of things you cannot control. Instead invest your energy in the positive present moment &lt;br /&gt;3. Don't over do; keep your limits &lt;br /&gt;4. Don't take yourself so seriously; no one else does &lt;br /&gt;5. Don't waste your precious energy on gossip &lt;br /&gt;6. Dream more while you are awake &lt;br /&gt;7. Envy is a waste of time. You already have all you need..&lt;br /&gt;8. Forget issues of the past. Don't remind your partner of his/her mistakes of the past. That will ruin your present happiness.&lt;br /&gt;9. Life is too short to waste time hating anyone. Don't hate others.&lt;br /&gt;10. Make peace with your past so it won't spoil the present &lt;br /&gt;11. No one is in charge of your happiness except you &lt;br /&gt;12. Realize that life is a school and you are here to learn. &lt;br /&gt;Problems are simply part of the curriculum that appear and fade away like algebra class but the lessons you learn will last a lifetime.&lt;br /&gt;13. Smile and laugh more&lt;br /&gt;14. You don't have to win every argument. Agree to disagree.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Community:&lt;/span&gt;&lt;br /&gt;15. Call your family often&lt;br /&gt;16. Each day give something good to others &lt;br /&gt;17. Forgive everyone for everything &lt;br /&gt;18. Spend time with people over the age of 70 &amp; under the age of 6 &lt;br /&gt;19. Try to make at least three people smile each day &lt;br /&gt;20. What other people think of you is none of your business &lt;br /&gt;21. Your job will not take care of you when you are sick. Your family and friends will. Stay in touch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Life:&lt;/span&gt;&lt;br /&gt;22. Put GOD first in anything and everything that you think, say and do. &lt;br /&gt;23. GOD heals everything &lt;br /&gt;24. Do the right things &lt;br /&gt;25. However good or bad a situation is, it will change &lt;br /&gt;26. No matter how you feel, get up, dress up and show up &lt;br /&gt;27. The best is yet to come &lt;br /&gt;28. Get rid of anything that isn't useful, beautiful or joyful &lt;br /&gt;29. When you’re awake alive in the morning, thank GOD for it &lt;br /&gt;30. If you know GOD you will always be happy. So, be happy. &lt;br /&gt;&lt;br /&gt;Here is the video link as well :-&lt;br /&gt;http://video.google.com/videoplay?docid=-5700431505846055184#&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4181956511764752543?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4181956511764752543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/last-lecture-by-randy-pausch.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4181956511764752543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4181956511764752543'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/09/last-lecture-by-randy-pausch.html' title='The Last Lecture by Randy Pausch'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6598994347762135227</id><published>2010-08-01T07:15:00.000-07:00</published><updated>2010-08-02T01:26:19.444-07:00</updated><title type='text'>Beautiful nature snaps...</title><content type='html'>Last week, I captured some beautiful nature snaps near Kolhapur, Maharashtra. Sharing few of those snaps ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OmmzqBBD1U/TFWCQkAI51I/AAAAAAAAAHA/6tYyz2MFzY8/s1600/Picture+004.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/TFWCQkAI51I/AAAAAAAAAHA/6tYyz2MFzY8/s400/Picture+004.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5500445740956706642"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OmmzqBBD1U/TFWFqTeZ-pI/AAAAAAAAAHI/pk5PamenOW8/s1600/Picture+016.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/TFWFqTeZ-pI/AAAAAAAAAHI/pk5PamenOW8/s400/Picture+016.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5500449481731734162"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TFWGLTOcGMI/AAAAAAAAAHQ/Jijc95_-C0Y/s1600/Picture+031.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TFWGLTOcGMI/AAAAAAAAAHQ/Jijc95_-C0Y/s400/Picture+031.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5500450048600447170"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TFWLuZ7bsnI/AAAAAAAAAHg/bel2ZWAAd4M/s1600/Picture+023.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TFWLuZ7bsnI/AAAAAAAAAHg/bel2ZWAAd4M/s400/Picture+023.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5500456149253337714"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6598994347762135227?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=931b008477e18cad&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6598994347762135227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/08/beautiful-nature-snaps.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6598994347762135227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6598994347762135227'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/08/beautiful-nature-snaps.html' title='Beautiful nature snaps...'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_3OmmzqBBD1U/TFWCQkAI51I/AAAAAAAAAHA/6tYyz2MFzY8/s72-c/Picture+004.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1450270533455804328</id><published>2010-07-22T09:11:00.000-07:00</published><updated>2010-07-22T09:55:07.898-07:00</updated><title type='text'>Hasgat - A book by Dilip Prabhawalkar</title><content type='html'>Yesterday, my father gave a marathi book - 'Hasgat' to me. It is written by a well known and my favorite marathi actor Dilip Prabhawalkar. I could not resist myself to read his book. The book made my travel to office and back to home journey jovial.&lt;br /&gt;&lt;br /&gt;The book is a collection of short stories which can be enjoyed any time.  The common thread that binds these stories is the element of situational humour and the naive characters in each of these, reminiscent of the P.G. Wodehousian style, which has admittedly been one of Prabhawalkar's literary influences. &lt;br /&gt;&lt;br /&gt;Dilip Prabhawalkar has done a great work in theatre, cinema, television and as a writer as well. Please take a look at his website :- http://dilipprabhavalkar.com/v1/indexHtml.htm&lt;br /&gt;&lt;br /&gt;I have watched his drama - 'Hasvaphasvi' at least 8 to 10 times. You can see the pictures of six different character roles that he played in that drama at : http://dilipprabhavalkar.com/v1/hasvaphasvi.htm&lt;br /&gt;&lt;br /&gt;Isn't it awesome ? :-)&lt;br /&gt;&lt;br /&gt;Enjoy reading ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1450270533455804328?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1450270533455804328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/hasgat-book-by-dilip-prabhawalkar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1450270533455804328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1450270533455804328'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/hasgat-book-by-dilip-prabhawalkar.html' title='Hasgat - A book by Dilip Prabhawalkar'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7538487539600786565</id><published>2010-07-06T01:29:00.000-07:00</published><updated>2010-07-06T01:48:04.592-07:00</updated><title type='text'>Augmented Array in Ruby</title><content type='html'>Few days ago, I was randomly going through the Ruby Array class API and the method '*' caught my attention.&lt;br /&gt;&lt;br /&gt;array * int -&gt; an_array : Returns a new array built by concatenating the int copies of self. &lt;br /&gt;&lt;br /&gt;[ 1, 2, 3 ] * 3    #=&gt; [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]&lt;br /&gt;&lt;br /&gt;I just had a thought can I have a method named '/' which will return a new array by splitting the array into arrays of int divisor elements each ?&lt;br /&gt;&lt;br /&gt;The functionality that I was looking for :-&lt;br /&gt;&lt;br /&gt;[1,2,3,4,5,6]/1      # =&gt; [[1], [2], [3], [4], [5], [6]]&lt;br /&gt;[1,2,3,4,5,6]/2      # =&gt; [[1, 2], [3, 4], [5, 6]]&lt;br /&gt;[1,2,3,4,5,6]/3      # =&gt; [[1, 2, 3], [4, 5, 6]]&lt;br /&gt;&lt;br /&gt;I gave it a try, my fingers typed the code as per my brain's instructions and it worked the way I expected.&lt;br /&gt;&lt;br /&gt;Then I saw the methods at(index) and fetch(index) and thought can I fetch or even set the elements of the array with the index as if index acting as array's attributes ?&lt;br /&gt;&lt;br /&gt;Like this :-&lt;br /&gt;&lt;br /&gt;ary = [1,2,3]&lt;br /&gt;ary._0 = 25&lt;br /&gt;ary._0       # =&gt; 25 &lt;br /&gt;ary._1 = 10&lt;br /&gt;ary._1       # =&gt; 10&lt;br /&gt;ary          # =&gt; [25, 10,3]&lt;br /&gt;&lt;br /&gt;For the above to work, I played with the method_missing method.&lt;br /&gt;&lt;br /&gt;Few things that I noticed in the Array class were it has 'first' and 'last' methods but not 'first=' and 'last=' methods. It has 'nitems' method which returns the number of non-nil elements, but no 'nilitems' method which will return nil elements in the array.&lt;br /&gt;&lt;br /&gt;My mind started to think whether I can build some other useful methods as well and it came to a sufficiently big list which I finally moved into a gem. I named the gem as 'augmented_array' and pushed it to gemcutter.&lt;br /&gt;&lt;br /&gt;Install:&lt;br /&gt;====&lt;br /&gt;gem install augmented_array&lt;br /&gt;&lt;br /&gt;Uninstall:&lt;br /&gt;====&lt;br /&gt;gem uninstall augmented_array&lt;br /&gt;&lt;br /&gt;Source Code is available &lt;a href="http://github.com/NiranjanSarade/augmented_array/blob/master/lib/augmented_array.rb"&gt;at my Github repository.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7538487539600786565?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7538487539600786565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/augmented-array-in-ruby.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7538487539600786565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7538487539600786565'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/augmented-array-in-ruby.html' title='Augmented Array in Ruby'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2440991391471327817</id><published>2010-07-01T22:04:00.000-07:00</published><updated>2010-07-01T22:05:47.770-07:00</updated><title type='text'>The One Minute Manager</title><content type='html'>Yesterday I read a management book - 'The One Minute Manager' written by Ken Blanchard and Spencer Johnson. I liked that book very much. It's practical. It includes some examples demonstrating how you can effectively handle the people under you. By the book definition, effective managers manage themselves and the people they work with so that both the organization and the people profit from their presence.&lt;br /&gt;&lt;br /&gt;The metaphor, The One Minute Manager means it takes very little time for that manager to get big results from people and behind this success lie just three secrets :-&lt;br /&gt;&lt;br /&gt;- One minute goals&lt;br /&gt;- One minute praisings&lt;br /&gt;- One minute reprimands&lt;br /&gt;&lt;br /&gt;One should read this little book to know more about these secrets.&lt;br /&gt;It is really good to know that the leaders of American and Japanese industry have made this book compulsory reading for all their managers.&lt;br /&gt;&lt;br /&gt;Enjoy reading ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2440991391471327817?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2440991391471327817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/one-minute-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2440991391471327817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2440991391471327817'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/07/one-minute-manager.html' title='The One Minute Manager'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7448392938191865658</id><published>2010-06-24T22:56:00.000-07:00</published><updated>2010-06-24T23:27:46.960-07:00</updated><title type='text'>Some good food of thoughts</title><content type='html'>I started my day today with reading my colleague's beautiful post &lt;a href="http://yashasree.blogspot.com/2010/06/what-mindfood-are-we-eating.html"&gt;what mindfood are we eating&lt;/a&gt; and it really made me think.&lt;br /&gt;&lt;br /&gt;This is such a wonderful thought... what do we feed our mind with ? How many of us make conscious efforts to nurture our mind ? Hmm ... need to prepare healthy diet plan for our minds as well :-)  &lt;br /&gt;&lt;br /&gt;Sharing some good food of thoughts that I got from googling :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.&lt;/span&gt; Success is not the key to happiness. But happiness is the key to success.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.&lt;/span&gt; You can tell whether a man is intelligent by his answers. But you can tell a man is wise by his questions.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.&lt;/span&gt; Morning means one more inning given by the god to play.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4.&lt;/span&gt; Success is not a matter of being the best and winning the race, it is a matter of handling the worst and finishing the race. Be positive.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5.&lt;/span&gt; A honey bee visits 2 million flowers to collect 500 mg of honey. So our workload is nothing as compared to them. Be cheerful and keep working.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6.&lt;/span&gt; It is not that some people have will power and some do not. It is that some people are ready to change and others are not. Believe in yourself and change for  betterment.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7.&lt;/span&gt; The world suffers a lot, not because of the violence of bad people, but because   of the silence of good people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7448392938191865658?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7448392938191865658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/some-good-food-of-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7448392938191865658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7448392938191865658'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/some-good-food-of-thoughts.html' title='Some good food of thoughts'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-9211487799526789297</id><published>2010-06-23T03:41:00.000-07:00</published><updated>2010-06-23T04:50:50.273-07:00</updated><title type='text'>Tips for Managers</title><content type='html'>I have worked with a couple of good companies. The managerial behavioral pattern that I have observed across these companies remains more or less the same. Yes... there are certainly few exceptions. I have many friends across different organizations, but to be frank, I have rarely seen people talking good about their managers. Why is this so ? Are the managers lacking the skills to effectively handle the people under them ? Or some other reason ? There is no straightforward answer to these questions, but can we improve this better ? I am not at manager level yet, but certainly I can suggest few tips which would improve this situation.&lt;br /&gt;&lt;br /&gt;Tips for Managers :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.&lt;/span&gt; Consider people under you as people rather than only billable resources.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.&lt;/span&gt; Do not let people under you to lose trust in you. It is very difficult to build back the trust again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.&lt;/span&gt; Give more importance to career progression of the people under you than billing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4.&lt;/span&gt; Have faith in your people.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5.&lt;/span&gt; You do not have any right to play with or spoil the career of the people under you. Freshers are the best example of this. They are rarely asked about their career aspiration, rather they are asked to do things what the current situation demands.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6.&lt;/span&gt; Do not take people under you for granted.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;7.&lt;/span&gt; Interact with your people regularly about their aspirations and make loyal efforts to fulfill those. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8.&lt;/span&gt; A little smile on your face makes a huge difference in the professional and personal lives of the people under you. The most important thing here is that it's absolutely free of cost.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;9.&lt;/span&gt; Try to be a role model of the people under you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;10.&lt;/span&gt; Billing/Revenue is important. But people are more important as they sustain business with the client by their good work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;11.&lt;/span&gt; Micromanagement kills. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;12.&lt;/span&gt; Try to be a thought leader than just to be a manager.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;13.&lt;/span&gt; Do not lose your core values while dealing with the client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-9211487799526789297?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/9211487799526789297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/tips-for-managers.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9211487799526789297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/9211487799526789297'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/tips-for-managers.html' title='Tips for Managers'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2686945341197225538</id><published>2010-06-18T22:34:00.000-07:00</published><updated>2010-06-18T23:00:07.960-07:00</updated><title type='text'>Welcome Monsoon !</title><content type='html'>The monsoon has started in Mumbai - Maharashtra with full force and one of my friends forwarded some great nature pictures especially from Konkan region to me. I can not resist myself to share some of those beautiful photos with you all. &lt;br /&gt;&lt;br /&gt;Marleshwar waterfall near Sangameshwar in Ratnagiri district:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/TBxX-tCSzgI/AAAAAAAAAGY/cpwkww2R35w/s1600/marleshwar.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/TBxX-tCSzgI/AAAAAAAAAGY/cpwkww2R35w/s400/marleshwar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5484355180983143938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jog waterfall:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/TBxafx1z0CI/AAAAAAAAAGg/SehkWiOCa1w/s1600/jog+falls.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/TBxafx1z0CI/AAAAAAAAAGg/SehkWiOCa1w/s400/jog+falls.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5484357948231897122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A typical home in Konkan:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/TBxavV6fzMI/AAAAAAAAAGo/dE6SUY-I_DM/s1600/konkan+home.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/TBxavV6fzMI/AAAAAAAAAGo/dE6SUY-I_DM/s400/konkan+home.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5484358215613271234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;River bank:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TBxcBb7UebI/AAAAAAAAAG4/LzpoUuB6xPs/s1600/ratnagiri.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TBxcBb7UebI/AAAAAAAAAG4/LzpoUuB6xPs/s400/ratnagiri.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5484359625976609202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy monsoon ! :-)&lt;br /&gt;It's real time to go for a trek / nature trail !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2686945341197225538?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2686945341197225538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/marleshwar-waterfall.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2686945341197225538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2686945341197225538'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/marleshwar-waterfall.html' title='Welcome Monsoon !'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/TBxX-tCSzgI/AAAAAAAAAGY/cpwkww2R35w/s72-c/marleshwar.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-583866664188498483</id><published>2010-06-07T00:29:00.000-07:00</published><updated>2010-06-07T00:33:33.536-07:00</updated><title type='text'>hash_key_as_attribute gem published</title><content type='html'>Following my earlier post, I pushed hash_key_as_attribute gem to rubygems.org&lt;br /&gt;&lt;br /&gt;Install&lt;br /&gt;====&lt;br /&gt;gem install hash_key_as_attribute&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;Download the gem file from http://github.com/NiranjanSarade/hash_key_as_attribute/&lt;br /&gt;gem install hash_key_as_attribute-0.0.1.gem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-583866664188498483?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/583866664188498483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/hashkeyasattribute-gem-published.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/583866664188498483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/583866664188498483'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/hashkeyasattribute-gem-published.html' title='hash_key_as_attribute gem published'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8588743955626317566</id><published>2010-06-03T07:16:00.000-07:00</published><updated>2010-06-03T08:29:31.008-07:00</updated><title type='text'>Allowing hash values to be set and retrieved as if they were attributes</title><content type='html'>In ruby, we have OpenStruct which allows the creation of data objects with arbitrary attributes. With ruby's metaprogramming capability, we can also allow hash values to be set and retrieved as if they were its attributes. If the key does not correspond to any hash entry, it should return “The key does  not correspond to any hash entry” message. The hook that we are going to use is Kernel's method_missing.&lt;br /&gt;&lt;br /&gt;Here we are opening the class Hash :-&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/TAfJHTTB6jI/AAAAAAAAAGQ/qjeogZu2190/s1600/hash.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/TAfJHTTB6jI/AAAAAAAAAGQ/qjeogZu2190/s400/hash.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5478568598995855922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And this is the sample output :-&lt;br /&gt;&lt;br /&gt;h = Hash.new("The key does not correspond to any hash entry")&lt;br /&gt;h.one =  1&lt;br /&gt;puts h.one #=&gt; 1&lt;br /&gt;&lt;br /&gt;h.two= [1,2,3,4]&lt;br /&gt;puts h.two.inspect #=&gt; [1,2,3,4]&lt;br /&gt;&lt;br /&gt;puts h.three #=&gt; "The key does not correspond to any hash entry"&lt;br /&gt;&lt;br /&gt;puts h.inspect #=&gt; {:one=&gt;1, :two=&gt;[1, 2, 3, 4]}&lt;br /&gt;&lt;br /&gt;h2 = {}&lt;br /&gt;h2.four = 4&lt;br /&gt;&lt;br /&gt;h.three = h2&lt;br /&gt;&lt;br /&gt;puts h.three.inspect #=&gt; {:four=&gt;4}&lt;br /&gt;&lt;br /&gt;puts h.three.four    #=&gt; 4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8588743955626317566?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8588743955626317566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/allowing-hash-values-to-be-set-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8588743955626317566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8588743955626317566'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/allowing-hash-values-to-be-set-and.html' title='Allowing hash values to be set and retrieved as if they were attributes'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_3OmmzqBBD1U/TAfJHTTB6jI/AAAAAAAAAGQ/qjeogZu2190/s72-c/hash.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6013267381765028193</id><published>2010-06-02T07:39:00.000-07:00</published><updated>2010-06-02T08:05:12.942-07:00</updated><title type='text'>Instance and class variable get set methods</title><content type='html'>In ruby, instance variables have prefix '@' and class variables have prefix '@@'.&lt;br /&gt;&lt;br /&gt;We have instance_variable_get and instance_variable_set methods from Object class and class_variable_get and class_variable_set methods from Module class in Ruby. Here is the typical usage of these methods from the ruby docs :-&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-style:italic;"&gt;class Fred&lt;br /&gt;   @@foo = 99&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def Fred.foo&lt;br /&gt;   class_variable_get(:@@foo)     #=&gt; 99&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-style:italic;"&gt;class Fred&lt;br /&gt;     def initialize(p1, p2)&lt;br /&gt;       @a, @b = p1, p2&lt;br /&gt;     end&lt;br /&gt;end&lt;br /&gt;fred = Fred.new('cat', 99)&lt;br /&gt;fred.instance_variable_get(:@a)    #=&gt; "cat"&lt;br /&gt;fred.instance_variable_get("@b")   #=&gt; 99&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-style:italic;"&gt;class Fred&lt;br /&gt;     def initialize(p1, p2)&lt;br /&gt;       @a, @b = p1, p2&lt;br /&gt;     end&lt;br /&gt;end&lt;br /&gt;fred = Fred.new('cat', 99)&lt;br /&gt;fred.instance_variable_set(:@a, 'dog')   #=&gt; "dog"&lt;br /&gt;fred.instance_variable_set(:@c, 'cat')   #=&gt; "cat"&lt;br /&gt;fred.inspect  #=&gt; #Fred:0x401b3da8 @a=\"dog\", @b=99, @c=\"cat\"&lt;/span&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;However, why do we need to specify the @ and @@ when the method names are smart enough to distinguish between whether the variable is an instance or a class variable. Why does a call to instance_variable_set require the "@" symbol in the first argument? Any idea ? Or has it been done with some purpose ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6013267381765028193?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6013267381765028193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/instance-and-class-variable-get-set.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6013267381765028193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6013267381765028193'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/06/instance-and-class-variable-get-set.html' title='Instance and class variable get set methods'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7789162588507095557</id><published>2010-05-21T08:05:00.000-07:00</published><updated>2010-05-21T08:24:48.854-07:00</updated><title type='text'>Do you want to touch real Tigers ?</title><content type='html'>Last week my wife and I visited Thailand. In the tour, we got a chance to visit Tiger Temple near Bangkok. Yes ... the thrill was patting real tigers. Tiger Temple, or Wat Pha Luang Ta Bua, is a Buddhist temple in Western Thailand where tourists can actually touch/pat the tigers in open area. It was a great experience in watching the real tigers staying with men and how the people take care of them. The tigers are handled by Thai monks, volunteers and the local staff. &lt;br /&gt;&lt;br /&gt;Sharing few photos ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OmmzqBBD1U/S_akJU6_xgI/AAAAAAAAAF4/5PxpShpSyrY/s1600/Tiger1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/S_akJU6_xgI/AAAAAAAAAF4/5PxpShpSyrY/s400/Tiger1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5473742877257352706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OmmzqBBD1U/S_akYOMpjkI/AAAAAAAAAGA/sHSQ2-56_W0/s1600/Tiger2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/S_akYOMpjkI/AAAAAAAAAGA/sHSQ2-56_W0/s400/Tiger2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5473743133150383682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OmmzqBBD1U/S_akq4YE6ZI/AAAAAAAAAGI/KpwFA-IxhUQ/s1600/Tiger3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/S_akq4YE6ZI/AAAAAAAAAGI/KpwFA-IxhUQ/s400/Tiger3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5473743453710248338" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7789162588507095557?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7789162588507095557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/05/do-you-want-to-touch-real-tigers.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7789162588507095557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7789162588507095557'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/05/do-you-want-to-touch-real-tigers.html' title='Do you want to touch real Tigers ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3OmmzqBBD1U/S_akJU6_xgI/AAAAAAAAAF4/5PxpShpSyrY/s72-c/Tiger1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5544916719552734463</id><published>2010-04-22T08:09:00.000-07:00</published><updated>2010-04-23T02:11:22.173-07:00</updated><title type='text'>Ruby metaprogramming</title><content type='html'>This is an excellent video about ruby metaprogramming concept:-&lt;br /&gt;http://www.infoq.com/presentations/metaprogramming-ruby&lt;br /&gt;&lt;br /&gt;This was presented by Dave Thomas, a well known author of The Pragmatic Programmer book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5544916719552734463?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5544916719552734463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/ruby-metaprogramming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5544916719552734463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5544916719552734463'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/ruby-metaprogramming.html' title='Ruby metaprogramming'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1682302920252544531</id><published>2010-04-20T01:00:00.000-07:00</published><updated>2010-04-21T01:41:14.171-07:00</updated><title type='text'>Passing hash from javascript</title><content type='html'>I was working on one functionality where I needed to build hash like structure in javascript and make an ajax call to perform that particular action by passing that hash as params to process further. The functionality was to delete a numbered row from the form and after deletion the form should rearrange the rows in sequence while maintaining the order. I used javascript 2 dimensional array to treat it as hash.&lt;br /&gt;&lt;br /&gt;e.g. On the form :-&lt;br /&gt;&lt;br /&gt;No. | EmpID | Date     | Location | Action | &lt;br /&gt;1.  | 123   |12-Mar-10 | Mumbai   |Delete  |&lt;br /&gt;2.  | 233   |10-Jan-10 | Mumbai   |Delete  |&lt;br /&gt;3.  | 444   |15-Mar-10 | Mumbai   |Delete  |&lt;br /&gt;4.  | 555   |18-Mar-10 | Mumbai   |Delete  |&lt;br /&gt;&lt;br /&gt;So. If you delete the 3rd row, then after deletion the new form should render as :-&lt;br /&gt;&lt;br /&gt;No. | EmpID | Date     | Location | Action | &lt;br /&gt;1.  | 123   |12-Mar-10 | Mumbai   |Delete  |&lt;br /&gt;2.  | 233   |10-Jan-10 | Mumbai   |Delete  |&lt;br /&gt;3.  | 555   |18-Mar-10 | Mumbai   |Delete  |&lt;br /&gt;&lt;br /&gt;The elements were written in table format. Each row is assigned unique id, so first row will have id = 1, 2nd row with id = 2 and so on. Each td has unique class.&lt;br /&gt;&lt;tr id="&lt;%=row_id%&gt;"&gt;&lt;br /&gt;     &lt;td class ="row_num"&gt;&lt;%=row_id%&gt;&lt;/td&gt;&lt;br /&gt;     &lt;td class ="empid"&gt;&lt;%= text_field_tag "emp_#{row_id}", "", :id =&gt; emp_#{row_id}" %&gt;&lt;/td&gt;&lt;br /&gt;     &lt;td class ="dt"&gt;&lt;%=text_field_tag "dt_#{row_id}", "", :id =&gt; "dt_#{row_id}" %&gt;&lt;/td&gt;&lt;br /&gt;     &lt;td class ="loc"&gt;&lt;%= text_field_tag "loc_#{row_id}", "", :id =&gt; "loc_#{row_id}", %&gt;&lt;/td&gt;&lt;br /&gt;     &lt;td&gt;&lt;%=link_to(image_tag("delete_img.jpg", :alt =&gt; "Delete Row", :id =&gt; "del_#{row_id}"),"#")%&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;This is the jquery code :-&lt;br /&gt;&lt;br /&gt;      &lt;span style="font-style:italic;"&gt; jQuery(document).ready(function()  {                       &lt;br /&gt;            jQuery('#del_&lt;%=i%&gt;').click(function() {                            &lt;br /&gt;                  var row_to_be_deleted = jQuery(this).parent().parent().parent();&lt;br /&gt;                  var row_id = parseInt(row_to_be_deleted.attr("id"));                      &lt;br /&gt;                  var data_ary = [];             &lt;br /&gt;&lt;br /&gt;                  jQuery('#emp_table tbody &gt; tr').each(function() {                    &lt;br /&gt;                      if (jQuery(this).attr("id") != row_id) {&lt;br /&gt;                           var myArray = [];&lt;br /&gt;                           var empid_val = "";&lt;br /&gt;                           var dt_val = "";&lt;br /&gt;                           var loc_val = "";                           &lt;br /&gt;                          jQuery(this).find("td").each(function(){&lt;br /&gt;                            if (jQuery(this).attr("class")== "empid"){&lt;br /&gt;                                empid_val = jQuery(this).find("input").val(); &lt;br /&gt;                                myArray.push(empid_val);&lt;br /&gt;                            }        &lt;br /&gt;                            if (jQuery(this).attr("class")== "dt"){&lt;br /&gt;                                dt_val = jQuery(this).find("input").val();&lt;br /&gt;                                myArray.push(dt_val);&lt;br /&gt;                            }&lt;br /&gt;                            if (jQuery(this).attr("class")== "loc"){&lt;br /&gt;                                loc_val = jQuery(this).find("input").val();&lt;br /&gt;                                myArray.push(loc_val);&lt;br /&gt;                            }                      &lt;br /&gt;                      });&lt;br /&gt;                     data_ary.push(myArray);&lt;br /&gt;                   }&lt;br /&gt;               });&lt;br /&gt;              ajax_call_for_remove_row( data_ary, '&lt;%= remove_row_controllername_url%&gt;');&lt;br /&gt;            });           &lt;br /&gt;        });&lt;/span&gt;&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-style:italic;"&gt;function ajax_call_for_remove_row(data_ary, remove_row_url) {&lt;br /&gt;    var inputs = new Object;&lt;br /&gt;    inputs["data_ary"] = data_ary;&lt;br /&gt;    jQuery.ajax({&lt;br /&gt;    url: remove_row_url,&lt;br /&gt;    data: inputs,&lt;br /&gt;    error: function (XMLHttpRequest, textStatus, errorThrown) {&lt;br /&gt;      alert("We are sorry something went wrong, please try again");&lt;br /&gt;    },&lt;br /&gt;    success: function(data){      &lt;br /&gt;    },&lt;br /&gt;    type: "post"&lt;br /&gt;  });&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;---- &lt;br /&gt;The corresponding controller actions :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;def remove_row&lt;br /&gt;    @data = []&lt;br /&gt;    logger.debug(params['data_ary'].inspect)	&lt;br /&gt;    build_data_from_hash(params['data_ary'])  &lt;br /&gt;    logger.debug(@data.inspect)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;private&lt;br /&gt;&lt;br /&gt;def build_data_from_hash data_hash&lt;br /&gt;    if data_hash&lt;br /&gt;        data_ary = sort_hash_to_array data_hash&lt;br /&gt;        data_ary.each { |value|&lt;br /&gt;          @data &lt;&lt; {"Empid" =&gt; value[1][0], "Date" =&gt; value[1][1], "Location" =&gt;  value[1][2] }&lt;br /&gt;        }&lt;br /&gt;    else&lt;br /&gt;          @data &lt;&lt; {"Empid" =&gt; "", "Date" =&gt; "", "Location" =&gt; "" }&lt;br /&gt;    end	   &lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;def sort_hash_to_array data_hash&lt;br /&gt;      data_hash.sort { |a,b| a[0].to_i &lt;=&gt; b[0].to_i }&lt;br /&gt;end&lt;/span&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;params['data_ary'].inspect =&gt;&lt;br /&gt;====================================&lt;br /&gt;{"0"=&gt;["123", "12-Mar-10", "Mumbai"], "1"=&gt;["233", "10-Jan-10", "Mumbai"], "2"=&gt;["555", "18-Mar-10", "Mumbai"]}&lt;br /&gt;====================================&lt;br /&gt;&lt;br /&gt;@data.inspect =&gt;&lt;br /&gt;==================================== &lt;br /&gt;[["0", ["123", "12-Mar-10", "Mumbai"]], ["1", ["233", "10-Jan-10", "Mumbai"]], ["2", ["555", "18-Mar-10", "Mumbai"]] ]&lt;br /&gt;====================================&lt;br /&gt;&lt;br /&gt;We can pass this @data as local while rendering the table body partial in corresponding js.erb template. This works great for me!&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/8926261999471799923-1682302920252544531?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1682302920252544531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/passing-hash-from-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1682302920252544531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1682302920252544531'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/passing-hash-from-javascript.html' title='Passing hash from javascript'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6013954071657223785</id><published>2010-04-13T04:57:00.001-07:00</published><updated>2010-04-13T10:20:30.925-07:00</updated><title type='text'>RubyConf 2010 - Bangalore, India</title><content type='html'>In the last month, I got an opportunity to attend the very first Ruby conference held in Bangalore, India(20-21 March) organized by ThoughtWorks. The response was very huge (around 400 people ranging from beginners to CEOs from more than 100 companies) and people really enjoyed the event.&lt;br /&gt;&lt;br /&gt;It was really great to hear  some good speakers/industry leaders like Matz, Obie Fernandez, Ola Bini, etc. Many technical topics were presented like future of Ruby, Rails 3.0, Glassfish and WebRoar app servers, building cross platform mobile application with Rhodes framework, etc. You can find more details about these topics at http://rubyconfindia.org/&lt;br /&gt;&lt;br /&gt;I felt a lot of enthusiasm and energy amongst the people w.r.t. Ruby and Rails. There are many small companies being set up especially in Pune and Bangalore for doing only rails projects. I really liked that !&lt;br /&gt;&lt;br /&gt;Indian market is really catching up on Rails very fast !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6013954071657223785?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6013954071657223785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/rubyconf-2010-bangalore-india.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6013954071657223785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6013954071657223785'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/rubyconf-2010-bangalore-india.html' title='RubyConf 2010 - Bangalore, India'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5700541633676906978</id><published>2010-04-13T04:05:00.000-07:00</published><updated>2010-04-13T04:25:49.089-07:00</updated><title type='text'>Rendering partial with jquery</title><content type='html'>Below is the way by which you can render partial with jQuery in your view.js.erb file :-&lt;br /&gt;&lt;br /&gt;jQuery("#mydiv").html("&lt;%= escape_javascript(render(:partial =&gt; 'my_partial', :locals =&gt; {:my_instance_var =&gt; @my_instance_var} ))%&gt;");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5700541633676906978?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5700541633676906978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/rendering-partial-with-jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5700541633676906978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5700541633676906978'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/04/rendering-partial-with-jquery.html' title='Rendering partial with jquery'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8151698329237908863</id><published>2010-03-19T01:13:00.000-07:00</published><updated>2010-03-19T01:14:12.285-07:00</updated><title type='text'>A mechanic and a surgeon</title><content type='html'>A mechanic was removing a cylinder head from the motor of a Harley motorcycle when he spotted a well-known heart surgeon in his shop. The surgeon was there, waiting for the service manager to come and take a look at his bike. The mechanic shouted across the garage, "Hey, Doc, can I ask you a question?"&lt;br /&gt;&lt;br /&gt;The surgeon a bit surprised, walked over to the mechanic working on the motorcycle. The mechanic straightened up, wiped his hands on a rag and asked, "So Doc, look at this engine. I open its heart, take valves out, fix 'em, put 'em back in, and when I finish, it works just like new. So how come I get such a small salary and you get the really big bucks, when you and I are doing basically the same work?"&lt;br /&gt;&lt;br /&gt;The surgeon paused, smiled and leaned over, and whispered to the mechanic... &lt;br /&gt;"Try doing it with the engine running."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8151698329237908863?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8151698329237908863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/03/mechanic-and-surgeon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8151698329237908863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8151698329237908863'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/03/mechanic-and-surgeon.html' title='A mechanic and a surgeon'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2091150190724607623</id><published>2010-02-12T01:17:00.000-08:00</published><updated>2010-02-12T01:46:25.046-08:00</updated><title type='text'>WebROaR - Ruby Application Server</title><content type='html'>I got a chance to visit http://webroar.in/ and it seems interesting.&lt;br /&gt;&lt;br /&gt;http://webroar.in/blog/2009/11/25/introducing-webroar-v0-2-3-ruby-application-server&lt;br /&gt;&lt;br /&gt;WebROaR is an application server that makes deployments of ruby web applications extremely simple. It provides an integrated solution to view the run time performance numbers and email notifications in case any exceptions occur in any of the deployed applications. It is 5 to 55% faster than all other comparable deployment stacks for RoR apps. &lt;br /&gt;&lt;br /&gt;Comparison :-&lt;br /&gt;http://webroar.in/blog/2009/11/25/comparison-of-rails-deployment-stacks-2&lt;br /&gt;&lt;br /&gt;Some screenshots :-&lt;br /&gt;http://webroar.in/screenshots&lt;br /&gt;&lt;br /&gt;Source :-&lt;br /&gt;http://github.com/webroar/webroar/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2091150190724607623?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2091150190724607623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/webroar-ruby-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2091150190724607623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2091150190724607623'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/webroar-ruby-application-server.html' title='WebROaR - Ruby Application Server'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8629040462205657021</id><published>2010-02-10T00:37:00.000-08:00</published><updated>2010-02-10T01:20:09.828-08:00</updated><title type='text'>Scientific explanation of Bhagwad Geeta</title><content type='html'>I recently read a very good book written by Dr. P.V.Vartak - &lt;span style="font-style:italic;"&gt;"Geeta - Vidnyananishtha Nirupan"&lt;/span&gt; (Scientific explanation)&lt;br /&gt;&lt;br /&gt;As we know, Geeta is a conversation between Lord Krishna and Arjuna which took place  on the battlefield of Kurukshetra just prior to the start of Mahabharata war. Responding to Arjuna's confusion and moral dilemma, Krishna explained to Arjuna his duties as a warrior and real path of truth and elaborated on a number of different Yogic and Vedantic philosophies, with examples and analogies. Geeta is often being described as a concise guide to Hindu philosophy and also as a practical, self-contained guide to live life especially with Karma yog. Karma Yog is a science that frees us from the bonds of actions and attachment with the attributes. According to the Bhagawad Geeta, it consists of mentally renouncing the sense of doership in favour of God while performing all actions. &lt;br /&gt;&lt;br /&gt;Dr. Vartak has explained all the 18 chapters (addhyay) of Geeta in a very simple but superior language. Many thanks to him !  &lt;br /&gt;&lt;br /&gt;He has also pointed out some mistakes that Mahaatma Gandhi (M.K.Gandhi) did which ultimately led to a lot of violence during Indian independence. Mahaatma Gandhi used to daily worship/read Geeta, but unfortunately could not grab the real meaning of non-violence, Karma yog described in Geeta. The Geeta was actually told to Arjuna to take away his confusion and encourage him to perform his duties as a warrior. But Mahaatma Gandhi never understood the crux of Geeta and repeatedly made mistakes in terms of following non-violence, forgiving real enemies at National level and unfortunately the Nation also followed wrong leadership during that time. &lt;br /&gt;&lt;br /&gt;I would request everyone to read this book and think in solitude on the thoughts explained in the book ... We have yet a lot to improve ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8629040462205657021?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8629040462205657021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/scientific-explanation-of-bhagwad-geeta.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8629040462205657021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8629040462205657021'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/scientific-explanation-of-bhagwad-geeta.html' title='Scientific explanation of Bhagwad Geeta'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2114420529647610758</id><published>2010-02-06T21:50:00.000-08:00</published><updated>2010-02-06T21:52:18.960-08:00</updated><title type='text'>A rumour takes wings</title><content type='html'>A pandit crossing a field felt that there was something in his mouth and spat it out. It turned out to be a heron's feather. He could not understand how it had got into his mouth and it perplexed him a great deal. When he reached home he told his wife about it but asked her not to tell anyone lest somebody put a bad  interpretation on it.  His wife was even more intrigued by the strange occurrence and felt the need to confide in someone. So she swore her neighbour to secrecy and told her what had happened. &lt;br /&gt;&lt;br /&gt;Perhaps it was the way she told it, but her neighbour got the impression that several feathers had come out of the pandit's mouth. She was shocked. However, she assured the woman that such things could happen and advised her not to worry about it. &lt;br /&gt;&lt;br /&gt;"Please don't tell anyone," said the pandit's wife. &lt;br /&gt;&lt;br /&gt;"My lips are sealed," said the woman. But she was longing to tell someone and when she saw the dhobi's wife going past, called her in and told her the whole story. Only, she made it sound as if a whole heron had come out of the pandit's mouth. &lt;br /&gt;&lt;br /&gt;"Never have I heard of such a thing," said the dhobi's wife, her eyes popping with excitement, "and he being a vegetarian and all that, but one can never tell..." &lt;br /&gt;&lt;br /&gt;She went away promising not to tell anyone but on the way she met her friend and the whole story sort of tumbled out of her mouth. Perhaps in her excitement she  said 'herons' instead of 'heron' or perhaps her friend just imagined she had said herons but when she told her husband the story sometime later, she was emphatic that a whole flock of herons had come out of the pandit's mouth. &lt;br /&gt;&lt;br /&gt;And as the story spread "herons" became "herons and other birds" and then "hundreds of birds of all shapes and sizes". &lt;br /&gt;&lt;br /&gt;By evening the whole village and several other neighbouring villages had heard the story and people began to arrive in droves at the pandit's house to witness the miraculous happenings there. &lt;br /&gt;&lt;br /&gt;The pandit steadfastly denied that any bird had come out of his mouth but nobody would believe him and everybody begged him to demonstrate his wonderful power of producing birds from his mouth. &lt;br /&gt;&lt;br /&gt;Finally in exasperation, he asked them all to sit in front of his house and when they had done so ran out of the back and hid in the jungle where he remained several days till the excitement had died down and the people had realised that the news was false...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2114420529647610758?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2114420529647610758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/rumour-takes-wings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2114420529647610758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2114420529647610758'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/rumour-takes-wings.html' title='A rumour takes wings'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3384646244305746338</id><published>2010-02-01T05:56:00.000-08:00</published><updated>2010-02-01T06:08:02.936-08:00</updated><title type='text'>email_pop_reader gem pushed to gemcutter</title><content type='html'>In one of my previous projects, I worked on ruby script to read the emails from mail-in database and process the emails as per the business requirement. In ruby, we have a libray called Net::POP3 which provides functionality for retrieving email via POP3. I went ahead with a thought of converting this to a gem.&lt;br /&gt;&lt;br /&gt;The emails retrieved from mail-in database are stored in some sort of data structure  to process further. The utility makes use of Net::POP3 and TMail libraries and provides with some handy methods such as 'retrieve emails' as array of hashes. The hash has email's from,to,cc,bcc,subject,body fields. Email body with attachment has not been considered for simplicity.&lt;br /&gt;&lt;br /&gt;It also provides 'delete_emails(unique_email_ids=[])' method which takes array of unique email ids (retrieved with pop email unique_id) as parameter and deletes those.&lt;br /&gt;&lt;br /&gt;Install :-&lt;br /&gt;&lt;br /&gt;gem install email_pop_reader&lt;br /&gt;&lt;br /&gt;(It has been pushed to http://gemcutter.org) - http://gemcutter.org/gems/email_pop_reader&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;Download the gem file from http://github.com/NiranjanSarade/email-pop-reader.git/&lt;br /&gt;gem install email_pop_reader-0.0.1.gem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3384646244305746338?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3384646244305746338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/emailpopreader-gem-pushed-to-gemcutter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3384646244305746338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3384646244305746338'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/02/emailpopreader-gem-pushed-to-gemcutter.html' title='email_pop_reader gem pushed to gemcutter'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1018457792035188094</id><published>2010-01-20T00:59:00.000-08:00</published><updated>2010-01-20T01:07:53.364-08:00</updated><title type='text'>Ruby's block_proc_lamda_method</title><content type='html'>I went through a couple of articles on ruby's blocks, procs, lambda &amp; method and found those really good and interesting. Sharing those articles :&lt;br /&gt;&lt;br /&gt;http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/&lt;br /&gt;&lt;br /&gt;http://www.neeraj.name/blog/articles/589-block-vs-lambda-vs-proc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1018457792035188094?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1018457792035188094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/rubys-blockproclamdamethod.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1018457792035188094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1018457792035188094'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/rubys-blockproclamdamethod.html' title='Ruby&apos;s block_proc_lamda_method'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6459915480333677539</id><published>2010-01-18T09:30:00.001-08:00</published><updated>2010-01-18T09:30:33.020-08:00</updated><title type='text'>Company</title><content type='html'>Finding that cranes were destroying his newly sown corn, a farmer one evening set a net in his field to catch the destructive birds. When he went to examine the net next morning he found a number of cranes and also a stork. &lt;br /&gt;&lt;br /&gt;"Release me, I beseech you," cried the stork, "for I have eaten none of your corn, nor have I done you any harm. I am a poor innocent stork, as you may see - a most dutiful bird, I honor my father and mother, I..." &lt;br /&gt;&lt;br /&gt;But the farmer cut him short. "All this may be true enough, I dare say, but I have caught you with those were destroying my crops, and you must suffer with the company in which you are found." &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Moral: People are judged by the company they keep. &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6459915480333677539?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6459915480333677539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6459915480333677539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6459915480333677539'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/company.html' title='Company'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7920477112595040107</id><published>2010-01-16T21:41:00.000-08:00</published><updated>2010-01-16T21:42:40.789-08:00</updated><title type='text'>The Right Speech</title><content type='html'>There is a Chinese saying which carries the meaning that "A speech will either prosper or ruin a nation." Many relationships break off because of wrong speech. When a couple is too close with each other,we always forget mutual respect and courtesy. We may say anything without considering if it would hurt the other party. &lt;br /&gt;&lt;br /&gt;A friend and her millionaire husband visited their construction site. A worker who wore a helmet saw her and shouted,"Hi, Emily! Remember me? We used to date in the secondary school." On the way home, her millionaire husband teased her, "Luckily you married me.Otherwise you would have been the wife of a construction worker." She answered ,"You should appreciate that you married me. Otherwise, he would have been the millionaire and not you."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7920477112595040107?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7920477112595040107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/right-speech.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7920477112595040107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7920477112595040107'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/right-speech.html' title='The Right Speech'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1154365765382190165</id><published>2010-01-14T00:39:00.000-08:00</published><updated>2010-01-14T01:28:16.699-08:00</updated><title type='text'>Model diagram generator plugin</title><content type='html'>After my one of the last posts &lt;a href="http://niranjansarade.blogspot.com/2009/05/shaping-models-in-ruby-on-rails.html"&gt;Shaping models in Rails&lt;/a&gt;, I got a chance to convert that piece of code into a Rails plugin.&lt;br /&gt;&lt;br /&gt;It has been rolled out to Github.&lt;br /&gt;&lt;br /&gt;Github Repository :- http://github.com/NiranjanSarade/model-diagram-generator&lt;br /&gt;&lt;br /&gt;Installation :-&lt;br /&gt;ruby script/plugin install http://github.com/NiranjanSarade/model-diagram-generator.git/&lt;br /&gt;&lt;br /&gt;Usage :-&lt;br /&gt;&lt;span style="font-style:italic;"&gt;rake model_diagram:generate&lt;/span&gt;&lt;br /&gt;It will generate diagramatic representation of the model relationship present in your rails app. The model_relationship.dot and model_relationship.png files will be generated at the application root folder.&lt;br /&gt;&lt;br /&gt;It was a nice feeling with contributing something to the open source community !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1154365765382190165?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1154365765382190165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/model-diagram-generator-plugin.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1154365765382190165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1154365765382190165'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/model-diagram-generator-plugin.html' title='Model diagram generator plugin'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6050092048390170073</id><published>2010-01-13T05:32:00.000-08:00</published><updated>2010-01-13T05:36:05.380-08:00</updated><title type='text'>Formatting rules of UseModWiki ...</title><content type='html'>In continuation of my previous post &lt;a href="http://niranjansarade.blogspot.com/2009/12/formatting-rules-for-usemodwiki.html"&gt;Formatting Rules&lt;/a&gt;, you will find this link very useful :- http://www.usemod.com/cgi-bin/wiki.pl?TextFormattingRules&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6050092048390170073?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6050092048390170073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/formatting-rules-of-usemodwiki.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6050092048390170073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6050092048390170073'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/formatting-rules-of-usemodwiki.html' title='Formatting rules of UseModWiki ...'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5222305640798938520</id><published>2010-01-05T01:15:00.000-08:00</published><updated>2010-01-05T01:31:44.693-08:00</updated><title type='text'>Ryan's_Video_Railscasts.to_s</title><content type='html'>ASCIIcasts are text versions of each Railscast developed by Ryan Bate, each with a link to the original video. So if we want to refer the text version of the railscasts, just refer this link :- &lt;br /&gt;&lt;br /&gt;http://asciicasts.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5222305640798938520?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5222305640798938520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/ryansvideorailscaststos.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5222305640798938520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5222305640798938520'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/ryansvideorailscaststos.html' title='Ryan&apos;s_Video_Railscasts.to_s'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2729632256185390485</id><published>2010-01-04T07:02:00.000-08:00</published><updated>2010-01-04T07:09:21.397-08:00</updated><title type='text'>Ruby/Rails Tool Box</title><content type='html'>Here is a good link for Ruby/Rails tool box which has collection of many utilities/tools to address different development life cycle concerns like deployment, testing, code metrics, continuous integration, project management and many more ...&lt;br /&gt;&lt;br /&gt;http://www.ruby-toolbox.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2729632256185390485?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2729632256185390485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/rubyrails-tool-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2729632256185390485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2729632256185390485'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2010/01/rubyrails-tool-box.html' title='Ruby/Rails Tool Box'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5717920824969006040</id><published>2009-12-29T23:38:00.001-08:00</published><updated>2010-01-02T22:03:29.497-08:00</updated><title type='text'>Formatting rules for UseModWiki</title><content type='html'>Here are some formatting rules and how to use guide for UseModWiki :-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Creating a new page&lt;/strong&gt; &lt;br /&gt;Every Wiki page has an edit button. Click on the edit button and type a wiki word. A wiki word starts with a capital letter and has at least one more capital letter in it. Between the capitals there must be lower case letters. There cannot be two capitals in a row. &lt;br /&gt;&lt;br /&gt;e.g. MyWord will bw displayed as MyWord?&lt;br /&gt;Now click on the ? to go to the wiki page &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- See the Recent Changes&lt;/strong&gt; &lt;br /&gt;Type in the URL as http://localhost/cgi-bin/wiki.pl?RecentChanges &lt;br /&gt;&lt;br /&gt;The Recent Changes page shows the dates on which the individual pages have been updated. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Editing Content&lt;/strong&gt;&lt;br /&gt;Click the edit button on a wiki page. Input the contents in the text field and press the save button. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Create Links &lt;/strong&gt;&lt;br /&gt;Page Link: wiki words are treated as links to the corresponding wiki pages. &lt;br /&gt;&lt;br /&gt;External Link : use the corresponding URL e.g. http://c2.com &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Search content&lt;/strong&gt;&lt;br /&gt;Enter the key word that needs to be searched in the text field labelled search at the end of the wiki page.&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;- Creating Inter Wiki &lt;/strong&gt;&lt;br /&gt;Our wiki can refer to pages in other Wikis. Edit intermap file in cgi-bin folder and add the entry for the mapping. It contains the mapping for the key word and the corresp URL. &lt;br /&gt;&lt;br /&gt;e.g.: UseMod? is the key word and the URL is http://www.usemod.com/cgi-bin/wiki.pl?. Now if we want to refer to a page WhatIsaWiki? in the wiki http://www.usemod.com/cgi-bin/wiki.pl, we just need to refer it as follows: UseMod:WhatIsaWiki &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Having a non-wiki word as a link &lt;/strong&gt;&lt;br /&gt;[http://c2.com/ppr/about/author/martin.html Martin Fowler] will be displayed as [Martin Fowler] &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Sub Pages &lt;/strong&gt;&lt;br /&gt;The [SubPage] - [http://www.usemod.com/cgi-bin/wiki.pl?SubPage SubPage] idea allows every main page to contain its own wiki universe of subpages. The subpages can be used to help refactor a large page without the problems /LongPrefixBeforeEachPage?.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5717920824969006040?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5717920824969006040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/formatting-rules-for-usemodwiki.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5717920824969006040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5717920824969006040'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/formatting-rules-for-usemodwiki.html' title='Formatting rules for UseModWiki'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2460284787432846733</id><published>2009-12-28T02:24:00.000-08:00</published><updated>2010-01-13T02:56:44.532-08:00</updated><title type='text'>Are you Wiki ?</title><content type='html'>I gave a try to &lt;a href="http://www.usemod.com/cgi-bin/wiki.pl"&gt;UseModWiki&lt;/a&gt; (an implementation of the original Wiki concept created by Ward Cunningham) and found it simply superb! We can use this internally across the teams for sharing information :-)&lt;br /&gt;&lt;br /&gt;The name wiki comes from the Hawaiian word &lt;em&gt;wiki wiki&lt;/em&gt;,  which means &lt;em&gt;quick/fast&lt;/em&gt;. There is a famous quote by Glen Wilber: &lt;em&gt;"Knowledge grows faster than the way to organize it !". &lt;/em&gt; Wiki does provide an efficient and simpler way to organize and spread the ever growing knowledge across the entire team. It enables easy collaboration and sharing of information across the network.&lt;br /&gt;&lt;br /&gt;Why wiki ?&lt;br /&gt;- Similarity to HTML&lt;br /&gt;- Instant Feedback Mechanism&lt;br /&gt;- Accessible anywhere&lt;br /&gt;- Easy Searching&lt;br /&gt;- Easy to learn and use&lt;br /&gt;- Open Source&lt;br /&gt;- Tracking of pages &lt;br /&gt;&lt;br /&gt;Installation steps on Windows :-&lt;br /&gt;&lt;br /&gt;- Install active perl (http://www.activestate.com/activeperl/)&lt;br /&gt;- Install Apache Web Server (http://httpd.apache.org/download.cgi)&lt;br /&gt;- Extract usemod10 (http://www.usemod.com/wikicode/usemod-1.0.5.zip.)&lt;br /&gt;- Copy wiki.gif from extracted usemod directory to apache htdocs folder.&lt;br /&gt;- Copy wiki.pl from extracted usemod directory to apache cgi-bin folder.&lt;br /&gt;- Edit the first line of wiki.pl so that it shows the right path to perl.exe. (say c:/perl/bin/perl)&lt;br /&gt;- Edit wiki.pl to change the value of $DataDir so that it points to "wikidb" folder (say d:\usemodwiki\wikidb )&lt;br /&gt;- Edit wiki.pl to change the value of $FullUrl so that it points to 'http://localhost/cgi-bin/wiki.pl'&lt;br /&gt;- Start the Apache server.&lt;br /&gt;- Open a browser and type in the url : http://machine-name/cgi-bin/wiki.pl where machine-name refers to the name of your local machine.&lt;br /&gt;   e.g. http://localhost/cgi-bin/wiki.pl&lt;br /&gt;&lt;br /&gt;Once installed, the wiki is accessible across all machines in the same domain. &lt;br /&gt;&lt;br /&gt;This is the simple page that I created on my local machine :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3OmmzqBBD1U/SziTmoJ9FYI/AAAAAAAAAEM/iKsGMnJOcgQ/s1600-h/wiki1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 283px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/SziTmoJ9FYI/AAAAAAAAAEM/iKsGMnJOcgQ/s400/wiki1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5420244443363874178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And clicking on 'RailsTips' link navigates to other page that I created as :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/SziUNh-j0PI/AAAAAAAAAEU/1JDKiCcsONs/s1600-h/wiki2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/SziUNh-j0PI/AAAAAAAAAEU/1JDKiCcsONs/s400/wiki2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5420245111720366322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will be writing more on formatting rules in my upcoming blog ...&lt;br /&gt;&lt;br /&gt;Enjoy being wiki ... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2460284787432846733?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2460284787432846733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/are-you-wiki.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2460284787432846733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2460284787432846733'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/are-you-wiki.html' title='Are you Wiki ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_3OmmzqBBD1U/SziTmoJ9FYI/AAAAAAAAAEM/iKsGMnJOcgQ/s72-c/wiki1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8041107362258274309</id><published>2009-12-25T21:29:00.000-08:00</published><updated>2009-12-25T21:32:06.384-08:00</updated><title type='text'>Gitanjali - Poor Heart</title><content type='html'>" I had gone a-begging from door to door in the &lt;br /&gt;village path when thy golden chariot appeared in &lt;br /&gt;the distance like a gorgeous dream and I wondered &lt;br /&gt;who was the king of all kings! &lt;br /&gt;&lt;br /&gt;My hopes rose high and I thought my evil days&lt;br /&gt;were at an end, and I stood for alms to be&lt;br /&gt;given unasked and for wealth scattered on all sides in the dust.&lt;br /&gt;&lt;br /&gt;The chariot stopped where I stood. Thy glance &lt;br /&gt;fell on me and thou camest down with a smile, I felt &lt;br /&gt;that the luck of my life had come at last. Then &lt;br /&gt;of a sudden thou didst hold out thy right hand &lt;br /&gt;and say "Why hast thou to give me?" &lt;br /&gt;&lt;br /&gt;Ah, what a kingly jest was it to open thy palm&lt;br /&gt;to a beggar to beg ! I was confused and stood&lt;br /&gt;undecided and then from my wallet I slowly&lt;br /&gt;took out the least little grain of corn and gave it to thee.&lt;br /&gt;&lt;br /&gt;But how great my surprise when at the day's &lt;br /&gt;end I emptied my bag on the floor to find a least &lt;br /&gt;little grain of gold among the poor heap. I bitterly &lt;br /&gt;wept and wished that I had had the heart to give &lt;br /&gt;thee my all. " &lt;br /&gt;&lt;br /&gt;- Rabindranath Tagore&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8041107362258274309?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8041107362258274309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/gitanjali-poor-heart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8041107362258274309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8041107362258274309'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/gitanjali-poor-heart.html' title='Gitanjali - Poor Heart'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7210062307723985468</id><published>2009-12-24T21:32:00.000-08:00</published><updated>2009-12-24T21:35:30.414-08:00</updated><title type='text'>Seven wonders</title><content type='html'>A group of students were asked to list what they thought were the present "Seven Wonders of the World." Though there were some disagreements, the following received the most votes: &lt;br /&gt;&lt;br /&gt;Egypt's Great Pyramids &lt;br /&gt;Taj Mahal &lt;br /&gt;Grand Canyon &lt;br /&gt;Panama Canal &lt;br /&gt;Empire State Building &lt;br /&gt;St. Peter's Basilica &lt;br /&gt;China's Great Wall&lt;br /&gt; &lt;br /&gt;While gathering the votes, the teacher noted that one student had not finished her paper yet. So she asked the girl if she was having trouble with her list. The girl replied, "Yes, a little. I couldn't quite make up my mind because there were so many." &lt;br /&gt;&lt;br /&gt;The teacher said, "Well, tell us what you have, and maybe we can help." The girl hesitated, then read, "I think the 'Seven Wonders of the World' are: &lt;br /&gt;&lt;br /&gt;to see &lt;br /&gt;to hear &lt;br /&gt;to touch &lt;br /&gt;to taste &lt;br /&gt;to feel &lt;br /&gt;to laugh &lt;br /&gt;and to love." &lt;br /&gt;&lt;br /&gt;The room was so quiet you could have heard a pin drop. The things we overlook as simple and ordinary and that we take for granted are truly wondrous! &lt;br /&gt;&lt;br /&gt;A gentle reminder -- that the most precious things in life cannot be built by hand or bought by man.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7210062307723985468?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7210062307723985468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/seven-wonders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7210062307723985468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7210062307723985468'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/seven-wonders.html' title='Seven wonders'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6855472759499030577</id><published>2009-12-22T21:18:00.000-08:00</published><updated>2009-12-23T03:04:20.755-08:00</updated><title type='text'>Patanjal Yogadarshan</title><content type='html'>I recently read a very intuitive and scientific book written by Dr. P.V.Vartak -&lt;em&gt;"Patanjal Yog - Vidnyananishtha Nirupan" (Scientific explanation) &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dr. Vartak has explained the Yoga Sutras (threads) in a very scientific language in Marathi with real life examples. He has also established the date of Patanjali as around 5000 BC from reference of Brihadaranyaka Upanishad. &lt;br /&gt;&lt;br /&gt;Patnjali was an authority on Yoga and had written way to enlightenment through Yoga (Yoga darshan - vision of Yoga). The Yoga system of Patanjali or the ancient Hindu doctrine of concentration of mind, ways to achieve it, are called Yoga-sutras, of Patanjali.&lt;br /&gt;&lt;br /&gt;The Yoga Sutras consist of four chapters (called padas - Pada means 1/4th) :-&lt;br /&gt;1. Samadhi Pada&lt;br /&gt;2. Sadhana Pada&lt;br /&gt;3. Vibhuti Pada&lt;br /&gt;4. Kaivalya Pada&lt;br /&gt;&lt;br /&gt;- Samadhi refers to a blissful state where the yogi is absorbed into the One. &lt;br /&gt;&lt;br /&gt;- Sadhana is the Sanskrit word for "practice" or "discipline". The author explains karma yoga and ashtaanga yoga.&lt;br /&gt;&lt;br /&gt;- Vibhuti is the Sanskrit word for "power" or "manifestation". 'Supra-normal powers' (Sanskrit: siddhi) are acquired by the practice of yoga. e.g. becoming invisible, travelling with a speed much more than a speed of light, reading minds, enter into foreign bodies (parakaya pravesh), etc.&lt;br /&gt;&lt;br /&gt;- Kaivalya literally means "isolation", but stands for emancipation, liberation and used interchangeably with moksha (liberation), which is the goal of Yoga. &lt;br /&gt;&lt;br /&gt;Here is the link for whoever is interested in reading Patanjal Yogasutras - &lt;br /&gt;http://www.santosha.com/samadhi-pada1.html&lt;br /&gt;&lt;br /&gt;But only reading would not help, every one needs to practice this as it is a practical knowledge !&lt;br /&gt;&lt;br /&gt;Really great work done by Dr. Vartak ! Hats off to him for bringing this true ancient knoweldge in a very simple and heart touching language !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6855472759499030577?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6855472759499030577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/patanjal-yogadarshan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6855472759499030577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6855472759499030577'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/patanjal-yogadarshan.html' title='Patanjal Yogadarshan'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7711461092546221652</id><published>2009-12-21T23:06:00.000-08:00</published><updated>2009-12-21T23:20:05.741-08:00</updated><title type='text'>Display SQL queries in ruby script/console</title><content type='html'>Whenever we use ruby script/console during development, we often would like to see the SQL queries instantly that get being generated at the backend. Those queries can be a result of method calls on model, named scope, etc.&lt;br /&gt;&lt;br /&gt;We just need to execute the below 2 lines to have this enabled on console.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ActiveRecord::Base.logger = Logger.new(STDOUT)&lt;br /&gt;ActiveRecord::Base.clear_active_connections!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;And now whenever we will interact with ActiveRecord object method calls, the SQL query will get displayed immediately in the console.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SzBydDKyXCI/AAAAAAAAAEE/yvzx3Q59Mtk/s1600-h/console.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SzBydDKyXCI/AAAAAAAAAEE/yvzx3Q59Mtk/s400/console.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5417956195119029282" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7711461092546221652?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7711461092546221652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/display-sql-queries-in-ruby.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7711461092546221652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7711461092546221652'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/display-sql-queries-in-ruby.html' title='Display SQL queries in ruby script/console'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3OmmzqBBD1U/SzBydDKyXCI/AAAAAAAAAEE/yvzx3Q59Mtk/s72-c/console.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5012758387876779751</id><published>2009-12-19T02:56:00.000-08:00</published><updated>2009-12-19T02:57:52.138-08:00</updated><title type='text'>Focus on solutions</title><content type='html'>When NASA began the launch of astronauts into space, they found out that the pens wouldn't work at zero gravity (Ink won't flow down to the writing surface). In order to solve this problem, they hired Andersen Consulting (Accenture today). It took them one decade and $12 million. They developed a pen that worked at zero gravity, upside down, underwater, in practically any surface including crystal and in a temperature range from below freezing to over 300 degrees C. And what did Russians do ?&lt;br /&gt;&lt;br /&gt;The Russians used a Pencil !!!&lt;br /&gt;&lt;br /&gt;So, learn to focus on solutions not on problems&lt;br /&gt;&lt;br /&gt;"If you look at what you do not have in life, you don't have anything. If you look at what you have in life, you have everything... ! "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5012758387876779751?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5012758387876779751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/focus-on-solutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5012758387876779751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5012758387876779751'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/focus-on-solutions.html' title='Focus on solutions'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4244837907499062019</id><published>2009-12-17T21:35:00.000-08:00</published><updated>2009-12-17T21:38:20.382-08:00</updated><title type='text'>Faith...</title><content type='html'>Once a priest had been on a long flight. The first warning of the approaching problems came when the sign on the airplane flashed on: "Fasten your seat belts." Then, after a while, a calm voice said, "We shall not be serving the beverages at this time as we are expecting a little turbulence.  Please be sure your seat belt is fastened." &lt;br /&gt;&lt;br /&gt;As he looked around the aircraft, it became obvious that many of the passengers were becoming apprehensive. Later, the voice of the announcer said,  "We are so sorry that we are unable to serve the meal at this time. The turbulence is still ahead of us." And then the storm broke. The threatening cracks of thunder could be heard even above the roar of the engines. Lightening lit up the darkening skies, and within moments that great plane was like a cork tossed around on a celestial ocean. One moment the airplane was lifted on terrific currents of air; the next, it dropped as if it were about to crash. &lt;br /&gt;&lt;br /&gt;The priest confessed that he shared the discomfort and fear of those around him.  He said, "As I looked around the plane, I could see that nearly all the passengers were upset and alarmed.  Some were praying.  The future seemed ominous and many were wondering if they would make it through the storm. &lt;br /&gt;&lt;br /&gt;And then, I suddenly saw a girl to whom the storm meant nothing.  She had tucked her feet beneath her as she sat on her seat and was reading a book. Everything within her small world was calm and orderly.  Sometimes she closed her eyes, then she would read again; then she would straighten her legs, but worry and fear were not in her world.  When the plane was being buffeted by the terrible storm, when it staggered this way and that, as it rose and fell with frightening severity, when all the adults were scared half to death, that marvelous child was completely composed and unafraid." &lt;br /&gt;&lt;br /&gt;The priest could hardly believe his eyes. It was not surprising therefore, that when the plane finally reached its destination and all the passengers were hurrying to get off, he stayed back to speak to the girl whom he had watched for such a long time. &lt;br /&gt;&lt;br /&gt;Having commented about the storm and behavior of the plane, he asked why she had not been afraid. &lt;br /&gt;&lt;br /&gt;The sweet child replied, "Sir, my Dad is the pilot, and he is taking me home..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4244837907499062019?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4244837907499062019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/faith.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4244837907499062019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4244837907499062019'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/faith.html' title='Faith...'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-6813452674669136744</id><published>2009-12-05T04:10:00.000-08:00</published><updated>2009-12-05T04:12:48.891-08:00</updated><title type='text'>How much land does a man need ?</title><content type='html'>The physical desires can never be satiated. The more one attempts to satisfy them, the more intense they grow, even as fire blazes instead of going out when oil is poured into it.&lt;br /&gt;&lt;br /&gt;Tolstoy has written a very instructive story under the title "How much land does a man need ?"&lt;br /&gt;&lt;br /&gt;- A man was promised free all land he could run round from sunrise till sunset. In his sheer greed to cover more and more land, he ran so far that he never got back to the starting place before sunset, and in utter exhaustion, he died. Only a strip of land, 7 feet,  was needed to bury him !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-6813452674669136744?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/6813452674669136744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/how-much-land-does-man-need.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6813452674669136744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/6813452674669136744'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/12/how-much-land-does-man-need.html' title='How much land does a man need ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2796757719382503109</id><published>2009-11-27T01:09:00.000-08:00</published><updated>2009-11-27T01:55:38.993-08:00</updated><title type='text'>Build your self confidence like a leader</title><content type='html'>This is an article by Marshall Goldsmith in which he states 5 points to build one's self confidence as a leader.&lt;br /&gt;&lt;br /&gt;1. Don't worry about being perfect&lt;br /&gt;2. Learn to live with failure&lt;br /&gt;3. After you make the final decision - commit!&lt;br /&gt;4. Show courage on the outside &lt;br /&gt;5. Find happiness and contentment in your work&lt;br /&gt;&lt;br /&gt;Here is the link to the article :-&lt;br /&gt;http://blogs.harvardbusiness.org/goldsmith/2009/10/build_your_self_confidence_lik.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2796757719382503109?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2796757719382503109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/build-your-self-confidence-like-leader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2796757719382503109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2796757719382503109'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/build-your-self-confidence-like-leader.html' title='Build your self confidence like a leader'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-963352977819379654</id><published>2009-11-03T20:29:00.000-08:00</published><updated>2009-11-04T00:26:52.681-08:00</updated><title type='text'>Search for Bhavani Sword of Chhatrapati Shivaji Maharaj ...</title><content type='html'>I recently read a marathi book &lt;strong&gt;'Shodh Bhavani Talvaricha' &lt;/strong&gt;(Search for Bhavani sword) written by Indrajit Sawant. The author has done M.A. in History and is having a collection of different types of historical weapons. (especially swords of Chhatrapati Shivaji's era). &lt;br /&gt;&lt;br /&gt;Chhatrapati Shivaji Maharaj was the greatest warrior of 17th century who established Hindavi Swarajya. He brought revolution in traditional maratha weapons. He developed Maratha swords. This type of sword has a unique comfortable hilt with a unique pommel.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Description of different parts of a typical Maratha Sword&lt;/em&gt; :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/SvEEwuH1ojI/AAAAAAAAADs/W5usZgGomyM/s1600-h/description.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 263px; height: 400px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/SvEEwuH1ojI/AAAAAAAAADs/W5usZgGomyM/s400/description.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400102663255073330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The author's passion towards the swords and history motivated him to investigate into the real swords of Chhatrapati Shivaji Maharaj and study different types of swords.&lt;br /&gt;&lt;br /&gt;There are different types of swords - Dhop, Khanda, Phirang, Latti, Samsher, etc.&lt;br /&gt;&lt;br /&gt;The swords belonging to Shivaji Maharaj are of Phirang type. i.e. the blade is of European (Portuguese) made and they are straight and hilt of the sword is of Maratha type. In the historical records,we can find that Shivaji Maharaj was having many swords like Tulaja, Bhavani, Jagadamba, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3OmmzqBBD1U/SvEF4XGh2JI/AAAAAAAAAD8/m0c3mYTbhCg/s1600-h/talvaar.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 51px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/SvEF4XGh2JI/AAAAAAAAAD8/m0c3mYTbhCg/s400/talvaar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400103894026147986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this book, the author has given many references / evidences to find out where these swords are located now. &lt;br /&gt;&lt;br /&gt;"Jagadamba", one of the swords of Shivaji Maharaj is now in London, in Royal Collection Trust of Royal family of Britain. This sword was presented by Shivaji IV of Kolhapur to Prince of Wales in 1875 AD. (The Royal Collection London - Address: Clarence House, St James's Palace, London, SW1 1BA)&lt;br /&gt;&lt;br /&gt;The catalog at Royal collection has the following entry about this sword :-&lt;br /&gt;&lt;br /&gt;" Sabre : Maratha: Straight, &lt;strong&gt;one-edged old European blade with two grooves on each side, in one of which I.H.S. is stamped three times&lt;/strong&gt;; the raised steel supports at the hilt are damascened with gold in floral designs; the guarded hilt is iron with a broad knuckle guard and a circular pommel, terminating in a spike and encrusted with heavy open-work Floral decoration of gold thickly set with large diamonds and rubies. &lt;strong&gt;Presented by H.H. the Maharaja of Kolhapur as a relic of the Maratha chief Shivaji, to whom it formerly belonged.&lt;/strong&gt;"&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Jagadamba sword in Royal collection &lt;/em&gt; :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SvEFcDsddLI/AAAAAAAAAD0/6xlAbbhNLSQ/s1600-h/royal.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 246px; height: 400px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SvEFcDsddLI/AAAAAAAAAD0/6xlAbbhNLSQ/s400/royal.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400103407780197554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Efforts are being made to bring back this sword from London back to India. This sword is indeed a source of inspiration to all of us.&lt;br /&gt;&lt;br /&gt;Please refer this link for more pictures and information :- http://swordofshivaji.blogspot.com/ &lt;br /&gt;&lt;br /&gt;I would recommend everyone to read this book. &lt;br /&gt;Many thanks to Indrajit Sawant for doing this excellent research !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-963352977819379654?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/963352977819379654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/search-for-bhavani-sword-of-chattrapati.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/963352977819379654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/963352977819379654'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/search-for-bhavani-sword-of-chattrapati.html' title='Search for Bhavani Sword of Chhatrapati Shivaji Maharaj ...'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/SvEEwuH1ojI/AAAAAAAAADs/W5usZgGomyM/s72-c/description.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5957667138788408434</id><published>2009-11-03T05:08:00.000-08:00</published><updated>2009-11-03T05:13:21.244-08:00</updated><title type='text'>Photos taken from air by Uddhav Thackeray</title><content type='html'>I liked these photos taken by Uddhav Thackeray - It includes forts in Maharashtra, some places in Mumbai and some places of worship in India.&lt;br /&gt;&lt;br /&gt;http://www.uddhavsphotos.com/photos.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5957667138788408434?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5957667138788408434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/photos-taken-from-air-by-uddhav.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5957667138788408434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5957667138788408434'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/11/photos-taken-from-air-by-uddhav.html' title='Photos taken from air by Uddhav Thackeray'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2407945166717336107</id><published>2009-10-25T03:12:00.000-07:00</published><updated>2009-11-03T05:29:44.607-08:00</updated><title type='text'>Are you still carrying her ... ?</title><content type='html'>Two monks were travelling in the rain, the mud sloshing under their feet. As they came to a rivulet crossing, they saw a beautiful young girl, finely dressed, unable to cross because of the mud. Without a word, the older monk picked up the girl and carried her to the other side.&lt;br /&gt;&lt;br /&gt;The younger monk was agitated for the rest of their journey and could not control himself once they reached their destination. He exploded at the older monk, "How could you, a monk, even consider holding a woman in your arms, much less a young and beautiful one? It is against our teachings. It is in very bad taste."&lt;br /&gt;&lt;br /&gt;"I put her down at the roadside", said the older monk, "Are you still carrying her ... ?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2407945166717336107?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2407945166717336107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/10/are-you-still-carrying-her.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2407945166717336107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2407945166717336107'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/10/are-you-still-carrying-her.html' title='Are you still carrying her ... ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3136062724265779202</id><published>2009-10-01T07:10:00.000-07:00</published><updated>2009-10-01T07:31:15.069-07:00</updated><title type='text'>Ruby treemap</title><content type='html'>I came across ruby treemap library and tried simple example with it. RubyTreemap is a library for generating treemaps in ruby in multiple formats such as png, svg and html.&lt;br /&gt;&lt;br /&gt;Treemaps are for visualizing data sets and are commonly used to display hierarchical data.&lt;br /&gt;&lt;br /&gt;Some good links :-&lt;br /&gt;&lt;br /&gt;http://rubytreemap.rubyforge.org/&lt;br /&gt;&lt;br /&gt;http://www.oreillynet.com/ruby/blog/2006/07/treemap_on_rails.html&lt;br /&gt;&lt;br /&gt;A Node in the treemap has a size and a color. The size can be any value and is specific to your data set. So for example, in a treemap of the book sales, a given node's size could be equal to it's total sales for the day. For all non-leaf nodes the size value must be equal to the sum of the sizes of it's children. If the size is nil it will be calculated by recursively summing the size of the child nodes. The color for a node can be either a value usually a percentage (a rate of change) or a hex string color.&lt;br /&gt;&lt;br /&gt;Installation and dependencies :-&lt;br /&gt;&lt;br /&gt; -- ruby script/plugin install http://github.com/rails/acts_as_tree.git&lt;br /&gt;&lt;br /&gt; -- ruby script/plugin install http://code.qnot.org/svn/projects/acts_as_treemap&lt;br /&gt;&lt;br /&gt; -- RMagick (rmagick.rubyforge.org/) &lt;br /&gt;    Download and extract RMagick-2.10.0-ImageMagick-6.5.3-10-Q8.zip from&lt;br /&gt;    http://rubyforge.org/frs/?group_id=12  :- &lt;br /&gt;&lt;br /&gt;    gem install rmagick --local (installing rmagick-2.10.0-x86-mswin32 )&lt;br /&gt;&lt;br /&gt; -- gem install ruby-treemap --source http://gems.rubyforge.org&lt;br /&gt;&lt;br /&gt;Our simple Book Model :- &lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SsS5bw_z7tI/AAAAAAAAAC8/CqegELm7k4A/s1600-h/book_model.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SsS5bw_z7tI/AAAAAAAAAC8/CqegELm7k4A/s400/book_model.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387634940902108882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the table that represents books as treemap :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/SsS5m0-hTBI/AAAAAAAAADE/wN0R02rxwzI/s1600-h/book_table.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 330px; height: 162px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/SsS5m0-hTBI/AAAAAAAAADE/wN0R02rxwzI/s400/book_table.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387635130948996114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and here is the generated treemap :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3OmmzqBBD1U/SsS5wcLOPgI/AAAAAAAAADM/qCeLF-BpqCA/s1600-h/book_treemap.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/SsS5wcLOPgI/AAAAAAAAADM/qCeLF-BpqCA/s400/book_treemap.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387635296090078722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can render the treemap in your view by :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/SsS7t-mtKeI/AAAAAAAAADU/G2yy-HPGKwE/s1600-h/texttitle.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 307px; height: 54px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/SsS7t-mtKeI/AAAAAAAAADU/G2yy-HPGKwE/s400/texttitle.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387637452815804898" /&gt;&lt;/a&gt;&lt;br /&gt;where @root is the parent treemap node.&lt;br /&gt;&lt;br /&gt;We can also override the methods in the Treemap::HtmlOutput class to modify the label names, making lables as hyperlinks, etc.&lt;br /&gt;&lt;br /&gt;If we want the rate of change of color, we can modify the model entry as below :-&lt;br /&gt;&lt;br /&gt;acts_as_treemap :label =&gt; :name, :size =&gt; :total, :color =&gt; :total&lt;br /&gt;&lt;br /&gt;So the rate change of color of blocks will be proportionate to the size of the book sales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3136062724265779202?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3136062724265779202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/10/ruby-treemap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3136062724265779202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3136062724265779202'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/10/ruby-treemap.html' title='Ruby treemap'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3OmmzqBBD1U/SsS5bw_z7tI/AAAAAAAAAC8/CqegELm7k4A/s72-c/book_model.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5035689573450980017</id><published>2009-09-24T04:02:00.000-07:00</published><updated>2009-09-24T04:03:50.291-07:00</updated><title type='text'>Old man and death</title><content type='html'>An old labourer, bent double with age and toil, was gathering sticks in a forest. At last he grew so tired and hopeless that he threw down the bundle of sticks, and cried out: "I cannot bear this life any longer. Ah, I wish Death would only come and take me!"&lt;br /&gt;&lt;br /&gt;As he spoke, Death, a grisly skeleton, appeared and said to him: "May I help you? I heard you called me just now."&lt;br /&gt;&lt;br /&gt;"Please, sir," replied the woodcutter, "would you kindly help me to lift this faggot of sticks on to my shoulder?"&lt;br /&gt;&lt;br /&gt;We would often be sorry if our wishes were gratified.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5035689573450980017?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5035689573450980017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/09/old-man-and-death.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5035689573450980017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5035689573450980017'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/09/old-man-and-death.html' title='Old man and death'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3633959076029724136</id><published>2009-06-26T02:24:00.000-07:00</published><updated>2009-06-26T03:18:29.974-07:00</updated><title type='text'>Playing with Prawnto - Ruby PDF generator plugin</title><content type='html'>I recently watched Ryan's railscast &lt;a href="http://railscasts.com/episodes/153-pdfs-with-prawn"&gt;PDFs with Prawn&lt;/a&gt; and tried it on tool version tracker application's index page (Please see my previous blog - &lt;a href="http://niranjansarade.blogspot.com/2009/05/tool-version-tracker-rails-application.html"&gt;Tool Version Tracker &lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;It was a good experience of writing text, image, table to pdf document with clean and neat code. I was able to generate the pdf document I intended to display in less than 20-25 minutes. (installing prawn gem, prawnto plugin, understanding some API and making code changes :-)  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cracklabs.com/prawnto"&gt;Prawnto&lt;/a&gt; is a rails plugin leveraging the &lt;a href="http://prawn.majesticseacreature.com"&gt;Prawn&lt;/a&gt; library to produce compiled pdf views. The plugin adds a new template handler class that will process any views with a .prawn extension. These .prawn views are evaluated as ruby code and are provided an instantiated Prawn::Document object as 'pdf'. The pdf object gives you complete access to all of prawn's capabilities. &lt;br /&gt;&lt;br /&gt;I added the following line to my index.rhtml page :-&lt;br /&gt;&lt;br /&gt;link_to 'PDF Format', tools_url(:pdf)&lt;br /&gt;&lt;br /&gt;Then I created index.pdf.prawn file :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SkSdMKFi52I/AAAAAAAAACs/j3kNr_uEnFg/s1600-h/prawn.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 156px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SkSdMKFi52I/AAAAAAAAACs/j3kNr_uEnFg/s400/prawn.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351575089414596450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicking 'PDF Format' link on index page generated inline pdf for tools as below :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/SkSeO-cecbI/AAAAAAAAAC0/Lm4ax0z_Z_U/s1600-h/tools_pdf.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 380px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/SkSeO-cecbI/AAAAAAAAAC0/Lm4ax0z_Z_U/s400/tools_pdf.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351576237340783026" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;There are many things that you can do with prawnto. (http://www.cracklabs.com/prawnto/demos) I plan to try these different options.&lt;br /&gt;&lt;br /&gt;Have a nice pdf ! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3633959076029724136?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3633959076029724136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/playing-with-prawnto-ruby-pdf-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3633959076029724136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3633959076029724136'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/playing-with-prawnto-ruby-pdf-generator.html' title='Playing with Prawnto - Ruby PDF generator plugin'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3OmmzqBBD1U/SkSdMKFi52I/AAAAAAAAACs/j3kNr_uEnFg/s72-c/prawn.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4672991978553404561</id><published>2009-06-18T08:50:00.000-07:00</published><updated>2009-06-18T08:54:01.301-07:00</updated><title type='text'>Code Reading – The Open Source Perspective</title><content type='html'>The book 'Code Reading' has been written by Diomidis Spinellis. &lt;br /&gt;&lt;br /&gt;This book is the first one to exclusively deal with code reading as a distinct activity. It primarily emphasizes on developing and improvising the Code Reading or comprehending skills of a programmer. The simplest way to learn to write great code is by reading good code. For that, one needs to make a distinction between a good and bad code.&lt;br /&gt;&lt;br /&gt;The level of abstraction the programmer can hit upon given a section of code to analyze, depends on his/her code reading skills and perception about the problem. This book helps to enhance these skills. &lt;br /&gt;&lt;br /&gt;At the beginning, it briefly introduces the commonly used programming structures and explains how to extract semantic meaning out of them. It talks about different nifty code reading techniques that may be used in the following scenarios –&lt;br /&gt;&lt;br /&gt;- Analyzing large bodies of code&lt;br /&gt;- Adding new functionality&lt;br /&gt;- Fixing bugs&lt;br /&gt;- Integrating into new environments&lt;br /&gt;- Code Reuse&lt;br /&gt;&lt;br /&gt;It further talks about understanding project build process, following coding standards and conventions, effectively using software documentation to supplement code reading efforts and getting architecture overview from a code in terms of design patterns.&lt;br /&gt;&lt;br /&gt;It also describes some of the code reading and browsing tools which can enhance the code reading efficiency. (e.g. Regular expressions, grep for search, diff for difference in files, source navigator for browsing, code beautifiers, runtime tools like profiler – gprof in unix, etc.)&lt;br /&gt;&lt;br /&gt;Reading this book will definitely spur interest into the programmers to learn a lot from the existing open source code and make valuable contributions to the open source world in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4672991978553404561?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4672991978553404561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/code-reading-open-source-perspective.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4672991978553404561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4672991978553404561'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/code-reading-open-source-perspective.html' title='Code Reading – The Open Source Perspective'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1270219546050292487</id><published>2009-06-17T02:23:00.000-07:00</published><updated>2009-06-17T02:39:10.398-07:00</updated><title type='text'>RailRoad - RoR diagram generator</title><content type='html'>Thanks to Javier Smaldone for developing this gem!&lt;br /&gt;&lt;br /&gt;http://railroad.rubyforge.org/&lt;br /&gt;&lt;br /&gt;This gem generates model and controller diagrams in RoR application. Javier has built on top of the original idea by Matt Biddulph. I mentioned Matt's idea in one of my earlier posts - Shaping models in RoR.&lt;br /&gt;&lt;br /&gt;We should play with RailRoad in all our RoR applications to understand the complexity of the relationships that we have developed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1270219546050292487?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1270219546050292487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/railroad-ror-diagrams-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1270219546050292487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1270219546050292487'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/railroad-ror-diagrams-generator.html' title='RailRoad - RoR diagram generator'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8371194151462885997</id><published>2009-06-09T06:58:00.000-07:00</published><updated>2009-06-17T21:15:15.984-07:00</updated><title type='text'>Making a difference !</title><content type='html'>This is a very nice story which I liked the most !&lt;br /&gt;&lt;br /&gt;A man was walking along a beach when he saw a woman picking up starfish off the sand and tossing them into the waves. Curious, he asked her what she was doing. The woman replied "When the tide goes out it leaves these starfish stranded on the beach. They will dry up and die before the tide comes back in, so I am throwing them back into the sea where they can live." &lt;br /&gt;&lt;br /&gt;The man then asked her "But this beach is miles long and there are hundreds of stranded starfish, many will die before you reach them - do you really think throwing back a few starfish is really going to make a difference?" &lt;br /&gt;&lt;br /&gt;The woman just smiled. She picked up a starfish and threw it into the waves.  "&lt;em&gt;It certainly makes a difference to this one&lt;/em&gt;" she said.&lt;br /&gt;&lt;br /&gt;In our day to day life, we come across many things that we consider very difficult to tackle with. There are many poor people, many mentally and physically retarded people, very old people, really needy people, etc. How can we make a difference in their lives ? Is it practical ? Certainly not. There are definitely some limitations.&lt;br /&gt;&lt;br /&gt;But can we take inspiration from the above starfish story and step into making difference to at least one really needy person? Don't you think that will certaily make a difference in his/her life ?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Can we donate our valuable eyes to blind person after our death ?&lt;br /&gt;Can we donate our blood ?&lt;br /&gt;Can we adopt one orphan child for his/her education ?&lt;br /&gt;Can we adopt a child completely ?&lt;br /&gt;Can we help someone to start with small business ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Actually there are many things that we can do .... we need to start with at least one though !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8371194151462885997?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8371194151462885997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/making-difference.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8371194151462885997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8371194151462885997'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/making-difference.html' title='Making a difference !'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2150644210949622532</id><published>2009-06-02T21:16:00.000-07:00</published><updated>2009-06-02T21:17:33.061-07:00</updated><title type='text'>The big fire and the little water</title><content type='html'>Long time ago there was a great fire in the forests that covered our Earth. People and animals started to run, trying to escape from the fire. One of the eagles, was flying away also when he noticed a small bird hurrying back and forth between the nearest river and the fire. He headed towards this small bird. &lt;br /&gt;&lt;br /&gt;He noticed that it was a small sparrow, flyinging to the river, picking up small drops of water in his beak, then returning to the fire to throw that tiny bit of water on the flame. The eagle approached the sparrow and yelled at him: "What are you doing brother? Are you stupid? You are not going to achieve anything by doing this. What are you trying to do? You must run for your life!" &lt;br /&gt;&lt;br /&gt;The sparrow stopped for a moment and looked at the big eagle, and then answered: &lt;br /&gt;"I am doing the best I can with what I have."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2150644210949622532?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2150644210949622532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/big-fire-and-little-water.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2150644210949622532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2150644210949622532'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/06/big-fire-and-little-water.html' title='The big fire and the little water'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1262220497290972728</id><published>2009-05-24T09:53:00.000-07:00</published><updated>2009-05-24T09:54:45.081-07:00</updated><title type='text'>Learning from mistakes</title><content type='html'>Thomas Edison tried two thousand different materials in search of a filament for the light bulb. When none worked satisfactorily, his assistant complained, "All our work is in vain. We have learned nothing."&lt;br /&gt;&lt;br /&gt;Edison replied very confidently, "Oh, we have come a long way and we have learned a lot. We know that there are two thousand elements which we cannot use to make a good light bulb!" &lt;br /&gt;&lt;br /&gt;Moral: &lt;em&gt;Always take things positively. You can learn a lot from the mistakes you commit. Actually by commiting mistakes, you are laying a strong foundation before the world. So even if you think you have wasted a big time for that, you have actually saved a huge time of others in future...&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1262220497290972728?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1262220497290972728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/learning-from-mistakes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1262220497290972728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1262220497290972728'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/learning-from-mistakes.html' title='Learning from mistakes'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-484781684807683459</id><published>2009-05-23T03:22:00.000-07:00</published><updated>2009-05-23T03:24:11.246-07:00</updated><title type='text'>Obedient Disciples</title><content type='html'>One day while they were on their way to a distant town, Guru Gampar fell asleep in the bullock cart they were travelling in. His head rolled from side to side and suddenly his turban slipped from his head and fell on to the road. But as their guru had told them never to do anything without his permission, none of the disciples made a move to get down and pick it up.&lt;br /&gt;&lt;br /&gt;When the guru woke up and was told about the loss of his turban he was furious. "Next time anything falls off pick it up at once!" he thundered. &lt;br /&gt;&lt;br /&gt;Some time later the bullock dropped its dung and the four foolish disciples leaped down and picked it up. Guru Gampar was horrified. He made a list of the things that could fall off from a moving cart. "Pick up any of these things if they fall," he told them, handing them the list. "Don't pick up anything that is not mentioned here."&lt;br /&gt;&lt;br /&gt;Just then the cart lurched violently and Guru Gampar was thrown headlong into a ditch. Guru Gampar yelled to his disciples to pull him out.&lt;br /&gt;&lt;br /&gt;"We can't, guruji," said his disciples, sadly. "Your name is not on the list you gave us."  Guru Gampar pleaded with them to pull him out, but in vain.&lt;br /&gt;&lt;br /&gt;"We know you are testing us, guruji," they told him. "But you can rest assured that we will never disobey you. You told us not pick up anything that was not mentioned in your list and we will not do so."&lt;br /&gt;&lt;br /&gt;"Give me the list!" yelled Guru Gampar. They threw him the list and the pen and the guru hastily scrawled his name on it. &lt;br /&gt;&lt;br /&gt;Then and then only did the obedient disciples pull their beloved guru out of the ditch and put him back into the cart !&lt;br /&gt;&lt;br /&gt;Moral : &lt;em&gt;Obedience has to be backed with Conscience and Prudence, otherwise it becomes just a silly act.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-484781684807683459?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/484781684807683459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/obedient-disciples.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/484781684807683459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/484781684807683459'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/obedient-disciples.html' title='Obedient Disciples'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1219977295918982533</id><published>2009-05-22T03:04:00.000-07:00</published><updated>2009-05-25T00:52:47.993-07:00</updated><title type='text'>What is Unobtrusive javascript ?</title><content type='html'>In simple words, it is separation of behaviour from the html structure.&lt;br /&gt;&lt;br /&gt;Consider the following example :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZ5ZE06IzI/AAAAAAAAACk/w_DZTprXVCE/s1600-h/javascrip.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 72px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZ5ZE06IzI/AAAAAAAAACk/w_DZTprXVCE/s400/javascrip.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5338587879993647922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The style of this button element, to include the font of its caption, is provided by CSS rules loaded via a stylesheet. But while this declaration does not mix style with structure, it does mix behavior with structure, by including the JavaScript&lt;br /&gt;that is to be executed when the button is clicked as part of the markup of the button element (which in this case, turns something named xyz red upon a click of the button).&lt;br /&gt;&lt;br /&gt;For all the same reasons that it is desirable to segregate style and structure within an HTML document, it is also becoming recognized that separation of behavior from structure has just as many, if not more, benefits.&lt;br /&gt;&lt;br /&gt;This movement is known as Unobtrusive Javascript.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; is a javascript library which supports this movement. It aims to change the way that web developers fundamentally think about creating rich functionality in their pages. jQuery is generally useful for any page that needs to perform anything but the most trivial of JavaScript operations, but is also strongly focused on enabling page authors to employ the concept of Unobtrusive JavaScript within their pages. With this approach, behavior is separated from structure in the same way that CSS separates style from structure, achieving better page organization and increased code versatility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1219977295918982533?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1219977295918982533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/what-is-unobtrusive-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1219977295918982533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1219977295918982533'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/what-is-unobtrusive-javascript.html' title='What is Unobtrusive javascript ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZ5ZE06IzI/AAAAAAAAACk/w_DZTprXVCE/s72-c/javascrip.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5183584038198843564</id><published>2009-05-21T00:18:00.000-07:00</published><updated>2009-05-21T05:52:25.834-07:00</updated><title type='text'>Who moved my cheese ?</title><content type='html'>The book  'Who moved my cheese?' has been written by Spencer Johnson. It's an amazing way to deal with change in our work and in our life. Many people have reported that what they discovered in the story has improved their careers, businesses, health and marriages.&lt;br /&gt;&lt;br /&gt;I found this book very interesting as it correctly identifies human thinking patterns.&lt;br /&gt;&lt;br /&gt;Cheese is a metaphor for what you want to have in life - whether it is a good job, a loving relationship, etc.&lt;br /&gt;&lt;br /&gt;Maze is where you look for what you want - the organisation you work in, or the family or community you live in.&lt;br /&gt;&lt;br /&gt;There are four imaginary characters depicted in the story. They intend to represent the simple and complex parts of ourselves, regardless of our age, gender, race or nationality.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sniff :- who sniffs out change early&lt;br /&gt;Scurry :- who scurries into action&lt;br /&gt;Hem :- who denies and resists change as he fears it will lead to something worse&lt;br /&gt;Haw :- who learns to adapt in time when he sees changing can lead to something better !&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Here are the simple but very important notes/principles mentioned in this book :-&lt;br /&gt;&lt;br /&gt;(&lt;em&gt;1) Having cheese makes you happy&lt;br /&gt;(2) The more important your cheese is to you, the more you want to hold on to it&lt;br /&gt;(3) If you do not change, you can become extinct&lt;br /&gt;(4) What would you do if you weren't afraid ?&lt;br /&gt;(5) Smell the cheese often so you know when it is getting old&lt;br /&gt;(6) Movement in a new direction helps you find new cheese&lt;br /&gt;(7) When you stop being afraid, you feel good !&lt;br /&gt;(8) Imagining yourself enjoying your new cheese leads you to it&lt;br /&gt;(9) The quicker you let go of old cheese, the sooner you find new cheese&lt;br /&gt;(10)It is safer to search in the maze, than remain in a cheeseless situation&lt;br /&gt;(11)Old beliefs do not lead you to new cheese&lt;br /&gt;(12)When you see that you can find and enjoy new cheese, you change course&lt;br /&gt;(13)Noticing small changes early helps you adapt to the bigger changes that are to come&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Enjoy reading ! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5183584038198843564?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5183584038198843564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/who-moved-my-cheese.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5183584038198843564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5183584038198843564'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/who-moved-my-cheese.html' title='Who moved my cheese ?'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-7764858845121713503</id><published>2009-05-19T23:06:00.000-07:00</published><updated>2009-05-22T03:21:26.811-07:00</updated><title type='text'>Astronomical Dating of the Ramayan and South America was known in Ramayan era - by Dr. P V Vartak</title><content type='html'>I recently read a book "Vastav Ramayan" (Real Ramayan) written by Dr. P.V.Vartak.&lt;br /&gt;He has done scientific research and calculated dates of the important events during Ramayan era. It is a very interesting and scientific book that everyone should read.&lt;br /&gt;&lt;br /&gt;Here is a link for Astronomical Dating of the Ramayan :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hindunet.org/hindu_history/ancient/ramayan/rama_vartak.html"&gt;Astronomical dating of Ramayan events&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, his research shows that South America was known at the Ramayan era. Indians migrated to South America which is called "Patal Lok" in sanskrit. There are some places in South America which denote the Indian culture, like Surya Mandir (Sun Temple), Elephants, Lord Ganesha and snakes carved on ancient monuments, etc.&lt;br /&gt;&lt;br /&gt;In Ramyan, when King Sugriv directs his men in all directions in search of Sita, he instructs people going to east direction to check out for a TRIDENT engraved on a mountain. He describes the Trident as "A long Golden flagstick with three limbs stuck on top. It always glitters in when seen from sky". (This trident is on west coast of peru - Lima and is visible clearly from the sky)&lt;br /&gt;&lt;br /&gt;In Valmiki Ramayan - Kishkindha Kaand - The sanskrit shlok is as below: (Kishkindha-39/47-48)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZOpubc7nI/AAAAAAAAACU/cbwapH4mDGg/s1600-h/kishkindha.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 173px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZOpubc7nI/AAAAAAAAACU/cbwapH4mDGg/s400/kishkindha.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5338540887039078002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZP9oKYbWI/AAAAAAAAACc/TS7dfuBl4eI/s1600-h/valkimi.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 307px; height: 54px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZP9oKYbWI/AAAAAAAAACc/TS7dfuBl4eI/s400/valkimi.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5338542328465878370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The entire Valkimi Ramayan can be found at :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sanskritdocuments.org/mirrors/ramayana/valmiki.htm"&gt;Complete Valkimi Ramayan in Sanskrit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The description given is so clear that Sugriv or Sage Valmiki must have seen this trident from sky proving they might have aeroplanes to travel.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/ShOkXO0OufI/AAAAAAAAACM/FkLHGVTN0EA/s1600-h/trident.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/ShOkXO0OufI/AAAAAAAAACM/FkLHGVTN0EA/s400/trident.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5337790702385281522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Around 100 miles from this trident, there is a place called Nazca or Nasca, where gigantic geometric shapes are drawn on land (Spread in miles across). These are visible from sky only. Looks like big airport at that time.&lt;br /&gt;&lt;br /&gt;Pls visit these links so that you can get a picture.&lt;br /&gt;&lt;a href="http://www.hows.org.uk/personal/hillfigs/foreign/cand/candel.htm"&gt;Trident at Lima-Peru&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://www.billandcori.com/peru/nazcalines.htm"&gt;Nazca lines&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;According to Dr. P. V. Vartak, the trident is a sign of east ( as we have 180 degrees today to decide from where west starts ). This was created by Lord Vishnu around 15000 - 17000 years ago. And the lines on the Nazca are the signs of Ancient Airport of King Bali, around 15000 years ago.&lt;br /&gt;&lt;br /&gt;If you get a chance, please read this book - Vastav Ramayan! It is awesome !&lt;br /&gt;&lt;br /&gt;Also the book 'PataalYatra' by Anil Patil is good to read. It is a fiction inspired by South America and Pataal invention by Dr. P V Vartak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-7764858845121713503?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/7764858845121713503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/astronomical-dating-of-ramayan-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7764858845121713503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/7764858845121713503'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/astronomical-dating-of-ramayan-and.html' title='Astronomical Dating of the Ramayan and South America was known in Ramayan era - by Dr. P V Vartak'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/ShZOpubc7nI/AAAAAAAAACU/cbwapH4mDGg/s72-c/kishkindha.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-5665011256581851671</id><published>2009-05-19T22:29:00.000-07:00</published><updated>2009-05-21T00:18:23.322-07:00</updated><title type='text'>Michael Crichton's fictions</title><content type='html'>I have read few fictions of Michael Crichton and very impressed with his writing skills. He keeps one totally engrossed with the story.&lt;br /&gt;&lt;br /&gt;Jurassic Park, The Lost World, The Terminal Man, Eaters of the Dead, Timeline, State of Fear, The Andromeda Strain are some of his fictions that I have read and liked all of these.&lt;br /&gt;&lt;br /&gt;I have also seen some movies that are based on his novels, but truely speaking the thrill that I experienced while reading the novels was much greater than watching the movie :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-5665011256581851671?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/5665011256581851671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/michael-crichton-fictions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5665011256581851671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/5665011256581851671'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/michael-crichton-fictions.html' title='Michael Crichton&apos;s fictions'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-4637536212028489010</id><published>2009-05-14T06:27:00.000-07:00</published><updated>2009-05-19T01:28:58.923-07:00</updated><title type='text'>Shaping Models in ruby on rails</title><content type='html'>Whenever a new team member enters to any enhancement project, from technical perspective, he tries to understand the already developed code. Code comprehension may become difficult if there is no proper documentation. There can be many models with different relationships defined amongst themselves. Won't it be good to have some sort of diagrammatic representation of the Model relationships ? It will certainly be very helpful for the development and support teams to understand the application in technical perspective.&lt;br /&gt;&lt;br /&gt;Let's develop small and simple ruby code to construct a diagrammatic representation&lt;br /&gt;of the Model (Active Record) relationships (Model in M-V-C architecture) in any Ruby on Rails application. (We will follow KISS principle - Keep it simple and Succinct ! :-)&lt;br /&gt;&lt;br /&gt;Active Record is an implementation of the object-relational mapping (ORM) pattern by the same name as described by Martin Fowler:&lt;br /&gt;&lt;br /&gt; &lt;em&gt; "An object that wraps a row in a database table or view, encapsulates &lt;br /&gt;       the database access, and adds domain logic on that data."&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Active Record supports three types of relationship between tables:&lt;br /&gt;  (1) one-to-one&lt;br /&gt;  (2) one-to-many&lt;br /&gt;  (3) many-to-many.&lt;br /&gt;You indicate these relationships by adding declarations to your models: has_one, has_many, belongs_to, and has_and_belongs_to_many.&lt;br /&gt;&lt;br /&gt;There is a tool called 'Gvedit' (graphviz-2.20.2.exe) (http://www.graphviz.org/) which generates Directed and Undirected graphs. It accepts a dot file in specific format and it generates directed graphs free of cost ! :-) Why not use this tool ?&lt;br /&gt;&lt;br /&gt;We can use the reflections for findling all associations of a Model.&lt;br /&gt;http://api.rubyonrails.com/classes/ActiveRecord/Reflection/ClassMethods.html&lt;br /&gt;&lt;br /&gt;Here is the utility which can be run from the rails application root and generates simple text file with the represention that the dot file requires for creating graphs. It looks for all the model classes under app/models directory.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/SgwjHLPpLII/AAAAAAAAABs/VWm6u1KWvrM/s1600-h/diagram2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/SgwjHLPpLII/AAAAAAAAABs/VWm6u1KWvrM/s400/diagram2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335678264711654530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It generates a simple text file as below :-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;digraph model_relationship {&lt;br /&gt;Asset -&gt; DbFile [label=belongs_to]&lt;br /&gt;Asset -&gt; Thumbnail [label=has_many]&lt;br /&gt;Category -&gt; Child [label=has_many]&lt;br /&gt;Category -&gt; Content [label=has_and_belongs_to_many]&lt;br /&gt;Category -&gt; Parent [label=belongs_to]&lt;br /&gt;Content -&gt; Category [label=has_and_belongs_to_many]&lt;br /&gt;Content -&gt; Asset [label=belongs_to]&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Save this as a .dot file. Open this file in Gvedit and run to generate the graph.&lt;br /&gt;&lt;br /&gt;Here is a sample graph generated out of Gvedit :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/Sgwuv6s7wSI/AAAAAAAAAB8/ewUm4CSPJFM/s1600-h/models.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/Sgwuv6s7wSI/AAAAAAAAAB8/ewUm4CSPJFM/s400/models.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335691059273646370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We can thus get a picture of all the model relationships in a typical ruby on rails application !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-4637536212028489010?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/4637536212028489010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/shaping-models-in-ruby-on-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4637536212028489010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/4637536212028489010'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/shaping-models-in-ruby-on-rails.html' title='Shaping Models in ruby on rails'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_3OmmzqBBD1U/SgwjHLPpLII/AAAAAAAAABs/VWm6u1KWvrM/s72-c/diagram2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-1179595711024639475</id><published>2009-05-14T03:10:00.000-07:00</published><updated>2009-05-14T06:26:56.540-07:00</updated><title type='text'>Tool Version Tracker rails application for sourceforge tools</title><content type='html'>There are many sourceforge open source tools and it is sometimes difficult to track the latest vesions of all tools and keep us updated. We should atleast try to track the latest versions of the open source tools that we daily use in our projects.&lt;br /&gt;&lt;br /&gt;So why not develop a very simple rails application which will allow you to add, edit and destroy tool information, the sourceforge url, version information, etc. Let's develop tool version tracker app with CRUD operations and some logic to track the tool versions :-) The logic may not be great but definitely useful for core developers who are always looking for new things/tools/versions ! Find the updated versions of the sourceforge tools and send an email with the updated versions to all team members :-) We can either run this periodically through web application or we can do some modifications to run this as a scheduled cron job :-)&lt;br /&gt;&lt;br /&gt;We will use hpricot for parsing html.&lt;br /&gt;Let's take an example of checkstyle. If we go to this link :- http://sourceforge.net/project/showfiles.php?group_id=29721&lt;br /&gt;&lt;br /&gt;We will find the version information as :-&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/SgvxUviXQ2I/AAAAAAAAAAk/o3qRQeQ6gFs/s1600-h/checkstyle.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 85px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/SgvxUviXQ2I/AAAAAAAAAAk/o3qRQeQ6gFs/s400/checkstyle.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5335623522210759522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So in our code we will just compare the release number by parsing the html with hpricot and find out any change in version of the tool.&lt;br /&gt;&lt;br /&gt;Here is the code in html_parser.rb under lib :-&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SgvyfrtdAnI/AAAAAAAAAAs/dJUxSBt0SrE/s1600-h/html_parser.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SgvyfrtdAnI/AAAAAAAAAAs/dJUxSBt0SrE/s400/html_parser.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5335624809673720434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the environment.rb file, add the following line :-&lt;br /&gt;&lt;br /&gt;SOURCEFORGE_URL = "http://sourceforge.net/project/showfiles.php?group_id="&lt;br /&gt;&lt;br /&gt;For each tool, we have a unique group id.&lt;br /&gt;&lt;br /&gt;The migration for Tool model is as below :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/Sgv-9anOjmI/AAAAAAAAAA0/d76k5jeov6M/s1600-h/tool_migration.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/Sgv-9anOjmI/AAAAAAAAAA0/d76k5jeov6M/s400/tool_migration.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335638514619813474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can view all the tools on index as below :-&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/Sgv_z8x720I/AAAAAAAAAA8/t--MQPk2k-k/s1600-h/tool_list.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 382px;" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/Sgv_z8x720I/AAAAAAAAAA8/t--MQPk2k-k/s400/tool_list.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335639451504466754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find the updated version of individual tool or all tools by clicking on the links. So after clicking on the Update versions of all tools, you will get :-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3OmmzqBBD1U/SgwAakCoZYI/AAAAAAAAABE/K4RMW_Iv2Ik/s1600-h/tool_list_updated.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 376px;" src="http://1.bp.blogspot.com/_3OmmzqBBD1U/SgwAakCoZYI/AAAAAAAAABE/K4RMW_Iv2Ik/s400/tool_list_updated.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335640114878506370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And an email is also sent with the latest information (Simple Rails ActionMailer):-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3OmmzqBBD1U/SgwA_puV6_I/AAAAAAAAABM/kcN3_xZ1Xks/s1600-h/mail.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 139px;" src="http://2.bp.blogspot.com/_3OmmzqBBD1U/SgwA_puV6_I/AAAAAAAAABM/kcN3_xZ1Xks/s400/mail.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5335640752059182066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can edit/add the tool information from your application as :-&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_3OmmzqBBD1U/SgwBSpISRcI/AAAAAAAAABU/ZDpFke1PRKM/s1600-h/tool_edit.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 345px;" src="http://3.bp.blogspot.com/_3OmmzqBBD1U/SgwBSpISRcI/AAAAAAAAABU/ZDpFke1PRKM/s400/tool_edit.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335641078317073858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So how do you find it ? It is simple and easy to develop through Rails and definitely useful for all the Automated Tool Lovers :-)&lt;br /&gt;It certainly solves our purpose :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-1179595711024639475?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/1179595711024639475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/tool-version-tracker-rails-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1179595711024639475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/1179595711024639475'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/05/tool-version-tracker-rails-application.html' title='Tool Version Tracker rails application for sourceforge tools'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OmmzqBBD1U/SgvxUviXQ2I/AAAAAAAAAAk/o3qRQeQ6gFs/s72-c/checkstyle.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8219117364756736753</id><published>2009-04-23T02:19:00.000-07:00</published><updated>2009-04-23T02:40:39.916-07:00</updated><title type='text'>Sinatra - web application framework in Ruby</title><content type='html'>In one of my ruby applications, there was a requirement to monitor application log file. We did it very quickly with sinatra web application framework. The requests made are checking whether application is running, viewing log file, etc.&lt;br /&gt;&lt;br /&gt;http://www.sinatrarb.com/intro.html&lt;br /&gt;&lt;br /&gt;Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort. In Sinatra, a route is an HTTP method paired with an URL matching pattern. Each route is associated with a block. Routes are matched in the order they are defined. The first route that matches the request is invoked.&lt;br /&gt;&lt;br /&gt;Sinatra rides on Rack, a minimal standard interface for Ruby web frameworks. One of Rack’s most interesting capabilities for application developers is support for “middleware” — components that sit between the server and your application monitoring and/or manipulating the HTTP request/response to provide various types of common functionality. &lt;br /&gt;&lt;br /&gt;Just do this and you will be on track :-)&lt;br /&gt;&lt;br /&gt;gem install sinatra&lt;br /&gt;ruby myapp.rb&lt;br /&gt;&lt;br /&gt;In myapp.rb :- &lt;br /&gt;get '/checklog' do &lt;br /&gt;   Some code here ...&lt;br /&gt;   [200, {"Content-Type" =&gt; "text/html"},&lt;br /&gt;    "Log is ok?:true or false]&lt;br /&gt;end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8219117364756736753?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8219117364756736753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/04/sinatra-web-application-framework-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8219117364756736753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8219117364756736753'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/04/sinatra-web-application-framework-in.html' title='Sinatra - web application framework in Ruby'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-3053583421162432562</id><published>2009-02-07T04:33:00.000-08:00</published><updated>2009-02-07T04:35:03.673-08:00</updated><title type='text'>Verifying Compliance to Coding Standards with Checkstyle</title><content type='html'>CheckStyle is an open source tool that helps in verifying compliance to a coding standard. The rules of the coding standard can be configured in an XML file. This makes it ideal for projects that want to enforce a coding standard.&lt;br /&gt;&lt;br /&gt;CheckStyle increases code comprehension and makes code review less taxing. It is most useful when integrated into a build process or development environment.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://checkstyle.sourceforge.net/"&gt;http://checkstyle.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-3053583421162432562?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/3053583421162432562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/02/verifying-compliance-to-coding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3053583421162432562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/3053583421162432562'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/02/verifying-compliance-to-coding.html' title='Verifying Compliance to Coding Standards with Checkstyle'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-2461930905075521453</id><published>2009-02-07T04:01:00.000-08:00</published><updated>2009-02-13T08:26:46.108-08:00</updated><title type='text'>Detect commonly occurring defects with PMD, Findbugs and Jlint</title><content type='html'>A compiler may have difficulty in finding some commonly occurring defects such as null assignment, empty catch block, catching the canonical Exception instead of a specific one, etc. Dr. Eric Allen lists many instances of these defects in his book ‘Java Bug Patterns’.&lt;br /&gt;&lt;br /&gt;PMD can detect such defects in a given set of Java source file once they are described as ‘patterns’. PMD rules can be written in java.&lt;br /&gt;&lt;br /&gt;FindBugs &amp;amp; JLint can detect common defects by reviewing the class files. JLint can detect inconsistencies and synchronization problems.&lt;br /&gt;&lt;br /&gt;CPD – a variant of the PMD is used for detecting instances of code that has been copy-pasted. Duplication of code indicates non-existence of single point of control. A bug can propagate to other parts of the code if the base code contains bug in it. CPD thus can denote code that needs to be refactored.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pmd.sourceforge.net/"&gt;http://pmd.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://findbugs.sourceforge.net/"&gt;http://findbugs.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jlint.sourceforge.net/"&gt;http://jlint.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These tools are very interesting and simple to use.&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;try {&lt;br /&gt;var pageTracker = _gat._getTracker("UA-7227458-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;} catch(err) {}&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-2461930905075521453?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/2461930905075521453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/02/detect-commonly-occurring-defects-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2461930905075521453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/2461930905075521453'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/02/detect-commonly-occurring-defects-with.html' title='Detect commonly occurring defects with PMD, Findbugs and Jlint'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-8189950558424903232</id><published>2009-01-23T02:03:00.000-08:00</published><updated>2009-01-23T02:06:34.109-08:00</updated><title type='text'>Articles on Trekking - Vasota-Nageshwar, Fansad-Korlai, Ankaai-Tankaai</title><content type='html'>&lt;p&gt;Here are my few articles about trekking and nature ! I have written those in my Mother Language, i.e. Marathi ! :-)&lt;/p&gt;&lt;p&gt;&lt;a href="http://trekshitiz.com/articles/Article_Index.htm"&gt;http://trekshitiz.com/articles/Article_Index.htm&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-8189950558424903232?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/8189950558424903232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/01/articles-on-trekking-vasota-nageshwar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8189950558424903232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/8189950558424903232'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/01/articles-on-trekking-vasota-nageshwar.html' title='Articles on Trekking - Vasota-Nageshwar, Fansad-Korlai, Ankaai-Tankaai'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8926261999471799923.post-759221416387713373</id><published>2009-01-23T01:49:00.000-08:00</published><updated>2009-02-09T06:01:54.899-08:00</updated><title type='text'>Ruby on Rails - Metric_fu integration with cruisecontrol.rb</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_3OmmzqBBD1U/SZA0rTR8prI/AAAAAAAAAAU/0WLx3Fbxko4/s1600-h/stats_file.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5300794679929644722" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 146px" alt="" src="http://4.bp.blogspot.com/_3OmmzqBBD1U/SZA0rTR8prI/AAAAAAAAAAU/0WLx3Fbxko4/s320/stats_file.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;You can integrate &lt;strong&gt;metric_fu with cruisecontrol&lt;/strong&gt; ! It is very simple and straightforward !&lt;br /&gt;&lt;a href="http://metric-fu.rubyforge.org/"&gt;http://metric-fu.rubyforge.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Metric_fu is a set of rake tasks to generate metrics reports. It uses &lt;strong&gt;Saikuro&lt;/strong&gt; ( Cyclomatic complexity), &lt;strong&gt;Flog&lt;/strong&gt; (Cyclomatic complexity) , &lt;strong&gt;Rcov &lt;/strong&gt;(Unit test coverage), &lt;strong&gt;Churn &lt;/strong&gt;( Finds how many times your files have been changed), &lt;strong&gt;Subversion&lt;/strong&gt;, &lt;strong&gt;Git&lt;/strong&gt;, and Rails built-in &lt;strong&gt;stats&lt;/strong&gt; (LOC, Methods, Test LOC, Code LOC, etc.) task to create a series of reports.&lt;br /&gt;&lt;br /&gt;There was issue with &lt;strong&gt;stats&lt;/strong&gt; report not rendering properly in the browser. Fixed that issue with modifying stats rake task inside metric_fu.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Modified file :- jscruggs-metric_fu-0.8.0\lib\tasks\stats.rake&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8926261999471799923-759221416387713373?l=niranjansarade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niranjansarade.blogspot.com/feeds/759221416387713373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://niranjansarade.blogspot.com/2009/01/ruby-on-rails-metricfu-integration-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/759221416387713373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8926261999471799923/posts/default/759221416387713373'/><link rel='alternate' type='text/html' href='http://niranjansarade.blogspot.com/2009/01/ruby-on-rails-metricfu-integration-with.html' title='Ruby on Rails - Metric_fu integration with cruisecontrol.rb'/><author><name>Niranjan Sarade</name><uri>http://www.blogger.com/profile/10179943669976260975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_3OmmzqBBD1U/TKs7fSsE44I/AAAAAAAAAH0/HP9NhcQTf64/S220/Usa+352.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_3OmmzqBBD1U/SZA0rTR8prI/AAAAAAAAAAU/0WLx3Fbxko4/s72-c/stats_file.bmp' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
