<?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-7400408</id><updated>2011-12-31T12:47:56.817+05:30</updated><category term='giving'/><category term='milk network'/><category term='poverty'/><title type='text'>Piyush Ranjan 's den</title><subtitle type='html'>Piyush Ranjan's blogsite, Ruby, Ruby on Rails</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default?start-index=101&amp;max-results=100'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>116</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7400408.post-1216373447228081069</id><published>2011-11-06T13:48:00.003+05:30</published><updated>2011-11-06T14:04:31.505+05:30</updated><title type='text'>Not subsidizing petrol is good</title><content type='html'>Because government should&lt;div&gt;&lt;ul&gt;&lt;li&gt;not subsidize 3% (rich) population's leisurely drives&lt;/li&gt;&lt;li&gt;better spend that money in building public transport&lt;/li&gt;&lt;li&gt;build better healthcare facility&lt;/li&gt;&lt;li&gt;bring down fiscal deficit&lt;/li&gt;&lt;li&gt;provide money out to poor via NREGA&lt;/li&gt;&lt;li&gt;pass food security bill and provide out food security&lt;/li&gt;&lt;li&gt;take steps to reduce pollution by making driving more expensive and public transport more effective&lt;/li&gt;&lt;li&gt;dissuade people from driving cars to de-congest city roads&lt;/li&gt;&lt;li&gt;encourage car pooling and this is one way of doing it&lt;/li&gt;&lt;li&gt;encourage innovation of alternate fuels in the country and prohibitive costs of petrol is a good way of doing that&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1216373447228081069?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1216373447228081069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1216373447228081069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1216373447228081069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1216373447228081069'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/11/not-subsidizing-petrol-is-good.html' title='Not subsidizing petrol is good'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5525628390624723988</id><published>2011-10-25T00:15:00.007+05:30</published><updated>2011-10-25T00:27:59.115+05:30</updated><title type='text'>Say Happy Diwali without fireworks</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Watch this photo series and decide for yourself&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s400/1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5667132534434602978" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" &gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); font-style: italic; -webkit-text-decorations-in-effect: underline; font-size: small; "&gt;http://wd-society.blogspot.com/2009/04/indian-fireworks-blaze-kills-23.html&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); font-style: italic; -webkit-text-decorations-in-effect: underline; font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" &gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;img src="http://4.bp.blogspot.com/-n5Jwx5bBOF8/TqWzUrliHHI/AAAAAAAAAnc/J0V5VCeSEr8/s400/c0838.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5667132873994542194" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 267px; height: 400px; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;u&gt;&lt;a href="http://www.ilo.org/dyn/media/mediasearch.fiche?p_id=307"&gt;&lt;i&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;http://www.ilo.org/dyn/media/mediasearch.fiche?p_id=307&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-eUBZ4GK9Tjw/TqWzqs5jkiI/AAAAAAAAAno/6UNo0JTy_rc/s400/c1253.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5667133252304081442" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 267px; height: 400px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; " &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;i&gt;&lt;a href="http://www.ilo.org/dyn/media/mediasearch.fiche?p_id=449"&gt;http://www.ilo.org/dyn/media/mediasearch.fiche?p_id=449&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; " &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; " &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-q5qRVYidLCI/TqW0EdXENuI/AAAAAAAAAn0/tI0ihwo2NW8/s400/VBK20-BANG_8855f.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5667133694809487074" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 257px; " /&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://www.thehindu.com/news/cities/Bangalore/article36580.ece"&gt;http://www.thehindu.com/news/cities/Bangalore/article36580.ece&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I do not understand why do we let this madness happen every year. There is much more to Diwali than firecrackers. What do they give us anyway ? Pollution, many children without childhood, some without eyes and others dead. To add to this misery they cost so much and add strain to our already stressed wallets! &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Saying no to firecrackers is not enough. Actively discourage others too.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&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/7400408-5525628390624723988?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5525628390624723988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5525628390624723988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5525628390624723988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5525628390624723988'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/10/say-happy-diwali-without-fireworks.html' title='Say Happy Diwali without fireworks'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-vypXCO57iPc/TqWzA6oIn-I/AAAAAAAAAnQ/yse6-eeW9Dg/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-6703328608556026420</id><published>2011-10-12T10:28:00.002+05:30</published><updated>2011-10-12T10:30:50.762+05:30</updated><title type='text'>A few things about India that is not so well known</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 17px; font-family: 'Helvetica Neue', Helvetica, Arial, default; "&gt;&lt;span class="inline_editor_value" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;ol style="margin-top: 5px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.6em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;India has a nuclear capable missile which can travel at 7mach&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Rural population of India is about 60% of Indian population&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;More than 50% of Indians have mobile phones&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Indian mobile network is better than most other mobile networks in the world in terms of quality, coverage and cost(one SMS costs less than 1 cent, calling is at 1 cent per minute).&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;There is a rural employment guarantee scheme which covers a very large part of Indian population&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Medicines in India are very cheap compared to US and cost of healthcare is also a magnitude lower. There are a lot of good hospitals and medical tourism is on the rise.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;India has an active fast breeder reactor program which, if successful, would lead to energy security&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Some parts of India are very under developed and malnutrition is higher than sahara desert countries&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;About 40% of Indians are below poverty line and live in very unhygienic conditions&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;There are about 15 Indian cities where Metro railways in under construction or planned&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;India now manufactures more 4 mn cars and commercial vehicles per year. This is a 500% jump for last 10 years&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;India is the largest milk producer in the world. Production was about 120 mn tonnes in 2010. This figure is almost double of US milk production.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Gold consumption of India was about 745 tonnes last year. This is highest in the world and is about 6 times the US consumption. Women in India are crazy about gold and it is bought as investment&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-6703328608556026420?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/6703328608556026420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=6703328608556026420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6703328608556026420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6703328608556026420'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/10/few-things-about-india-that-is-not-so.html' title='A few things about India that is not so well known'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1811593725351757612</id><published>2011-10-06T23:54:00.003+05:30</published><updated>2011-10-07T00:16:14.136+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='giving'/><category scheme='http://www.blogger.com/atom/ns#' term='poverty'/><category scheme='http://www.blogger.com/atom/ns#' term='milk network'/><title type='text'>Joy of giving - Day 1</title><content type='html'>Sometime back I wondered &lt;a href="http://pranjan.blogspot.com/2010/10/milk-network.html"&gt;here&lt;/a&gt;, if there could be a milk network, to feed poor children and take food out of their daily problems list. In fact, I have been wondering about it off and on. Today I decided to make a start. Though, it was not milk that I started with. I had some old clothes lying around and some extra food. These were some destitute people sitting near Sai dham temple at Kandivali East on the western express highway. They seem to be in business of making brooms. There were around 50 of them living in small roadside huts.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are a few points I considered/learned today:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;I feel giving away clothes or other goods is better than giving away food. I feel that food gets over too quickly to make any significant difference in their lives. I'd much rather give them utensils, clothes, sewing material, carry bags, newspapers, books etc than giving away food. These things help them jack up quality of their daily life by a small percentage. &lt;/li&gt;&lt;li&gt;It is better to give to adults in the family and not to children. Children tend to be too eager with things and may not use them to the fullest. Adult members are more sane and they even tell you what do they want next time.&lt;/li&gt;&lt;li&gt;Choose a location close to home. Not too close as you don't want them to follow you back home and it is good exercise to walk a few kilometers a day. &lt;/li&gt;&lt;li&gt;Do not be afraid of them. They are people after all and will not try to hurt anybody who gives them&lt;/li&gt;&lt;li&gt;Talk to them and ask them about their needs. Try to dissuade them from asking money and ask them to use the goods to do something productive&lt;/li&gt;&lt;/ol&gt;More soon.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1811593725351757612?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1811593725351757612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1811593725351757612' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1811593725351757612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1811593725351757612'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/10/joy-of-giving-day-1_06.html' title='Joy of giving - Day 1'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1257325420725651692</id><published>2011-07-28T21:47:00.002+05:30</published><updated>2011-07-28T21:49:59.230+05:30</updated><title type='text'>Say no to Anna</title><content type='html'>I sometimes wonder why we Indians are so gullible ? Why do we always believe everything that these babas, media says and never believe what the government says. I think it runs in our blood. With English ruling us for so long we are programmed to react this way.&lt;br /&gt;&lt;br /&gt;But now things have changed. We are no longer ruled by them. We are no longer a third world country. We are a strong and dominant economy and there are people who would like us to remain in middle ages. We saw an example of that during CWG games. When we were busy maligning our own country, government and games, outsiders took advantage of this to show the world a negative picture of us.&lt;br /&gt;&lt;br /&gt;Even now these people are busy weakening our government and country and we are celebrating them. If you have issues with the ruling political party, settle it during the elections. Let government function and take country forward. Time has come to ignore such people and move forward. Corruption cannot be squatted by a bill. It is within us. Within you and me. Solve that first and government would become clean automatically.  Government is just a reflection of our society. &lt;br /&gt;&lt;br /&gt;We don't need a revolution. We need a stable and strong government. We need growth and prosperity. &lt;br /&gt;&lt;br /&gt;Please don't be foolish and Say NO to Anna!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1257325420725651692?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1257325420725651692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1257325420725651692' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1257325420725651692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1257325420725651692'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/07/say-no-to-anna.html' title='Say no to Anna'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3137067078857819746</id><published>2011-07-06T23:08:00.004+05:30</published><updated>2011-07-06T23:11:05.148+05:30</updated><title type='text'>Facebook launches video chat</title><content type='html'>FB launches video chat. It will be an extension. It is based on skype.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3137067078857819746?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3137067078857819746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3137067078857819746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3137067078857819746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3137067078857819746'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/07/facebook-launched-video-chat.html' title='Facebook launches video chat'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1168300673034595374</id><published>2011-06-10T20:11:00.002+05:30</published><updated>2011-06-10T20:17:21.688+05:30</updated><title type='text'>Airtel broadband TV</title><content type='html'>I just purchased Airtel broadband TV subscription for Rs. 99 a month. I must say that it is a really cool experience. They have almost all channels I watch (except Movies now) like TLC, Discovery, Turbo, NDTV (all news channel but they do not have goodtimes yet), Bloomberg, ET now, Nat geo, Animal planet. &lt;br /&gt;&lt;br /&gt;The sign up process was also quiet easy and not something I would normally expect from Airtel. They have also a bunch of movies that one can watch on demand. &lt;br /&gt;&lt;br /&gt;I think they have a solid offering here. If they can add a few more channels (sports and entertainment) this service can really take off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1168300673034595374?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1168300673034595374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1168300673034595374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1168300673034595374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1168300673034595374'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/06/airtel-broadband-tv.html' title='Airtel broadband TV'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-974570028529108176</id><published>2011-05-16T02:41:00.003+05:30</published><updated>2011-05-16T02:43:33.887+05:30</updated><title type='text'>Ragini MMS is a well made horror movie</title><content type='html'>Ragini MMS is the latest out of Ms. Eakta kapoor's production stable and I must say that like her earlier productions like Shor in the city, One upon a time in mumbai, LSD etc this one also did not disappoint. A well made horror movie, a gripping story and chilling screenplay. I'd give it a 4/5. Must watch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-974570028529108176?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/974570028529108176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=974570028529108176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/974570028529108176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/974570028529108176'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/05/ragini-mms-is-well-made-horror-movie.html' title='Ragini MMS is a well made horror movie'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5555377063522643836</id><published>2011-05-04T16:53:00.001+05:30</published><updated>2011-10-08T13:47:40.322+05:30</updated><title type='text'>Dear google</title><content type='html'>Dear Google, &lt;br /&gt;&lt;br /&gt;When I mark a sender's email as spam, I mean don't show it in my inbox again. I hope someday you'd understand. Please stop driving your automated cars and make your fucking spam filter work. &lt;br /&gt;&lt;br /&gt;Thank you&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5555377063522643836?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5555377063522643836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5555377063522643836' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5555377063522643836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5555377063522643836'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/05/dear-google.html' title='Dear google'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2462617895827991178</id><published>2011-05-03T17:05:00.003+05:30</published><updated>2011-05-04T16:53:30.679+05:30</updated><title type='text'>While Americans celebrate death of Laden..</title><content type='html'>lets do a recap who created this Frankenstein's monster. Straight from horse's mouth!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe width="480" height="390" src="http://www.youtube.com/embed/ipszh14WPFY" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2462617895827991178?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2462617895827991178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2462617895827991178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2462617895827991178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2462617895827991178'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/05/while-american-celebrate-death-of-laden.html' title='While Americans celebrate death of Laden..'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ipszh14WPFY/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2348265220598305553</id><published>2011-03-14T12:48:00.006+05:30</published><updated>2011-03-14T13:19:21.764+05:30</updated><title type='text'>Team win vs century by player</title><content type='html'>&lt;table width="30%" style="margin-top: 0px; padding-top: 0px"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Sachin&lt;/td&gt;&lt;td&gt;68.75%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ganguly&lt;/td&gt;&lt;td&gt;      81.82%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ponting&lt;/td&gt;&lt;td&gt;       86.21%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sehwag&lt;/td&gt;&lt;td&gt;      92.86%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Jayasuriya&lt;/td&gt;&lt;td&gt;   85.71%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lara&lt;/td&gt;&lt;td&gt;           84.21%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Kallis&lt;/td&gt;&lt;td&gt;          76.47%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mahela&lt;/td&gt;&lt;td&gt;        100.00%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2348265220598305553?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2348265220598305553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2348265220598305553' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2348265220598305553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2348265220598305553'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/03/team-win-vs-century-by-player.html' title='Team win vs century by player'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4392540842054350823</id><published>2011-02-04T14:06:00.008+05:30</published><updated>2011-02-04T16:43:31.043+05:30</updated><title type='text'>10 failed states and USA</title><content type='html'>&lt;div&gt;Out of the top 10 failed states &lt;a href="http://en.wikipedia.org/wiki/Failed_state#2010"&gt;2010 list&lt;/a&gt;, USA has played active part in 9 of them.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;1. Somalia&lt;br /&gt;&lt;/b&gt;- Direct involvement. USA started playing with Somalia in 1978. Govt. there built the largest army in whole of Africa. In 1991, govt. was removed and a civil war ensued. USA intervened using it's army. Black hawk down is a real story from Mogadishu, capital of Somalia! Somalia is now in total chaos and it's govt. lives in Kenya.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Chad&lt;br /&gt;&lt;/b&gt;- USA gave military support to Chad to counter the threat of Libya's Qadhaafi. Finally USA bailed out when they saw things becoming ugly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Sudan&lt;br /&gt;&lt;/b&gt;- From wikipedia: "Sudan – United States relations are extremely complicated, both politically and economically. The United States is critical of Sudan's human rights record and has sent a strong UN Peacekeeping force to Darfur. Many Sudanese, both civilians and Government officials say that the interference of the U.S. and other Western nations in Darfur and against leader Omar al-Bashir is part of a covert plot to throw their country in economic (since business relations between the two have been defunct since 1997), governmental, and territorial unrest"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Zimbabwe&lt;br /&gt;&lt;/b&gt;- USA supported Mugabe, autocratic leader of Zimbabwe, even as he committed genocide and human rights violations. Now they are &lt;a href="http://www.guardian.co.uk/world/2007/apr/06/zimbabwe.topstories3"&gt;trying&lt;/a&gt; to overthrow him&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Congo&lt;br /&gt;&lt;/b&gt;- CIA aided 1965 coup of Mobutu. He ran a very authoritarian regime and supported by USA and France. During the cold war, he helped USA by allowing them to set up puppet governments in Uganda and Central african republic.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Afghanistan&lt;br /&gt;&lt;/b&gt;- USA used Pakistani military and ISI to gain presence here and defeat the soviets. They supported a highly radical army of people to Soviets. After the cold war was over, this army overthrew the Kabul government. Name of this army is Taliban!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Iraq&lt;br /&gt;&lt;/b&gt;- USA supported Saddam hussain to take power in Iraq. CIA helped him when he was hiding in Egypt. After Saddam's bath party seized power, relations turned sour. After Saddam attacked Kuwait, America attacked Iraq. Saddam was killed by USA in a second attack after sep 11.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Central african republic&lt;br /&gt;&lt;/b&gt;- US actively supported interventions by other countries like French here.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Pakistan&lt;br /&gt;&lt;/b&gt;- Direct involvement. USA has supported Pakistani govt, military and ISI for more than 50 years. This was done to fight soviets in Afghanistan. They pumped money and resources in the military and ISI. This has lead to weakening of government and society. Army has removed the popular government many a times and ISI runs a proxy government. Insurgents run amok in the country and bombings are a daily fixture.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple question: How can USA preach human rights, democracy, civil rights etc when they clearly do not practice what they preach.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4392540842054350823?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4392540842054350823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4392540842054350823' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4392540842054350823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4392540842054350823'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2011/02/10-failed-states-and-usa.html' title='10 failed states and USA'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3724481548688285541</id><published>2010-11-09T12:19:00.006+05:30</published><updated>2010-11-09T16:48:11.107+05:30</updated><title type='text'>Poverty and food security bill</title><content type='html'>&lt;div&gt;What is the definition of poverty ? Is it that person who does not have enough money to buy food for himself &amp;amp; family or a house or a car ? Even if they are given money to buy these things they will not become "rich". This money will be spent on buying the basic needs and when that money is spent they will rejoin the ranks of poor. I think poverty is dearth of skills that allows a person to earn money and lead a good life and the only way to make people non-poor is to provide them with the resources &amp;amp; skills that help them earn money to fund basic and not-so-basic-needs of life.&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lets look at a family in a village right now and try to find the reason why they are poor. There is enough food available to remove hunger in most of the villages. I believe it more to do with the  lack of healthcare and education infrastructure. They can earn enough money to feed themselves. But thats it. They spend all the money in food, clothes and other day-to-day needs. They manage to save very little and these savings are spent when somebody falls ill in the family. There are not good doctors in the villages so people are compelled to get healthcare in expensive private clinics. There are not good schools in the villages and they can either spend a fortune to send their kids to city schools or let them play all day long. This leaves a trail of poor people who are ready to migrate to cities and sleep under the over bridges. It is not as if our cities do not have enough jobs. On the contrary there is huge dearth of people with skills. However we do not have enough people with these skills because these people never managed to learn these much needed skills.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How does &lt;a href="http://www.fnbnews.com/article/detnews.asp?articleid=28581&amp;amp;sectionid=1"&gt;food security act&lt;/a&gt; fit into all this ? Why is government trying to feed people for almost free ? Won't it make people dependent on government and hence lazy to work ? Is it not better to tackle the problem of skills and let people earn their bread themselves?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is not such a simple problem. Food is a very basic and immediate need. People cannot be compelled to send their children to schools when their very existence is in question. They take a shortcut to earn their living without gaining enough skills due to poverty which in turn keeps them poor for life. What availability of food is not going to do is to make people rich. However it will kill hunger and bring extremely poor people out of their misery. It will take their mind off this problem. It will make children of our country not beg for food. It would stop families from sending their children out in the cities to be servants and stop people migrating from villages to cities in such large numbers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If combined well with &lt;a href="http://en.wikipedia.org/wiki/Mahatma_Gandhi_National_Rural_Employment_Guarantee_Act"&gt;NREGA&lt;/a&gt;, &lt;a href="http://www.icbse.com/2010/education-rte-act-2009/"&gt;right to education&lt;/a&gt; and a massive upgrade in healthcare infrastructure then it would trigger people to think long term, send their children to schools &amp;amp; colleges and finally come out of poverty forever. I know it's a far fetched dream and given the track record of our government in past one is justified in being skeptical. Yet I am glad to know that the government is working on this problem and their is some strategic thinking and movement on the ground. I hope to see a poverty free India in next 10-20 years.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3724481548688285541?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3724481548688285541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3724481548688285541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3724481548688285541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3724481548688285541'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/11/poverty-and-food-security-bill.html' title='Poverty and food security bill'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3591322217190258329</id><published>2010-11-04T12:50:00.002+05:30</published><updated>2010-11-04T12:58:27.075+05:30</updated><title type='text'>Sehwag!</title><content type='html'>Another century from Sehwag! The player who has no foot movement and who could have been almost written off by the &lt;i&gt;greats&lt;/i&gt; of Cricket, had it not been for his aggressive run making. I believe he has been tagged as lucky batsman quite a few times by likes of Gavaskar. Sehwag is a prime example of why hard work and determination are more important than &lt;i&gt;talent.&lt;/i&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;It's not about the size of the dog in the fight but the size of the fight in the dog!&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3591322217190258329?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3591322217190258329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3591322217190258329' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3591322217190258329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3591322217190258329'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/11/sehwag.html' title='Sehwag!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1277451579858933083</id><published>2010-10-26T13:23:00.002+05:30</published><updated>2010-10-26T13:45:16.273+05:30</updated><title type='text'>The microfinance debate: SHG vs JLG</title><content type='html'>For last few weeks a huge debate has been brewing in the microfinance space. AP government has cracked down upon MFIs and passed an ordinance to stop them from lending to people who are part of &lt;a href="http://en.wikipedia.org/wiki/Self-help_group_(finance)"&gt;SHGs(or self help groups)&lt;/a&gt;, unless those SHG members obtain a NOC from their SHG.&lt;br /&gt;&lt;br /&gt;To the uninitiated, MFI use a model called JLG (joint lending group) and government supports SHG. The basic difference between these two is the fact MFIs lend money from the banks to make loans to poor people of the JLG model. In SHG model, on the other hand, participants are encouraged to open a bank account themselves and put their joint savings into it. When they need money and SHG approves it, they get a loan. They can also get money from bank, where they have a bank account, if they need. However in most cases, such external borrowings are very little as bank doesn't reach out to them. In the end, very little money from outside the economy is pumped into the local economy.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;In my opinion, SHG model doesn't work that well when it comes to poverty alleviation.  Here's how I'd like to present my point:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Diwali, to many, seem like a waste of time and money. How can such a poor(?) country put up with such spend thrift traditions! In spite of all the arm-chair musings, every time it comes along, people end up spending more money than last year. In the end, it ends up circulating a lot of money from the banks and pockets of the people to the deepest &amp;amp; darkest(TM) corners of our country. People buy clothes, sweets, fireworks, electric lightings, earth lamps, tisi oil, shares (on diwali night) etc. Most of these goods end up pushing money from people who have it to people who need it as these goods come from the toil of the poorest of our brothers. Lets look at these goods in a little detail and look at their value chain.&lt;br /&gt;&lt;br /&gt;Buying of clothes -&gt; cloth shop owner -&gt; cloth weavers -&gt; cotton farmers&lt;br /&gt;Buying of sweets -&gt; sweet shop owner -&gt; poor people making these sweets -&gt; sugar seller -&gt; sugar companies -&gt; farmers of sugar cane etc&lt;br /&gt;&lt;br /&gt;Had there been no diwali, any other festivals or marriages, we would end up killing our clothing industry, cotton farmers, retail cloth shops and lively hood of other millions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Currency only makes sense if it can be spent. &lt;/b&gt;Similarly SHGs are not doing any good by persuading people to put most of their money in the bank. As more and more people do it, the local economy suffers from lack of liquidity.&lt;br /&gt;&lt;br /&gt;JLG model on the other hand *pumps* money in the local economy, which spurs *real* growth. People buy more, work more to earn more and this increased economic activity in turn empowers a lot many other people in the local economy to contribute effectively and feed their families. At the end of the day when these people have enough money they will turn to banks to save it. Pressurizing them to use SHGs exclusively is just going to make more people poor. In my view government is sticking to a model which is pre 1991 and doesn't make much sense in a globalized, connected economy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;Note: This post is about my thoughts &amp;amp; ideas and not of my employer's.&lt;/i&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/7400408-1277451579858933083?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1277451579858933083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1277451579858933083' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1277451579858933083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1277451579858933083'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/10/microfinance-debate-shg-vs-jlg.html' title='The microfinance debate: SHG vs JLG'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4493603634019103154</id><published>2010-10-24T18:57:00.002+05:30</published><updated>2010-10-24T20:04:25.221+05:30</updated><title type='text'>The Milk Network</title><content type='html'>India is going through a major bout of malnutrition. The government has been trying to fight this with schemes like  mid day meals etc. They have been partly successful with these schemes. Still, there is a lot of poverty and malnutrition. Come 2013-14, we will have food security act providing 35 kg of wheat, rice and millet to almost 75% households in the country at Rs 1-3. This is a very good scheme to remove hunger. I believe this may remove a lot of hunger from this nation. &lt;div&gt;&lt;br /&gt;&lt;div&gt;However, we cannot build a great nation just by removing hunger. We need to feed our young brigade with good nutrient food which should catalyze their growth as an individual, empower their minds to take us to the top. &lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt; It is important for us to realize that feeding and educating the young India is like investing in the future. These kids today will make us a real superpower tomorrow. We need to feed kids with nutrients which makes their minds sharp such as vitamins, calcium, protein, sodium and potassium etc. Milk has all of these in very &lt;a href="http://www.dairycouncilofca.org/Milk-Dairy/Milk.aspx"&gt;generous&lt;/a&gt; quantities. India is also a &lt;a href="http://en.wikipedia.org/wiki/Milk#Modern_production"&gt;biggest producer&lt;/a&gt; of buffalo milk in the whole world with yearly production of 59 million tonnes.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How do we make sure all the kids of India have regular access to milk ?&lt;/b&gt;&lt;br /&gt;I believe we need to build a milk network. A network of people who provide kids in India with free milk. 250 ml of a day to each and every kid in India. There are about 35 crore children in India below 15 years of age. This may exclude those who do not need free milk. This leaves us with about 15 crore such children (assuming a 40-50% poverty). Bottom line is, how much it is going to cost us ? 15 crore children, 250 ml each, at Rs. 3/packet for 300 days is 900 * 15 = 13500 crore/year or $3 billion/yr.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How big or small is this number ?&lt;/b&gt;&lt;br /&gt;It is small if you consider that defense budget of India is about $32 bn/year. or that the NREGA this year was 39000 crore or about $9 bn or that Mr. Mukesh ambani's new home costs about $2bn! At the end of the day if we can get 10000 companies to donate an average of 50 lakh and 10 lakh rich Indians (in India and world wide) to donate an average of Rs. 50,000/year, we can surely make it work. We should also be able to get some grants and funding from big donor agencies. Govt. funding this is also a reality.  However, this is a massive effort.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Or&lt;/span&gt; &lt;/div&gt;&lt;div&gt;we can look at a completely distributed and volunteer based model in which people(or housing complexes) start donating milk to few kids in the neighbourhood. This way may be a little fragile to start with but could be more sustainable and empowering. To integrate this to the milk network we can build an online space where people running this leaf of the network can feed data back to the network, ask for monetary help &amp;amp; guidance and share experiences &amp;amp; data. I believe it would be important for this network to monitor statistics such as weight of kids, school attendance etc to make a strong case that such a network really works in uplifting the society and get funding. I also believe that kids who will benefit from this scheme would later in their life would be more compassionate and able citizens of our country. It goes without saying that these kids would surely feed the network when they become able.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;For now I have started giving milk to my dhobi's 2 kids and plan to put 3-4 more such kids in the roaster! I plan to pursue this idea if I get like minded people so please ping me if you are interested. &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/7400408-4493603634019103154?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4493603634019103154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4493603634019103154' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4493603634019103154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4493603634019103154'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/10/milk-network.html' title='The Milk Network'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-6298400790505219967</id><published>2010-10-20T18:53:00.001+05:30</published><updated>2010-10-20T18:54:51.708+05:30</updated><title type='text'>Ruby: Convert numbers to Indian currency format using regex</title><content type='html'>&lt;pre&gt;&lt;br /&gt;10000.to_s.gsub(/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/, "\\1,")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Works on decimals too&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-6298400790505219967?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/6298400790505219967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=6298400790505219967' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6298400790505219967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6298400790505219967'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/10/ruby-convert-numbers-to-indian-currency.html' title='Ruby: Convert numbers to Indian currency format using regex'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-8801875881297778439</id><published>2010-10-17T04:30:00.003+05:30</published><updated>2010-10-17T04:45:27.673+05:30</updated><title type='text'>I fear the future</title><content type='html'>Where robots drive the cars and do house chores, individual privacy would be non-existent,  poor &amp;amp; unskilled will not have a place in the world, medical care would be super expensive, everybody would drive a car, media will be powerful enough to topple a government if the government doesn't favour the media and study of history, languages, cultures etc would be deemed unnecessary.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Humanity as we know it would cease to exist. I fear this future!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-8801875881297778439?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/8801875881297778439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=8801875881297778439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8801875881297778439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8801875881297778439'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/10/i-fear-future.html' title='I fear the future'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4917541431692242849</id><published>2010-10-10T14:10:00.003+05:30</published><updated>2010-10-10T14:56:39.037+05:30</updated><title type='text'>Google building self driving cars!</title><content type='html'>The latest funny/frightening news from Google: Building self driven cars. Toyota prius running with help from cameras, radars, GPS and Google's massive data centers. How does it fit into the whole "organize the world's information" thingy ?&lt;br /&gt;&lt;br /&gt;Even if you stretch it a mile it won't.&lt;br /&gt;&lt;br /&gt;I think Google has distracted itself from it's original path of being everything information. It shows in things like this and efforts to sell phones. The problem with that is that the world's information is still not organized. Not even close. They have not made search any better than it was (sorry instant doesn't count). Won't it be better if they could answer simple questions directly ? or do better job at image search or catalog searching etc ? In fact the google maps itself is not &lt;a href="http://www.cartoonbarry.com/2007/05/google_sucks_google_maps_got_m.html"&gt;fool&lt;/a&gt; &lt;a href="http://xkcd.com/461/"&gt;proof&lt;/a&gt; which these cars depend on!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4917541431692242849?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4917541431692242849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4917541431692242849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4917541431692242849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4917541431692242849'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/10/google-building-self-driving-cars.html' title='Google building self driving cars!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2372429984868003845</id><published>2010-09-28T13:34:00.001+05:30</published><updated>2010-09-28T13:34:33.438+05:30</updated><title type='text'>How to find all the checkbox which are checked using Jquery and xpath</title><content type='html'>$("input[type=checkbox]:checked")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2372429984868003845?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2372429984868003845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2372429984868003845' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2372429984868003845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2372429984868003845'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/09/how-to-find-all-checkbox-which-are.html' title='How to find all the checkbox which are checked using Jquery and xpath'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3845584007743203058</id><published>2010-09-24T19:21:00.002+05:30</published><updated>2010-09-24T19:22:07.229+05:30</updated><title type='text'>Why Times of India is going after CWG</title><content type='html'>&lt;a href="http://churumuri.wordpress.com/2010/09/03/the-times-of-india-and-commonwealth-games/"&gt;http://churumuri.wordpress.com/2010/09/03/the-times-of-india-and-commonwealth-games/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3845584007743203058?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3845584007743203058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3845584007743203058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3845584007743203058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3845584007743203058'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/09/why-times-of-india-is-going-after-cwg.html' title='Why Times of India is going after CWG'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1278929120910699481</id><published>2010-09-24T18:56:00.000+05:30</published><updated>2010-09-24T18:58:06.252+05:30</updated><title type='text'>This is what they were complaining about ?</title><content type='html'>CWG village: &lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;a href="http://www.youtube.com/watch?v=Vt5jvgafHPI"&gt;http://www.youtube.com/watch?v=Vt5jvgafHPI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1278929120910699481?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1278929120910699481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1278929120910699481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1278929120910699481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1278929120910699481'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/09/this-is-what-they-were-complaining.html' title='This is what they were complaining about ?'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2021425933219296801</id><published>2010-09-08T02:55:00.002+05:30</published><updated>2010-09-08T03:05:53.287+05:30</updated><title type='text'>NoSQL can get you fired!</title><content type='html'>&lt;div&gt;Digg is facing some issues with it's new launch of V4. The core of this issue is use of Cassandra in the new version instead of MySQL which was running the site in V3. As a result the VP of engineering has to &lt;a href="http://techcrunch.com/2010/09/07/digg-struggles-vp-engineering-door/"&gt;pay&lt;/a&gt; with his job! &lt;/div&gt;&lt;br /&gt;As with all new, shinny "world domination" technologies, Cassandra is too immature to be used in the wild. I am not saying that Cassandra is a bad project but that it needs time to mature. World needs NoSQL databases but you cannot just shift a multi million hits website's core system from a stable, trusted, tested workhorse to a new, talented yet unproven and expect everything to just work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2021425933219296801?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2021425933219296801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2021425933219296801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2021425933219296801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2021425933219296801'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/09/nosql-can-get-you-fired.html' title='NoSQL can get you fired!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3454254726405157406</id><published>2010-08-12T16:50:00.002+05:30</published><updated>2010-08-12T16:56:29.990+05:30</updated><title type='text'>Time for my IE revenge</title><content type='html'>Since the birth of internet we all have been tortured by website which work only in IE 6. It is time for revenge! &lt;a href="http://mostfit.in/"&gt;Mostfit&lt;/a&gt; doesn't work in IE6. We tell the companies using it specifically to use Firefox or chrome. If they insist on M$ we tell them to "use IE 8, but no IE6"!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Die IE6! DIE&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3454254726405157406?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3454254726405157406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3454254726405157406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3454254726405157406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3454254726405157406'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/08/time-for-my-ie-revenge.html' title='Time for my IE revenge'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1730579825633462366</id><published>2010-08-12T16:29:00.000+05:30</published><updated>2010-08-12T16:30:44.209+05:30</updated><title type='text'>open source</title><content type='html'>&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" &gt;Open source is super contagious. I just my office admin saying to a M$ guy: "We are against microsoft! we are building one open source products and we do not appreciate M$"! Mind you this is a social sector company and not a technology company!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1730579825633462366?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1730579825633462366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1730579825633462366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1730579825633462366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1730579825633462366'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/08/open-source.html' title='open source'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5530487268290164071</id><published>2010-08-03T16:16:00.005+05:30</published><updated>2010-08-03T17:26:34.158+05:30</updated><title type='text'>Google ME</title><content type='html'>Rumour has it that Google is planning yet another social product "Google Me". I would like to take this early opportunity to put it out there:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;IT IS GOING TO FAIL&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;like others viz Buzz, Wave, Knol, Open social, Orkut etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5530487268290164071?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5530487268290164071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5530487268290164071' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5530487268290164071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5530487268290164071'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/08/google-me.html' title='Google ME'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2825117325785584895</id><published>2010-07-12T21:20:00.007+05:30</published><updated>2010-07-12T22:23:52.688+05:30</updated><title type='text'>Why *NIX is the future ?</title><content type='html'>&lt;div&gt;&lt;div&gt;"&lt;i&gt;perfect replication is enemy of any robust system" - DAEMON by Daniel Suarez&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the single biggest reason why windows systems/networks are captured so easily by worms, hackers and viruses. Each windows network is made of exact clones and if an attacker can pawn one system in the network he can annihilate each and every one of them. A typical corporate windows network is made up of identical systems running workstations, laptops, routers and servers. Once a box is compromised each and every one of them is compromised. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Compare this to a linux system/network. Even though it is possible to write a virus/worm for linux based systems, writing a virus which can affect every posix complaint system is at best improbable. Almost every *nix box is different from each other.  Kernels, Desktop environments, distributions, servers, browsers etc all are be different and this makes is so much difficult to run an exploit on each of these machines in one go. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2825117325785584895?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2825117325785584895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2825117325785584895' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2825117325785584895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2825117325785584895'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/07/why-nix-is-future.html' title='Why *NIX is the future ?'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-210518950204554158</id><published>2010-04-17T20:42:00.008+05:30</published><updated>2010-04-17T23:57:12.456+05:30</updated><title type='text'>Microfinance as a business</title><content type='html'>Microfinance as an industry has started to grow up. However it is not all rosy. An impending IPO of SKS has added more fuel to the naysayers calling MFIs yet another loan sharks, sum-prime like bubble, profiteers and what not. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A lot of these are coming from western media like WSJ who have started covering MFI sector &lt;a href="http://online.wsj.com/article/SB125012112518027581.html"&gt;almost&lt;/a&gt; &lt;a href="http://online.wsj.com/article/SB125002519860023799.html"&gt;every&lt;/a&gt; &lt;a href="http://online.wsj.com/article/SB10001424052748703315004575073510472268430.html"&gt;week&lt;/a&gt; and obviously a lot of it is negative. They generally pick up on small village and show how MFIs have flushed them with loans or how they have all defaulted as a community. A lot of it, I think, is plain BS! These Americans have no freaking idea of whats happening on the ground. I think what western media clearly fails to comprehend is the sheer size of the market and diversity of this country...or they don't want to. Paint a bleak picture and their readers would get some kind of sadistic pleasure out reported failing of yet-another-poverty-elimination-experiment. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Viability of Microfinance: A thought experiment&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;div&gt;Microfinance institutions(MFIs) lend to poor people who actually do some 'real' work and repay it back to MFIs overtime. For this MFIs charge a good amount of interest rate. Now lets take an example of a farmer taking a loan for cow. A good cow(not a jersey) which costs about INR 10,000 gives about 10 lts of milk. This in rupees terms comes to about INR 80 per day. Even if we take 20% of this as costs of medicines etc and assume that a cow gives milk only half the year then he earns about INR 30 or per week INR210. Now a typical MFI loan of Rs.10000 with 50 installments has an EMI of about Rs. 230. I don't understand who it is difficult for a farmer to service this loan when cows are just a side business for a farmer. Moreover he'd get good returns on his 10K loans after he has paid of the loan in one year. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;b&gt;Why scaling up is a necessity for MFIs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;Scaling up is not a luxury but a necessity. Those who do not scale their operations cannot ever make significant dent in the bleak universe of poverty. A typical MFI starts with about 100 clients and quickly grows to about 1000 clients. The typical loan size is about 10000 which means the amount of money disbursed is about 1 crore INR. That is a large village or a small town to whom they can reach. After this they start to stagnate in need of better management, IT, manpower etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;India has 110 crore people. 30-70% of which are in dire need of funds to scale up whatever they do and become "non-poor".  The market size is about 100 million clients. If an MFI just reaches 1000 people then it is not doing enough. In my view when they reach about a million clients then all they have captured is 1% of the market which still is clearly not enough. Even if we have 100 such players still there would be room for more MFIs to service cycle 2 and 3 loans of these people. In India MFIs of size serving more than a million customers was 3 according to &lt;a href="http://www.scribd.com/doc/20998565/Top-50-Microfinance-Institutions-in-India-by-CRISIL"&gt;this&lt;/a&gt; report in October 2009(page 11). Therefore saying MF sector is a bubble is a joke! There is a clearly a lot of room to grow.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are many more challenges for smaller MFIs. Fraud by their employees due to weak monitoring, difficulty is securing credit lines, higher cost of loans etc. Larger MFIs with good governance can tide over these difficulties with ease. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;It is About time we started looking at MFIs as proper for profit businesses.&lt;/b&gt; We have reached a point where MF sector needs to kick off the training wheels and switch to corporate model and government should respond with creating solid guildlines and rules for this sector. RBI has very clearly shown that with the banks and now is the time that they do it for MFIs/NBFCs. They also need good governance and that needs talent. Without money this sector cannot bring in talented people. This sector needs good IT, solid reporting tools, CIBIL like credit bureau, professional consulting firms etc.  All of this can only come along if these MFIs start scaling up, bringing to the table economics of scale to pay off corporate salaries and put in good solid systems.    &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Profits not extraordinary profits&lt;/b&gt;&lt;/div&gt;&lt;div&gt;What Md. Yunus started was a NGO like Bank for poor but clearly the self governing, non profit model is not for everybody and that model cannot scale for everybody. Not everybody is Md. Yunus. He has very clearly shown us a path. Not everybody is a as talented or motivated. Moreover greed is the primary reason why farmers have suffered for so many years. Allowing it all over again would be foolish. This is a capitalist economy and everybody needs to earn his/her bread. If poor are benefiting from the loans MFIs provide them and earn profit on it then why should MFIs not be allowed to earn some profit. Having said that extra-ordinary profits is something what good RBI regulation should prevent from happening.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Note: This post is about what I think &amp;amp; feel and not of my employer.&lt;/i&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/7400408-210518950204554158?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/210518950204554158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=210518950204554158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/210518950204554158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/210518950204554158'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/04/microfinance-as-business.html' title='Microfinance as a business'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-8210087366914054748</id><published>2010-04-05T12:43:00.003+05:30</published><updated>2010-04-17T20:25:54.726+05:30</updated><title type='text'>Featuring MOSTFIT</title><content type='html'>I have been working on &lt;a href="http://mostfit.in/"&gt;Mostfit&lt;/a&gt; for about 6 months now. It is an open source &lt;a href="http://en.wikipedia.org/wiki/Management_information_system"&gt;MIS&lt;/a&gt; (management information system) for &lt;a href="http://en.wikipedia.org/wiki/Microfinance"&gt;MFIs(Microfinance institutions)&lt;/a&gt;. For the uninitiated MFIs provide loans to the poor without any collaterals. It is a social lending model where a group takes a joint responsibility of timely repayment of loans. MFIs are almost like the infamous money-lenders with much larger scale and lower interest rates. This idea was first started by &lt;a href="http://en.wikipedia.org/wiki/Muhammad_Yunus"&gt;Md. Yunus&lt;/a&gt; of Bangladesh who later received Noble peace prize for it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MFIs now have started to scale up and have started adding hundereds and thousands of clients to their books every week. Most of the MFIs are managed by excel sheets and due to the size of operations it quickly starts becoming a problem for them. Let me give you an idea of this size: &lt;a href="http://www.sksindia.com/"&gt;SKS microfinance&lt;/a&gt; which arguably is India's largest MFI has about 1 crore clients and about Rs. 4000 crore in loan outstanding.  They are even going for an IPO very soon. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is where MOSTFIT comes into picture. It is designed to suit the needs of a diverse model MFI with many loan products. It is built from grounds up to be completely flexible. It is written in ruby, datamapper, haml and rspec. Code resides &lt;a href="http://github.com/piyushranjan/misfit"&gt;here&lt;/a&gt;. We even provide an instant MIS instance on http://mostfit.in&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So any MFI out there looking for a MIS should give it a try at &lt;a href="http://mostfit.in"&gt;http://mostfit.in&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-8210087366914054748?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/8210087366914054748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=8210087366914054748' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8210087366914054748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8210087366914054748'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2010/04/featuring-mostfit.html' title='Featuring MOSTFIT'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2532064528986392423</id><published>2009-10-24T16:24:00.007+05:30</published><updated>2009-11-20T05:15:57.180+05:30</updated><title type='text'>Google wave is a failure</title><content type='html'>Google wave has created a lot of frenzy lately. It has people begging for accounts and people who have invites selling them at e-bay. Deja-Vu! Gmail reloaded? Remember when everybody went crazy for the invitations and a lot of them were sold on ebay at that time. Google kept the supply scarce to drive this even more, tapping on a very basic instinct of human nature: elitism. "Oh_my_god_you_have_gmail" was like Harry potter's forehead scar and people loved to flaunt it. Google wave's launch have been similar. But there is a difference between Gmail and Wave. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gmail was/is an awesome product and path breaking in many ways. Google provided 1GB storage when yahoo gave 4MB! Not only that, compared to Yahoo's interface Gmail was light-years ahead.  It did what every great design does i.e. get out of the way and let them do what they want to.  Gmail had features which people needed and they used the right technology to deliver it. It was first free ajaxified email client(a major one at least) and allowed people to do everything without reloading the page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wave, on the other hand, is almost obnoxious. It is as if Google is trying very hard to show off what it can do instead of delivering what people need/want. For instance, that live typing thing. I hate that feature. It is like the unix "talk" on console back in college and I hated it back then too. I do not want people to see what I am typing. I write angry things sometimes which I never send and therefore I do not want people to read what I type. I have talked to people about it and everybody feels that real time typing is just overkill. If you think about it e-mails allow people to speak freely without the fear of others stepping on your feet. It also allows you to think about what you want to convey, double/triple check what you are sending, check facts etc. Google wave just kills all this in one go! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am sure Google engineers/product managers know that but they are too obsessed with the technology to kill this feature. Or may be they do not realize it. That is a bigger problem which means they do not understand the domain problem well and do not know what problem they intend to solve.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even if Google gives and option to switch it off, I do not think Wave is going anywhere in this avatar. Wave UI sucks: It is unintuitive, slow and generally not well thought out. So even if they give an option to switch off the instant typing thing, this is not so easy to fix. For instance, if there is a long wave and there are to new waves at different ends of the conversation, I do not know how to find them. The enter key doesn't work as expected. There are so many "unsynced waves" notification. I can go on and on and on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2532064528986392423?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2532064528986392423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2532064528986392423' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2532064528986392423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2532064528986392423'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/10/google-wave-is-failure.html' title='Google wave is a failure'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3132539267054615204</id><published>2009-10-12T12:51:00.003+05:30</published><updated>2009-10-12T13:07:29.285+05:30</updated><title type='text'>Proactive India</title><content type='html'>I love the fact that this Government is very proactive:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Going after the naxals proactively&lt;/span&gt;&lt;br /&gt;Naxals have been a big menace for this country. They started off as a movement to protect   the interest of Poorest of poor. However it has mutated into a cult which promotes crime and law and order which in turns makes sure poores-of-poor remain just that. It was abut time that govt.  capture/shoot all the big naxal ideologists and they did just that when they captured Kobard Ghandhy. And now comes the pounding of the naxal land. Hope this seals the fate of Naxals. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dealing with Pakistan in a firm manner&lt;/span&gt;&lt;br /&gt;Pakis have been very adventurous last year with Mumbai attack. India responded really well by making them pay at various fronts like diplomacy and threatening stability of Pakistan. India also managed to launch the long needed eye-in-the-sky. They were all set to launch this Israeli "eye" in 2006 when America intervened. This is a crucial realtime element which has been missing since the days of Operation Blue star.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dealing with China&lt;/span&gt;&lt;br /&gt;China has been feeling adventurous lately and that is not good for us. India has shown China that it is not the 1962 India and will not take things lying down. They are activating advance airstrips, deploying Mig 29s, Brahmos missiles, building more roads and infrastructure to make sure China understands clearly.&lt;br /&gt;&lt;br /&gt;Keep up the good work&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3132539267054615204?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3132539267054615204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3132539267054615204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3132539267054615204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3132539267054615204'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/10/proactive-india.html' title='Proactive India'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-6890376290054041830</id><published>2009-10-11T17:53:00.004+05:30</published><updated>2009-10-11T18:01:09.292+05:30</updated><title type='text'>One line window pagination in Ruby</title><content type='html'>&lt;pre class="sunburst"&gt;&lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;getPages&lt;/span&gt;(&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;current_page, minimum&lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;1&lt;/span&gt;, maximum&lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;20&lt;/span&gt;, window&lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;2&lt;/span&gt;&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;return&lt;/span&gt;((minimum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window&lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&lt;&lt;/span&gt;current_page &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; minimum.upto(window).collect : minimum.upto(current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window).collect) &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; (current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&gt;&lt;/span&gt; minimum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; [&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;".."&lt;/span&gt;] : []) &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; (current_page&lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&gt;&lt;/span&gt;minimum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; (current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&gt;&lt;/span&gt; minimum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;window : minimum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window).upto(current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&gt;&lt;/span&gt; maximum &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; maximum : current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window).collect : [])&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;(current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;1&lt;/span&gt;&lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&lt;&lt;/span&gt;maximum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; [&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;".."&lt;/span&gt;] : [])&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;(current_page&lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;&lt;&lt;/span&gt;maximum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;2&lt;/span&gt;&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;*&lt;/span&gt;window &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;?&lt;/span&gt; maximum&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;-&lt;/span&gt;window : current_page&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;window&lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_ruby"&gt;1&lt;/span&gt;).upto(maximum).collect)&lt;br /&gt;&lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Output:&lt;br /&gt;&gt;&gt; 1.upto(20){|x| print x; print " : "; p getPages(x,1,20,1)}&lt;br /&gt;&lt;br /&gt;1 : [1, 2, "..", 19, 20]&lt;br /&gt;2 : [1, 2, 3, "..", 19, 20]&lt;br /&gt;3 : [1, 2, 3, 4, "..", 19, 20]&lt;br /&gt;4 : [1, "..", 3, 4, 5, "..", 19, 20]&lt;br /&gt;5 : [1, "..", 4, 5, 6, "..", 19, 20]&lt;br /&gt;6 : [1, "..", 5, 6, 7, "..", 19, 20]&lt;br /&gt;7 : [1, "..", 6, 7, 8, "..", 19, 20]&lt;br /&gt;8 : [1, "..", 7, 8, 9, "..", 19, 20]&lt;br /&gt;9 : [1, "..", 8, 9, 10, "..", 19, 20]&lt;br /&gt;10 : [1, "..", 9, 10, 11, "..", 19, 20]&lt;br /&gt;11 : [1, "..", 10, 11, 12, "..", 19, 20]&lt;br /&gt;12 : [1, "..", 11, 12, 13, "..", 19, 20]&lt;br /&gt;13 : [1, "..", 12, 13, 14, "..", 19, 20]&lt;br /&gt;14 : [1, "..", 13, 14, 15, "..", 19, 20]&lt;br /&gt;15 : [1, "..", 14, 15, 16, "..", 19, 20]&lt;br /&gt;16 : [1, "..", 15, 16, 17, "..", 19, 20]&lt;br /&gt;17 : [1, "..", 16, 17, 18, 19, 20]&lt;br /&gt;18 : [1, "..", 17, 18, 19, 20]&lt;br /&gt;19 : [1, "..", 18, 19, 20]&lt;br /&gt;20 : [1, "..", 19, 20]&lt;br /&gt;&lt;br /&gt;Dunno if I should be proud of this or worried!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-6890376290054041830?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/6890376290054041830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=6890376290054041830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6890376290054041830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6890376290054041830'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/10/one-line-window-pagination-in-ruby.html' title='One line window pagination in Ruby'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-6925779036257563548</id><published>2009-09-23T07:48:00.002+05:30</published><updated>2009-09-23T07:56:45.515+05:30</updated><title type='text'>Dump those fixtures</title><content type='html'>I hate testing/debugging a rails application on "unreal" data. At the same time I find writing fixtures by hand is a big pain. I wrote this rake task to dump all the data in fixtures folder by (rake test:fixtures:dump) on a production environment,  bring it to development environment and do a rake test:fixtures:load&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;desc "Dump all the data from DB to fixtures in YML format"&lt;br /&gt;namespace :db do&lt;br /&gt;  namespace :fixtures do&lt;br /&gt;    task :dump =&gt; :environment do&lt;br /&gt;      require 'active_record/fixtures'&lt;br /&gt;      ActiveRecord::Base.establish_connection(Rails.env)&lt;br /&gt;      base_dir = ENV['FIXTURES_PATH'] ? File.join(Rails.root, ENV['FIXTURES_PATH']) : File.join(Rails.root, 'test', 'fixtures')&lt;br /&gt;      fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir&lt;br /&gt;&lt;br /&gt;      Dir.entries(File.join(RAILS_ROOT, "app", "models")).each{|filename|&lt;br /&gt;        if /\.rb$/.match(filename)&lt;br /&gt;          model = Kernel.const_get(filename.gsub(".rb", "").camelcase)&lt;br /&gt;          if model.ancestors.include?(ActiveRecord::Base) and model.table_exists?&lt;br /&gt;            puts "Dumping #{model}"&lt;br /&gt;            file = File.open(File.join("test", "fixtures", model.table_name+".yml"), "w")&lt;br /&gt;            counter = 1&lt;br /&gt;            model.find_in_batches(:batch_size =&gt; 5000){|rows|&lt;br /&gt;              rows.each{|row|&lt;br /&gt;                file.puts "#{counter}:"&lt;br /&gt;                file.puts row.attributes.to_yaml.split("\n")[1..-1].collect{|x| "\s\s"+x}.join("\n")&lt;br /&gt;                counter+=1&lt;br /&gt;              }&lt;br /&gt;            }&lt;br /&gt;            file.close&lt;br /&gt;            puts " -- Created a file with #{counter} rows"&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      }&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-6925779036257563548?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/6925779036257563548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=6925779036257563548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6925779036257563548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6925779036257563548'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/09/dump-those-fixtures.html' title='Dump those fixtures'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5596010439623513308</id><published>2009-09-09T08:36:00.007+05:30</published><updated>2009-09-22T18:20:31.224+05:30</updated><title type='text'>Shootout: Jruby1.3.1 vs Ruby1.8.7 vs Ruby1.9.2 vs Python2.6 vs Java6</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OCxqbayITF0/SqchXYL85EI/AAAAAAAAAU8/w9uZyI_g4rI/s1600-h/perf_RUBY_html_m3df05866.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 448px; height: 190px;" src="http://3.bp.blogspot.com/_OCxqbayITF0/SqchXYL85EI/AAAAAAAAAU8/w9uZyI_g4rI/s400/perf_RUBY_html_m3df05866.jpg" alt="" id="BLOGGER_PHOTO_ID_5379304965430633538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Click on the image to view it clearly&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jruby is the fastest among Jruby, Ruby and Python. Benchmark program was a fractal geometry program posted &lt;a href="http://mastrodonato.info/index.php/2009/08/comparison-script-languages-for-the-fractal-geometry/?lang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;   &lt;table frame="VOID" rules="NONE" border="0" cellspacing="0" cols="3"&gt;  &lt;colgroup&gt;&lt;col width="225"&gt;&lt;col width="152"&gt;&lt;col width="225"&gt;&lt;/colgroup&gt;  &lt;tbody&gt;   &lt;tr&gt;    &lt;td height="18" width="225" align="LEFT"&gt;Language&lt;/td&gt;    &lt;td width="152" align="LEFT"&gt;Time for 100 iterations&lt;/td&gt;    &lt;td width="225" align="LEFT"&gt;times slower than java with -server&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;java –server&lt;/td&gt;    &lt;td sdval="0.18" sdnum="16393;" align="RIGHT"&gt;0.18&lt;/td&gt;    &lt;td sdval="1" sdnum="16393;" align="RIGHT"&gt;1&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;Ruby1.8&lt;/td&gt;    &lt;td sdval="7.78" sdnum="16393;" align="RIGHT"&gt;7.78&lt;/td&gt;    &lt;td sdval="44.07" sdnum="16393;" align="RIGHT"&gt;44.07&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;Ruby1.9.2&lt;/td&gt;    &lt;td sdval="4.2" sdnum="16393;" align="RIGHT"&gt;4.2&lt;/td&gt;    &lt;td sdval="23.78" sdnum="16393;" align="RIGHT"&gt;23.78&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;Jruby&lt;/td&gt;    &lt;td sdval="2.5" sdnum="16393;" align="RIGHT"&gt;2.5&lt;/td&gt;    &lt;td sdval="14.16" sdnum="16393;" align="RIGHT"&gt;14.16&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;Jruby1.3.1—sever&lt;/td&gt;    &lt;td sdval="2.31" sdnum="16393;" align="RIGHT"&gt;2.31&lt;/td&gt;    &lt;td sdval="13.1" sdnum="16393;" align="RIGHT"&gt;13.1&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;java&lt;/td&gt;    &lt;td sdval="0.18" sdnum="16393;" align="RIGHT"&gt;0.18&lt;/td&gt;    &lt;td sdval="1.01" sdnum="16393;" align="RIGHT"&gt;1.01&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="18" align="LEFT"&gt;python&lt;/td&gt;    &lt;td sdval="3.04" sdnum="16393;" align="RIGHT"&gt;3.04&lt;/td&gt;    &lt;td sdval="17.21" sdnum="16393;" align="RIGHT"&gt;17.21&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5596010439623513308?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5596010439623513308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5596010439623513308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5596010439623513308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5596010439623513308'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/09/shootout-jruby131-vs-ruby187-vs-ruby192.html' title='Shootout: Jruby1.3.1 vs Ruby1.8.7 vs Ruby1.9.2 vs Python2.6 vs Java6'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OCxqbayITF0/SqchXYL85EI/AAAAAAAAAU8/w9uZyI_g4rI/s72-c/perf_RUBY_html_m3df05866.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-405728331906905963</id><published>2009-04-19T03:50:00.004+05:30</published><updated>2009-04-19T04:16:47.987+05:30</updated><title type='text'>cricketr</title><content type='html'>A few weeks ago I decided to quit my job and do something on my own. An idea, to let cricket crazy fans do commentary about anything and everything related to cricket, has been lingering on in my head for very long. I have been thinking on and off about this idea for about an year now. It is finally launched and the URL is &lt;a href="http://cricketr.com/"&gt;cricketr&lt;/a&gt;. As such the would cricketr is a typo for cricketer but the "r" actually signifies that cricketr is a web2.0 site. &lt;br /&gt;The idea itself is not very unique. It is basically a twitter clone for cricket. There are, however, a few very subtle but a few important differences. &lt;br /&gt;&lt;br /&gt;1. Unlike twitter, it does cater only one domain and hence domain ontology can be used to make sense of a commentary. For instance, if I type "Sachin just hit a massive six", it can deduce that sachin is a player who belongs to Mumbai Indians(IPL context). Not only that, if a match is going on, or has just finished/about to start it will also identify the match and tag this commentary to that match tag. This way it is possible to generate crowdsourced commentary which is extremely fast. On a demo run today I found this to be about 2 minutes faster than cricinfo score and commentary updates and about 1 minute faster than cricbuzz's score and commentary updates.&lt;br /&gt;&lt;br /&gt;2. Personal interaction is important but not the goal. Idea is to let users talk about cricket and derive knowledge out of it.&lt;br /&gt;&lt;br /&gt;It is still in a very fluid state(it is basically a product of 4 days of almost 24hr marathon hacking sessions) and a lot of things need to be decided upon. Some big features planned pretty soon. Hope people will like it and do a lot of commentary on it :)&lt;br /&gt;&lt;br /&gt;Fingers crossed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-405728331906905963?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/405728331906905963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=405728331906905963' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/405728331906905963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/405728331906905963'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/04/cricketr.html' title='cricketr'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1645959419062662511</id><published>2009-02-23T17:50:00.008+05:30</published><updated>2009-02-24T15:30:25.011+05:30</updated><title type='text'>Mongrel as a stand alone server</title><content type='html'>I have been using rails for quiet sometime now. Rails is easy but I feel stupid using it. It is bulky and slow for some of my use cases. I wanted something lean. I wanted something more geeky and powerful to handle lots of long running requests(more than 100K/day with avg. 30sec processing time). &lt;br /&gt;I have been playing with mongrel handlers for about an year now and they work like a charm. In this post I will give a sneak peek into how to write a highly scalable back-end for doing real stuff. Mongrel is a very fast server and can take heavy load. So here we go writing our own mongrel server for heavy processing&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'mongrel'&lt;br /&gt;require 'mysql'&lt;br /&gt;&lt;br /&gt;PORT=4444&lt;br /&gt;class LogHandler &lt; Mongrel::HttpHandler&lt;br /&gt;  def initialize&lt;br /&gt;    @@mysql=Mysql.connect("host", "username", "password", "databse")&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;   def process(request, response)&lt;br /&gt;     response.start(200) do |head, out|&lt;br /&gt;       logs = @@mysql.query("select * from huge")&lt;br /&gt;       # Do some heavy processing on this data&lt;br /&gt;       sleep 10&lt;br /&gt;       # done&lt;br /&gt;       logs.each{|row|&lt;br /&gt;         out.write(row)&lt;br /&gt;       end&lt;br /&gt;     end&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;config = Mongrel::Configurator.new :host =&gt; "0.0.0.0", :port =&gt; PORT do&lt;br /&gt;  daemonize(:cwd =&gt; Dir.pwd, :log_file =&gt; "server.log")&lt;br /&gt;  listener(:num_processors =&gt; 150, :timeout =&gt; 300) do&lt;br /&gt;    uri "/", :handler =&gt; LogHandler.new&lt;br /&gt;  end&lt;br /&gt;   trap("INT") { stop }&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;config.run.join&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This piece of code registers a url "/" on the machine on port provided (in this case 4444) and serves a log huge file. Not very developer friendly is it ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well we can use ERB along with it and that will make things look a little easier.&lt;br /&gt;Lets add some more code to class LogHandler for ERB stuff.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class LogHandler &lt; Mongrel::HttpHandler&lt;br /&gt;   def initialize&lt;br /&gt;      @mutex = Mutex.new&lt;br /&gt;   end&lt;br /&gt;# This is for making instance variables of this class available at the template&lt;br /&gt;  def get_binding&lt;br /&gt;    binding&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;# We change the process function to render a rhtml file called view.rhtml&lt;br /&gt;  def process(request, response)&lt;br /&gt;     response.start(200) do |head, out|&lt;br /&gt;       head["Content-Type"] = "text/html"&lt;br /&gt;       logs = @@mysql.query("select * from huge order by id DESC limit 20")&lt;br /&gt;       sleep 20 # Some heavy processing on logs      &lt;br /&gt;       rhtml = ERB.new(File.read("view.rhtml"))&lt;br /&gt;       @mutex.synchronize{&lt;br /&gt;          @logs = logs&lt;br /&gt;          out.write rhtml.result(self.get_binding) &lt;br /&gt;      }&lt;br /&gt;     end&lt;br /&gt;   end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Mutex lock is important to implement here as mongrel reuses instance variables of this class for subsequent requests and may lead to a race condition. &lt;br /&gt;&lt;br /&gt;View.rhtml looks something like this &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;title&amp;gt;Log console&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Last 20 hits on our page&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;        &amp;lt;th&amp;gt;IP&amp;lt;/th&amp;gt;&lt;br /&gt;        &amp;lt;th&amp;gt;URL fetched&amp;lt;/th&amp;gt;&lt;br /&gt;        &amp;lt;th&amp;gt;Came from&amp;lt;/th&amp;gt;&lt;br /&gt;        &amp;lt;th&amp;gt;time taken&amp;lt;/th&amp;gt;&lt;br /&gt;     &amp;lt;%@logs.each{|td|%&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;        &amp;lt;td&amp;gt;&amp;lt;%=row[0]%&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;        &amp;lt;td&amp;gt;&amp;lt;%=row[1]%&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;        &amp;lt;td&amp;gt;&amp;lt;%=row[2]%&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;        &amp;lt;td&amp;gt;&amp;lt;%=row[3]%&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;%}%&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Not bad right ? I can now render rhtml as I 'd do from a rails application.&lt;br /&gt;&lt;br /&gt;But hey what about the Routing, MVC stuff, activerecord, logging, form helpers, javascript helpers, view side helpers, callbacks, migrations etc etc ? Well well! This is NOT a full scale framework or a Rails substitute. If you want to do view-side-heavy things use Rails or Merb. If you want to do processing heavy jobs which results in simple-html/no-html then use this. &lt;br /&gt;&lt;br /&gt;That said we can very easily sneak in a few of the Rails goodies. &lt;br /&gt;&lt;br /&gt;1. Active record - That is easy. Just require 'active_record'; establish_connection; create models by doing this&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def User &lt; ActiveRecord::Base&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;2. Logging&lt;br /&gt;Rails does logging in two parts. Request logging and response logging. You may add callbacks in the 'process' function to log a request and reponse at start and end of the function respectively.&lt;br /&gt;Something like &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def process&lt;br /&gt;   requestLogger(request)&lt;br /&gt;   # Do stuff&lt;br /&gt;   responseLogger(response)&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Routing&lt;br /&gt;This one much more difficult/the most difficult to implement. However if you have only a few urls to match and most of them are not dynamic it is a easier to hard code them. However it is dirty to do so. To implement a light weight routing is not that difficult and not so dirty. We take this path.&lt;br /&gt;&lt;br /&gt;First step to implement routing it to get all the parameters. Both post and get parameters. You may use something like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  def post_params(request)&lt;br /&gt;    post_params = {}&lt;br /&gt;    request.body.readlines.first.split('&amp;').each{|x|&lt;br /&gt;      k,v=x.split('=')&lt;br /&gt;      post_params[k.to_sym] = CGI.unescape(v)&lt;br /&gt;    }&lt;br /&gt;    return post_params&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;   def get_params(request)&lt;br /&gt;    get_params = {}&lt;br /&gt;    request.params["QUERY_STRING"].split("&amp;").each{|x|&lt;br /&gt;      k, v = x.split("=")&lt;br /&gt;      get_params[k.to_sym] = CGI.unescape(v)&lt;br /&gt;    }&lt;br /&gt;    return get_params&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Actual implementation of routing is a little complex and is not easy to cover in one blog post. Also I may have done it wrong so I do not want to put it out there. I will cover this in detail when I am sure about it.&lt;br /&gt;&lt;br /&gt;The more stuff you add to this thing the more it will start looking like Rails! IMHO it is not a bad idea to implement your own framework. I did implement a framework to run rails code as it is. But I never used it on my production servers. &lt;a href="http://www.design-ireland.net/index.php?http%3A//www.design-ireland.net/alpha/controller/view_article.php%3Foid%3D00000000070"&gt;Apparently&lt;/a&gt; that is the why how it should be :)&lt;br /&gt;&lt;br /&gt;Update 1: I have changed some code to highlight that mysql query is not the heavy call and processing is being on done elsewhere (sleep in this case). Default mysql libraries are not thread safe however one may use something like &lt;a href="http://www.espace.com.eg/neverblock"&gt;Neverblock&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1645959419062662511?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1645959419062662511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1645959419062662511' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1645959419062662511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1645959419062662511'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2009/02/mongrel-as-stand-alone-server.html' title='Mongrel as a stand alone server'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-9210424169221451397</id><published>2008-11-13T14:32:00.007+05:30</published><updated>2008-11-13T15:20:24.057+05:30</updated><title type='text'>Desperate times calls for desperate measures</title><content type='html'>These are desperate times and they surely call for some desperate measures. However when I look around I find people doing not-so-desperate things. The only mantra for cost cutting seems to be employee cutting! The truth is that most of the corporations are so bloated and top-heavy that they cannot think about anything else. It is like having a tummy so big that you are unable to see the feet, the truth!, the foundation.&lt;br /&gt;&lt;br /&gt;Simple things, like Lehman brothers new york office not switching off external lights/display in months of acute crisis, strike me really really odd. I am not sure I do understand it correctly but isn't it very counter intuitive that when you are undergoing such a bad time you should spend thousands of dollars on some lousy display that nobody cares about ? Have corporations completely forgotten "saving" a primary and basic principle of survival ?&lt;br /&gt;&lt;br /&gt;How can we save at least some money in these times ?&lt;br /&gt;&lt;br /&gt;1. Start spending as less as possible on stationary. Ask employees to bring pens and diaries.&lt;br /&gt;2. Keep that office printer starved of paper. Better still decommission those which are not really needed or are back up. Put per person quota on printers.&lt;br /&gt;3. Do the same with phones. Ask employees to not use phones for personal purposes. Monitor the bills and slap it on people if it exceeds a certain limit.&lt;br /&gt;4. Sublet office space if you can.&lt;br /&gt;5. Sell that office car if it is not really used&lt;br /&gt;6. Stops those team meets which require a long distance call or travel&lt;br /&gt;7. Rather, stop meetings as much as possible&lt;br /&gt;8. Start switching off everybody's computers at night.&lt;br /&gt;9. Restrict internet usage to bare minimum&lt;br /&gt;10. Stop that friday free lunch, ask people to pay up.&lt;br /&gt;11. Make the coffee dispensing machine pay-on-use&lt;br /&gt;12. Reduce the office cooling up to 25 deg C&lt;br /&gt;13. Make the office gym pay-per-use&lt;br /&gt;14. Switch off all the servers that you don't really need&lt;br /&gt;15. Remove those tissue papers from cafeteria and bathroom. Ask people to carry handkerchiefs&lt;br /&gt;16. Allow people to work from home&lt;br /&gt;17. If possible move the office to a place where rent is lower (suburbs)&lt;br /&gt;18. Completely stop those corporate gifts.&lt;br /&gt;19. Try to move your call center to a web chat based model and save on phone and employee costs. (This may be a good idea in all times)&lt;br /&gt;20. Motivate people to work more, put in more efforts by assuring them that no firing is going to take place.&lt;br /&gt;&lt;br /&gt;More to follow as I observe more useless expenses happening around me.&lt;br /&gt;In my view this is much better than firing people left, right and center.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-9210424169221451397?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/9210424169221451397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=9210424169221451397' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/9210424169221451397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/9210424169221451397'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/11/desperate-times-calls-for-desperate.html' title='Desperate times calls for desperate measures'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3026169067175359114</id><published>2008-10-06T21:42:00.005+05:30</published><updated>2008-10-06T22:52:07.098+05:30</updated><title type='text'>Fastest and easiest way to book train tickets</title><content type='html'>After a 2 month long grind, we have managed to launch &lt;a href="http://www.cleartrip.com/trains"&gt;train bookings&lt;/a&gt; on &lt;a href="http://www.cleartrip.com/"&gt;Cleartrip&lt;/a&gt;. Under the hood we have implemented a really fast search and fare engine to accomplish the feat of serving search results in sub 100 milliseconds. This means one can search, check availability and book train tickets in less than one minute. This is a remarkable change over the long queues that everybody had to stand on reservation counters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3026169067175359114?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3026169067175359114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3026169067175359114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3026169067175359114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3026169067175359114'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/10/fastest-and-easiest-way-to-book-train.html' title='Fastest and easiest way to book train tickets'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-7174884641225623882</id><published>2008-08-20T02:13:00.002+05:30</published><updated>2008-08-20T02:17:46.345+05:30</updated><title type='text'>Business today</title><content type='html'>"When the productive need to ask permission from the unproductive in order to produce, then you may know that your culture is doomed."-Ayn Rand&lt;br /&gt;&lt;br /&gt;Specially true for IT business :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-7174884641225623882?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/7174884641225623882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=7174884641225623882' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7174884641225623882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7174884641225623882'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/08/business-today.html' title='Business today'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5861966585602427952</id><published>2008-08-01T19:22:00.003+05:30</published><updated>2008-08-02T00:56:50.867+05:30</updated><title type='text'>Use mongrel handler for slow requests</title><content type='html'>I work in a industry where almost everything is a API call to a remote and slow system usually written in java. Rails is not at all the way to implement such things. I think the easiest way to implement this from ruby world is to write a mongrel handler.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class SleepHandler &lt; Mongrel::HttpHandler&lt;br /&gt;  def process(request, response)&lt;br /&gt;    response.start do |head,out|&lt;br /&gt;      head["Content-Type"] = "text/html"&lt;br /&gt;      sleep 300 # Long running task&lt;br /&gt;      out.write("test") # Push out the result&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#Handler configs&lt;br /&gt;config = Mongrel::Configurator.new :host =&gt; ARGV[0], :port =&gt; ARGV[1] do&lt;br /&gt;  listener(:num_processors =&gt; 80, :timeout =&gt; 400) do&lt;br /&gt;    uri "/sleep", :handler =&gt; SleepHandler.new&lt;br /&gt;    uri "/nosleep", :handler =&gt; NoSleepHandler.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  trap("INT") { stop }&lt;br /&gt;  run&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;puts "Mongrel running on #{ARGV[0]}:#{ARGV[1]} with docroot #{ARGV[2]}"&lt;br /&gt;config.join&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I stressed this mongrel handler with 50 concurrent requests and everything came back in 5 min and 45 secs and maximum memory comsumption was 32MB so in my view decent performance by mongrel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5861966585602427952?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5861966585602427952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5861966585602427952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5861966585602427952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5861966585602427952'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/08/use-mongrel-handler-for-slow-requests.html' title='Use mongrel handler for slow requests'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-8416627555137290808</id><published>2008-05-16T06:36:00.006+05:30</published><updated>2008-05-21T09:55:08.814+05:30</updated><title type='text'>Why are my flights always so late ?</title><content type='html'>My morning flights are always very late and there is a lot of rush on the airports. It got me thinking. How many planes are actually in air at a given moment? I got hold of some data of airline schedules and tried to plot it on a map(Google). This is a snapshot of the same.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OCxqbayITF0/SCzejO8lAzI/AAAAAAAAAJY/m_yeUkpw2Sk/s1600-h/indians+skies+at+8+in+the+morning.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OCxqbayITF0/SCzejO8lAzI/AAAAAAAAAJY/m_yeUkpw2Sk/s400/indians+skies+at+8+in+the+morning.jpg" alt="" id="BLOGGER_PHOTO_ID_5200776366595048242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Red bubbles show approx. location of a flight in air. Red lines show the path.&lt;br /&gt;It depicts Indian sky at 8 in the morning. Some 414 flights in Air!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-8416627555137290808?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/8416627555137290808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=8416627555137290808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8416627555137290808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8416627555137290808'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/05/why-are-my-flights-always-late.html' title='Why are my flights always so late ?'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OCxqbayITF0/SCzejO8lAzI/AAAAAAAAAJY/m_yeUkpw2Sk/s72-c/indians+skies+at+8+in+the+morning.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1181829781192695869</id><published>2008-04-25T04:35:00.008+05:30</published><updated>2008-04-27T00:52:54.785+05:30</updated><title type='text'>Cleartrip trains now has more features</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;span&gt;Dateless search - Now you can search wit&lt;/span&gt;&lt;span&gt;hout &lt;/span&gt;&lt;span&gt;specifying &lt;/span&gt;&lt;span&gt;and date of travel and&lt;/span&gt;&lt;span&gt; the result will be presented to you i&lt;/span&gt;&lt;span&gt;n a&lt;/span&gt;&lt;span&gt; form of table which will show you a list &lt;/span&gt;&lt;span&gt;of trains between th&lt;/span&gt;&lt;span&gt;e specified pair of &lt;/span&gt;&lt;span&gt;stations/cities, days it runs on  etc.&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OCxqbayITF0/SBETVpcUcHI/AAAAAAAAAHI/0dFfWur-VTc/s1600-h/dateless-search.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OCxqbayITF0/SBETVpcUcHI/AAAAAAAAAHI/0dFfWur-VTc/s320/dateless-search.jpg" alt="" id="BLOGGER_PHOTO_ID_5192953107957706866" border="0" /&gt;&lt;/a&gt; One can further specify the date from "Modify your search " link and check for availability.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Google maps of trains - We launched this feature quiet sometime back. However I still like to brag about it as I had to spend a lot of time into it. A few maps just look so beautiful. For instance&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OCxqbayITF0/SBEUS5cUcII/AAAAAAAAAHQ/P3k8h78wN0U/s1600-h/googlemap.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OCxqbayITF0/SBEUS5cUcII/AAAAAAAAAHQ/P3k8h78wN0U/s320/googlemap.jpg" alt="" id="BLOGGER_PHOTO_ID_5192954160224694402" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;                                          &lt;span style="font-size:85%;"&gt;&lt;a href="http://www.cleartrip.com/trains/map/68"&gt;http://www.cleartrip.com/trains/map/68&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Route Images - After lot of hard work from &lt;a href="http://web.gnuer.org/blog/index.php"&gt;Anurag&lt;/a&gt; we were finally able to launch a really cool feature : Route images like the ones we find on IR timetable. Inspired by London underground maps these look amazing&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OCxqbayITF0/SBEVv5cUcJI/AAAAAAAAAHY/sjOPAUXGKUk/s1600-h/trainrouteimage.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OCxqbayITF0/SBEVv5cUcJI/AAAAAAAAAHY/sjOPAUXGKUk/s320/trainrouteimage.jpg" alt="" id="BLOGGER_PHOTO_ID_5192955757952528530" border="0" /&gt;&lt;/a&gt;                                   &lt;span style="font-size:85%;"&gt;&lt;a href="http://www.cleartrip.com/trains/show/1047"&gt;http://www.cleartrip.com/trains/show/1047&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OCxqbayITF0/SBEXWJcUcKI/AAAAAAAAAHg/PeXPEL8NYNw/s1600-h/1047.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_OCxqbayITF0/SBEXWJcUcKI/AAAAAAAAAHg/PeXPEL8NYNw/s400/1047.png" alt="" id="BLOGGER_PHOTO_ID_5192957514594152610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        The best thing about these maps is that they highlight the important stations and that was achieved after a little voodoo :)&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Flight and hotel cross sell - Last but not the least...&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OCxqbayITF0/SBEZUZcUcLI/AAAAAAAAAHo/_5t1r1xMOMs/s1600-h/crosssell.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_OCxqbayITF0/SBEZUZcUcLI/AAAAAAAAAHo/_5t1r1xMOMs/s400/crosssell.jpg" alt="" id="BLOGGER_PHOTO_ID_5192959683552637106" border="0" /&gt;&lt;/a&gt;definitely not the least! Now  we show you cheapest flight available (if any) for the date and sector you are searching for. We also suggest you a good hotel at the destination city. For example &lt;span style="font-size:100%;"&gt;&lt;a href="http://www.cleartrip.com/trains/results?from_city=Mumbai&amp;amp;to_city=New%20Delhi&amp;amp;class=1&amp;amp;date=26-4-2008"&gt;&lt;span style="font-size:85%;"&gt;http://www.cleartrip.com/trains/results?from_city=Mumbai&amp;amp;to_city=New%20Delhi&amp;amp;class=1&amp;amp;date=26-4-2008&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Search by station code - You may now search by station code but I would discourage that as we have comprehensive look ups/autocomplete for this purpose. For instance  &lt;span style="font-size:85%;"&gt;&lt;a href="http://www.cleartrip.com/trains/results?from_station=pnbe&amp;amp;to_station=ndls&amp;amp;class=1&amp;amp;date=26-04-2008"&gt;http://www.cleartrip.com/trains/results?from_station=pnbe&amp;amp;to_station=ndls&amp;amp;class=1&amp;amp;date=26-04-2008&lt;/a&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1181829781192695869?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1181829781192695869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1181829781192695869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1181829781192695869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1181829781192695869'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/04/cleartrip-trains-now-has-more-features.html' title='Cleartrip trains now has more features'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OCxqbayITF0/SBETVpcUcHI/AAAAAAAAAHI/0dFfWur-VTc/s72-c/dateless-search.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5160101784079130316</id><published>2008-04-24T04:58:00.003+05:30</published><updated>2008-04-24T05:40:29.696+05:30</updated><title type='text'>RDBMS vs Object/document DB</title><content type='html'>I am now sick and tired of people telling/writing blogs about how Object DB will rule the world and the RDBMS is crap. Well in my view both they are both right and wrong. It is true that Document DBs will rule the roost in years to come. This is primarily due to the fact that web applications are mostly normal CRUD (Create, Read, Update, Delete) applications where object/document/flat DBs work well. Due to sharp decline in storage media prices normalizing a datastore is not that useful/cost-saving anymore. Even if we have millions of records, keeping them in a denormalized form for easy fetching makes sense. &lt;br /&gt;That said, this does not mean that RDBMS are things of past. They are in fact quiet important for a lot of things which either cannot be done on Object DBs or will be much slower than RDMSs. For instance, suppose you have to make a small data analytics system for a log file which has 2 million entires everyday which DB will you use ? (Hint: The one that allows you to normalize, join , index, sort and group data in any manner you like!)&lt;br /&gt;I think all these RDBMS bashing crowd is   &lt;br /&gt;1. Have never used databases at all and read blogs and created a very strong opnion against RDBMSs&lt;br /&gt;2. Have used databases but don't know jack shit about database design and query optimization &lt;br /&gt;3. Are lispers and think all data is code or the other way round!&lt;br /&gt;&lt;br /&gt;I did do this small experiment involving a log file having about 2 million entries. We pushed it into a lisp based object DB called acache and generated some statistics. We also pushed the same log file in a  MySQL DB. Although data entry time was almost the same (for MySQl about 24-25mins and for acache about 30 mins) there was a massive difference when we tried the analytics part. Acache took around 2-3 minutes to generate only one statistics from the data. MySQL one generated 10 in 52 seconds!!!&lt;br /&gt;Beat that!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5160101784079130316?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5160101784079130316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5160101784079130316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5160101784079130316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5160101784079130316'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/04/rdbms-vs-objectdocument-db-who-sucks.html' title='RDBMS vs Object/document DB'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-516914703621911043</id><published>2008-04-21T23:18:00.010+05:30</published><updated>2008-04-22T15:53:32.461+05:30</updated><title type='text'>Closed source hurts your bottomline twice</title><content type='html'>Oracle is decent database. It has good performance, rich features and is reasonably fast. However this doesn't mean, if you have spent $100K on licensing it and $20K on the machine it runs on, it will never fail. In fact I happen to be in a situation where I have seen Oracle crash and burn very regularly. &lt;br /&gt;Being closed source and a paid application oracle hurts your bottomline more than once. Not only do you spend money buying the expensive license+machine but you end up paying more for maintenance and administration. &lt;br /&gt;&lt;br /&gt;Lets compare the cost of a MySQL/Postgres database to an Oracle.&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Oracle&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MySQL/Postgres&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DBA cost&lt;/td&gt;&lt;td&gt;High ($30K/year)&lt;/td&gt;&lt;td&gt;Medium ($20K/year)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Machine/resource cost&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;Medium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;License cost&lt;/td&gt;&lt;td&gt;High ($600K + $100K/year ~ approx)&lt;/td&gt;&lt;td&gt;Nil ($0k)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Downtime cost&lt;/td&gt;&lt;td&gt;High (Revenue)&lt;/td&gt;&lt;td&gt;High Revenue)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;And after all this money spent when it crashes it hurts much more as the cost of the downtime is the same i.e. loss of revenue. It you much more as it has already eaten into your revenue. Speed wise there is hardly anything that can match MySQL. However it is not as reliable as Oracle/Postgres. But then if I maintain say a 3 node cluster of MySQL it is much more reliable and cost effective than Oracle.&lt;br /&gt;&lt;br /&gt;Oracle has always been touted as the most feature rich database. However I don't think most of the websites out there use any of those advanced features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-516914703621911043?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/516914703621911043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=516914703621911043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/516914703621911043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/516914703621911043'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/04/closed-source-hurts-your-bottomline.html' title='Closed source hurts your bottomline twice'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5330953158657984441</id><published>2008-04-21T15:33:00.003+05:30</published><updated>2008-04-22T15:54:02.202+05:30</updated><title type='text'>Journey is MUCH more important</title><content type='html'>I always had this belief that journey is much more important than the destination. And now I have no doubt that it is true. There is really no freaking destination out there! It is all about the journey and that what really matters&lt;br /&gt;&lt;br /&gt;Watch this talk by DHH. Nobody can explain it better than him               &lt;br /&gt;&lt;a href="http://www.justin.tv/hackertv/97862/DHH_Talk__Startup_School_2008"&gt;http://www.justin.tv/hackertv/97862/DHH_Talk__Startup_School_2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5330953158657984441?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5330953158657984441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5330953158657984441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5330953158657984441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5330953158657984441'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/04/journey-is-much-more-important.html' title='Journey is MUCH more important'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5580360448342988954</id><published>2008-02-11T01:06:00.000+05:30</published><updated>2008-02-11T02:34:05.142+05:30</updated><title type='text'>Write your own Orkut in Rails - Part 1</title><content type='html'>So you want to start a new social networking portal? (well almost every third guy I meet is trying to do so!). Lets start writing one in Rails. It may not scale to the level of original orkut but it will surely be able to handle a couple of thousand odd  users who login 4-5 times a day(you may be able to easily optimize to handle upto 10K probably on a decent server grade machine or two). Few things I can guarantee you that it will be a lot of fun (since it is in rails ) and will be faster than the original one (just a little bit).&lt;br /&gt;&lt;br /&gt;First thing is to create a database table structure for it. I use mysql and i pretty good. Did you know that initially orkut was written on mysql and aspx ? or was it mssql...anyway it now runs on bigtable.&lt;br /&gt;&lt;br /&gt;First thing to create is a person table like this:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:78%;"&gt;CREATE TABLE `people` (&lt;br /&gt;  `id` int(11) NOT NULL auto_increment,&lt;br /&gt;  `emailid` varchar(35) NOT NULL default '',&lt;br /&gt;  `password` varchar(100) NOT NULL default '',&lt;br /&gt;  `display_name` varchar(100) NOT NULL default '',&lt;br /&gt;  `created_at` datetime default NULL,&lt;br /&gt;  `updated_at` datetime default NULL,&lt;br /&gt;  PRIMARY KEY  (`id`),&lt;br /&gt;  KEY `display_name` (`display_name`)&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This table will have data of people logging to your orkut like email id, password (in md5 hash) and display name.&lt;br /&gt;&lt;br /&gt;Lets create friends table now&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CREATE TABLE `friends` (&lt;br /&gt;  `person_id` int(11) NOT NULL,&lt;br /&gt;  `friend_id` int(11) NOT NULL,&lt;br /&gt;  KEY `person_id` (`person_id`,`friend_id`)&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;br /&gt;&lt;/span&gt;That was easy! Well I have not added a friend, good friend, best friend etc column. You add it later if you need it. For now lets keep things simple.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;CREATE TABLE `scraps` (&lt;br /&gt;  `id` int(11) NOT NULL auto_increment,&lt;br /&gt;  `body` varchar(1024) NOT NULL default '',&lt;br /&gt;  `created_at` timestamp NOT NULL default CURRENT_TIMESTAMP,&lt;br /&gt;  `person_id` int(11) NOT NULL,&lt;br /&gt;  `owner_id` int(11) NOT NULL,&lt;br /&gt;  PRIMARY KEY  (`id`),&lt;br /&gt;  KEY `owner_id` (`owner_id`)&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Thats pretty trivial and mundane..isn't it ?&lt;br /&gt;&lt;br /&gt;Lets create the tricky one. Profiles&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;CREATE TABLE `profiles` (&lt;br /&gt;  `id` int(11) NOT NULL auto_increment,&lt;br /&gt;  `type` smallint(6) NOT NULL,&lt;br /&gt;  `body` text,&lt;br /&gt;  `person_id` int(11) default NULL,&lt;br /&gt;  `created_at` datetime default NULL,&lt;br /&gt;  `updated_at` datetime default NULL,&lt;br /&gt;  PRIMARY KEY  (`id`),&lt;br /&gt;  KEY `person_id` (`person_id`)&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Well this table only has a type and a body. Type will contain the information about the type of the profile(like personal, business etc) and body will contain the whole profile in YAML format.&lt;br /&gt;&lt;br /&gt;Similarly create pictures&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CREATE TABLE `pictures` (&lt;br /&gt;  `int` int(11) NOT NULL,&lt;br /&gt;  `file_name` varchar(255) NOT NULL default '',&lt;br /&gt;  `caption` varchar(255) default NULL,&lt;br /&gt;  `person_id` int(11) NOT NULL,&lt;br /&gt;  KEY `file_name` (`file_name`)&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We will give a miss to communities and likes for right now(who needs them anyway!)&lt;br /&gt;&lt;br /&gt;After database schema is ready lets create a rails application. To be honest we should have created the rails app first and then create this schema from generators. But I prefer to have more control on the schema.&lt;br /&gt;&lt;br /&gt;Lets dip our hands into models now.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class Person &lt; ActiveRecord::Base&lt;br /&gt;  has_and_belongs_to_many :friends, :class_name =&gt; "Person", :join_table =&gt; "friends", :foreign_key =&gt; "person_id", :association_foreign_key =&gt; "friend_id"&lt;br /&gt;  has_many :pictures&lt;br /&gt;  has_many :profiles&lt;br /&gt;  has_many :scraps&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will create the friends relationships for us. Every person can now have many friends in a many to many way.&lt;br /&gt;&lt;br /&gt;Picture, scrap, profile etc all are similar&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class Profile &lt; ActiveRecord::Base&lt;br /&gt;  belongs_to :person, :foreign_key =&gt; :person_id&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Nothing to see here. Move on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now we open a console and create a few people here&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;p1=Person.create(:emailid =&gt; 'piyush.@foobar1.com', :password =&gt; 'piyush', :display_name =&gt; 'pr1')&lt;br /&gt;p2=Person.create(:emailid =&gt; 'piyush@foobar2.com', :password =&gt; 'piyush', :display_name =&gt; 'pr2')&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now lets make them friends&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;p1.friends &lt;&lt; p2&lt;br /&gt;p2.friends &lt;&lt; p1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Notice here I make two calls to friends from each person object because if p1 added p2 as friend the relationship is not immediately established as p2 has to acknowledge. Also p1 may add p1 as 'best friend' but p2 may add him/her is 'don't know this person'. For a friend relationship to established two way connection is a must. This may however be done by adding a few more columns to the friends table but I want to keep it lean.&lt;br /&gt;&lt;br /&gt;This is it for now. Lets do the views and controllers of it in part 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5580360448342988954?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5580360448342988954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5580360448342988954' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5580360448342988954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5580360448342988954'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/02/write-your-own-orkut-in-rails-part-1.html' title='Write your own Orkut in Rails - Part 1'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2089775228715803454</id><published>2008-02-06T14:03:00.000+05:30</published><updated>2008-02-06T16:24:16.496+05:30</updated><title type='text'>Faster and easier train search</title><content type='html'>at &lt;a href="http://www.cleartrip/trains"&gt;http://www.cleartrip.com/trains&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and more features to come&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2089775228715803454?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2089775228715803454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2089775228715803454' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2089775228715803454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2089775228715803454'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2008/02/faster-and-easier-train-search.html' title='Faster and easier train search'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-8736569101088047269</id><published>2007-12-21T03:51:00.000+05:30</published><updated>2007-12-21T21:30:50.167+05:30</updated><title type='text'>IE sucks - To open a new tab you need windows live toolbar enabled! How crazy is that!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OCxqbayITF0/R2rrUYWzTzI/AAAAAAAAAD8/BzA9G5GHesU/s1600-h/fuck-M%24.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OCxqbayITF0/R2rrUYWzTzI/AAAAAAAAAD8/BzA9G5GHesU/s400/fuck-M%24.JPG" alt="" id="BLOGGER_PHOTO_ID_5146184259592212274" border="0" /&gt;&lt;/a&gt;In M$ world you cannot open a new tab unless you have "Windows live toolbar" enabled!!!!!&lt;br /&gt;WTF!! Seriously WTF!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-8736569101088047269?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/8736569101088047269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=8736569101088047269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8736569101088047269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8736569101088047269'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/12/in-m-world-you-cannot-open-new-tab.html' title='IE sucks - To open a new tab you need windows live toolbar enabled! How crazy is that!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OCxqbayITF0/R2rrUYWzTzI/AAAAAAAAAD8/BzA9G5GHesU/s72-c/fuck-M%24.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-626161773833542231</id><published>2007-12-14T03:42:00.000+05:30</published><updated>2007-12-14T03:56:38.630+05:30</updated><title type='text'>Orkut security: Blocked or locked album viewing</title><content type='html'>A few days back orkut unveiled a good privacy measure to lock albums, scrapbooks et al for users who do not want them to be available for public consumption. Great feature! The only problem though is that it doesn't work or rather there is a workaround it! This is how:&lt;br /&gt;1. Go to the profile page of the person whose album is locked.&lt;br /&gt;&lt;br /&gt;2. View html source of the page and search for 'medium'&lt;br /&gt;&lt;br /&gt;3. This will give you an url like http://img&lt;2,3 or 4&gt;.orkut.com/images/medium/&lt;some number&gt;/&lt;some other&gt;.jpg&lt;br /&gt;&lt;br /&gt;4. Open another tab paste this url and replace 'medium' with 'milieu/1'(http://img3.orkut.com/images/milieu/2/&lt;some number&gt;/&lt;some other number&gt;.jpg) and press enter(or go button of your browser and bang! the first picture in his/her album (thumbnail) will be presented to you.&lt;br /&gt;&lt;br /&gt;5. To view other pictures in the album change the 'milieu/1' to 'milieu/2' and so on till you have seen all the pictures.&lt;br /&gt;&lt;br /&gt;Security blunder of this magnitude was not expected from google!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-626161773833542231?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/626161773833542231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=626161773833542231' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/626161773833542231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/626161773833542231'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/12/orkut-security-blocked-album-viewing.html' title='Orkut security: Blocked or locked album viewing'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5805996150414252802</id><published>2007-11-12T23:01:00.001+05:30</published><updated>2008-02-17T02:00:43.938+05:30</updated><title type='text'>Mongrelhandler + erb</title><content type='html'>A few weeks back I wrote a MongrelHandler to handle concurrent requests on a site to&lt;br /&gt;process a slow running process(read scraping) in background. Here is how it looks like (in essence)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class  &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt; &lt;span class="constant"&gt;Mongrel&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;HttpHandler&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;get_binding&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;binding&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;process&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;request&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;response&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;response&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;start&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="number"&gt;200&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;head&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;out&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;head&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;Content-Type&lt;/span&gt;&lt;span class="punct"&gt;"]&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;text/html&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;={}&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;request&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;QUERY_STRING&lt;/span&gt;&lt;span class="punct"&gt;"].&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;&amp;amp;&lt;/span&gt;&lt;span class="punct"&gt;').&lt;/span&gt;&lt;span class="ident"&gt;each&lt;/span&gt;&lt;span class="punct"&gt;{|&lt;/span&gt;&lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;&lt;br /&gt;    &lt;span class="ident"&gt;k&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="ident"&gt;v&lt;/span&gt;&lt;span class="punct"&gt;=&lt;/span&gt;&lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;=&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt;&lt;br /&gt;    &lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="ident"&gt;k&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;to_sym&lt;/span&gt;&lt;span class="punct"&gt;]=&lt;/span&gt;&lt;span class="ident"&gt;v&lt;/span&gt;&lt;br /&gt;  &lt;span class="punct"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:id&lt;/span&gt;&lt;span class="punct"&gt;]=&lt;/span&gt;&lt;span class="ident"&gt;request&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;PATH_INFO&lt;/span&gt;&lt;span class="punct"&gt;"]&lt;/span&gt;&lt;br /&gt;  &lt;span class="attribute"&gt;@posts&lt;/span&gt;&lt;span class="punct"&gt;=Post.&lt;/span&gt;&lt;span class="ident"&gt;find&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;params[:id]&lt;span class="punct"&gt;) #or whatever&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;template&lt;/span&gt;&lt;span class="punct"&gt;="&lt;/span&gt;&lt;span class="string"&gt;&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;  &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;open&lt;/span&gt;&lt;span class="punct"&gt;("&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="expr"&gt;#{RAILS_ROOT}&lt;/span&gt;/app/views/&amp;lt;path&amp;gt;/&amp;lt;filename&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;",&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;r&lt;/span&gt;&lt;span class="punct"&gt;"){&lt;/span&gt;&lt;br /&gt;    &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;f&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;template&lt;/span&gt;&lt;span class="punct"&gt;=&lt;/span&gt;&lt;span class="ident"&gt;f&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;readlines&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;to_s&lt;/span&gt;&lt;br /&gt;  &lt;span class="punct"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;rhtml&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;ERB&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;template&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;str&lt;/span&gt;&lt;span class="punct"&gt;=&lt;/span&gt;&lt;span class="ident"&gt;rhtml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;result&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;self&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;get_binding&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span class="ident"&gt;out&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;write&lt;/span&gt; &lt;span class="ident"&gt;str&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To start it call&lt;br /&gt;mongrel_rails start -e environment -p port -S path-to-mongrel-handler&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5805996150414252802?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5805996150414252802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5805996150414252802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5805996150414252802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5805996150414252802'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/11/mongrelhandler-erb.html' title='Mongrelhandler + erb'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-107669771583279443</id><published>2007-10-02T02:10:00.000+05:30</published><updated>2007-10-03T10:17:23.202+05:30</updated><title type='text'>Session less rails application</title><content type='html'>Sessions are used to store user login information on the server because http is a stateless protocol and need either sessions or cookies to know pass data between user's subsequent page requests. However there has been a lot of talk and benchmarks which show that sessions are one of the things that &lt;a href="http://pranjan.blogspot.com/2007/07/wanna-make-your-rails-app-faster.html"&gt;slow down&lt;/a&gt; rails applications rather dramatically. It is also one of the key bottlenecks which with many other factors turns itself into a scalability nightmare.&lt;br /&gt;File session stores are slow and when no. of servers are more than one you cannot easily make use of them without using something like NFS or load balancer hack. DB session store though are easily scalable when more than one servers are used are still quiet slow and moreover it would just become as unscable as no. of users and applications increase as the number of inserts and selects from DB will grow tremendously.  Drb sessions store ...well nobody seems to use them :)&lt;br /&gt;&lt;br /&gt;I decided to completely do away with sessions and use only cookies in my rails application. My application cookie is made up of various user params which are stored in a pipe seperated string and then &lt;a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard"&gt;Rijndael encryption&lt;/a&gt; encrypted using a key. Aes is quiet fast and there is a &lt;a href="http://aescrypt.sourceforge.net/"&gt;library&lt;/a&gt; for ruby which is a actually a wrapper on top of a C lib so it is quiet fast(feels fast enough...haven't done any benchmarks on it).&lt;br /&gt;Now everytime my application needs to check for authentication it reads the cookie, decrypts it (after base decoding and url unescaping) and makes a user object of a user class using this decrypted info and thats it. Bye bye sessions :)&lt;br /&gt;&lt;br /&gt;p.s. As for error/flash messages ...well thats a different story. If you want to disobey rails and do things your way, a lot of magic powers are rendered useless but it's not as if there are no ways to get around the problem.&lt;br /&gt;&lt;br /&gt;p.p.s. This system was conceptualized by &lt;a href="http://nandz.blogspot.com"&gt;Saurabh Nanda&lt;/a&gt; who based it on Standford's &lt;a href="http://webauth.stanford.edu/features.html"&gt;WebAuth&lt;/a&gt; and &lt;a href="http://www.ja-sig.org/products/cas/"&gt;JA-SIG CAS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-107669771583279443?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/107669771583279443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=107669771583279443' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/107669771583279443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/107669771583279443'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/10/session-less-rails-application.html' title='Session less rails application'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-8196085792688272623</id><published>2007-09-28T17:12:00.000+05:30</published><updated>2007-09-28T17:24:08.105+05:30</updated><title type='text'>The ruby code for unearthing vista multiplication(display) bug</title><content type='html'>is this &lt;br /&gt;counter=0;total=0;&lt;br /&gt;1.step(65535,0.1){|x| total+=1; y=((65535/x).to_s).delete('.').split(//).last; if(y.to_i==5 or y.to_i==0); counter+=1; puts "#{65535/x},#{x}-#{65535/x*x}"; end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I love ruby :)&lt;br /&gt;&lt;br /&gt;Actually this code spits out 72000 such numbers however the bug is present in around 12000 such numbers. Seems my pattern is only 1/6 true :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-8196085792688272623?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/8196085792688272623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=8196085792688272623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8196085792688272623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/8196085792688272623'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/09/ruby-code-for-unearthing-vista.html' title='The ruby code for unearthing vista multiplication(display) bug'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-7384365072976176153</id><published>2007-09-28T17:06:00.000+05:30</published><updated>2007-11-19T13:34:42.508+05:30</updated><title type='text'>I found 12000  recurrence of excel 2007 multiplication bug</title><content type='html'>1.016265520786650 64486.1&lt;br /&gt;&lt;br /&gt;7.988663375388550 8203.5&lt;br /&gt;7.989832120258950 8202.3&lt;br /&gt;7.994608046453750 8197.4&lt;br /&gt;7.994803103498750 8197.2&lt;br /&gt;7.996656620257950 8195.3&lt;br /&gt;7.997827705300150 8194.1&lt;br /&gt;8.001245330012450 8190.6&lt;br /&gt;8.001831501831500 8190.0&lt;br /&gt;8.006621788371550 8185.1&lt;br /&gt;9.396911429431750 6974.1&lt;br /&gt;9.399067766224450 6972.5&lt;br /&gt;9.401899460576150 6970.4&lt;br /&gt;9.406892789986650 6966.7&lt;br /&gt;9.410675052772150 6963.9&lt;br /&gt;9.412026598112850 6962.9&lt;br /&gt;9.415812991192650 6960.1&lt;br /&gt;9.417436663840550 6958.9&lt;br /&gt;&lt;br /&gt;15.278360609875500 4289.4&lt;br /&gt;15.290123888850000 4286.1&lt;br /&gt;15.329824561403500 4275.0&lt;br /&gt;15.356766256590500 4267.5&lt;br /&gt;15.384163947510500 4259.9&lt;br /&gt;15.387414886123500 4259.0&lt;br /&gt;15.401156232374500 4255.2&lt;br /&gt;15.430892394631500 4247.0&lt;br /&gt;15.498403689251500 4228.5&lt;br /&gt;15.536616011948500 4218.1&lt;br /&gt;15.539563227657500 4217.3&lt;br /&gt;15.559486217621500 4211.9&lt;br /&gt;15.563550869193500 4210.8&lt;br /&gt;15.573536750552500 4208.1&lt;br /&gt;15.595031292387500 4202.3&lt;br /&gt;15.712059458163500 4171.0&lt;br /&gt;15.712436164856500 4170.9&lt;br /&gt;15.712812889613500 4170.8&lt;br /&gt;15.713943172281500 4170.5&lt;br /&gt;19.260837619397500 3402.5&lt;br /&gt;19.275000000000000 3400.0&lt;br /&gt;19.358126070774500 3385.4&lt;br /&gt;19.392495709297500 3379.4&lt;br /&gt;19.436206180675000 3371.8&lt;br /&gt;19.510851766947500 3358.9&lt;br /&gt;19.647139944837500 3335.6&lt;br /&gt;24.679897567221500 2655.4&lt;br /&gt;24.689195298372500 2654.4&lt;br /&gt;24.800378429517500 2642.5&lt;br /&gt;24.925832952989500 2629.2&lt;br /&gt;25.097656250000000 2611.2&lt;br /&gt;25.113044144696500 2609.6&lt;br /&gt;25.117856732206500 2609.1&lt;br /&gt;25.174784880147500 2603.2&lt;br /&gt;25.213527239150500 2599.2&lt;br /&gt;25.322642967542500 2588.0&lt;br /&gt;25.364786933467500 2583.7&lt;br /&gt;25.520853615795000 2567.9&lt;br /&gt;25.536764992401500 2566.3&lt;br /&gt;25.572638233113500 2562.7&lt;br /&gt;25.577628600421500 2562.2&lt;br /&gt;25.645691476872500 2555.4&lt;br /&gt;25.708065275380500 2549.2&lt;br /&gt;25.718153991052500 2548.2&lt;br /&gt;25.722191694795500 2547.8&lt;br /&gt;25.872483221476500 2533.0&lt;br /&gt;26.144977260033500 2506.6&lt;br /&gt;26.182580902916500 2503.0&lt;br /&gt;26.287605294825500 2493.0&lt;br /&gt;26.294988564779500 2492.3&lt;br /&gt;26.353144603506500 2486.8&lt;br /&gt;26.417946547345500 2480.7&lt;br /&gt;26.447798539085500 2477.9&lt;br /&gt;26.480927751737500 2474.8&lt;br /&gt;26.549586776859500 2468.4&lt;br /&gt;26.561423418311500 2467.3&lt;br /&gt;42.533099688473500 1540.8&lt;br /&gt;42.602223233439500 1538.3&lt;br /&gt;42.643805309734500 1536.8&lt;br /&gt;42.780207585351500 1531.9&lt;br /&gt;42.850137308748500 1529.4&lt;br /&gt;42.970952724411500 1525.1&lt;br /&gt;43.004790340573500 1523.9&lt;br /&gt;46.330858960763500 1414.5&lt;br /&gt;46.380042462845000 1413.0&lt;br /&gt;46.485317066250500 1409.8&lt;br /&gt;46.495211067754500 1409.5&lt;br /&gt;46.657411362665500 1404.6&lt;br /&gt;46.690652607580500 1403.6&lt;br /&gt;46.720610251657500 1402.7&lt;br /&gt;47.035814253929500 1393.3&lt;br /&gt;47.137308494569500 1390.3&lt;br /&gt;47.242647058823500 1387.2&lt;br /&gt;47.300613496932500 1385.5&lt;br /&gt;57.618252154035500 1137.4&lt;br /&gt;57.750264363764500 1134.8&lt;br /&gt;58.062372641091500 1128.7&lt;br /&gt;&lt;br /&gt;78.929302661688500 830.3&lt;br /&gt;79.072152509652500 828.8&lt;br /&gt;79.253839642036500 826.9&lt;br /&gt;79.292196007259500 826.5&lt;br /&gt;79.426736153193500 825.1&lt;br /&gt;79.571393880524500 823.6&lt;br /&gt;79.648760330578500 822.8&lt;br /&gt;79.794228661877500 821.3&lt;br /&gt;79.823386114494500 821.0&lt;br /&gt;80.018315018315000 819.0&lt;br /&gt;80.194566813509500 817.2&lt;br /&gt;80.273150416462500 816.4&lt;br /&gt;80.430780559646500 814.8&lt;br /&gt;80.450527866437500 814.6&lt;br /&gt;80.549410029498500 813.6&lt;br /&gt;80.658461538461500 812.5&lt;br /&gt;80.967383246849500 809.4&lt;br /&gt;81.067540821375500 808.4&lt;br /&gt;81.137798687631500 807.7&lt;br /&gt;99.870466321243500 656.2&lt;br /&gt;100.390625000000000 652.8&lt;br /&gt;104.073368270605000 629.7&lt;br /&gt;104.272076372315000 628.5&lt;br /&gt;105.074555074555000 623.7&lt;br /&gt;105.923711006950000 618.7&lt;br /&gt;106.250000000000000 616.8&lt;br /&gt;107.030867221950000 612.3&lt;br /&gt;109.480454393585000 598.6&lt;br /&gt;123.047315058205000 532.6&lt;br /&gt;126.588757967935000 517.7&lt;br /&gt;138.230331153765000 474.1&lt;br /&gt;139.140127388535000 471.0&lt;br /&gt;142.250922509225000 460.7&lt;br /&gt;142.995854243945000 458.3&lt;br /&gt;143.089519650655000 458.0&lt;br /&gt;148.135171790235000 442.4&lt;br /&gt;153.298245614035000 427.5&lt;br /&gt;153.874148861235000 425.9&lt;br /&gt;154.308923946315000 424.7&lt;br /&gt; &lt;br /&gt;157.120594581635000 417.1&lt;br /&gt;158.144305019305000 414.4&lt;br /&gt;160.546300832925000 408.2&lt;br /&gt;160.901055732875000 407.3&lt;br /&gt;162.496900570295000 403.3&lt;br /&gt;164.826458752515000 397.6&lt;br /&gt;171.692428608855000 381.7&lt;br /&gt;177.169505271695000 369.9&lt;br /&gt;198.771610555050000 329.7&lt;br /&gt;200.596877869605000 326.7&lt;br /&gt;200.781250000000000 326.4&lt;br /&gt;207.520582647245000 315.8&lt;br /&gt;208.179796696315000 314.8&lt;br /&gt;&lt;br /&gt;269.802387813915000 242.9&lt;br /&gt;287.812911725955000 227.7&lt;br /&gt;298.157415832575000 219.8&lt;br /&gt;305.382106244175000 214.6&lt;br /&gt;312.220104811815000 209.9&lt;br /&gt;312.816229116945000 209.5&lt;br /&gt;315.223665223665000 207.9&lt;br /&gt;315.679190751445000 207.6&lt;br /&gt;317.053701015965000 206.7&lt;br /&gt;318.131067961165000 206.0&lt;br /&gt;321.092601665850000 204.1&lt;br /&gt;331.654858299595000 197.6&lt;br /&gt;334.532924961715000 195.9&lt;br /&gt;337.287699433865000 194.3&lt;br /&gt;342.219321148825000 191.5&lt;br /&gt;345.648734177215000 189.6&lt;br /&gt;351.771336553945000 186.3&lt;br /&gt;381.017441860465000 172.0&lt;br /&gt;&lt;br /&gt;695.700636942675000 94.2&lt;br /&gt;706.196120689655000 92.8&lt;br /&gt;715.447598253275000 91.6&lt;br /&gt;720.164835164835000 91.0&lt;br /&gt;726.552106430155000 90.2&lt;br /&gt;753.275862068965000 87.0&lt;br /&gt;766.491228070175000 85.5&lt;br /&gt;772.818396226415000 84.8&lt;br /&gt;773.730814639905000 84.7&lt;br /&gt;782.974910394265000 83.7&lt;br /&gt;788.628158844765000 83.1&lt;br /&gt;798.233861144945000 82.1&lt;br /&gt;800.183150183150000 81.9&lt;br /&gt;803.125000000000000 81.6&lt;br /&gt;850.000000000000000 77.1&lt;br /&gt;915.293296089385000 71.6&lt;br /&gt;947.037572254335000 69.2&lt;br /&gt;951.161103047895000 68.9&lt;br /&gt;992.954545454545000 66.0&lt;br /&gt;1391.401273885350000 47.1&lt;br /&gt;1430.895196506550000 45.8&lt;br /&gt;1606.250000000000000 40.8&lt;br /&gt;2332.206405693950000 28.1&lt;br /&gt;2400.549450549450000 27.3&lt;br /&gt;2436.245353159850000 26.9&lt;br /&gt;3181.310679611650000 20.6&lt;br /&gt;3212.500000000000000 20.4&lt;br /&gt;3810.174418604650000 17.2&lt;br /&gt;4174.203821656050000 15.7&lt;br /&gt;5601.282051282050000 11.7&lt;br /&gt;6425.000000000000000 10.2&lt;br /&gt;7201.648351648350000 9.1&lt;br /&gt;9929.545454545450000 6.6&lt;br /&gt;12850.000000000000000 5.1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-7384365072976176153?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/7384365072976176153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=7384365072976176153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7384365072976176153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7384365072976176153'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/09/i-found-12000-recurrence-of-excel-2007.html' title='I found 12000  recurrence of excel 2007 multiplication bug'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1733492244150196588</id><published>2007-09-28T02:35:00.000+05:30</published><updated>2007-09-28T02:46:29.273+05:30</updated><title type='text'>Excel 2007 bug</title><content type='html'>The now (in)famous excel 2007 multiplication &lt;a href="http://blogs.msdn.com/excel/archive/2007/09/25/calculation-issue-update.aspx"&gt;bug&lt;/a&gt; is quiet interesting. First people thought it is a floating point bug but it seems it may not be the case. I did some analysis and found that the bug  can be reproduced like this. Take two numbers who when multiplied give 65535(2^16-1). Suppose one of them is A and the other one is B such that A*B=65535. Now if A is a number such that A*10 is an integer and (B*10^N is and integer and B*10^N is of the form 5M (divisible by 5) (where M and N are interger) then this bug can be reproduced.&lt;br /&gt;For instance 10.2(A) * 6425(B)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1733492244150196588?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1733492244150196588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1733492244150196588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1733492244150196588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1733492244150196588'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/09/excel-2007-bug.html' title='Excel 2007 bug'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5005056795660335923</id><published>2007-09-10T17:31:00.000+05:30</published><updated>2007-09-16T06:28:18.049+05:30</updated><title type='text'>Choose the right tool</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;Everyday on Slashdot and elsewhere one comes across comments like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PhP&lt;/span&gt; sucks, Ruby is slow, Rails doesn't scale, Perl is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;obfuscated&lt;/span&gt;, Java is slow etc. Most of these comments are posted by newbies(I being one of them) who don't have much idea about the "right tool" for a particular usage. So how do we choose the right tool ?&lt;br /&gt;Well being an engineer I can tell you that this decision is should be based on optimal combinations of these factors(not in order of priority):&lt;br /&gt;1. Load expected on the system&lt;br /&gt;2. Amount of development time available&lt;br /&gt;3. Quality of development resources available&lt;br /&gt;4. Importance of the software being produced(critical/non critical)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;5. Complexity&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Expected load on the system: &lt;/span&gt;&lt;span style="font-family:arial;"&gt;I think this one factor should play a major role in deciding the kind of tools to be used. If the expected no. of users on the system is in the order of 2000 requests/day, we can safely say that load is not much. However we must also keep in mind what is the distribution of this load. If there is a spike in the load at any given time of day/week/month/year which reaches, say , 200 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;req&lt;/span&gt;/sec for ten seconds and there is no load after that throughout the day, then the system must be capable of handling such loads. Therefore expected maximum load/sec multiplied by some safety factor (say 2) should be our design goal. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We must also consciously avoid premature optimization. Building a Google like system when we have a user base of 2000 is stupidity to say the least.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Amount of development time &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;available&lt;/span&gt;(deadline): &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Some times it may be necessary to churn out some cool feature or application in short amount of time because it is sought after by the users. We cannot ignore that demand and sketch out an elaborate and mammoth design which would take months. It would be a better idea to code using some sort of "rapid prototyping tool" to gauge the user perception and then if it becomes popular then recode it into some other high performance language or "harden" the existing app by a code review. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Some amount of  time should be kept aside  for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;murphy&lt;/span&gt; 's sake &lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;Quality of development resources available: &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;This is one thing which should directly affect the tool being used. If we have a "super geek" team we can probably use any tool on earth. But sadly this is not the case most of the time and hence it is better to choose something which has a short learning curve and clear &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;demarcations&lt;/span&gt; are available in the design to distribute it &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;efficiently&lt;/span&gt; over a large non-high-quality team.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;Importance of the software being produced&lt;/span&gt;&lt;/span&gt;:&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Well if we need an application which is not very critical or say some downtime would not hurt anything on the production side, then using a tool which makes life easy is a good idea. Also spending development time of a better quality resource is not that good an idea.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Complexity: &lt;/span&gt;Choice of tool should also depend on the complexity of the software that needs to be built. We cannot expect to build a complex application which say needs neural networks, backward chaining and symbolic calculations in php! Lisp would be a btter idea.&lt;br /&gt;&lt;br /&gt; In my view before even we start designing a system we should create a list of the goals along with reasonable expected figures of key statistics. this would not only help us design the system better but also allow to take important desicions like no. of developers needs, technology to be used, amount of time expected for completion etc.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5005056795660335923?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5005056795660335923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5005056795660335923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5005056795660335923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5005056795660335923'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/09/choosing-right-tool.html' title='Choose the right tool'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-7197448237678986393</id><published>2007-09-10T02:22:00.000+05:30</published><updated>2007-09-10T02:45:32.416+05:30</updated><title type='text'>Gotchas!</title><content type='html'>Oracle:&lt;br /&gt;If you have worked only with MySQL till now and planning to shift you apps in production on Oracle then you may run into a few very nasty gotchas.&lt;br /&gt;&lt;br /&gt;1. "30 character" limit: I had a long (19 characters) table name (required due to rails convention) and some pretty long column names (due to legacy schema thingy). I wrote the find methods and bang! An error which said Oracle doesn't support identifiers longer than 30 characters! Whoa!!! I still don't understand what could be the logic behind a 30 character limit!&lt;br /&gt;&lt;br /&gt;2. Oracle doesn't have a 'limit' keyword. Yes you read it correctly ! You cannot say something like this "select * from &lt; table &gt; limit 10, 100"! Oracle doesn't support this at all. You would need sub selects and stuff&lt;br /&gt;&lt;br /&gt;3. Some of the table names which are allowed in mysql are not in Oracle like "date"...if I am not mistaken&lt;br /&gt;&lt;br /&gt;Rails:&lt;br /&gt;If you serialize a column and try to read the column if no data is there it returns a rather nasty error which says "ActiveRecord::SerializationTypeMismatch:"&lt;br /&gt;http://dev.rubyonrails.org/changeset/6880&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-7197448237678986393?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/7197448237678986393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=7197448237678986393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7197448237678986393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7197448237678986393'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/09/gotchas.html' title='Gotchas!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4863611985817122759</id><published>2007-08-26T04:09:00.000+05:30</published><updated>2007-08-26T04:17:12.674+05:30</updated><title type='text'>A new nigeria ???</title><content type='html'>I received this  spam today morning which indicates that Nigeria's domination over scam mails may soon be threatened!!! ...On a second thought what if this mail actually originated from Nigeria :)&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;U.S ARMY PERSONNEL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1st Armored Division (IRAQ)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tikitit Regitment Base.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dear Friend,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;With a very desperate need for assistance, I have summed up&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;courage to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Contact you. My name is SGT Michael Albert, I am an American&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;soldier,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;serving in the military of the 1st Armored Division in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Iraq,and i&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;actually found your contact particulars in a business&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;journal.I am&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;seeking your Experience and assistance to evacuate the sum of&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;($28.2Million United Sates Dollars to USA) or any other safe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;country&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;and there are no risks involved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Right now Iraq is a war zone We have being attacked by&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;insurgents&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;everyday and car bombs and I have survived two suicide bomb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;attacks by&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;the grace of God.We managed to move funds belonging to Saddam&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Hussein's&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;family. We want to move this money to you, so that you may&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;invest it&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;for us and keep our share for banking. I do not know for how&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;long we&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;will remain here.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;One passionate appeal I will make to you is not to discuss&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;this matter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;with any third party,as any leakage of this information will&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;be too bad&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;for me.It may be difficult for us to communicate on phone for&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;security&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;reasons,my job is to find a good partner that we can trust and&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;assist&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;us. Can I trust you? When you receive this Fund, kindly send&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;me an e-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mail signifying your interest we shall also discuss about&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;percentage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;when it is convenient to do so.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I will guide you with more information. But only when I&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ascertained&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;your seriousness and totality to commit your time in seeing to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;success of this business.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I wait for your urgent and good response.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Respectfully,&lt;/span&gt;&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","\u003cdiv style\u003d\"direction:ltr\"\&gt;\u003cspan class\u003dsg\&gt;\u003cbr /\&gt;Sgt.Michael Albert\u003cbr /\&gt;\u003cbr /\&gt;\u003c/span\&gt;\u003c/div\&gt;",0] ); D(["ce"]);  //--&gt;&lt;/script&gt;&lt;span style="font-style: italic;" class="sg"&gt;&lt;br /&gt;Sgt.Michael Albert&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4863611985817122759?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4863611985817122759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4863611985817122759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4863611985817122759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4863611985817122759'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/08/new-nigeria.html' title='A new nigeria ???'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3508764085554571895</id><published>2007-07-23T14:50:00.000+05:30</published><updated>2007-07-23T15:01:34.077+05:30</updated><title type='text'>Wanna make your Rails app faster?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://scott.elitists.net/img/sessions.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://scott.elitists.net/img/sessions.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;(courtesy: http://scott.elitists.net/sessions.html)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Get rid of sessions!&lt;br /&gt;Yes you can get rid of sessions for apps that run too slow for your comfort. Ofcourse flash errors won't show up and other stuff that uses sessions. But definitely there are other ways to do flash errors and logins and other "session" stuff in a sessions disabled environment.&lt;br /&gt;&lt;br /&gt;So go on and say&lt;br /&gt;&lt;span style="font-style: italic;"&gt;session :disabled =&gt; 'true' &lt;/span&gt;&lt;span&gt;&lt;br /&gt;in you&lt;/span&gt;&lt;span&gt;r application controller and feel the difference&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3508764085554571895?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3508764085554571895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3508764085554571895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3508764085554571895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3508764085554571895'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/07/wanna-make-your-rails-app-faster.html' title='Wanna make your Rails app faster?'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1070636405651101632</id><published>2007-07-13T13:39:00.000+05:30</published><updated>2007-07-13T16:25:30.213+05:30</updated><title type='text'>Finch</title><content type='html'>Chat in console with finch...It's very fast and eats very less memory, supports all the major protocols but the best part is that your boss won't be able to catch you :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OCxqbayITF0/RpdZ5Hmez_I/AAAAAAAAACg/a3NPOhY5mWw/s1600-h/Screenshot2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OCxqbayITF0/RpdZ5Hmez_I/AAAAAAAAACg/a3NPOhY5mWw/s400/Screenshot2.jpg" alt="" id="BLOGGER_PHOTO_ID_5086633141966131186" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1070636405651101632?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1070636405651101632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1070636405651101632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1070636405651101632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1070636405651101632'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/07/finch.html' title='Finch'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OCxqbayITF0/RpdZ5Hmez_I/AAAAAAAAACg/a3NPOhY5mWw/s72-c/Screenshot2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1330053088111733328</id><published>2007-07-12T21:41:00.000+05:30</published><updated>2007-09-16T06:53:42.759+05:30</updated><title type='text'>Writing a custom mongrel handler</title><content type='html'>Wrote my first custom mongrel handler and it is ugly. I have not used ERB, eruby or erubis yet to generate HTML.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Benchmark results for mongrel handler&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;Transactions:                   5000 hits&lt;br /&gt;*Elapsed time:                  54.55 secs&lt;br /&gt;*Data transferred:               2.90 MB&lt;br /&gt;*Response time:                  0.45 secs&lt;br /&gt;Transaction rate:              91.66 trans/sec&lt;br /&gt;*Throughput:                     0.05 MB/sec&lt;br /&gt;*Longest transaction:            1.63&lt;br /&gt;*Shortest transaction:           0.00&lt;br /&gt;&lt;br /&gt;A similar app on rails was made and here are the benchmark figures&lt;br /&gt;&lt;br /&gt;Transactions:                   5000 hits&lt;br /&gt;*Elapsed time:                 195.34 secs&lt;br /&gt;*Data transferred:               3.39 MB&lt;br /&gt;*Response time:                  3.29 secs&lt;br /&gt;**Transaction rate:              25.60 trans/sec&lt;br /&gt;*Throughput:                     0.02 MB/sec&lt;br /&gt;*Longest transaction:            7.63&lt;br /&gt;*Shortest transaction:           0.01&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;There is almost a 4 fold jump in transaction rate and therefore Mongrel handler can be used to handle pages which have very high hit counts&lt;br /&gt;However using plain vanilla mongrel handlers to write pages is very difficult as it does not automagically 'renders' html pages.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1330053088111733328?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1330053088111733328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1330053088111733328' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1330053088111733328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1330053088111733328'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/07/writing-custom-mongrel-handler.html' title='Writing a custom mongrel handler'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-361876377480756143</id><published>2007-07-09T19:44:00.000+05:30</published><updated>2007-07-09T20:50:50.631+05:30</updated><title type='text'>Ruby</title><content type='html'>After 3 months with Ruby, I think it's a great language. It may not be as fast as C or Perl but it is very developer-friendly. It's 100% object oriented. That means everything is an object and hence everyobject can be manipulated by some very useful set of methods that are provided with the language&lt;br /&gt;So you can say something like this&lt;br /&gt;&lt;span style="font-style: italic;"&gt;12.next  =&gt; 13&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;12.remainder(5)&lt;/span&gt; =&gt; 2&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;It also supports some of the very powerful features of Lisp(Greatest language ever !) like unnamed functions, blocks, iterators etc&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;"A quick brown fox jumped over a lazy dog".downcase!.split(//).sort.uniq.each {|char| print char+" "}&lt;br /&gt;&lt;/span&gt;gives&lt;span style="font-style: italic;"&gt;&lt;br /&gt;a b c d e f g i j k l m n o p q r u v w x y z&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Being 100% OOPs is one of the strongest features of this language&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1.upto(10){|i| puts "9 X #{i} = #{9*i}"}&lt;/span&gt;&lt;br /&gt;will give you table of 9&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 1 = 9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 2 = 18&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 3 = 27&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 4 = 36&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 5 = 45&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 6 = 54&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 7 = 63&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 8 = 72&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 9 = 81&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9 X 10 = 90&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It offers "minimum surprise" to a newbie and the code is very easy to read.&lt;br /&gt;&lt;br /&gt;Though there are some downsides also as it is interpreted &lt;span style="font-style: italic;"&gt;only&lt;/span&gt; language  and can be slow. But come Christmas 2007 a new ruby version is being released which hopes to solve this problem to some extent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-361876377480756143?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/361876377480756143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=361876377480756143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/361876377480756143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/361876377480756143'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/07/ruby.html' title='Ruby'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3692171628491907111</id><published>2007-06-23T21:39:00.000+05:30</published><updated>2007-06-23T21:43:51.847+05:30</updated><title type='text'>Konqueror: A better browser</title><content type='html'>I just ran a css compatibility test on konqueror and firefox and amazingly&lt;br /&gt;konqueror  passed all the tests while firefox flunked many!&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;" id="status"&gt;Firefox: From the 43 selectors 26 have passed, 10 are buggy and 7 are unsupported (Passed 357 out of 578 tests)&lt;/p&gt;   &lt;br /&gt;&lt;span style="font-style: italic;"&gt;Konqueror: From the 43 selectors 43 have passed, 0 are buggy and 0 are unsupported (Passed 578 out of 578 tests)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You can test you own browser at http://www.css3.info/selectors-test/test.html&lt;br /&gt;&lt;br /&gt;Hmm... Now I remember somebody told me a few years ago that Konqueror is a better browser...Okay...point noted&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3692171628491907111?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3692171628491907111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3692171628491907111' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3692171628491907111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3692171628491907111'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/06/konqueror-better-browser.html' title='Konqueror: A better browser'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-6590902508305086307</id><published>2007-06-05T11:11:00.000+05:30</published><updated>2007-08-26T04:22:12.513+05:30</updated><title type='text'>Rails Roko</title><content type='html'>I never follow any cult and nor do I despise any "particular" OS because every other geek in town does. But if I had to follow one, I would have joined a "rails-roko" cult :P.  People argue that rails is in the same stage as Php was 9 years ago. Fine! I agree that things take time to stabilize but then you should not publicize it as the next big thing after bread!&lt;br /&gt;Rails, the idea, is great. Web programming is mostly CRUD and having a framework that makes it all so easy should be encouraged. But then encouraging and supporting it one thing and marketing it as if it is enterprise ready is quite another.&lt;br /&gt;Rails  has a number of show stoppers like mongrels wake up issue, performance issue, freedom issues!.&lt;br /&gt;I have tried to deploy a third party rails application in a production environment with "minor changes". These minor changes turned out to be monstrous. Switching to a only-cookie-based-system (to make the system scalable) turned out to be a nightmare. Now flash notices and errors don't work as they use sessions and I have completely disabled them. Running a mongrel cluster behind a apache frontend is also a big nightmare. Mongrels die (or go into deep sleep) overnight and wake up after a long time (~10 mins) after a page is requested. Per mongrel transaction count is also low.&lt;br /&gt;It is very easy to do stuff in rails which result in a huge number of database queries like a 'forum.topic.post.last.created_at' in the view against each forum makes life miserable for the rails app as it first hits a method_missing in ruby interpreter and then rails tries to generate a function out of it after looking at all class declarations! and that is slow like anything. I switched it off and found that requests/sec count went up from 6-7 req/sec to  a  mind boggling  70-100 req/sec!&lt;br /&gt;So all the marketing gimmicks are not going to work unless the stuff &lt;span style="font-weight: bold;"&gt;actually&lt;/span&gt; works!&lt;br /&gt;More rails cribbing later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-6590902508305086307?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/6590902508305086307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=6590902508305086307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6590902508305086307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/6590902508305086307'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/06/rails-roko.html' title='Rails Roko'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4836936212823708214</id><published>2007-05-24T16:17:00.000+05:30</published><updated>2007-05-24T17:15:31.244+05:30</updated><title type='text'>A few thoughts about Ruby on Rails</title><content type='html'>1. Starting is fun and easy. A few configurations, sqls and commands and "almost" everything you need is done.&lt;br /&gt;2. First road block comes when you create views which query multiple tables in one go.&lt;br /&gt;3. Life becomes easy again when you have to modify designs and templates. Page templates resides in different folder so html headache is minimum&lt;br /&gt;4. You really have to bang your head in the wall if you try to integrate your app in a portal with an already-present-cookie-based login system!&lt;br /&gt;5. Never ever try to do #4  with  a thrid party app.&lt;br /&gt;6. Rails somehow seems very immature with the way DHH changes stuff. Apps created in rails 1.1 doesn't work with rails 1.2. Even ruby versions and "optional" gems create problem and to add to the misery these errors are either cryptic or so insanely-damn-fucking stupid that you won't ever realize that it's a version clash. (A "wrong number of argument "... error surfaced because I had a older RedCloth gem and it was a discovery almost by accident when I out of sheer frustration uninstalled everything and installed everything again)&lt;br /&gt;7. Rails has weird gotcha and it stems from the fact that it is cryptic. An innocent looking column name in a table would give you so much pain that you feel like banging your head against your monitor. Don't do that becuase first it can be dangerous and second it's not your fault. Check out these links&lt;br /&gt;http://wiki.rubyonrails.org/rails/pages/Gotcha&lt;br /&gt;http://blogs.thewehners.net/josh/view/178&lt;br /&gt;8. Performance of a "default" app sucks big time. A lot of tweaking is necessary to make it fast enough to be barely usable.&lt;br /&gt;More on rails bitching later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4836936212823708214?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4836936212823708214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4836936212823708214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4836936212823708214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4836936212823708214'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/05/few-thoughts-about-ruby-on-rails.html' title='A few thoughts about Ruby on Rails'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-5671417529980317847</id><published>2007-05-03T15:42:00.000+05:30</published><updated>2007-05-03T16:16:55.953+05:30</updated><title type='text'>Business Idea #1</title><content type='html'>Okie here goes my first one:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. General Knowledge on the move&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Wikipedia is a free source of knowledge but this knowledge base is restricted to web. What if there be a tool which summarizes those articles (possibly divding it into multiple pieces and shorten it) and makes it available over mobile phones. For instance you want to look up "Lake saimaa" (It is the largest lake in finland and is very beautiful), it picks up the relevant article from wiki and sends back the user a sumamry.&lt;br /&gt;&lt;br /&gt;In this case since the article size itself is small (character count 1025) so summarizing it (making it 320 character long) won't be a big issue as such. Some of the popular "sms" shortcut transforms can be used. But what if somebody searches for say "India". Then the summarizing code has to be more intelligent to take the article and ascertain which are the important parts of this particular article (in this case geography, political system, economics, population, military, culture etc). Then it should return say about 200 character long article on India and list it's population, GDP, Average expectancy of life etc and say "make more relevant search by saying ex. India GDP" etc.&lt;br /&gt;This way people are intrigued to send more smses to search server for more content which would in turn result in more revenue. &lt;br /&gt;Now what if somebody sends a query about some recent happening or some obscure topic which wikipedia has no knowledge about. Then we land in a soup. Wikipedia alone cannot cater to all the knowledge "needs".  We will need more content, news, articles and such.&lt;br /&gt;&lt;br /&gt;Okay then so much for mobile content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-5671417529980317847?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/5671417529980317847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=5671417529980317847' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5671417529980317847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/5671417529980317847'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/05/business-idea-1.html' title='Business Idea #1'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-794948179573413566</id><published>2007-04-14T15:29:00.000+05:30</published><updated>2007-04-14T15:32:25.676+05:30</updated><title type='text'></title><content type='html'>Have switched jobs and joined a travel search company. Work is good here and environment is well energetic. Seems I am gonna love it here. Did I tell ya that they code here in lisp ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-794948179573413566?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/794948179573413566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=794948179573413566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/794948179573413566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/794948179573413566'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/04/have-switched-jobs-and-joined-travel.html' title=''/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3399200378423879419</id><published>2007-03-14T21:54:00.000+05:30</published><updated>2007-03-14T22:13:31.767+05:30</updated><title type='text'>Catching Up</title><content type='html'>A lot has happened in the tech world and in my world. I have kinda drifted away from this blog due to extremely stupid and irritating web filtering at work. One cannot access even blogs!! There is this really irritating filter called websense. It categorizes all the websites into various categories and the admin can blog them...category by category! Shopping, tasteless!, dating and personal &lt;something&gt;, GMAIL, webmail, proxy avoidance, Message boards and clubs, Lifestyle and society! and Sports!! are some of the categories that are banned there. Well not for very long ...I have resigned and will be joining a travel search firm.&lt;br /&gt;It is amazingly stupid that some people think that you can actually make people work in a organization by limiting access to the net and setting entry and exit restrictions! Maybe in a mill or something but where you have people working on large projects and most of the work is accomplished by taking a personal interest, a ban on things junta does in leisure time is suicidal. No wonder out of four people in my cubicle 3 have already put in their papers.&lt;br /&gt;&lt;br /&gt;I think the new India and new Indians are a very different from the old India that was there 20-30 years ago. Censoring tactics like china is not going to work in a free country like India. Some may argue that censorship does exists in movies. Well hindi movies anyways don't have a lot of free speech and change the world kind of stuff. Moreover there is no choice. Job scene on the other hand is a very different ball game altogether!&lt;br /&gt;&lt;br /&gt;Tech world in the next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3399200378423879419?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3399200378423879419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3399200378423879419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3399200378423879419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3399200378423879419'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/03/catching-up.html' title='Catching Up'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-2941894297810595378</id><published>2007-01-29T03:04:00.000+05:30</published><updated>2007-01-29T03:42:55.981+05:30</updated><title type='text'>Traffic forecasting</title><content type='html'>Is it possible to forecast traffic ?&lt;br /&gt;Definitely it is!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-2941894297810595378?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/2941894297810595378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=2941894297810595378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2941894297810595378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/2941894297810595378'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/01/traffic-forecasting.html' title='Traffic forecasting'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-3152111653508008697</id><published>2007-01-29T02:58:00.000+05:30</published><updated>2007-01-29T03:03:24.609+05:30</updated><title type='text'>Indian Social Networking -- Part 2</title><content type='html'>Sometimes this whole idea of Indian Social Networking reminds me of 1999. A disaster prone, completely unfeasible idea of selling a service on internet (free substitutes of which are already available). Indian public just won't buy anything online. But then whats the harm in trying (if money is not from your pocket). Maybe they can sell cakes, cards, t-shirts, CDs, DVDs, flowers etc. Then they can also act as job search websites! ..Imagine naukri turning into a social networking website!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-3152111653508008697?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/3152111653508008697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=3152111653508008697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3152111653508008697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/3152111653508008697'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2007/01/indian-social-networking-part-2.html' title='Indian Social Networking -- Part 2'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-7800760969836767214</id><published>2006-12-20T23:31:00.000+05:30</published><updated>2006-12-21T01:01:50.735+05:30</updated><title type='text'>Social Networking in India</title><content type='html'>Orkut, Gazzag, Friendster, Myspace and a score of others! What is so attractive about social networking that we hear almost every week about a new social networking portal?&lt;br /&gt;Well, there are many reasons. It would be repetitive to list all of them here. Though the most fundamental reason I can think of is that these sites are a gold mine for search portals, job portals and all such other portals that makes them so attractive for internet firms and VCs worldwide. People who otherwise fill personal information forms elsewhere with "not so correct" data seem to fill loads of "correct" data at these sites which can be mined to correctly serve targeted ADs.&lt;br /&gt;&lt;br /&gt;Targeted ADs then translate into good revenues for firms who advertise online. This strategy is very cool for US and other nations where e-shopping is a big rage.&lt;br /&gt;But what about India ? Here we do things differently. We hardly buy anything online. E-shopping is not such a huge business here. Why and how can a social networking start up target good and steady revenue in a market such as India. My solution is a little far stretched and may not be true at all. But then it never bad to listen to a new perspective.&lt;br /&gt;&lt;br /&gt;When I see social networking portals such as Yaari and Minglebox coming, I see a clear lack of business idea. How are they going to make money in market where large internet user base doesn't translate directly into revenue. And also what different strategies are needed to tap this market. Make no mistake, user base of such portals is big and used by people who have money to spend. Every tom, dick and harry in my office and elsewhere has got an orkut account. Not  only that these people log on to these portals several times a day.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First look into differences in Indian and US internet scenario. In India, despite a major telecom boom, internet speeds are slow to say the least. Most of the ISPs provide at max a 256K'b'ps connection. That is Kilo bits per second and hence at best can provide 32KBPS of net speed. (Two things this 256Kbps generally tops at around 150 Kbps and MTNL just annoucned a 2 Mbps connections...Things are bad but changing!). So what does this has to do with a social networking portal ? A lot! Bad net speed translates into a slow and heavy social networking portal into a beast which sometimes takes 1-2 mins to load a page....sometimes. This maybe a reason why people in India are still stuck with Orkut when elsewhere Myspace and other such rich social networking portals are becoming popular.&lt;br /&gt;&lt;br /&gt;On the other hand telecom boom has made sure that almost everybody now has got a phone and people spend a lot of time and money on these little gadgets.&lt;br /&gt;&lt;br /&gt;So the million dollar question which still remains unanswered is who does one go about making a Indian social networking portal? Here is what I suggest&lt;br /&gt;1. Make it simple, keep the total loading time on a 128 Kbps connection less than 10 secs...preferably 3-5 secs. Thats a big task. 128-256Kbps would generally be around 80-170 Kbps. Thats 10-20KBps. That means pages should not be larger than 50-100KB (at max 200KBs). You need to let go a lot of images that you put into those menu bars, buttons etc. A text only page with 8-12 , 5-7 KB highly compressed images seems to fit the bill. Keep that CSS file as small and custom made as possible.&lt;br /&gt;&lt;br /&gt;2. Server side need to be very quick. Java is a complete no -no. Php would invite wrath of hackers(though it would be fast) and would be difficult to maintain (coding wise). RoR is good and fast too...with less security issues and a carefully tweaked Apache server with a fast database (I am careful not to mention which one) would be good. Lisp is also a solution. Static pages is not a bad idea it seems(if security aspects are taken care off). What I mean is that user profile pages and home pages need to be a static html file. No database connection (or very less of it). Would definitely be faster that database driven dynamic pages.&lt;br /&gt;&lt;br /&gt;3. Ajax is the key. A lot of users in India like Gmail. Just because it's swift and prompt.  A lot of ajax coding would also make dynamic pages a lot faster than they usually are.&lt;br /&gt;&lt;br /&gt;4. Link with major Indian ISPs in such a way that there are server which serves the user has a internet back bone of that particular ISP. This is rather doubtful starter but whats the harm in trying.&lt;br /&gt;&lt;br /&gt;Business side of it&lt;br /&gt;in the next post&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-7800760969836767214?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/7800760969836767214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=7800760969836767214' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7800760969836767214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/7800760969836767214'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/12/socail-networking-in-india.html' title='Social Networking in India'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-1805281036670005030</id><published>2006-12-03T17:24:00.000+05:30</published><updated>2006-12-03T17:25:06.611+05:30</updated><title type='text'>M$ and Novell</title><content type='html'>Not as bad people are projecting it. Give some credit to M$ for atleast taking a step in forward direction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-1805281036670005030?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/1805281036670005030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=1805281036670005030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1805281036670005030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/1805281036670005030'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/12/m-and-novell.html' title='M$ and Novell'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4007429079935319177</id><published>2006-12-03T17:18:00.000+05:30</published><updated>2006-12-03T17:24:04.360+05:30</updated><title type='text'>Google and Orkut</title><content type='html'>It's nice to see small changes appearing in Orkut but I still think there is a lot of room for improvement in orkut. For instance that Donut thing is really very irritating. Also the way they have integrated gtalk with orkut ...sucks! They could have integrated the Gmail-talk into orkut and that would have been quiet something. But still...atleast a start. Scrap alert feature is quiet good though. But scrapbook page needs to be ajaxified...completely&lt;br /&gt;What about a picasa and orkut linkage ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4007429079935319177?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4007429079935319177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4007429079935319177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4007429079935319177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4007429079935319177'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/12/google-and-orkut.html' title='Google and Orkut'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4270555143788551865</id><published>2006-12-03T03:13:00.000+05:30</published><updated>2006-12-03T17:18:38.119+05:30</updated><title type='text'>On Future of Google</title><content type='html'>Google recently integrated most of their services. Google talk with orkut, google talk with gmail, docs (writely) with spreadsheets, docs and spreadsheets with google pages, Google groups new avatar in gmail format etc. A lot of stuff still needs to be done like photos with gmail and gtalk(maybe even docs). Then there will be search integration with spreadsheets, blogger with gmail (even gtalk with blogger...who knows!). And many more such small-big changes...&lt;br /&gt;But what Google apps or for that matter other web apps lack is a server at the client end. I think we users think it's very unreliable to have a important document stored only at Google servers. I think there is a need for Google to use Google Desktop as a server at the client ends so that user may also work offline. This, in my view, requires a lot of innovations. Saying it easy but actually doing it may not be possible at all...due to concerns of size, memory requirements, reverse engineering concerns etc. But if done, it would be a definitive step towards a web based era of desktop computing and this I think is what google is about to do in near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4270555143788551865?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4270555143788551865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4270555143788551865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4270555143788551865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4270555143788551865'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/12/on-future-of-google.html' title='On Future of Google'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-4106254931952008178</id><published>2006-09-01T11:35:00.000+05:30</published><updated>2006-09-01T13:14:35.398+05:30</updated><title type='text'>Tata indicom in Mumbai - system crashed?</title><content type='html'>For past 10 hours I am not able to call anybody and vice versa! I called up customer care and they told me that there is some technical glitch. Anybody else experiencing similar situation?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-4106254931952008178?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/4106254931952008178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=4106254931952008178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4106254931952008178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/4106254931952008178'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/09/tata-indicom-in-mumbai-system-crashed.html' title='Tata indicom in Mumbai - system crashed?'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-115337921941134470</id><published>2006-07-20T12:02:00.000+05:30</published><updated>2006-07-20T12:36:59.433+05:30</updated><title type='text'>Blockspot</title><content type='html'>Blogspots get blocked and they instantly start blaming the government about it.&lt;br /&gt;I won't do it because&lt;br /&gt;    1. Government issued a letter to ISPs to block *some* blogs and ISPs goof up and block the whole domain name-not fault of the government.&lt;br /&gt;   &lt;br /&gt;    2. Bloggers point that their "freedom of speech" is being crushed by the government- Not exactly. Govt. never tried to block blogpsot on the whole. It was the ISPs. They also say that blocking even a few websites is not good and is "censorism". Well, yes it is censoring and yes it may be violating the spirit of internet. But violating the freedom of speech. Don't think it is the same. One of the websites quoted there was hinduunity, which is a hindu extremist website, spreading hatred, and thus government took a correct step by banning that. But then aren't we disallowing those extremist to express their views? Yes we are! But would you&lt;br /&gt;    allow LeT to run a advertisment campaign on say some private news or tv channel?&lt;br /&gt;    allow al-quida to start a news channel in India to air their 'beheading' acts and give justifications about it ?&lt;br /&gt;    allow a banned hindu extremist organization to run a radio channel which airs programs about how to start riots and how to kill most number of muslims in your locality?&lt;br /&gt;    allow a terrorist organization to give newspaper Ads asking for donation to their cause?&lt;br /&gt;&lt;br /&gt;Nahi na?&lt;br /&gt;    Then why should we allow such sites to exist or remain accessible? They are not much different than radio, tv or newspaper. They are also source of news, data, views, articles and advertisment...form is a little different.&lt;br /&gt;&lt;br /&gt;Anyways, lets explore the technical part of it. Why did all these ISPs goofed up ?&lt;br /&gt;Well banning a *.blogpsot.com is very easy. Just do a DNS lookup of blogspot, get th IP address and put it into "access denied" list. But banning a particular subdomain such as http://abc.blogspot.com is much difficult task. As this subdomain has no seperate IP address.&lt;br /&gt;&lt;br /&gt;So now that ISPs are slowly allowing the domain .blogspot.com to be accessible, can we say that this is all was there to the story ?&lt;br /&gt;&lt;br /&gt;Maybe or maybe not!&lt;br /&gt;For the starters bloggers are still fighting it out on the google groups and blogs&lt;br /&gt;Also there may be a small subtle point we may be missing here. Banning of these blogs may have been a exersize by the security agencies to locate those people who access these blogs. And this maybe the very reason not to make the ban list public. The ISPs may have been asked to route the access requests to these particular blogs/sites to govt. servers which in turn register the IPs  and thus secuirty agencies would have been able mark out locations from where people are accessing it. This may not be a very intelligent idea to get the IP addresses of the culprits but a very practical idea...yes definitely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-115337921941134470?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/115337921941134470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=115337921941134470' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/115337921941134470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/115337921941134470'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/07/blockspot.html' title='Blockspot'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-115319195875642990</id><published>2006-07-18T08:25:00.000+05:30</published><updated>2006-12-03T20:47:06.894+05:30</updated><title type='text'>Blogspot -&gt; blockspot? Not really</title><content type='html'>This is entirely a different take at cureent 'blogger crisis' in India. I think it is just indianized-"american-style-paranoia" and is extremely and utterly stupid move of the Indian blogger community to start a hate war against the government before getting the facts right. It is as if the government will gain anything by blocking these sites! Do not forget that this is the same government who passed RTI act and has enabled so much information into public domian.&lt;br /&gt;&lt;br /&gt;So what exactly happened tonight ?&lt;br /&gt;1. Government agencies find some terrorist activity at various websites.&lt;br /&gt;2. Shoots off a letter to ISPs to block them.&lt;br /&gt;3. --my guess-&gt;Some ISPs (stupid enough) block the domain name instead of that particular blog! and hence blogspot got blocked&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-115319195875642990?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/115319195875642990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=115319195875642990' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/115319195875642990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/115319195875642990'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/07/when-blogspot-to-blockspot-not-really.html' title='Blogspot -&gt; blockspot? Not really'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-114319914140772072</id><published>2006-03-24T16:48:00.000+05:30</published><updated>2006-03-24T16:51:31.443+05:30</updated><title type='text'>Ruby on Rails</title><content type='html'>I have been working with Ruby on Rails for about 15 days now and believe me it rocks. Okay first question is what is Ruby on Rails (ROR from here on) ? Well it's a webframework like java webframwork (struts, xml, jsp, tomcat etc combined). So what is a webframework ? Lets say I have make a web application such as an e-commerce website.  For this work a webserver, database server, a scripting language and HTML are needed. A database structure is created, scripting language is used to embed business logic inside the application (like let only registered users buy stuff etc ) and present the user with an output at his/her browser using HTML which itself is embedded somewhere inside that big mess of scripting language.  As it is obvious from this, scalibilty and maintainence will be two big problems ahead of anyone who will be managing this application. Therefore a novel approach (which is not all that novel) is adopted of seperating view that user gets at his/her browser, business logic and database. It is not all that novel because this approach is followed in almost all the apps programmed in *nix. But somehow down the line M$ with it's "super easy" to use VB, made this line thin (usual MS bashing stuff :P ) or may be web is so closely linked to user output that everybody thought that it's better to tangle all in one. &lt;br /&gt;Anyways, Ruby on Rails as the name suggests is based on Ruby language (invented in Japan and has a very clean syntax). Rails is the actual framework. Rails completely seperates the model (business model) , the view and database. And not only this, you have several scripts that auto generate a lotof codewhich make web programming extremely easy. I have been web programming for a long time now and had I been ROR I'd have definitely finished all that I coded in almost 1/3rd of the time. No seriously! I am not joking it is THAT effective. Though I must forewarn that ROR has rather longer/steeper learning curve and it takes sometime to fully gulp down the scheme of things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-114319914140772072?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/114319914140772072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=114319914140772072' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/114319914140772072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/114319914140772072'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/03/ruby-on-rails.html' title='Ruby on Rails'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-114094456762222158</id><published>2006-02-26T14:15:00.000+05:30</published><updated>2006-03-24T16:49:49.620+05:30</updated><title type='text'>I am back</title><content type='html'>and I hope I'll be blogging regularly. Fourth year though is kinda drag as nothing much to do but then I keep on getting busy doing something or other (like &lt;a href="http://www.techkriti.org"&gt;Techkriti 2006&lt;/a&gt; or &lt;a href="http://students.iitk.ac.in/josh"&gt;Josh 2006&lt;/a&gt;, two festivals which happen to run on a event management system created by your's truely. Ilike writing web applications and as I am getting more aquainted to it, I feel that it may be something I'll be doing more in near future. &lt;br /&gt;Well on the tech front a lot has been happening like Google diversifying like anything. They have even a started a &lt;a href="http://www.google.org/"&gt;Google.org&lt;/a&gt; philanthrophy arm. Aim is to hear people saying Google is god and not only in the virtual world!(well okay I cooked that up :P). Apart from that Google has made a lot of changes in the Gmail interface and it now also acts as a jabber client! and it is agree  that it is innovation at it's best at gmail. On the other hand much touted yahoo beta mail is yet to make a public appearence (though it is available to a few people). &lt;br /&gt;&lt;br /&gt;On the iitk geek front, we have taken a few steps in the forward direction too! We now have a bit torrent file system working to do away with leachers. Hall 2 hallday had a first to celebrate when it streamed that event realtime on the campus lan! and slowly and surely IITK lan is moving towards 1GB speed! That will eb awesome bbut I won't be here (hopefully!) to witness it. Net speed has also increased manifold.&lt;br /&gt;&lt;br /&gt;Techkriti 2006- Techkriti started on a poor note with only 80 people attending the inaguration event and two main events, Endeavour and Eureka were a complete fraud show! (One of the teams told me that they are using a very "powerful" tool called "VB" yes visual basic to the face recognition and when I asked about the algorithm they told me that they were matching pixel by pixel, the two pics!! God bless them!)&lt;br /&gt;Open software was good though and there were good entries in that. But on the whole something is missing. With very low participation compared to last year it can be termed as worst techkriti ever and feel in someway I am responsible for it too :(.&lt;br /&gt;Anyways ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-114094456762222158?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/114094456762222158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=114094456762222158' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/114094456762222158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/114094456762222158'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2006/02/i-am-back.html' title='I am back'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-113149576052165567</id><published>2005-11-09T05:15:00.000+05:30</published><updated>2005-11-11T00:51:04.323+05:30</updated><title type='text'>A lot is happening</title><content type='html'>on the tech n geek front these days...like NBC and CBS are offering tv shows for as little as 99 cents..In my view this is really a good move..in a fast life of today n tomorrow, one should not expect people glued to TV, waiting for the next epsiode to come (some morons like us don't even have access to TV at all!) and therefore selling episodes for peanuts is definitely a good idea. From where I see it, a lot of these new things are being driven primarily by Apple and it's revolutionary iPod. With the brand new video iPod, one can now watch stuff on its tiny screen. Though, for once it may seem like people would not like to watch TV on a small screen and it has been confirmed by various online polls that people don't prefer that. Still I think TV on small screens of PDAs and iPods will soon catch up. &lt;br /&gt;Imagine a day when technologies such as WCDMA catch up and become mainstream there will applications allowing us to video chat through our mobile! and believe me the day is not far even in India.  Infact the way the things are folding out some of these technologies may come to India sooner than west!&lt;br /&gt;Well so much for the future. &lt;br /&gt;&lt;br /&gt;I've come across articles on net reviewing new Yahoo mail and if they are correct Yahoo! can well do a Gmail and it may even be better than what Gmail offers. After all Yahoo is definitely kicking some ass and they are in a revenge mode with Google as their only enemy. &lt;br /&gt;Yahoo has 360 which is simply awesome with blogs, daily journal, photo sharing and orkut like social portal bundled into one. Though I don't plan to shift this blog to 360 anytime soon but it definitely looks compelling and reasons for not doing the same is that I am lazy. But that may not remain true for long. Yahoo, though is not as mature as The God aka Google and keeps doing silly things like vowing to kill Gmail (reported into my last post) and showing Mountain View, California(HQ of Google) as a fish shop! They even have a website up for the fish store!! It's an interesting fight to watch...&lt;br /&gt;&lt;br /&gt;A company called "Blacklight power" headed by a electrical engineer from MIT (who is actually a doctor from Havard) is reporting that it has devised ways to generate more power and heat than available from normal combustion process and thus may produce power which may produce energy that will be 4-5 times cheaper than available from commercial sources. But what really is baffling is that the method that they are using has rendered Quantum Mechanics invalid! What a great news indeed. Apart from generating really cheap power for energy starved countries like India and China , it will also save students from going through the rigours of quantum theory! God bless Dr. Mills!(just kidding). Either this is a prank, fraud or some publicity stunt but whatever it is, is definitely worth following. &lt;br /&gt;&lt;br /&gt;Another unkown company is all set of launch a web based service which will be a mail service, a photo album, (guess) a movie player, music player, a calender service and a excel type thingy. Ajax is really kicking some ass these days. (Ajax is the technology behind new web based services such as gmail, google map and more which allows web application to behave similarly to desktp applications... if you wish to know how advanced this technology is... visit &lt;a href="http://www.meebo.com"&gt;Meebo&lt;/a&gt;)   &lt;br /&gt;&lt;br /&gt;More later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-113149576052165567?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/113149576052165567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=113149576052165567' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/113149576052165567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/113149576052165567'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/11/lot-is-happening.html' title='A lot is happening'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-113134250444013976</id><published>2005-11-07T11:06:00.000+05:30</published><updated>2005-11-07T11:18:24.476+05:30</updated><title type='text'>Okay...mez back</title><content type='html'>After a long silence, PR's blog is buzzing with activity again. For those interested in knowing the reason of this silence...these words may describe it...antaragni zero five, diwali, BTP etc etc. Though I've not been blogging I've been following geek activities regularly. There have been a few interesting changes such as Google desktop 2 moving finally out of beta, yahoo putting up a geek statue a plaque on the same says &lt;span style="font-style:italic;"&gt;(Presented to the Yahoo! Mail Team by the good people of Yahoo! in recognition of tremendous intellectual efforts put forth in order to defeat Gmail.&lt;br /&gt;&lt;br /&gt;    Not since the code breakers in Britain's Bletchley Park deciphered Germany's Enigma code during World War II has so much brainpower been focused on kicking an enemy's ass.&lt;br /&gt;&lt;br /&gt;    The Yahoo! Mail Team's bravery, courage, and cumulative intelligence will not soon be forgotten. )&lt;/span&gt;, Linspire CEO offering for $5m to replace windows OS on all South Korean computers with linspire, Chinese plan to land on moon by 2017, An amazing concept of a coffee with beer! and a lot more...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-113134250444013976?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/113134250444013976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=113134250444013976' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/113134250444013976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/113134250444013976'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/11/okaymez-back.html' title='Okay...mez back'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112874532925164566</id><published>2005-10-08T09:40:00.000+05:30</published><updated>2005-10-09T14:21:56.846+05:30</updated><title type='text'>Okay enough of Tech stuff...Love is in the air</title><content type='html'>One of my closest friend is madly, truely and deeply in love...Well you may ask whats there to blog about ? Given the sex ratio at iit almost half the junta always reamins "madly, deeply and truely" in love and most often the just one girl! &lt;br /&gt;Lets not get out of track...This guy has this crush on this really cool and talented female of my batch. And both of these are good friends of mine and therefore I am having double the fun! &lt;br /&gt;Now the exciting part, I and a few in the gang had a nice little session this morning and we were able to convince this guy that the only chance to win the girl's heart is to acocmpany her during her journey home today! And he has believed all this crap and right now standing in a queque to get a train ticket. &lt;br /&gt;Well I know this is wicked but thats what I(we) are. We convinced him that if Sharukh can do this in "Chalte-Chalte" by catching a last minute flight to athens then this is his chance to do the same by catching this train in the last minute. Must say I am excited about this as this maybe one   those things you may remember all your life as "wah! kya love story thi" or "wah! kya kata tha bande ka:P". Though latter would be more fun and spicy, former is what I really hope should happen. I'll keep you guys updated as things unfold. BTW train is at 10 pm today :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE: &lt;br /&gt;It was a complete filmi story! With a bitchy villan (who told the girl about the whole plan) and last minute drama. ALso I realized at the last minute that the ticket we have is for the wrong train!!! (We knew that she was going by Rajdhani and there were two rajdhanis for the same destination , almost at the same time!). But in end it all turned out to be worth it as the girl "kinda" agreed to the proposal of my friend! Yipee..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112874532925164566?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112874532925164566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112874532925164566' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112874532925164566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112874532925164566'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/10/okay-enough-of-tech-stufflove-is-in.html' title='Okay enough of Tech stuff...Love is in the air'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112861960009387638</id><published>2005-10-06T22:43:00.000+05:30</published><updated>2005-10-06T22:57:02.090+05:30</updated><title type='text'>Firefox 1.5</title><content type='html'>The new &lt;a href="http://www.mozilla.org/projects/firefox/"&gt;firefox&lt;/a&gt; (still in beta) seems a lot cooler and though they have not fixed the memory leak ( I've searched about it and it seems that this bug is not in mozilla engine but rather is contracted to it when we install the flash plugin!!) which has plagued it for long now. It has some cool features such as Faster browsing (this enables faster back and forward navigation), automatic updates etc. But the most notable change is the drag and drop reordering of tab buttons. Happy browsing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112861960009387638?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112861960009387638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112861960009387638' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112861960009387638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112861960009387638'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/10/firefox-15.html' title='Firefox 1.5'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112861853066139834</id><published>2005-10-06T22:38:00.000+05:30</published><updated>2005-10-06T22:42:40.913+05:30</updated><title type='text'>Google and Sun</title><content type='html'>War lines have been drawn and the GOD is hiding somehting form us like always. There is definitely something big brewing in the works at Mountain View, California as Google and Sun have decided to bring a new spreadsheet  and wordprocesser which will be closely linked to internet. It may or may not be something based on AJAX (well for the uninformed ajax is the technology used in gmail which makes it very user friendly and agile). It maybe something based on desktop (similar to google desktop search by Google) which will be based on Java and Openoffice of Sun. Must accept whatever it is, is not very clear at this point of time. One thing though is very clear that it is going to directly confront Microsoft and kick the giant in it's balls!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112861853066139834?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112861853066139834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112861853066139834' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112861853066139834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112861853066139834'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/10/google-and-sun.html' title='Google and Sun'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112843307062426383</id><published>2005-10-04T18:49:00.000+05:30</published><updated>2005-10-04T19:07:50.640+05:30</updated><title type='text'>Things are going to change soon</title><content type='html'>The way we toppofy our assignments may change ...soon! Look out for Google and sun's web based office which will have functionality of a desktop based office system. More on this soon as news trickles in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112843307062426383?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112843307062426383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112843307062426383' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112843307062426383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112843307062426383'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/10/things-are-going-to-change-soon.html' title='Things are going to change soon'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112693909374744147</id><published>2005-09-17T11:30:00.000+05:30</published><updated>2005-09-17T12:21:54.660+05:30</updated><title type='text'>Blog search!</title><content type='html'>So here we have finally an utility to search blogs. Well my first reaction was whats new in that? I mean you can always do a google search like '&lt;span style="font-style:italic;"&gt;search key&lt;/span&gt; site:blogspot.com'. And you may search all the pages (almost all) present on blogsphere. And same may be done with 360 and others. Then I thought maybe they have just done this and added links for the same eveywhere. &lt;br /&gt;But then reading a bit more into the things, I soon understood that what Google is trying to do here is awesome. They are not just searching the pages but doing it in realtime. They are indexing these pages almost instantaneously. One may ask what's big in that ? &lt;br /&gt;Well first for the people who don't know about this, Google indexes all the webpages that have been updated all over the world twice a month (it's called Google dance or something) and it visits all the webservers all over the world and collects all the information. Thats why those webpage contents that have been recently updated are not present on Google. &lt;br /&gt;Now the question arises, what's the need for realtime search of blogsphere ? Well for the starters we may say that blogs are updated much more frequently than webpages and it's better to index them in realtime, so that all the blog content is searchable immideately. &lt;br /&gt;But is there something more to it ?&lt;br /&gt;There maybe! I have for long have this feeling that there is more to blog than just being amusing, informative and personal. Blogs may easily kill journalism as we know it, in this century. Already almost all important geek world information comes from blog. There are blogs by developers, managers, companies which gives much needed insight into the tech world, which is generally ignored by mainstream journalism. Apart from tech blogs there are blogs from all walks of life like cookery, psychology, economics, finance and what not. In my view blogging will change the way we look at news today. Google armed with deep personal insights of a person maybe able to come up with news and information that one actually wants to read. &lt;br /&gt;I know I maybe just reading a hell lot more into it than what it is supposed to mean but still there is a possiblity that we may eventually find out what Google actually is!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112693909374744147?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112693909374744147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112693909374744147' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112693909374744147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112693909374744147'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/blog-search.html' title='Blog search!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112659198743604923</id><published>2005-09-13T11:22:00.000+05:30</published><updated>2005-09-13T11:43:07.443+05:30</updated><title type='text'>Orkut added to Google products</title><content type='html'>And finally Orkut! has been added to Google products and now you don't have to remember seperate login/password for Orkut. For those who didn't know, Orkut was not a Google product yet. It was a part time project of a Google Engineer, Orkut Buyukkokten. Although it used resources of the Google Inc. it was no where mentioned on Google product list(not even as beta). &lt;br /&gt;Now Google has finally adopted it and made it a member of Google account and now one may log onto Google account and automatically log on to Orkut and host of other services such as gmail. So far so good!&lt;br /&gt;&lt;br /&gt;But what more we can read into it ? How this is going to benefit Google ? &lt;br /&gt;I think I ve written this in this blog before about it but not in this much detail. The major advantage of this for Google is that now it knows which Gmail users are friends to which other Gmail users! It suddenly knows a lot more about it's Gmail users, there prefrences, their sexual orientation, their birthday, how they describe themselves, their religon, political view, fashion habits, hometown and what not!!! Just imagine the kind of data they can process now. &lt;br /&gt;&lt;br /&gt;Okay again! so far so good! They know a lot about us...so what ? What is the use of this data for them ? They are not spammers or stalkers or FBI!&lt;br /&gt;&lt;br /&gt;Well the biggest use of this data is going to be in their AdSense technology. If you don't know, Adsense is the technology Google uses to earn money. Infact it's almost the only source of income they have today. This Adsense reads our mails, sniffs our searches and other behaviour and comes up with relevant advertisments on the right side of search window, gmail mails etc. And believe me they are making small businesses go ballistic in America and elsewhere. Small retailers and vendors are the one who are benefitted by this the most. As Adsense shows only evry relevant ads on these links, it is made sure that a large number of users that actually follow that link ARE actually interested in these advertisments(products/services). And Google charges peanuts from these retailers (something like $0.05 -$0.5 per click). There have been cases where retailers or businesses have got 50-100 new customers by spending only $100!. So Orkut is now going to further strenthen that Adsense technology as Google now knows much more about us!&lt;br /&gt;&lt;br /&gt;What else could come out of this integration? &lt;br /&gt;Well for a lot of us Orkut is very effective social tool. It helps us stay in touch and a lot more than that. Google is building it's homepage services which is supposed to have very personalized items like news, mail snippets, weather details, search history etc. I hope this service will now include Orkut also and a lot of things like scrabook etc will be integrated seamlessly into it. &lt;br /&gt;Just wait and watch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112659198743604923?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112659198743604923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112659198743604923' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112659198743604923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112659198743604923'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/orkut-added-to-google-products.html' title='Orkut added to Google products'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112631826694257220</id><published>2005-09-10T07:15:00.000+05:30</published><updated>2005-09-10T07:41:30.900+05:30</updated><title type='text'>F.R.I.E.N.D.S.</title><content type='html'>So no one told you life was going to be this way.&lt;br /&gt;&lt;br /&gt;Your job’s a joke, you’re broke, you’re love life’s DOA.&lt;br /&gt;&lt;br /&gt;It’s like you’re always stuck in second gear,&lt;br /&gt;&lt;br /&gt;Well, it hasn’t been your day, your week, your month, or even your year.&lt;br /&gt;&lt;br /&gt;But, I’ll be there for you, when the rain starts to pour.&lt;br /&gt;I’ll be there for you, like I’ve been there before.&lt;br /&gt;I’ll be there for you, cause you’re there for me too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112631826694257220?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112631826694257220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112631826694257220' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112631826694257220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112631826694257220'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/friends.html' title='F.R.I.E.N.D.S.'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112631645965674001</id><published>2005-09-10T07:09:00.000+05:30</published><updated>2005-09-10T07:13:52.556+05:30</updated><title type='text'>The view from my balcony!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1548/258/1600/Picture%20003.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1548/258/320/Picture%20003.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112631645965674001?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112631645965674001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112631645965674001' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112631645965674001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112631645965674001'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/view-from-my-balcony.html' title='The view from my balcony!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112577270828915156</id><published>2005-09-04T00:08:00.000+05:30</published><updated>2005-09-04T00:08:28.293+05:30</updated><title type='text'>The biggest disasters</title><content type='html'>The biggest disasters in the world: Hiroshima 45, Tschernobil 86, Windows 98!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112577270828915156?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112577270828915156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112577270828915156' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112577270828915156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112577270828915156'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/biggest-disasters.html' title='The biggest disasters'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112575684009595479</id><published>2005-09-03T19:37:00.000+05:30</published><updated>2005-09-03T19:44:00.103+05:30</updated><title type='text'>Microsoft vs Google</title><content type='html'>Google is getting bigger everyday and microsoft is getting more irritated everyday. Ballmer is supposed to have vowed to kill google. The &lt;a href="http://www.smh.com.au/news/technology/microsoft-ceo-im-going-to-fing-kill-google/2005/09/03/1125302772214.html"&gt;story &lt;/a&gt;is inetersting...Ballmer throws a chair when he's an employee conveys him the decision to leave M$ for Google!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112575684009595479?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112575684009595479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112575684009595479' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112575684009595479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112575684009595479'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/09/microsoft-vs-google.html' title='Microsoft vs Google'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112543571081886374</id><published>2005-08-31T02:17:00.001+05:30</published><updated>2011-10-09T14:16:24.052+05:30</updated><title type='text'>Linux vs Windows</title><content type='html'>&lt;span&gt;This has been a question asked and answered many a times and everytime I read such an article I feel that there has been some bias towards one or the other. An example of&lt;/span&gt;&lt;a href="http://www.linux-watch.com/news/NS8124627492.html"&gt;&lt;span&gt; linux bias&lt;/span&gt; &lt;/a&gt;&lt;span&gt; and a &lt;/span&gt;&lt;a href="http://www.microsoft.com/windowsserversystem/facts/topics/security.mspx#EBBAAA"&gt; whole bunch of windows biased articles&lt;/a&gt;&lt;span&gt;. Well I know none of these articles are completely true. I strongly feel that open software is the way our society should go. But then we do live in a piracy heaven where every software is "free" software here and who cares for openess anyways! Then I have this feeling that companies like Microsoft don't push the case of piracy much in countries like India...just to get to more users. &lt;/span&gt;&lt;span&gt;But what if one day Govt. along with Companies like Microsoft try to enforce a strict anti-piracy regime and do get successful in doing so? Is there an alternative to buying software ?&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Well having used linux machines for almost 3 years I may try to summarize what is better? is it windows or linux?&lt;/span&gt; &lt;span&gt;is linux worth it?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The OSs being compared here are Windows XP and Mandrake 10.1&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Lets start with what actually comes first and i.e.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;1) Installation&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Mandrake 10.1 is completely graphics based installation with installation time of something around 30 min on my AMD 2400+ machine when a fair amount of packages are being installed. It asks me a few questions such as language, time zone, keyboard layout, HDD partioning (during which it shows me an image of my HDD and asks me to choose from existing partitions or create a new one). It also asks me a lot of questions about applications I need. Intead of appication names it asks me to classify the broad categories such as whether this is a development computer or a game station or whether do I need multimedia applications. After installing all these it does asks me the network parameters, sound card installtion stuff and monitor resolution things. Then it reboots the computer and when it comes again throws up a blueish screen of KDE and asks some question which I prefer not to answer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: Well as I pop in the CDs it throws up a rather ugly looking console based EULA and HDD partitioning agent. Here it sure confuses me with the details like NTFS and FAT without actually telling me the advantages of the same. But as NTFS is fist on the list I do understand that it is the preferred one. Then it goes all beautiful blue and asks me some stuff about timezone etc. And then it installs itself in less then 20mins(17 to be specific). It then reboots and takes me to a cool looking interface.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;Comparison:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Here I'd like to mention that linux bores me with details of sound driver and monitor specs which windows detects by default and installs. Linux also bores me with the details of applications to be installed (though it has categorized them well can be a bit intimidating for a first timer). But hey then there is a big difference between these two. When linux is installed it comes with a plethora of applications and you'd hardly need any new software after that whereas windows is installed as bare minimum and you'd probably need some more softwares such as office, games, multimedia players (which are abe to play those .avi files) to make it useful.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Interface:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux : People say linux is for geeks and it is not supposed to look great. well certainly not true in my case. This is how my &lt;/span&gt;&lt;a href="http://home.iitk.ac.in/student/piyush/desktop.jpg"&gt; mandrake desktop&lt;/a&gt;&lt;span&gt; looks like. Hmm so that goes out of the window. But there is definitely a catch. That KDE is not inherently this good looking (I never stop bragging about my KDE looks) but you need to work on it a little to make it look good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: It is a stud from birth :) just put a nice wallpaper there and there you go! It has cool looks and is very reposive to the user clicks (menus are snazzy and all) if the system idle process is around 95% +&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison : Windows win here. Linux does lack in terms of look... inherently but can be made to look good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Applications:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Comes preinstalled with all you need&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Image processing: Gimp, Office: open office, a bunch of arcade games, multimedia players like mplayer can play almost anything. And even if you miss something just pop in the CD and install it (there are other options also). Installing apps here is not harder than windows. All you have to do is go to install software option and search for the app you are looking for and there is a very good possiblity that you'll find it there. If not then you ve to find RPM file of the app on net and just click on it. If you are not able to find an RPM too then you are in trouble and you may land up compiling and installing. But possibilty of that is very negligible as I never had to do that.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: There are almost no apps to start with. Just the IE and windows media player. You need to either download or buy a lot of things like office, photoshop, ftp client etc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison: Linux wins here as there is hardly any app that you need and won't find there. If you are from the era when people used to think that installing apps ona linux machine is a pain as you have to satisfy a lot of dependencies the installation procedure throws up then you need to look a Mandarake as it makes a list of dependencies and installs them. All it does is to notify the user all the dependencies it is installing. Linux here has a lot of cost advantage. If you really do go buying all you need in windows it may cost you atleast twice the cost of the computer. Linux offers all that functionality without any cost.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Security:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Install it and run it for years and you won't find any virus or spyware there(atleast I ven't met any) No need for an &lt;/span&gt;&lt;span&gt;&lt;span&gt;antivirus!&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: Install it and use it for 20 mins and bang you'll start meeting a whole baggage of viruses. They will come and do things to your system that you won't ever forget. Blaster is probably will be the first one which will not allow you to drag and drop and before you realize you 'll eb served with a 60 sec death sentence(not for you exactly but the comp) and it 'll go cold before you can do anything. (go to run and type 'shutdown -a' incase you don't know the temp. remedy). Pinfi et al that follow will force you to install a firewall almost as soon as you isntall the system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison: Linux wins hands down&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Games:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Sucks bigtime when it comes to fast games like quake. Though there are apps such as celdega which let you run your favs but better not to.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: Buy/download/steal and fireaway&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison: Windows all the way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Office:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Openoffice is a decent office software and with it going 2.0 there is much less to worry about in this department. Though it is still not near where microsoft office is today but does offer decent functionality and almost comaptible with the .doc format so not much to worry about.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Windows: Having said that must tell you that there is nothing like the original. MSOffice is one hell of software and is truely amazing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison: Windows...but open office beta 2 is also reaching there&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Permformance:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Linux: Aha! with kernel 2.6 series around the multitasking in linux has improved so much that even if I leave my system running for months there is no sluggishness whatsoever.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Windows: Will start sucking in this department big time as it grows old and if viruses are not taken care of it won't probably grow old either :P&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Comparison: Linux is the winner , though windows performance is okay if takne care off.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Well I'll add to this list soon&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112543571081886374?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112543571081886374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112543571081886374' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112543571081886374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112543571081886374'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/08/linux-vs-windows.html' title='Linux vs Windows'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112495368858073814</id><published>2005-08-25T12:38:00.000+05:30</published><updated>2005-08-25T12:43:55.123+05:30</updated><title type='text'>Google talk...rockz</title><content type='html'>At least at my place...because somehow the voice works here! even though we have a pretty strict firewall which won't allow skype or yahoo voice chat to go through...maybe it also likes google! but then I 've used skype and yahoo voice chat too(from outside) and believe me they don't come near to google...there are a lot of reasons for this&lt;br /&gt;1) Google, because it is god, has bestowed upon us the lightest and most effective client on us...which just works! And because this is "beta" there are not even smileys supported yet the way the UI behaves with you, it's almost amazing and firms one's belief that there are still programmers who write code that is *efficient*. well here is an example why Google is repected so much...yesterday I went to city and came back after 3-4 hours and in the meantime I got around 10 new friend requests(talk has become *the* messenger in virtually no time==one day) and had it been a yahoo or MSN it would have had 10 different windows...but GOD is different all it said that you have a lot of friend requests coming ...would you like to view all of them ! not a big deal&lt;br /&gt;if(friend_request&gt;4)&lt;br /&gt;{printf("blah balh blah");&lt;br /&gt;....&lt;br /&gt;}&lt;br /&gt;well something like that...but thats what is innovation, thats what indicates that a skilled UI designer has worked on it for long hours, thinking of each and every possibilities and tweaks and thats what makes Google what it is today. It's UI still remains so simple yet so powerful.&lt;br /&gt;2) You have to use it to realize it that voice quality is *actually* better than what we have in most of the cell phone networks! This suggests the kind of bandwidth that google is offering to this project. I talked to a friend last night for 2 hours and not even once I experienced any lag or disruption.&lt;br /&gt;3) Well the way Google talk is integrated to gmail is amazing. Yet again the UI designer @ google comes into picture. Yahoo despite beng in this business for so long has not realized that it's mail notification service needs a major revamp.&lt;br /&gt;There are other reasons such as use of open source protocol such as jabber which is scalable and open, thus would allow third party clients to be coded without the dirty work of "protocol breaking"...this has already enabled trillion, gaim et al to connect to gaim, although voice support is missing.&lt;br /&gt;What I dislike about google talk is that there is no client for linux and hence I am forced to boot into windows :((&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112495368858073814?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112495368858073814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112495368858073814' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112495368858073814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112495368858073814'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/08/google-talkrockz.html' title='Google talk...rockz'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-112491932972266011</id><published>2005-08-25T02:56:00.000+05:30</published><updated>2005-08-25T03:05:29.726+05:30</updated><title type='text'>After a long time!</title><content type='html'>well won't same that life has changed a lot or the pigs have started flying but definitely a brand new sem has started and before I could blink, yet another mid sem is at crashing distance :P (that's not even a phrase)...But there has been a few changes ...first I ve decided (and seems like I am gonna stick to them) on a lot of things of my life...come whatever may. hmm...what else ...a prof. in the chemical engineering department finaly knows my name and is for all wrong reasons (because I did so much fruad in a lab report that he returned it to me and told me to re-do it :O :P )...and a few days ago while teaching something in the simulation course defined something and told the class that we'll from on call it "piyush's number"(becoz I prompted it and told him the thing)!!! not a bad start, maybe a bit too late...on a second thought, who cares...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-112491932972266011?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/112491932972266011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=112491932972266011' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112491932972266011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/112491932972266011'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/08/after-long-time.html' title='After a long time!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111948075258222166</id><published>2005-06-23T04:16:00.000+05:30</published><updated>2005-06-23T04:25:59.623+05:30</updated><title type='text'>Slashdotted again!</title><content type='html'>hurrah!&lt;br /&gt;My story on an "Indian guy cracking Microsoft Genuine Advantage" was slashdotted today. This is the second occasion I am going to be famous :). Okay next time I won't give my mail ID as the link but my blog address. I am so excited like I was the last time. I had this &lt;a href="http://slashdot.org/article.pl?sid=05/04/20/2311255"&gt;Indian patent&lt;/a&gt; story slashdotted last time and it was a good story even by slashdot standards. And my goofyness was showed there too when I mispelled "regarding" as "regrading":). I can only hope that there are no such terrible luck this time.&lt;br /&gt;dreamy....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111948075258222166?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111948075258222166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111948075258222166' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111948075258222166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111948075258222166'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/slashdotted-again.html' title='Slashdotted again!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111900384349607293</id><published>2005-06-17T15:44:00.000+05:30</published><updated>2005-06-17T15:54:03.500+05:30</updated><title type='text'>Finally....</title><content type='html'>After a long nightI was finally able to teach her atleast something :)&lt;br /&gt;And hope that this lesson would help me in having her whenever I want and as I want.&lt;br /&gt;She's sexy,&lt;br /&gt;She's dynamic,&lt;br /&gt;She's intelligent ,&lt;br /&gt;She's open to new ideas,&lt;br /&gt;She's open to new things,&lt;br /&gt;She learns new things very easily,&lt;br /&gt;She likes me experimenting with her,&lt;br /&gt;I assure her that it was not a one night stand&lt;br /&gt;and that our association will go a long way in the years to come&lt;br /&gt;I am deeply and truly involved with her and hope it continues forever&lt;br /&gt;&lt;br /&gt;I am really in love with her :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wondering who this is ???&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;She's my first  neural network and I was madly coding it to be as dynamic and powerul as it could be ...and boy you bet !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111900384349607293?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111900384349607293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111900384349607293' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111900384349607293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111900384349607293'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/finally.html' title='Finally....'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111869973727107590</id><published>2005-06-14T03:25:00.000+05:30</published><updated>2005-06-14T03:25:37.276+05:30</updated><title type='text'>1st Monsson rain!</title><content type='html'>Yipeee!!! 1st monsoon rains are here ! and in full glory. It has been rainign for last 1 and 1/2 hour and still no signs of abatement:) and best part is that it brings with it a pleasent gale and I love it like anything. Though I don't go out in rain as it seems somewhat childish to me (is it ?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111869973727107590?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111869973727107590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111869973727107590' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111869973727107590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111869973727107590'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/1st-monsson-rain_14.html' title='1st Monsson rain!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111866877438691533</id><published>2005-06-13T18:38:00.000+05:30</published><updated>2005-06-13T18:49:34.390+05:30</updated><title type='text'>For the ones who are getting bored</title><content type='html'>I ve found a few websites that maybe of your interest&lt;br /&gt;like&lt;br /&gt;http://googlesightseeing.com/&lt;br /&gt;and&lt;br /&gt;http://www.macdesignonline.com/aquabutton.html&lt;br /&gt;&lt;br /&gt;First one is a site which uses google maps to take you around america's major destinations and there are also some strange objects that have been sighted ...it's interesting :)&lt;br /&gt;&lt;br /&gt;Second one on the other hand is more geeky and shows how to make a apple type aqua button ..it's worth browsin atleast once ...try it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111866877438691533?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111866877438691533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111866877438691533' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111866877438691533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111866877438691533'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/for-ones-who-are-getting-bored.html' title='For the ones who are getting bored'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111865705602593826</id><published>2005-06-13T15:19:00.000+05:30</published><updated>2005-06-13T15:34:16.363+05:30</updated><title type='text'>Hyderabadi biryani</title><content type='html'>This city is famous for biryani and to my delight I ve found that it's completely true:)&lt;br /&gt;This city boasts of one the finest chicken dishes available anywhere in the country...I ve had my share already and I am still not tired and hope to taste some more exotic chicken dishes  in the near future.&lt;br /&gt;     My work is almost stalled because after one month of rigourous work I ve lost momentum for last four days now. I am tried and I need a break but it is hard to come by. Apart rom chicken there is nothing rocking here as I am livin at a plce far away from thecity centre and not much happens here. Infact it's even difficult to have chicken everyday but I am trying :). Though we are two guys working on this project but I can safely say that all the work came from only one of us and this frustrates me even more:( ... and today as the scientist under whose guidance we are working is absent I just bolted out from the place in search of some solitude and to gather myself again with a hope that I'll start working like before again. It has not happened as yet but I am trying:).&lt;br /&gt;    Anyways Apple has shocked the geek world and a lot is being read in apple's change over to Intel chips from IBM ones. Is this so big a development ? Is apple going to kill linux with it's tactics? Is OS X already available for x86 pcs? (I read an article confirming the same on the slashdot). And if OS X actually comes to x86 platform the most beneitted would be the consumers because there IS no match for apple GUI! :)&lt;br /&gt;waiting for it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111865705602593826?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111865705602593826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111865705602593826' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111865705602593826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111865705602593826'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/hyderabadi-biryani.html' title='Hyderabadi biryani'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111851516201577057</id><published>2005-06-11T23:58:00.000+05:30</published><updated>2005-06-12T00:09:22.020+05:30</updated><title type='text'>Whats in store from google!</title><content type='html'>I was browsing net as usual and suddenly an idea struck ...what if there be a portal which allows you to log in once and cater all your needs..like email,blog,instant messanging,search,bookmarks,blogs,social portal and much more!...advantage o such a website(read portal) would be that you need not remember anymore passwords...and now I ve a firm belief that this is what we may expect next from google.com. After hiring top web developers from firefox team(you know that, don't you ?), allowing customization of their news portal and  rolling out services like "my yahoo" this seems to be natural next that we may expect from this company. A customized fireox browser which once asks password in the begining and after that everything is just a click away(literally)..click on the blog link and blog instantly...another pulldown menu has your bookmarks stored no matter in which part of the world you are(actually I am missing my bookmarks like anything!)...mail alerts and scraps alerts from gmail and orkut(which is still not officially on google's product list)...weather alerts, location specific searches and what not ...&lt;br /&gt;so even if they are not planning such a thing they should :P(my G-drive capabilities are on a high these days and I was ging to be more elaborate but got bored ...maybe next time)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111851516201577057?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111851516201577057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111851516201577057' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111851516201577057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111851516201577057'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/whats-in-store-from-google.html' title='Whats in store from google!'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7400408.post-111787883688362401</id><published>2005-06-03T15:57:00.003+05:30</published><updated>2010-11-09T14:01:02.767+05:30</updated><title type='text'>My heart goes out to all kashmiris</title><content type='html'>After living for 1 month with a Kashmiri friend, I can safely say that kashmir for them is very different from what other Indians think about kashmir. For us it's not more than a mere tourist place ... for them it's their home ...&lt;br /&gt;If this peace talk and process reach the so called "solution" of kashmir movement I am very sure it'll be best for all the parties involved in it ...though I am still skeptical as how this solution will be reached if both the countries still don't know what the solution is ?...will india allow a greater autonomy for kashmir ? will people of kashmir be content with the autonomy given &gt;? will there be peace for a long time to come ? is soft border at all a solution ?&lt;br /&gt;OR&lt;br /&gt;will the loc be disolved and kashmir granted a status of an independent nation ? will it be able to sustain it's independence ?&lt;br /&gt;will the armies of both sides allow any peace ? will the intelligence agiences allow the peace process to go unabated ?&lt;br /&gt;Whatever be the future I really pray for kashmiris for they get what they have sacrificed so much for and the people of both sides get for which they have lost so many worthy sons for....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7400408-111787883688362401?l=pranjan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pranjan.blogspot.com/feeds/111787883688362401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7400408&amp;postID=111787883688362401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111787883688362401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7400408/posts/default/111787883688362401'/><link rel='alternate' type='text/html' href='http://pranjan.blogspot.com/2005/06/my-goes-out-to-all-kashmiris.html' title='My heart goes out to all kashmiris'/><author><name>Piyush</name><uri>http://www.blogger.com/profile/03025228683278274034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
