<?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-24959527</id><updated>2012-02-16T13:56:07.207+05:30</updated><category term='Personal'/><category term='Technical'/><category term='.Net'/><title type='text'>new AllTopics {"me", ".Net", "Microsoft", "google", null}</title><subtitle type='html'>The answer to life, everything and the universe - 64.233.189.104

For everything else that doesnt matter, read on</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24959527.post-7146253576085419415</id><published>2006-11-08T16:15:00.000+05:30</published><updated>2006-11-08T16:23:48.084+05:30</updated><title type='text'>i like like</title><content type='html'>Turn around for a moment and the world changes around you.&lt;br /&gt;&lt;br /&gt;the brilliant guys from &lt;a href="www.riya.com"&gt;Riya &lt;/a&gt;have just release like.com. Its a visual search engine. Completely mindblowing. Searching for "&lt;a href="http://www.like.com/search?btnSearch=all&amp;searchText=blue%20suede%20shoes"&gt;blues suede shoes&lt;/a&gt;" pops up the following&lt;br /&gt;&lt;div id="thumbView1" class="prod-space"&gt;&lt;div class="img-shadow-thumb"&gt;&lt;div class="imgThumb160"&gt;&lt;div class="outer"&gt;&lt;div class="middle"&gt;&lt;div class="inner"&gt;&lt;div class="actionHintTrigger" id="actionHintTrigger1"&gt;&lt;div class="actionHintInner"&gt;&lt;a id="likeImageLink1" href="http://www.like.com/like?btnSearch=all&amp;amp;searchText=blue%20suede%20shoes&amp;id=a793257d341c4b7bad2c1629f4806472df181c8c-8f98111629ce3f90" onclick="return breadcrumb($F('tripletFor1'),$F('widthFor1'),$F('heightFor1'));"&gt;&lt;img class="thumbImg" id="thumbImg1" src="http://www.like.com/fileServer?p=a793257d341c4b7bad2c1629f4806472df181c8c.jpg_thumbnail-8f98111629ce3f90" border="0" height="102" width="136" /&gt;&lt;/a&gt;&lt;/div&gt;                         &lt;/div&gt;                       &lt;/div&gt;                     &lt;/div&gt;                   &lt;/div&gt;                 &lt;/div&gt;                 &lt;div class="ItemName"&gt;                   &lt;div class="likeIcon"&gt;&lt;a id="likeLink1" class="likeLink" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=a793257d341c4b7bad2c1629f4806472df181c8c-8f98111629ce3f90" onclick="return breadcrumb($F('tripletFor1'),$F('widthFor1'),$F('heightFor1'));"&gt;&lt;img src="http://www.like.com/pictures/likeness.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;                   &lt;div&gt;                     &lt;div id="title1" class="itemTitleContent normalFont" title="Lacoste - roxbury nubuck (pool) - women's" style="height: 30px;"&gt;Lacoste - roxbury nubuck (p...&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="thumbView2" class="prod-space"&gt;&lt;div class="img-shadow-thumb"&gt;&lt;div class="imgThumb160"&gt;&lt;div class="outer"&gt;&lt;div class="middle"&gt;&lt;div class="inner"&gt;&lt;div class="actionHintTrigger" id="actionHintTrigger2"&gt;&lt;div class="actionHintInner"&gt;&lt;a id="likeImageLink2" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=20fd95b54fe25e3f098cd3370256a32224393be4-395b7a454831278c" onclick="return breadcrumb($F('tripletFor2'),$F('widthFor2'),$F('heightFor2'));"&gt;&lt;img class="thumbImg" id="thumbImg2" src="http://www.like.com/fileServer?p=20fd95b54fe25e3f098cd3370256a32224393be4.jpg_thumbnail-395b7a454831278c" border="0" height="160" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;                         &lt;/div&gt;                       &lt;/div&gt;                     &lt;/div&gt;                   &lt;/div&gt;                 &lt;/div&gt;                 &lt;div class="ItemName"&gt;                   &lt;div class="likeIcon"&gt;&lt;a id="likeLink2" class="likeLink" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=20fd95b54fe25e3f098cd3370256a32224393be4-395b7a454831278c" onclick="return breadcrumb($F('tripletFor2'),$F('widthFor2'),$F('heightFor2'));"&gt;&lt;img src="http://www.like.com/pictures/likeness.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;                   &lt;div&gt;                     &lt;div id="title2" class="itemTitleContent normalFont" title="Puma women's roma nubuck" style="height: 30px;"&gt;Puma women's roma nubuck&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="thumbView3" class="prod-space"&gt;&lt;div class="img-shadow-thumb"&gt;&lt;div class="imgThumb160"&gt;&lt;div class="outer"&gt;&lt;div class="middle"&gt;&lt;div class="inner"&gt;&lt;div class="actionHintTrigger" id="actionHintTrigger3"&gt;&lt;div class="actionHintInner"&gt;&lt;a id="likeImageLink3" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=48b3210a88fbc248c301c38f35043f0859f32a56-8805edb009f0f985" onclick="return breadcrumb($F('tripletFor3'),$F('widthFor3'),$F('heightFor3'));"&gt;&lt;img class="thumbImg" id="thumbImg3" src="http://www.like.com/fileServer?p=48b3210a88fbc248c301c38f35043f0859f32a56.jpg_thumbnail-8805edb009f0f985" border="0" height="86" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;                         &lt;/div&gt;                       &lt;/div&gt;                     &lt;/div&gt;                   &lt;/div&gt;                 &lt;/div&gt;                 &lt;div class="ItemName"&gt;                   &lt;div class="likeIcon"&gt;&lt;a id="likeLink3" class="likeLink" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=48b3210a88fbc248c301c38f35043f0859f32a56-8805edb009f0f985" onclick="return breadcrumb($F('tripletFor3'),$F('widthFor3'),$F('heightFor3'));"&gt;&lt;img src="http://www.like.com/pictures/likeness.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;                   &lt;div&gt;                     &lt;div id="title3" class="itemTitleContent normalFont" title="Red wing rowan (women's) - sky blue nubuck" style="height: 30px;"&gt;Red wing rowan (women's) - ...&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="imgThumb160"&gt;&lt;div class="outer"&gt;&lt;div class="middle"&gt;&lt;div class="inner"&gt;&lt;div class="actionHintTrigger" id="actionHintTrigger4"&gt;&lt;div class="actionHintInner"&gt;&lt;a id="likeImageLink4" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=ca55d2321b38618d443be3d9ab367378052d787d-395b7a454831278c" onclick="return breadcrumb($F('tripletFor4'),$F('widthFor4'),$F('heightFor4'));"&gt;&lt;img class="thumbImg" id="thumbImg4" src="http://www.like.com/fileServer?p=ca55d2321b38618d443be3d9ab367378052d787d.jpg_thumbnail-395b7a454831278c" border="0" height="160" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;                         &lt;/div&gt;                       &lt;/div&gt;                     &lt;/div&gt;                   &lt;/div&gt;                 &lt;/div&gt;                                    &lt;div class="likeIcon"&gt;&lt;a id="likeLink4" class="likeLink" href="http://www.like.com/like?btnSearch=all&amp;searchText=blue%20suede%20shoes&amp;amp;id=ca55d2321b38618d443be3d9ab367378052d787d-395b7a454831278c" onclick="return breadcrumb($F('tripletFor4'),$F('widthFor4'),$F('heightFor4'));"&gt;&lt;img src="http://www.like.com/pictures/likeness.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;                                        &lt;div id="title4" class="itemTitleContent normalFont" title="Puma women's roma nubuck" style="height: 30px;"&gt;Puma women's roma nubuck&lt;/div&gt;&lt;br /&gt;And no .. this isnt anything like google's image search. Cause the same search got me&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding-top: 0px;" id="tDataImage0" align="center" nowrap="nowrap" valign="bottom" width="20%"&gt;&lt;a href="http://images.google.co.in/imgres?imgurl=http://www.quotenet.nl/2004/03/19/blue-suede-shoes.jpg&amp;imgrefurl=http://www.quotenet.nl/2004/03/19/115313.php&amp;amp;h=150&amp;w=150&amp;amp;sz=8&amp;hl=en&amp;amp;sig2=P_yQBqlFXCR6YhhOy6elKA&amp;start=1&amp;amp;tbnid=kZ7tn-zkF-uEDM:&amp;tbnh=96&amp;amp;tbnw=96&amp;ei=8rRRRdZFyuYkssK4jwk&amp;amp;prev=/images%3Fq%3Dblue%2Bsuede%2Bshoes%26svnum%3D10%26hl%3Den%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN"&gt;&lt;img style="border: 1px solid ;" src="http://images.google.co.in/images?q=tbn:kZ7tn-zkF-uEDM:http://www.quotenet.nl/2004/03/19/blue-suede-shoes.jpg" height="96" width="96" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="padding-top: 0px;" id="tDataImage1" align="center" nowrap="nowrap" valign="bottom" width="20%"&gt;&lt;a href="http://images.google.co.in/imgres?imgurl=http://www.shraderbootmaker.com/RWos8bluesuedeshoepair.jpg&amp;imgrefurl=http://www.shraderbootmaker.com/Custom%2520shoe%2520information.htm&amp;amp;h=752&amp;w=650&amp;amp;sz=59&amp;hl=en&amp;amp;sig2=qQUrqmqVK46w4gFF55MNxg&amp;start=2&amp;amp;tbnid=zyiWRkBDtN2u8M:&amp;tbnh=141&amp;amp;tbnw=122&amp;ei=8rRRRdZFyuYkssK4jwk&amp;amp;prev=/images%3Fq%3Dblue%2Bsuede%2Bshoes%26svnum%3D10%26hl%3Den%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN"&gt;&lt;img style="border: 1px solid ;" src="http://images.google.co.in/images?q=tbn:zyiWRkBDtN2u8M:http://www.shraderbootmaker.com/RWos8bluesuedeshoepair.jpg" height="141" width="122" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="padding-top: 0px;" id="tDataImage2" align="center" nowrap="nowrap" valign="bottom" width="20%"&gt;&lt;a href="http://images.google.co.in/imgres?imgurl=http://www.emblibrary.com/EL/product_images/L1262.jpg&amp;imgrefurl=http://www.emblibrary.com/EL/new.aspx%3Fdate%3D082102&amp;amp;h=422&amp;w=459&amp;amp;sz=49&amp;hl=en&amp;amp;sig2=mf8eEoKZPGt35AtxddZxdA&amp;start=3&amp;amp;tbnid=lMxUm109OvCkmM:&amp;tbnh=118&amp;amp;tbnw=128&amp;ei=8rRRRdZFyuYkssK4jwk&amp;amp;prev=/images%3Fq%3Dblue%2Bsuede%2Bshoes%26svnum%3D10%26hl%3Den%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN"&gt;&lt;img style="border: 1px solid ;" src="http://images.google.co.in/images?q=tbn:lMxUm109OvCkmM:http://www.emblibrary.com/EL/product_images/L1262.jpg" height="118" width="128" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="padding-top: 0px;" id="tDataImage3" align="center" nowrap="nowrap" valign="bottom" width="20%"&gt;&lt;a href="http://images.google.co.in/imgres?imgurl=http://im.edirectory.co.uk/products/1784/i/j439.jpg&amp;imgrefurl=http://www.cd.edirectory.co.uk/cd_megastore/pages/moreinfoa.asp%3Fpe%3DBEHHBGIQ_%2Belvis%2Bpresley%2Bgood%2Brockin%2Btonight%26cid%3D1668&amp;amp;h=200&amp;w=200&amp;amp;sz=13&amp;hl=en&amp;amp;sig2=G1SZ6CVBg7_f17X-_w-x4g&amp;start=4&amp;amp;tbnid=rPa9E5q55SRteM:&amp;tbnh=104&amp;amp;tbnw=104&amp;ei=8rRRRdZFyuYkssK4jwk&amp;amp;prev=/images%3Fq%3Dblue%2Bsuede%2Bshoes%26svnum%3D10%26hl%3Den%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN"&gt;&lt;img style="border: 1px solid ;" src="http://images.google.co.in/images?q=tbn:rPa9E5q55SRteM:http://im.edirectory.co.uk/products/1784/i/j439.jpg" height="104" width="104" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="padding-top: 0px;" id="tDataImage4" align="center" nowrap="nowrap" valign="bottom" width="20%"&gt;&lt;a href="http://images.google.co.in/imgres?imgurl=http://www.artistdirect.com/Images/Sources/AMGCOVERS/music/cover200/dre200/e267/e26740lvo5g.jpg&amp;imgrefurl=http://www.artistdirect.com/nad/store/artist/album/0,,1044612,00.html&amp;amp;h=200&amp;w=200&amp;amp;sz=17&amp;hl=en&amp;amp;sig2=aYb-KPWHZ8totOt-MFT7ow&amp;start=5&amp;amp;tbnid=rrrBpFTW4n3atM:&amp;tbnh=104&amp;amp;tbnw=104&amp;ei=8rRRRdZFyuYkssK4jwk&amp;amp;prev=/images%3Fq%3Dblue%2Bsuede%2Bshoes%26svnum%3D10%26hl%3Den%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN"&gt;&lt;img style="border: 1px solid ;" src="http://images.google.co.in/images?q=tbn:rrrBpFTW4n3atM:http://www.artistdirect.com/Images/Sources/AMGCOVERS/music/cover200/dre200/e267/e26740lvo5g.jpg" height="104" width="104" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td id="tDataText0" align="center" valign="top" width="20%"&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;&lt;b&gt;blue&lt;/b&gt;-&lt;b&gt;suede&lt;/b&gt;-&lt;b&gt;shoes&lt;/b&gt;.jpg&lt;br /&gt;150 x 150 pixels - 8k - jpg&lt;br /&gt;&lt;span style="color:#008000;"&gt;www.quotenet.nl&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td id="tDataText1" align="center" valign="top" width="20%"&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;... singing about in &lt;b&gt;Blue Suede Shoes&lt;/b&gt;&lt;br /&gt;650 x 752 pixels - 59k - jpg&lt;br /&gt;&lt;span style="color:#008000;"&gt;www.shraderbootmaker.com&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td id="tDataText2" align="center" valign="top" width="20%"&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;&lt;b&gt;Blue Suede Shoes&lt;/b&gt;&lt;br /&gt;459 x 422 pixels - 49k - jpg&lt;br /&gt;&lt;span style="color:#008000;"&gt;www.emblibrary.com&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td id="tDataText3" align="center" valign="top" width="20%"&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;... &lt;b&gt;Blue Suede Shoes&lt;/b&gt;; Hound Dog;  ...&lt;br /&gt;200 x 200 pixels - 13k - jpg&lt;br /&gt;&lt;span style="color:#008000;"&gt;www.cd.edirectory.co.uk&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td id="tDataText4" align="center" valign="top" width="20%"&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;&lt;b&gt;Blue Suede Shoes&lt;/b&gt;: Elvis Songs for  ...&lt;br /&gt;200 x 200 pixels - 17k - jpg&lt;br /&gt;&lt;span style="color:#008000;"&gt;www.artistdirect.com&lt;/span&gt;&lt;/span&gt;&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/24959527-7146253576085419415?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/7146253576085419415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=7146253576085419415' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/7146253576085419415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/7146253576085419415'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/11/i-like-like.html' title='i like like'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-5024166048426557321</id><published>2006-11-07T01:33:00.000+05:30</published><updated>2006-11-07T01:40:55.605+05:30</updated><title type='text'>find of the week ..</title><content type='html'>the hilarious &lt;a href="http://www.hbo.com/billmaher/"&gt;Bill Maher&lt;/a&gt;&lt;a href="http://www.hbo.com/billmaher/"&gt; &lt;/a&gt;and his &lt;a href="http://www.hbo.com/billmaher/new_rules/"&gt;new rules&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;a preview -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;New Rule:&lt;/span&gt; President Bush has to stop saying that, "before 9/11, we thought oceans could protect us." No, we didn't. Maybe in your world, the oceans were like America's moat—and you were king, and Condie was a Nubian princess. But in our world, we knew that our enemies, evil though they may be, had figured out boats and flying machines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Rule, and this one is for the kids: &lt;/span&gt;Kids, if you're going to bring cocaine to class, make sure you bring enough for everyone. This week, a second-grader in Philadelphia brought 18 bags of cocaine to school and passed it around. Boy, there's a switch. Going in the sandbox and getting "crack in your sand." Then at recess, one kid tried to fly a kite, but he'd done so much blow, he couldn't get it up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Rule:&lt;/span&gt; Hey, wild girls, when you're taking your shirt off, you don't have to stick your tongue out to prove you're fun! You're taking your shirt off. That's all the fun we need.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Rule:&lt;/span&gt; When President Bush meets an autistic teenager, they must wear name tags so we can tell them apart.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Rule: &lt;/span&gt;Bluetooth headset users have to do something that lets me know you're just on the phone and not a dangerous schizophrenic. Right? We don't know if you're talking to your secretary or the evil leprechaun who lives in your head. You're not the chief communications officer of the Starship Enterprise. You're a shoe salesman asking your mom if you can bring over your laundry. If I wanted to overhear every tedious scrap of brain static rattling around in your head, I'd read your blog.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;New Rule: &lt;/span&gt;The Olympics must stop putting on opening ceremonies that make me wonder if someone slipped acid into my drink. I tell you, you watch four hours of skaters with flaming torch helmets racing around interpretive dancers dressed in camouflage condoms, all while people in lederhosen play sixty-foot trombones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Rule: &lt;/span&gt;Stop worrying that the government is listening in on your phone conversation. The person you called isn't even listening to your phone conversation. Any American in this day and age who thinks they're not being monitored is so naive and oblivious, I can't believe they're not working already for the Bush Administration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&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/24959527-5024166048426557321?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/5024166048426557321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=5024166048426557321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/5024166048426557321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/5024166048426557321'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/11/find-of-week.html' title='find of the week ..'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-2162979889128479947</id><published>2006-11-05T17:28:00.000+05:30</published><updated>2006-11-05T18:13:25.195+05:30</updated><title type='text'>NO thanks for all the phish</title><content type='html'>got a mail from &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;paypal&lt;/span&gt;.com asking me to update my details. My &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;paranoia&lt;/span&gt; compelled me to examine the mailing address a little more carefully. Aha - it was "&lt;b id="_user_service@paypai.com"&gt;&amp;lt;service@paypai.com&amp;gt;"&lt;/b&gt;&lt;span style="color: rgb(0, 104, 28);"&gt;&lt;service@paypai.com&gt;&lt;/service@paypai.com&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, personally i don't like paying &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;pais&lt;/span&gt;' any money.&lt;br /&gt;&lt;br /&gt;The link they provided was the one shown below (DON'T click on this)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;     &lt;a href="http://www.artcolordigital.com/galeria/ptest/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;https://www.paypal.com/cgi-bin&lt;wbr&gt;/&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;webscr&lt;/span&gt;?&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;cmd&lt;/span&gt;=_&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;login&lt;/span&gt;-run&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For the uninitiated in the art of html programming, and element / text on a page is marked as a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;clickable&lt;/span&gt; link (hyperlink) by surrounding it with the &amp;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;lt&lt;/span&gt;;a&amp;gt; tag. the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;href&lt;/span&gt; property of the tag provides the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;url&lt;/span&gt; (address). What these guys had done was play a subtle trick. The element is a valid &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;paypal&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;url&lt;/span&gt;, but the linking attribute underneath it is a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;phishing&lt;/span&gt; site.&lt;br /&gt;&lt;br /&gt;This is what the html code for it looks like&lt;br /&gt;&lt;pre&gt;&amp;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;lt&lt;/span&gt;;a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;href&lt;/span&gt;="http://www.artcolordigital.com/galeria/ptest/"&amp;gt;https://www.paypal.com/cgi-bin/webscr?cmd=_login-run&amp;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;lt&lt;/span&gt;;&lt;br /&gt;/a&amp;gt; &lt;/pre&gt;&lt;br /&gt;I tried going to the link using &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;FireFox&lt;/span&gt;, but it immediately threw up a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;phishing&lt;/span&gt; attack warning. Impressive!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6695/3046/1600/paypal_phishing.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6695/3046/400/paypal_phishing.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;IE&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;6&lt;/span&gt; though let me through very easily, and this is what came up on my screen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6695/3046/1600/paypai.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6695/3046/400/paypai.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;notice the address bar on the top highlighted in red ? well - &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;thats&lt;/span&gt; not your &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;ie&lt;/span&gt; address bar - its a part of this cleverly crafted page. The actual address bar is hidden by the fake page.&lt;br /&gt;&lt;br /&gt;Well, if the target has been lured this far, he'll probably even sign in ( any &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;user name&lt;/span&gt; password combination works - you are in). Next, credit card details are taken. The final step is the beauty - after clicking on "Save" on the credit card details page, they redirect you to an actual &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;paypal&lt;/span&gt;.com error page. and &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;that's&lt;/span&gt; it. Most people won't even realize that they had been &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;phished&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Among the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;phishing&lt;/span&gt; attacks i have seen, this is one of the better ones. It relies on all the standard magic tricks - redirection, subtlety and speed. Before you even think, you are back to the original &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;paypal&lt;/span&gt; site. the only thing that was missing from the attack was making it work using &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;SSL&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Firefox&lt;/span&gt;2 does a check against known &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;phishing&lt;/span&gt; sites, and so does IE&lt;span style="font-weight: bold;"&gt;7 &lt;/span&gt;. In addition, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_30"&gt;IE&lt;/span&gt;7 also does&lt;br /&gt;&lt;br /&gt;"Address Bar Protection -- To help block malicious sites from emulating trusted sites, every window, regardless of whether it is a pop-up or standard window, will present an Address bar to users."&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;phishers&lt;/span&gt;, back to you.  let me give you a hint - AJAX !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-2162979889128479947?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/2162979889128479947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=2162979889128479947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/2162979889128479947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/2162979889128479947'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/11/no-thanks-for-all-phish.html' title='NO thanks for all the phish'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-672691943473085954</id><published>2006-10-25T18:08:00.000+05:30</published><updated>2006-10-29T22:55:13.853+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>stumbling over the EntLib blocks</title><content type='html'>just when i had thought that 1.1 to 2.0 migration was going to be done within a week, I stumble upon the Enterprise Library application blocks migration from the&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp"&gt; &lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp"&gt;June 2005 (.Net 1.1) &lt;/a&gt;to&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt; January 2006  (2.0)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first approach i took was to replace all the assemblies with their 2006 version ans get rid of any obsolete ones ( e.g Configuration.dll ) - This completely wrecked the build. So now, I'm going to take up the migration assembly by assembly... slooow and careful, just as  recommended&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Microsoft.Practices.EnterpriseLibrary.Common&lt;br /&gt;&lt;/b&gt;replaced the 1.1 version with the 2.0 version, Cleaned solution, Re-built;&lt;br /&gt;&lt;br /&gt;Errors-&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);font-size:85%;" &gt;The name 'ArgumentValidation' does not exist in the current context&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fire up &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz's reflector&lt;/a&gt; and notice that not only ArgumentValidation, but thenamespace it used to reide is gone in this release.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6695/3046/1600/CropperCapture%5B1%5D.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6695/3046/400/CropperCapture%5B1%5D.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fine, i'm not going to do any argumentvalidation. It was a sort of "nice to have" in any case . No complaints. Just commented out the offending statements. Build succeeded.&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Microsoft.Practices.EnterpriseLibrary.Data.dll&lt;/span&gt;&lt;br /&gt;replaced the 1.1 version with the 2.0 version, Cleaned solution, Re-built;&lt;/p&gt;Errors -&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);font-size:85%;" &gt;The type or namespace name 'DBCommandWrapper' could not be found (are you missing a using directive or an assembly reference?&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Ahh, so thats gone too ?&lt;br /&gt;&lt;/p&gt;As per documentation, the replacement for this is System.Data.Common.DbCommand.  And here is the example&lt;br /&gt;&lt;br /&gt;Original Code&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;    Database db = DatabaseFactory.CreateDatabase();&lt;br /&gt; DBCommandWrapper dbCommand = db.GetStoredProcCommandWrapper("GetProductsByCategory");&lt;br /&gt; dbCommand.AddInParameter("CategoryID", DbType.Int32, Category);&lt;br /&gt; DataSet productDataSet = db.ExecuteDataSet(dbCommand);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Modify to&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;    Database db = DatabaseFactory.CreateDatabase();&lt;br /&gt; DbCommand dbCommand = db.GetStoredProcCommand("GetProductsByCategory");&lt;br /&gt;&lt;b&gt;    db.AddInParameter(dbCommand &lt;/b&gt;, "CategoryID", DbType.Int32, Category);&lt;br /&gt; DataSet productDataSet = db.ExecuteDataSet(dbCommand);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Take a close look - yes, you got it - Now to add in parameters you require both Database + DbCommand. So it is not going to be a straightforward replacement.&lt;br /&gt;&lt;br /&gt;The application i'm migrating has literally thousands of calls to DbCommandWrapper.AddInParamater. Worse still these calls are made through another static Helper class, that does some business validations before actually calling AddInParameter on the DbcommandWrapper. And obviously, the Database object is not passed into it.&lt;br /&gt;&lt;br /&gt;A typical signature for the helper function looks like&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;                public static void AddStringInParameter(  DBCommandWrapper cw, string parameterName, string parameterValue)&lt;br /&gt;          {&lt;br /&gt;                  if ( null == cw )&lt;br /&gt;                      return;&lt;br /&gt;&lt;br /&gt;                  cw.AddInParameter( parameterName, DbType.String);&lt;br /&gt;&lt;br /&gt;                  if ( null != parameterValue &amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp; parameterValue.Length&gt;0 &amp;&amp;amp; NotAvailable.sNA != parameterValue)&lt;br /&gt;                      cw.SetParameterValue( parameterName, parameterValue);&lt;br /&gt;          }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So this is a huge problem now. With this static helper class being used liberally all through the application, method parameter modification is not feasible. Manually repairing the code to pass in the Database object into such functions is also not an options just beacuse of the sheer number of times it is used ( &gt;5K calls ).&lt;br /&gt;&lt;br /&gt;At this point i realize that my basic need to Add parameters without needing Database object is essential to a painless migration.&lt;br /&gt;&lt;br /&gt;Luckily, the internal implementation of DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;mmand sti&lt;/span&gt;ll allows the addition of parameters using the Parameters collection and without the need for a Database object. In addt&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ion&amp;nbs&lt;/span&gt;p; DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;mmandWrapper was&lt;/span&gt; very useful in hiding the complexity of  Crea&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;tePararamter and&lt;/span&gt; Parameters.Add()  by exposing the AddI&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;nParameter fun&lt;/span&gt;ction family.&lt;br /&gt;&lt;br /&gt;Now the functionality is exposed on the Database class;  which is puzzling; as it could have been very easily implemented in the DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;mmand cla&lt;/span&gt;ss. Maybe a question for &lt;a href="http://blogs.msdn.com/tomholl/"&gt;Tom&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So anyway, I decided to nick the code for DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;mmandWrapper fro&lt;/span&gt;m the original Entl&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ib (1.&lt;/span&gt;1) code. This would solve 3 problems- 1) obviously it would re-instate the class and make all the references valid again; 2) It would allo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;w me to &lt;/span&gt;add para&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;meters the&lt;/span&gt; way i was used to - without the data&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;base obj&lt;/span&gt;ect. 3) at the same time keep the migration issues internal to the Wrapper class.&lt;br /&gt;&lt;br /&gt;Hopefully, this would work with a few well-aimed hacks. And it did - just beautifully.&lt;br /&gt;&lt;br /&gt;I copied the class code files exactly as they were into my name&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;space. Th&lt;/span&gt;is got rid of the original Dbco&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;mmandWrapper not&lt;/span&gt; found errors. I then applied a few hacks on these Wrappers -&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The original Orac&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;leCommandWrapper (OC&lt;/span&gt;W)&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt; is&lt;/span&gt; a concrete implementation of the (abstract) DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;mmandWrapper (Db&lt;/span&gt;CW&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;) ; &lt;/span&gt;In addition DbCW&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt; has&lt;/span&gt; a private must&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;override mem&lt;/span&gt;ber IDbC&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;ommand, wh&lt;/span&gt;ich OCW &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;ove&lt;/span&gt;r&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;rrides wit&lt;/span&gt;h Orac&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;leCommand . C&lt;/span&gt;hanged IDbC&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;ommandrresponding DbC&lt;/span&gt;o&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;mmand in &lt;/span&gt;System.Data 2.0. &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Created a new constructor that accepted DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;mmand, an&lt;/span&gt;d got rid of the other constructors. This means that the new wrappers now are "Real" wrappers, in the sense that they don't have ability to create the DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;mmand int&lt;/span&gt;ernally. Retaining the code to create the command, would have meant pulling in more source from the EntL&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;ib. I &lt;/span&gt;decided to avoid this.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;so far so good - The Dbco&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;mmandWrapper has&lt;/span&gt; re-incarnated and the AddP&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;aramter fam&lt;/span&gt;ily of references are also now available. The code fit back into the jigsaw again.&lt;br /&gt;&lt;br /&gt;unfortunately, I could not protect all of my code, but at least the further changes could be done by intelligent search and replace operations&lt;br /&gt;&lt;ul&gt;&lt;li&gt;System.Data.Database in the 2.0 versions replaces the EntL&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;ib.Dat&lt;/span&gt;abase and it has no awareness  of a DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;mmandWrapper. So&lt;/span&gt; all the references to Database.Get[&lt;type&gt;]Wrapper functions are no longer valid. These are all Database.Get[&lt;type&gt;]Command functions now. Well, with what i consider a stroke of pre-&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;sci&lt;/span&gt;ence, we had decided to wrap the Database class with a custom Data&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;baseWrapper cla&lt;/span&gt;ss that would hide (almost) all functionality of the Database class. Faca&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;ding pai&lt;/span&gt;d off ! In fact, the code broke exactly where we had been to lazy to facade some workings of the EntL&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;ib - L&lt;/span&gt;esson learnt.&lt;/type&gt;&lt;/type&gt;&lt;/li&gt;&lt;li&gt;All the IDbC&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;onnection, ID&lt;/span&gt;bT&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;ransaction, an&lt;/span&gt;d IDbC&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;ommand ref&lt;/span&gt;erence had to be updated to the new classes from System.Data.Common name&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;space equ&lt;/span&gt;ivalents - DbCo&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;nnection, Db&lt;/span&gt;Tr&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;ansaction, Db&lt;/span&gt;Co&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;mmand.&lt;/span&gt;i&gt;&lt;/li&gt;&lt;li&gt;Database.GetC&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;onnection() h&lt;/span&gt;as been replaced by Database.Crea&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;teConnection() .&lt;/span&gt; Search and replace.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The search and replace operation took about 15 mins&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;.&lt;br /&gt;&lt;/span&gt;&gt;&lt;br /&gt;Ahhh&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt; - n&lt;/span&gt;o compile errors . The code is fitting in snug and tight -no ugly patches required. Life is good again .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;... to be continued. Next migrating the Configuration block&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blinkingmind.blogspot.com/2006/10/bollocking-blocks.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blinkingmind.blogspot.com/2006/10/bollocking-blocks.html" alt="kick it on DotNetKicks.com" 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/24959527-672691943473085954?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/672691943473085954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=672691943473085954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/672691943473085954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/672691943473085954'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/bollocking-blocks.html' title='stumbling over the EntLib blocks'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-1526249556292107073</id><published>2006-10-25T15:47:00.000+05:30</published><updated>2006-10-25T15:52:26.004+05:30</updated><title type='text'>communism is alive ..</title><content type='html'>and its being promoted by the company that wants to do no evil. In fact they are now allowing you to build your own  search engine and make money off it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/coop/"&gt;Google Co-op&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I haven't had the time to play around with it, but the concept is exciting. &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Vik&lt;/span&gt; Singh has an &lt;a href="http://zooie.wordpress.com/2006/10/24/google-co-op-an-intro-some-insider-hacks/trackback/"&gt;in-depth article  &lt;/a&gt;on &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Google's&lt;/span&gt; shining new baby.&lt;br /&gt;&lt;br /&gt;Got any ideas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-1526249556292107073?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/1526249556292107073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=1526249556292107073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/1526249556292107073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/1526249556292107073'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/communism-is-alive.html' title='communism is alive ..'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-3448742821837124322</id><published>2006-10-22T15:39:00.000+05:30</published><updated>2006-10-25T01:55:16.893+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Head Hunt</title><content type='html'>The past week, I've had to to conduct few interviews. We are looking for Senior Software Engineers in .Net domain. The cut-off due to practical limitations is at least 4 years of technical experience with relevant technologies, and we usually want someone having worked hands-on on .Net for a couple of years. Our team is a relatively small team, where we cannot afford to just coders on deck. The candidates would have to be skilled enough to dig into a problem and solve it.&lt;br /&gt;&lt;br /&gt;I was sorely disappointed by the quality of candidates we had to look through - and this is after the resumes were filtered by HR (&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;hmmm&lt;/span&gt; .. another post about this later ). And this is not me alone - discussion with colleagues, made me realize that everyone had the same problem.&lt;br /&gt;&lt;br /&gt;After about 15-20 interviews in my career, I have more or less, settled down on a technique, which i believe helps me filter out the the anti-workers and get in some deserving people with good technical knowledge.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resume &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Analysis&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;    &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Stability &lt;/span&gt;- Especially in &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Bangalore&lt;/span&gt;, you have an overload of candidates that keep jumping from company to company every year. Not only is this not good for the team in terms of ROI - this also means that most likely the person has never even had the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;opportunity&lt;/span&gt; to get down into &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;development&lt;/span&gt; issues like deployment, maintenance. Rule of thumb - jumping jobs in less than 2 years - no no.&lt;/li&gt; &lt;/ul&gt;     &lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Roles&lt;/span&gt; - Most people in the industry are only too willing to jump on to the management wagon after a few years of technical work. Avoid them - they won't care about technology. The way to spot this is look for key-words like - coordinator, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;on site&lt;/span&gt;, trainer, documentation, manuals, client-interaction, processes, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CMM&lt;/span&gt;; Many of us have performed some of these roles at some point - but i really &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;don't&lt;/span&gt; like emphasizing them on my resume. So use your judgement, and try and figure out what the candidate is trying to emphasize.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt; &lt;/ul&gt;     &lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Graduation Scores / Courses / Certifications &lt;/span&gt;- I completely ignore this section. This does not even matter for freshers. I can attest to this from my modest performance in these areas :D&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;    &lt;ul&gt;    &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Email address&lt;/span&gt;: what self respecting techie would have a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;hotmail&lt;/span&gt; / AOL id ? :D - All right this point is debatable, but &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;definitely&lt;/span&gt; avoid guys who have addresses ending in xxx.com&lt;br /&gt;&lt;/li&gt;  &lt;/ul&gt; The Interview&lt;br /&gt;&lt;br /&gt;Keep it informal. If possible, shift the interview out to more relaxed settings like a coffee shop. I would not want to reject a good candidate just because he had jitters due to your interview style. Remember that your company wants a good candidate almost as desperately as he wants a job. If in Bangalore, even more so.&lt;br /&gt;&lt;br /&gt;I've found that fairest way of conducting a technical interview is to discuss projects listed on the resume. Convert one or more of the projects on the candidate's resume into a case study. That way you cover areas which the candidate is familiar with, and can analyse his / her understanding of their work. It also gives insights into the amount of interest the person has in the work.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Do ask the candidate to explain and justify the high / low level architecture and design of projects worked on. Judge on clarity of understanding and clarity of thought. Grill hard on this, as intellectual curiosity in an employee is an essential requirement.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do get down into the details of any module the candidate has worked extensively on. Ask for details on the why and the how of the module. In addition to proving his understanding, in many cases it also sifts out the misrepresentations of role in a project.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Do describe a problem in the module, and see how the candidate works out a solution for it.&lt;/li&gt;&lt;li&gt;Don't restrict the interview the technologies you are familiar with; Even listening out the candidate's understanding of a completely irrelevant technology offers enough insight into the his thought process and comfort level with all things technical.&lt;/li&gt;   &lt;li&gt;Do try and gauge how well the candidate tries to keep up with current technology trends in his domain. For this, you must also be well aware of whats happening. For example, an impressive candidate I interviewed was right on the mark with the release of AJAX 1.0 Beta, 3 days after the event.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Don't pay any attention to correct mannerisms, dress-style, grammatical mistakes etc. These are peacock feathers more suited to the, well, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;well&lt;/span&gt;-suited corporate bored-room environment. Allow techies the freedom to be as ugly and smelly as they (we) want - &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;That's&lt;/span&gt; why we chose to spend our lives with computers instead of humans.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Above all, getting into details of framework libraries is pointless. With .Net and Java technologies especially so, as these are HUGE. Rather, concentrate on the in-depth understanding of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;namespaces&lt;/span&gt; he has already worked upon and basic concepts. Everything else, all of us google anyway.&lt;/li&gt;   &lt;li&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;Building&lt;/span&gt; upon the previous point, make your questions essay style that allow for you to branch off on interesting topics. Branching off from the questions is great - it makes things more comfortable. For example (ASP.Net) start off the request cycle - branch into session implementations - discuss differences between session /cache - again pick up caching strategies- come back to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;HttpModules&lt;/span&gt; -continue upon ASP.Net Page &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;Life cycle&lt;/span&gt; - dig into &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;viewstate&lt;/span&gt;. Having discussion with context makes the interview well-connected and free flowing. Avoid &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;staccato&lt;/span&gt; Drill-Sergeant type questions.&lt;/li&gt;   &lt;li&gt;Do touch upon tools of the trade - Most of us &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;don't&lt;/span&gt; write out code in notepad. If Visual Studio is the tool, check out familiarity with advanced debugging options. &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;Efficient&lt;/span&gt; coders optimize their output with the tools used on a day to day basis.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;Sneaky Tricks to filter out the Evil Coder Hacks (&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;ECHs&lt;/span&gt;) : You don't want the blind cutter-&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;pasters&lt;/span&gt; around, do you ? &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;Infosys&lt;/span&gt; and &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Wipro&lt;/span&gt; might, but any non-suicidal team would steer away from the multitude of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_26"&gt;brain dead&lt;/span&gt; coders who nevertheless are skilled enough to pass interviews. Here are some tips / tricks to catch these guys out.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Standard Questions&lt;/span&gt;: Google for &lt;your&gt; interview &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_27"&gt;questions&lt;/span&gt; and pick them off from the first page. Most of our Evil Coder Hacks (&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;ECHs&lt;/span&gt;) will have the answers down pat. Add some twisters to these and see how well they fare. For ex: What are the 3 types of Session state options in .Net: Everyone will know - &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;Inproc&lt;/span&gt;, State Server, and &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;SQL&lt;/span&gt; Server. &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_31"&gt;Now add&lt;/span&gt; the twister - What are the serialization requirements for each of these ? &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;ECHs&lt;/span&gt; stopped by the door&lt;/your&gt;&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Telephonic Interviews&lt;/span&gt;: Open up google and a couple of other search engines. Ask a question and &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_33"&gt;simultaneously&lt;/span&gt; search for it- check if the answers from the other end of the line have an uncanny resemblance to whats on your screen !&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Familiar error messages:&lt;/span&gt; Have screen shots of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;some standard&lt;/span&gt; and not-do standard error message with you. Show these and ask the candidate to analyse these and explain the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_35"&gt;situations these&lt;/span&gt; might occur in. Every good programmer has a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_36"&gt;data bank&lt;/span&gt; of error screens in his head, and this is something that only comes with &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_37"&gt;hands&lt;/span&gt;-on &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_38"&gt;experience&lt;/span&gt;. ( Recall the message when you forget to configure your virtual &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_39"&gt;directory&lt;/span&gt; as an application, and its web.&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;config&lt;/span&gt; has Authorization related tags )&lt;/li&gt; &lt;/ul&gt; In summary, Discuss, don't interview. Respect all candidates; Try and recall shabby interviews you attended that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_41"&gt;didn't&lt;/span&gt; give you a chance to show your strengths - Don't do this to others. Interviewing is a skill like any other - think about it; work on it; improve. Don't view it as a invasion into your busy day.&lt;br /&gt;&lt;br /&gt;I hope this helps you keep the bad ones out and get the good ones in. I'll try and keep this post a live one and make additions / modifications as and when i think of them.&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-3448742821837124322?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/3448742821837124322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=3448742821837124322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/3448742821837124322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/3448742821837124322'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/head-hunt.html' title='Head Hunt'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-8218845076809338341</id><published>2006-10-18T23:41:00.000+05:30</published><updated>2006-10-19T00:03:29.822+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>the nokia 5500</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6695/3046/1600/5500.0.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6695/3046/320/5500.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As most of you know, I lost 2 mobiles within the space of a week - Since then, I worked out the theory that I &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;subconsciously&lt;/span&gt; wanted to lose them because there was my true handset lying in wait for me - And &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;surprisingly&lt;/span&gt; enough, the very week I lost these phones, the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Nokia&lt;/span&gt; 5500 was released in India. Hallelujah - Its fate; karma; and its sporty !!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It has all the &lt;a href="http://www.nokia.co.in/nokia/0,8764,94945,00.html"&gt;features &lt;/a&gt;of a N-72, but &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;nokia&lt;/span&gt; spared the ugliness. AND its cheaper by a bit. Here are some reviews&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobile-review.com/review/nokia-5500-en.shtml"&gt;Pope uses &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Nokia&lt;/span&gt; 5500 to solve middle-east crisis&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allaboutsymbian.com/features/item/Nokia_5500_Hands-on_Preview.php"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Nokia&lt;/span&gt; 5500 makes man stallion in bed&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and it goes on. Worth the 15k ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-8218845076809338341?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/8218845076809338341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=8218845076809338341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/8218845076809338341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/8218845076809338341'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/nokia-5500.html' title='the nokia 5500'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-111800459782116637</id><published>2006-10-17T21:08:00.000+05:30</published><updated>2006-10-19T01:40:36.170+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>.Net 2.0 migration - continued</title><content type='html'>and we're off to do some migration.&lt;br /&gt;&lt;br /&gt;Got my first look at VS2005 - nothing radically new. Of course, its been cutified a lot more - nice colorful icons and all that jazz you can expect from MS :-/&lt;br /&gt;&lt;br /&gt;On the down side the "Web Site" model compiles slower than molasses going up a slope. No, seriously - its at least 15 times slower than what the solution used to compile under VS2003.&lt;br /&gt;&lt;br /&gt;I'm getting ahead of my self here. To even get to the compilation stage i had to first run the Conversion wizard. The conversion tool spits out a nice little XML document logging the results which show up in our VS2005 screen once the conversion is completed.&lt;br /&gt;&lt;br /&gt;Going through the conversion log, I didn't find anything unexpected - some files that were not included in the project were shown up as warnings.&lt;br /&gt;&lt;br /&gt;Before you start compiling, I'd suggest you clear out all existing binaries from the bin folder of your projects.&lt;br /&gt;&lt;br /&gt;Compiling the solution straight aways threw up the following errors (some of these were because i had "treat warnings as errors" turned on) -&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;ToString (IFormatProvider) is now obsolete - amazing how FxCop (MS tool) ALWAYS yelled at me for the exact opposite. I can't even count the number of substitutions i made less than a month to make FxCop complaining and now VS2005 complains. Bah!&lt;/li&gt;   &lt;li&gt;ConfigurationSettings is obsolete and to be replaced by ConfigurationManager - simple search and replace operation.&lt;/li&gt;   &lt;li&gt;The type 'xxx.yyy.zzz.Global' is ambiguous - got rid of this one by clearing out the binaries and compiling again.&lt;/li&gt;&lt;li&gt;Few other random obsolete functions classes to replace - nothing too complicated.&lt;/li&gt;  &lt;/ul&gt;It took me about 4 hours to get the solution to compile, primarily because VS2005 was being obnoxiously slow at compilations. Researching the problem threw up some helpful posts from ScottGu - whu else ? &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/09/22/Tip_2F00_Trick_3A00_-Optimizing-ASP.NET-2.0-Web-Project-Build-Performance-with-VS-2005.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/07/30/Common-Gotcha_3A00_-Slow-VS-2005-Web-Site-Build-Performance-Because-of-_1C20_Dueling-Assembly-References_1D20_.aspx"&gt;here again&lt;/a&gt; Scott tries to help people optimize the compilation speed, mostly laying the blame on referencing external binaries ( and possible version conflict ). This explanation doesn't wash - I had none of those issues- barely 5-6 external references without any version conflicts and still the web site build made me shave twice - unacceptable. I really do want to know why is it slower than VS2003.&lt;br /&gt;&lt;br /&gt;Moreover, to frustrate me even further, VS2005 in Web site model, throws out compilation errors in batches. So just when i would manage to get rid of 10, another 10 would show up on recompile - unbelievable. Its almost like they took away functionality with the web site model.&lt;br /&gt;&lt;br /&gt;These guys will describe what a web site model is and what it is good for ( its all lies - the web site model is a abominable regression)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx"&gt;VS 2005 Web Project System: What is it and why did we do it?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apparently some developers wanted it easier - no compilations, no fixed files in project, just copy and paste. So that means we all miss ASP ?&lt;br /&gt;&lt;br /&gt;Anyways - after the conversion, I end up with my perfectly functional web applications ripped apart and all non-code behind files moved some well know directory called App_Code ( remember the ever annoying _vti_ directories- ha ha ). So now my code looked like this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scottgu.com/blogposts/duelingreferences/step3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://www.scottgu.com/blogposts/duelingreferences/step3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I realized that this Web site model was not going to work (at least for us )for the following reasons&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Only Buddha would have enough patience to compile the Web sites. &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;Deployment was going to a major pain. Assemblies are randomly generated to support the web site. I'm sure there is a work around - but why bother ?&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;In an enterprise environment, we want the strictness of explicit inclusion of files. The Web site model, it dawned upon me, is for - well, Web Sites- and not applications. &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;VS2003 structuring of Web Application was perfectly sensible and usable - why change it ?&lt;/li&gt; &lt;/ul&gt;I found caught myself fondly remembering the days of VS2003 - where Web projects were real projects (with actual files to support their existence) and not weak-kneed references to directory or this new-fangled ftp.&lt;br /&gt;&lt;br /&gt;Funnily enough, MS released the &lt;a href="http://webproject.scottgu.com/"&gt;Web application model for VS2005 &lt;/a&gt;sometime after the world screamed in anguish. Now its a part of VS2005 SP 1. Scott Gu's &lt;a href="http://webproject.scottgu.com/"&gt;link &lt;/a&gt;takes care of all you need to know about Web Application projects in VS2005 and how to migrate from Web Site model to Web Application model.&lt;br /&gt;&lt;br /&gt;And the Web application model looks like this&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://webproject.scottgu.com/intro.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://webproject.scottgu.com/intro.png" alt="" border="0" /&gt;&lt;/a&gt;Then i go get the Visual studio &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8D702463-674B-4978-9E22-C989130F6553&amp;amp;displaylang=en"&gt;update&lt;/a&gt; and follow &lt;a href="http://webproject.scottgu.com/CSharp/migration2/migration2.aspx"&gt;steps&lt;/a&gt; . Now instead of App_Code - I have Old_App_Code. Although it all compiles pretty well. I had some issues with Code behind refernces and Web References which did not take too long to sort out.&lt;br /&gt;&lt;br /&gt;The Web application project is much better - and guess what - not only does the solution now compile faster than web site, its faster than VS2003 as well!&lt;br /&gt;&lt;br /&gt;Testing the code had me puzzled for a while. I knew i was doing everything right. My machine was set to using only the .Net 2.0 framework, thanks to the &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=4caff66c-df51-40ab-bd88-090d34e77520"&gt;big red switch&lt;/a&gt;. Yet IIS seemed to be having trouble with the situation. Finally i figured out that you must go to the Asp Net tab in inetmgr and manually update it to use the 2.0 thread (don't worry - it'll be obvious once you get to the tab).&lt;br /&gt;&lt;br /&gt;Everything worked after that. Well I had deployed and got working a solution with 30 projects with 5 of them being web projects in under 3 days. Not bad.&lt;br /&gt;&lt;br /&gt;Special thanks to &lt;a href="http://weblogs.asp.net/scottgu/"&gt;ScottGu&lt;/a&gt;, without whom many of us would still be struggling with migration. He has with relentlessly scoured the web to help out people with migration pains. Cheers Scott!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-111800459782116637?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/111800459782116637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=111800459782116637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/111800459782116637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/111800459782116637'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/net-20-migration-continued.html' title='.Net 2.0 migration - continued'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-116064136101511797</id><published>2006-10-12T13:12:00.000+05:30</published><updated>2006-10-12T15:19:25.708+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>.Net 2.0 migration</title><content type='html'>I'm onto a new project with a very clear goal - migrate .net 1.1 code to .net 2.0. Now this would not be so interesting for small projects. But hear this - while we are emigrating to 2.0, another team will be migrating some components from c++ / COM to .Net 1.1 - that should make things really interesting. Plus throw in the facts that the back-end is Oracle, Apache server is used for reports; 3rd party tools used charts; some of the code dates back to the 90's; AND the team is is distributed across bangalore and US - you will see some really nasty situations and how I (hopefully) get out of them.&lt;br /&gt;&lt;br /&gt;Watch this space.&lt;br /&gt;&lt;br /&gt;Meanwhile here is a compilation of links to getting started on migration.&lt;br /&gt;&lt;br /&gt;As a by-thought, my reflexive Microsoft-hating muscle seems to be shrivelling. Ever since .Net MS have become developer friendly. What has really helped is their collection of talented individuals who have now being given the freedom to frank, nay - even critical , of MS technologies. MSDN of course is MSDN and everything must be taken with a truck of salt, pepper and your favorite spices. The real meat is from the MS techies and their fairly unbiased blogs.&lt;br /&gt;&lt;br /&gt;MSDN links -&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/netfxcompat.asp"&gt;Microsoft .NET Framework 1.1 and 2.0 Compatibility&lt;/a&gt;&lt;br /&gt;handy guide to defining your approach towards migration. The most useful information is the table for application load mechanisms. Also has links to other MSDN resources for migration&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms227549.aspx"&gt;ASP.NET 2.0 Migration Overview &lt;/a&gt;&lt;br /&gt;very brief outline on the why of migration&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms379586.aspx"&gt;Migrating from ASP.NET 1.x to ASP.NET 2.0 &lt;/a&gt;&lt;br /&gt;Code behind concept has changed and this tells you how. Be afraid. Be very very afraid.&lt;br /&gt;Also we no longer have project files - well known directories will do the job ( I smell unix - i do i do). Complement this with Rick Strahl's &lt;a href="http://west-wind.com/weblog/posts/3016.aspx"&gt;Understanding Page Inheritance in ASP.NET 2.0 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa570326.aspx"&gt;Breaking Changes in .NET Framework 2.0&lt;/a&gt;&lt;br /&gt;Just glance through these - I doubt many people will be affected by these. Keep it for reference and impressing interviewers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa497286.aspx"&gt;.NET Framework V2.0 Obsolete API List&lt;/a&gt;&lt;br /&gt;You don't just want to make your solutions compile - right ? Treating "warnings" as "Errors" in your compilation has just made life painful. But don't be lazy and upgrade propahly by getting rid of obsolete function calls&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/sidexsidenet.asp?frame=true"&gt;Side-by-Side Execution of the .NET Framework&lt;/a&gt;&lt;br /&gt;Most enterprise applications will have to go through a phase of side-by-side execution. I suspect its not going to be as straightforward and deterministic as this article suggests. But thats just me being cynical on the outset of ANY project.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa479312.aspx"&gt;Common Web Project Conversion Issues and Solutions&lt;/a&gt;&lt;br /&gt;the title says it all&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp"&gt;Microsoft .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0&lt;/a&gt;&lt;br /&gt;Microsoft's case study using their idea of an ideal application which of course uses only MS products ;)&lt;br /&gt;&lt;br /&gt;One the most trusted sources on .Net, ScottGu, has a bunch of extremely helpful articles. Do take the time to also go through the comments on the articles. Read these in order.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx"&gt;why the VS 2005 Web Project &lt;/a&gt;&lt;br /&gt;Insightful and honest. Pulls no punches in explaining the drawbacks of VS2003. you are not required to agree with everything, but will definitely understand the reasoning behind the changes&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/23/423409.aspx"&gt;Using IIS with VS 2005 and the new Web Project system&lt;/a&gt;&lt;br /&gt;Equally useful as practical information on IIS and .Net as it is on the differences in VS2005&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/26/423730.aspx"&gt;Some techniques for better managing files in VS 2005 Web Projects&lt;/a&gt;&lt;br /&gt;when he says virtual directory - he means virtual directory that is also configured as *application*. I spent a few minutes getting confused (then a comment on the post cleared it up).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx"&gt;Building Re-Usable ASP.NET User Control and Page Libraries with VS 2005&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;don't just take Microsoft's word for it( who does? ) . Check out other people's experiences. Note that &lt;a href="http://weblogs.asp.net/scottgu/"&gt;ScottGu &lt;/a&gt;is all over the place helping out everyone (who matters). He deserved a huge bonus last year.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://west-wind.com/WebLog/posts/3418.aspx"&gt;Ricks Strahl comes up scratch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scrappydog.com/blogs/blog/archive/2006/02/16/9447.aspx"&gt;Eric Bowen has resource problems in VB 2.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/andresv/archive/2005/12/13/433062.aspx"&gt;Andru does things right and removes obsolete calls &lt;/a&gt;( see &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa497286.aspx"&gt;.NET Framework V2.0 Obsolete API List&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a href="http://discuss.develop.com/archives/wa.exe?A2=ind0512a&amp;L=dotnet-web&amp;amp;amp;amp;amp;D=0&amp;T=0&amp;amp;P=8872"&gt;ScottGu bails someone out again&lt;/a&gt; - toolbar control issue&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetnuke.com/Community/BlogsDotNetNuke/tabid/825/EntryID/177/Default.aspx"&gt;DotNetNuke.com has migration pains&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps and happy migrating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-116064136101511797?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/116064136101511797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=116064136101511797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/116064136101511797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/116064136101511797'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/net-20-migration.html' title='.Net 2.0 migration'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-116059694607757499</id><published>2006-10-12T01:14:00.000+05:30</published><updated>2006-10-29T22:57:41.435+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><title type='text'>google boggles again</title><content type='html'>For all you people disappointed with one of the recent adventures of google labs - Google Reader is back with a brand new and brilliantly intuitive interface ! Frankly their first attempt was crap.&lt;br /&gt;&lt;br /&gt;But just take a look at this ! Wow&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3658/785/1600/google_reader.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/3658/785/320/google_reader.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Stand-alone applications are passe.&lt;br /&gt;&lt;br /&gt;I recall people trying to visualize what a Google OS would look like - well I think its going to like like their customized home page.&lt;br /&gt;&lt;br /&gt;These guys seem to have a knack for taking idealistic goals and turning them into reality. Its amazing how much theorizing there has been going on about personal computing vs the workstation-server concept with no appreciable results. Personal computing is a compromise compared to what can be achieved by server applications. Google truly understands this point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-116059694607757499?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/116059694607757499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=116059694607757499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/116059694607757499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/116059694607757499'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/10/google-boggles-again.html' title='google boggles again'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-114447497994657490</id><published>2006-04-08T10:27:00.000+05:30</published><updated>2006-10-25T02:15:59.445+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Activism with a sip of wine</title><content type='html'>This seems to be the order of the day; at least amongst the educated and the literate la-dee-dah. I got this email forwarded yesterday from a friend, that was about putting your name on a list and forwarding it to help child-rape victims in SA. The issue was &lt;a href="http://www.snopes.com/inboxer/petition/babyrape.htm"&gt;valid&lt;/a&gt;, the &lt;a href="http://www.truthorfiction.com/rumors/p/petitions.htm"&gt;means&lt;/a&gt; were useless.&lt;br /&gt;&lt;br /&gt;The only attractive aspect of the online petitions is that they are so very easy - anyone can do it, and it does not cost a thing. But who does it reach ? &lt;a href="http://www.internetworldstats.com/stats.htm"&gt;15.7% &lt;/a&gt;of the world population. And who are these people - most likely the present day bourgeoise population of the world. We cannot be expected to do anything of much consequence. Too many installments to pay ! Thats the truth.&lt;br /&gt;&lt;br /&gt;Hitler had this clear distinction between the people who debated about the cause and people who cared about the cause. Debaters will never affect the outcome of any issue. it must come from the heart.&lt;br /&gt;&lt;br /&gt;- "&lt;span style="font-style: italic;"&gt;I came to know the prophets of the bourgeois philosophy, and I was not surprised at what I learned, as I knew that they attached little importance to the spoken word. At that time I attended meetings of the Democrats, the German Nationalists, the German People's Party and the Bavarian People's Party (the Centre Party of Bavaria). What struck me at once was the homogeneous uniformity of the audiences. Nearly always they were made up exclusively of party members. The speakers did all they could to maintain this tranquil atmosphere. They declaimed, or rather read out, their speeches in the style of an intellectual newspaper article or a learned treatise, avoiding all striking expressions. Here and there a feeble professorial joke would be introduced, whereupon the people sitting at the speaker's table felt themselves obliged to laugh Â not loudly but encouragingly and with well-bred reserve." - &lt;span style="font-weight: bold;"&gt;Hitler, Mein Kampf, Chapter VII&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;I hear these discussions more and more everyday. Cleverly crafted arguments will never sway anyone. Passion and belief will.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&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/24959527-114447497994657490?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/114447497994657490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=114447497994657490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/114447497994657490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/114447497994657490'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/04/activism-with-sip-of-wine-this-seems.html' title='Activism with a sip of wine'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24959527.post-114379406302940032</id><published>2006-03-31T13:39:00.000+05:30</published><updated>2006-10-25T02:16:48.023+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Enter(); Thread.Sleep( manyMonths );</title><content type='html'>I join the virtual world of blogging with grand aspirations - dreams of screaming fans, undies in the air; the smell of adulation; slaughter of the English language - as the world bows to my unique insight&lt;br /&gt;&lt;br /&gt;I bet thats what goes through every bloggers mind when they first start off on their blogs. A shot at fame that fizzles down very quickly as they realize that no one really searches for keywords like "dull'", "everyday" and "boring" .( if you do then check this out- &lt;a href="http://www.burpee.com/"&gt;boring boring&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;With a little inspiration from &lt;a href="http://www.gyanmaster.blogspot.com/"&gt;Aditya, who actually has an interesting blog&lt;/a&gt;, I finally am here to try my fingers at a little word juggling and ego-massaging. What did it take to make my lazy arse get down to this ? Well thats what this is about.&lt;br /&gt;&lt;br /&gt;Steps in order&lt;br /&gt;1. First I had to find the right place to blog. Being a google fan this was easy - NOTHING can be more appropriate than blogger.com, can it?&lt;br /&gt;2. Fill in registration information with all the imaginary activities I would have indulged in, if I had the skills, time or the money. I debated whether yatch racing as a hobby maybe stretching the truth a little too far, as I have not been on a boat for several years- but then I did see an ocean last year.&lt;br /&gt;3. Select an appropriately cryptic and cool sounding title for my blog. I settled on "A side of brains please". It fits in with the new culture of being sarcastic enough to peel the enamel off one's teeth.&lt;br /&gt;4. Took a day off from work. Pesky co-workers have this habit of disturbing me with work, which if not done wouldn't affect the orbit of earth one bit.&lt;br /&gt;5. Bought a new computer desk, so that I am extremely comfortable for the 5 minutes that it takes to spew the junk off from my mind and into the extremely public internet.&lt;br /&gt;6. a little gaseous inspiration (wink wink) to activate that part of my brain that thinks that my reflection upon the shape of smoke rings will solve the middle east crisis.&lt;br /&gt;&lt;br /&gt;for more, watch this space ( or here is a &lt;a href="http://web.mit.edu/debby/www/creed/"&gt;site &lt;/a&gt;where you can watch paint dry )&lt;br /&gt;&lt;br /&gt;cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24959527-114379406302940032?l=blinkingmind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blinkingmind.blogspot.com/feeds/114379406302940032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24959527&amp;postID=114379406302940032' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/114379406302940032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24959527/posts/default/114379406302940032'/><link rel='alternate' type='text/html' href='http://blinkingmind.blogspot.com/2006/03/i-join-virtual-world-of-blogging-with.html' title='Enter(); Thread.Sleep( manyMonths );'/><author><name>abhinav gujjar</name><uri>http://www.blogger.com/profile/12802394119995377024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/hello/236/10353/640/abhinav.jpg'/></author><thr:total>2</thr:total></entry></feed>
