<?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-17214691</id><updated>2012-02-16T05:21:46.023-08:00</updated><category term='cooking'/><category term='linux'/><category term='firefox'/><category term='travel'/><category term='VMware'/><category term='internet explorer'/><category term='books'/><category term='development'/><category term='programming'/><category term='SSRS'/><category term='windows'/><category term='general'/><category term='IIS'/><category term='quiz'/><category term='safari'/><title type='text'>404: Page not found</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>75</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17214691.post-158688134397609342</id><published>2010-09-05T18:08:00.000-07:00</published><updated>2010-09-05T23:16:52.914-07:00</updated><title type='text'>Auto Draft</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-158688134397609342?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/158688134397609342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=158688134397609342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/158688134397609342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/158688134397609342'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/09/auto-draft.html' title='Auto Draft'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1087847611506401687</id><published>2010-09-05T17:19:00.000-07:00</published><updated>2010-09-05T23:16:53.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Caramel Apple Pie</title><content type='html'>We picked our own apples and peaches last weekend from &lt;a href="http://www.pickyourown.com/"&gt;Larriland Farms&lt;/a&gt; (which you should totally visit) if you live near Baltimore. Since we got a lot of apples, we decided to bake an apple pie. Curiously, even though apple pie is an American cultural symbol, it did not originate in the US, and was consumed long before the European colonization of the US (&lt;a href="http://www.foodtimeline.org/foodpies.html#applepie"&gt;ref&lt;/a&gt;). Let us now move on to the recipe:&lt;br/&gt;&lt;br/&gt;Ingredients (serves 6)&lt;br/&gt;For pie crust: (you can completely skip this part if you use store bought pie crusts)&lt;br/&gt;3 cups all purpose flour&lt;br/&gt;3/4 cups unsalted butter, cold and cut into pieces (about 1.5 sticks)&lt;br/&gt;2 egg yolks&lt;br/&gt;3 tbsp ice cold water&lt;br/&gt;pinch of salt&lt;br/&gt;&lt;br/&gt;For caramel:&lt;br/&gt;1 cup sugar&lt;br/&gt;3 tbsp water&lt;br/&gt;1/2 cup red wine&lt;br/&gt;1/4 cup heavy cream (we actually used milk since we did not have heavy cream)&lt;br/&gt;a few drops vanilla essence&lt;br/&gt;&lt;br/&gt;For filling:&lt;br/&gt;5 medium sized apples (we used Gala Apples)&lt;br/&gt;1 tbsp all purpose flour&lt;br/&gt;1 tbsp ground cinnamon&lt;br/&gt;&lt;br/&gt;Procedure:&lt;br/&gt;&lt;br/&gt;We first make the pastry crust. In a large bowl, combine, the flour, salt and the pieces of butter slowly. It is recommended that you use a pastry blender, but since we don't have one, I simply used my hands. Crush any pieces of butter into the flour till they are mixed in fairly well. There will be a lot of clumps at this point. Add the egg yolks and continue to mix. At this point, the dough will start coming together. Add the ice-cold water slowly, taking care not to make the dough too wet. Wrap the dough in plastic and refrigerate for an hour. &lt;br/&gt;Meanwhile, peel and slice the apples thin and store them in a bowl full of water and the juice of one lemon to prevent them from browning.&lt;br/&gt;&lt;img alt="" src="http://lh5.ggpht.com/_8DTdVNRe-EE/TIRhdxC5ACI/AAAAAAAAAiw/12GxuNyW-a4/s640/IMG_3718.JPG" title="dough-and-apples" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Next, we make the caramel sauce. In a pot, add the sugar and water, and keep stirring on medium heat till all the sugar is dissolved. Remove from flame, and add the cream and wine slowly. Return to heat and add the vanilla essence. Continue to cook till the quantity is halved. Keep aside.&lt;br/&gt;&lt;br/&gt;Now we make the pie crust. Remove the dough from the fridge and allow to cool for about 15 minutes till the dough is pliable enough to be rolled. Cut the dough into two separate balls. On a wooden board, roll out the dough balls on a floured wooden board into flat circles large enough to cover your pie pan. Lay one of them flat inside the pie pie pan and press it tight.&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TIRhER1C2rI/AAAAAAAAAho/lLCwFR7m_7c/s640/IMG_3727.JPG" title="pie-bottom-crust" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Strain the apples from the lemon-water and keep aside. In a large bowl, add the flour and cinnamon powder. Add the apples and toss them well till they are coated with the flour-cinnamon mixture. Now place a layer of apple slices on the bottom of the pastry. Shingle the slices so as to reduce any gaps. Pour some of the caramel sauce evenly on the apples. Now place more apples and repeat the process.&lt;br/&gt;&lt;img alt="" src="http://lh3.ggpht.com/_8DTdVNRe-EE/TIRhFj48N0I/AAAAAAAAAhs/s4J5SLDWPXM/s640/IMG_3728.JPG" title="filled-pastry" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Place the second pastry circle on top of the pie to make the top layer of the pie crust. Cut slits on top of the pie so that steam can escape. Now, ideally you should cover the pie with the pastry layers and pinch the sides so that they are sealed. Unfortunately in my case, I had one store bought crust, and I made the other one myself. So the two of them were not the same size. I realized that this is not a very bad thing as my pie still turned out great.&lt;br/&gt;&lt;img alt="" src="http://lh6.ggpht.com/_8DTdVNRe-EE/TIRhGmtnMBI/AAAAAAAAAhw/ITEKZpNoBmY/s640/IMG_3729.JPG" title="covered-pie" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Preheat the oven to 350 degrees F. Place the pie pan into the oven. Cover it lightly with a piece of folded aluminum foil. This is called foil tenting, and is done so that the crust does not cook faster than the apples. Bake on middle rack for 25 minutes. Remove the foil tent and cook for about 30 more minutes till the top crust is cooked and the pie is bubbling. Remove from the oven and allow to cool for at-least 1 hour, else the pie will break apart.&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TIRhL0GMs2I/AAAAAAAAAiI/OI0aHXAwvBk/s640/IMG_3735.JPG" title="cooked-pie" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Serve with whipped cream or vanilla ice-cream.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1087847611506401687?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1087847611506401687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1087847611506401687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1087847611506401687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1087847611506401687'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/09/caramel-apple-pie.html' title='Caramel Apple Pie'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8DTdVNRe-EE/TIRhdxC5ACI/AAAAAAAAAiw/12GxuNyW-a4/s72-c/IMG_3718.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-360298754235085080</id><published>2010-08-30T17:17:00.000-07:00</published><updated>2010-09-05T23:16:53.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Homemade Guacamole and Chips</title><content type='html'>Few snacks are as wholly satisfying as guac and tortilla chips.&lt;br/&gt;&lt;br/&gt;For tortillas:&lt;br/&gt;4 tortillas (pick your favourite)&lt;br/&gt;2-3 tsp cooking oil (your favourite)&lt;br/&gt;&lt;br/&gt;Procedure:&lt;br/&gt;Stack the tortillas and coat one side of each with a little oil. Cut them into sections using a pizza cutter. Lay the pieces on a baking tray and bake them in an oven at 375 degrees for 10 minutes. Flip them over halfway through and check that they are not getting burnt. Repeat if necessary. Healthy tortilla chips.&lt;br/&gt;&lt;img alt="" src="http://lh3.ggpht.com/_8DTdVNRe-EE/THu6S-UUjcI/AAAAAAAAAcU/x7jpReL2rPc/s640/IMG_3561.JPG" title="tortilla cuter" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;For guacamole:&lt;br/&gt;4 avocados, peeled, cored and roughly chopped&lt;br/&gt;1 tomato diced&lt;br/&gt;1 onion finely chopped&lt;br/&gt;juice of one lemon (optional)&lt;br/&gt;1 tsp mexican hot sauce&lt;br/&gt;salt to taste&lt;br/&gt;&lt;br/&gt;Method:&lt;br/&gt;Add all ingredients in a mixing bowl....squoosh to the desired consistency. There you go!&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/THG9aopwysI/AAAAAAAAAac/wmRsdz1o2_I/s640/IMG_3529.JPG" title="guac-and-chips" class="alignleft" width="640" height="480" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-360298754235085080?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/360298754235085080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=360298754235085080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/360298754235085080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/360298754235085080'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/homemade-guacamole-and-chips.html' title='Homemade Guacamole and Chips'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_8DTdVNRe-EE/THu6S-UUjcI/AAAAAAAAAcU/x7jpReL2rPc/s72-c/IMG_3561.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-8944801182604337174</id><published>2010-08-22T12:25:00.000-07:00</published><updated>2010-09-05T23:16:53.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>My new santoku knife</title><content type='html'>I don't even remember the time when I started dreaming about a good kitchen knife. I recently bought a set of four knives with a knife block, but the past several days, I have been drooling over the idea of owning a santoku knife. I checked out a couple of them in the stores and the price range was very broad. I have never used one before, so I wanted to try out a moderately priced one to see if I really like it, before investing in a more expensive one.&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/THG9mc1t7GI/AAAAAAAAAbM/9Fg1SOtfoHk/s640/IMG_3555.JPG" title="chopchop" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;I bought one this evening, and loved using it for the first time. I think one of my favourite parts is how you can scoop up cut veggies into your hand using the knife.&lt;br/&gt;&lt;img alt="" src="http://lh3.ggpht.com/_8DTdVNRe-EE/THG9kNLZbxI/AAAAAAAAAas/KxuKJ-GunHE/s640/IMG_3542.JPG" title="scoop-up" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-8944801182604337174?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/8944801182604337174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=8944801182604337174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8944801182604337174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8944801182604337174'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/my-new-santoku-knife.html' title='My new santoku knife'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8DTdVNRe-EE/THG9mc1t7GI/AAAAAAAAAbM/9Fg1SOtfoHk/s72-c/IMG_3555.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1553415251339000975</id><published>2010-08-19T17:18:00.000-07:00</published><updated>2010-09-05T23:16:53.039-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Tamale Pie</title><content type='html'>This is a real comfort food recipe and a very easy one to make. I tried looking for the provenance of the recipe, but was not really able to find anything concrete. Drop me a line if you know about its origins. This dish is usually cooked with ground beef, but we decided to use ground chicken instead.&lt;br/&gt;&lt;br/&gt;Ingredients:&lt;br/&gt;1 store bought pack of ground chicken&lt;br/&gt;1 &lt;a href="http://startcooking.com/blog/154/Pie-Crust---Ready-Made"&gt;store bought pie crust&lt;/a&gt;&lt;br/&gt;1 cup shredded sharp cheddar cheese&lt;br/&gt;1 large onion&lt;br/&gt;2 tsp freshly ground cumin powder&lt;br/&gt;3/4 cup fresh corn&lt;br/&gt;1 red bell pepper diced&lt;br/&gt;1 cup tomato sauce (puree)&lt;br/&gt;3 cloves garlic, finely chopped&lt;br/&gt;1 tbsp cooking oil&lt;br/&gt;1 tsp hot sauce&lt;br/&gt;salt to taste&lt;br/&gt;&lt;br/&gt;Procedure:&lt;br/&gt;Heat oil in a pan, and add the chopped onions and garlic. Saute till the onions are translucent. Add the cumin powder and sauté for a minute. Add the ground chicken and keep stirring till the minced chicken is white. Continue to stir making sure there are no lumps. Add the diced bell pepper, corn and tomato sauce and stir well till the tomato sauce is well soaked into the mixture. Add the hot sauce and cook for a minute.&lt;br/&gt;&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TGAjZ10knhI/AAAAAAAAAPo/lAzaVLPh8Bs/s640/IMG_3519.JPG" title="cooking-pie" class="alignleft" width="640" height="480" /&gt;&lt;br/&gt;&lt;br/&gt;Carefully arrange the pie crust in a baking tray/vessel. Pour the mixture on to the crust. Bake at 375 degrees for 25 minutes. Top with the shredded sharp cheddar and bake for 10 more minutes.&lt;br/&gt;&lt;br/&gt;&lt;img alt="" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TGAjb8AoMuI/AAAAAAAAAZQ/Q8OUkDCTXgk/s640/IMG_3527.JPG" title="cooked-pie" class="alignleft" width="640" height="480" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1553415251339000975?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1553415251339000975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1553415251339000975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1553415251339000975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1553415251339000975'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/tamale-pie.html' title='Tamale Pie'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8DTdVNRe-EE/TGAjZ10knhI/AAAAAAAAAPo/lAzaVLPh8Bs/s72-c/IMG_3519.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-8261375029532908440</id><published>2010-08-15T15:24:00.000-07:00</published><updated>2010-09-05T23:16:53.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Homemade Kulfi</title><content type='html'>This is an improvisation on a brilliant mango ice-cream recipe that we have tried and loved. With a cool improvisation, it turns into an awesome kulfi recipe.&lt;br/&gt;&lt;br/&gt;Ingredients:&lt;br/&gt;&lt;br/&gt;1 can condensed milk&lt;br/&gt;1 and a half cans evaporated milk&lt;br/&gt;1 box cool whip&lt;br/&gt;half cup almonds, pistachios and cashews&lt;br/&gt;1 tsp ground cardamoms&lt;br/&gt;&lt;br/&gt;Grind the dry-fruits in a food processor into a fine consistency. Mix all ingredients together along with the ground dryfruits in a large vessel till they form a thick smooth paste. Make sure there are no lumps. Freeze for at least 8 hours. Garnish with raisins.&lt;br/&gt;&lt;img class="alignleft" title="kulfi" src="http://lh5.ggpht.com/_8DTdVNRe-EE/TGivABugrdI/AAAAAAAAAY4/Lr_25Nhm8n8/s640/IMG_0887.JPG" alt="" width="640" height="480" /&gt; &lt;br/&gt;&lt;br/&gt;PS: For the original mango ice-cream recipe, replace the evaporated milk with a tin of mango pulp (aamras), and avoid the dryfruits. I promise, it is the best mango ice-cream I have ever eaten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-8261375029532908440?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/8261375029532908440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=8261375029532908440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8261375029532908440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8261375029532908440'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/homemade-kulfi.html' title='Homemade Kulfi'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8DTdVNRe-EE/TGivABugrdI/AAAAAAAAAY4/Lr_25Nhm8n8/s72-c/IMG_0887.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-117139871936019159</id><published>2010-08-13T04:56:00.000-07:00</published><updated>2010-09-05T23:16:53.019-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>modprobe for tun driver failed</title><content type='html'>My school uses the Juniper Network Connect client software to provide a VPN solution. So the typical usage scenario is that you go to vpn.organization.com and login with your credentials. Then you click on the start button against the network connect. Then it installs a java client on your machine and you are connected to the school network, and all is dandy.&lt;br/&gt;&lt;br/&gt;This was working fine till I installed Linux Mint 9 Isadora on my laptop and one fine day it just stopped working for me. Every time it would try to install the client, I would get an error message saying:&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;modprobe for tun driver failed&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;I searched for solutions online and I found this: http://mad-scientist.us/juniper.html&lt;br/&gt;The guy is providing a custom script to help you install the client on your machine, but I realized that I did not have to go so far. I also found some people saying that the juniper client has had issues with openjdk on certain linux systems. So I went ahead and uninstalled openjdk from my box:&lt;br/&gt;&lt;code&gt;$ sudo apt-get remove openjdk-6-jre&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;Next I installed sun's jdk and browser plugin:&lt;br/&gt;&lt;code&gt;sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-plugin&lt;/code&gt;&lt;br/&gt;I restarted the browser, went back to vpn.organization.com, and everything started working fine, even though I continued to get the modprobe error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-117139871936019159?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/117139871936019159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=117139871936019159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/117139871936019159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/117139871936019159'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/modprobe-for-tun-driver-failed.html' title='modprobe for tun driver failed'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4072290940285179416</id><published>2010-08-11T15:45:00.000-07:00</published><updated>2010-09-05T23:16:53.009-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>My Dum Biryani</title><content type='html'>I decided to make the vegetable biryani because I was catering to at-least one vegetarian. So here goes...&lt;br/&gt;&lt;br/&gt;सामग्री (serves 8 )&lt;br/&gt;&lt;br/&gt;3 cups basmati rice&lt;br/&gt;3 medium sized potatoes&lt;br/&gt;3 large carrots&lt;br/&gt;half a cauliflower&lt;br/&gt;2 large onions&lt;br/&gt;1.5 cups yoghurt (dahi)&lt;br/&gt;3 tbsp vegetable oil&lt;br/&gt;2 tbsp whole garam masala (corriander seeds, cumin seeds, cinnamon, black cardamom, cloves...you know, the whole shebang)&lt;br/&gt;1 tsp haldi powder&lt;br/&gt;1 tsp red chilli powder&lt;br/&gt;2 tbsp pulav/biryani masala (store bought...or if you are adventurous, you can make your own)&lt;br/&gt;half cup finely chopped cilantro (hara dhania)&lt;br/&gt;half cup finely chopped mint leaves (hara pudina)&lt;br/&gt;salt to taste&lt;br/&gt;&lt;br/&gt;विधि&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;First of all, soak the basmati rice in warm water for at-least one hour  in advance. Finely slice the onions and fry them in adequate quantity of  oil till they acquire a dark brown color. Keep it aside. In the meantime, chop all the vegetables into bite size pieces. (make them larger than usual i.e. if you are cooking a sabzi)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh5.ggpht.com/_8DTdVNRe-EE/TGNjsI_5OjI/AAAAAAAAAS8/wvOU2M9ceNw/s640/IMG_0878.JPG"&gt;&lt;img class="alignnone" title="fried onions" src="http://lh5.ggpht.com/_8DTdVNRe-EE/TGNjsI_5OjI/AAAAAAAAAS8/wvOU2M9ceNw/s128/IMG_0878.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In a large pan or kadhai, add some oil. When the oil gets hot, add the whole garam masala and saute for a couple of seconds. Add some jeera, and ginger garlic paste. Now add the chopped vegetables.  Add the red chilli powder, haldi powder, biryani masala and salt to taste. Saute for 5 minutes. Keep stirring occasionally. Add half the quantity of yoghurt, and half the quantity of the chopped mint and cilantro. Make sure that all the pieces of vegetables are coated nicely. We need to cook these vegetables to about 70-80%. Try to cut into a piece of potato. It should not be too hard, and at the same time, don't allow them to cook all the way.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjqOk83VI/AAAAAAAAAS4/rTxfgTbP2mI/s640/IMG_0877.JPG"&gt;&lt;img class="alignnone" title="veggies-sauted" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjqOk83VI/AAAAAAAAAS4/rTxfgTbP2mI/s128/IMG_0877.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In another pan, bring a quart of water to a rolling boil. Add some oil, and some whole garam masala to the water. Add the pre-soaked rice to the water. We need to cook this rice to about 70-80%. This will take only about 3-4 minutes in the boiling water since the rice has been soaked for an hour (keep checking the rice). Drain the excess water and keep the rice aside.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Now comes the part where we layer the vegetables and the rice in a medium sized container (I found the pressure cooker container to be ideal size for this). Add half the rice to the cooker. Add a little more than half of the cooked vegetables on top of the rice. Add the rest of the yoghurt on top. Heat this up a little on low flame while mixing it up nicely. Check for seasoning and add more salt if needed. Add a layer of the fried onions.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh5.ggpht.com/_8DTdVNRe-EE/TGNjsySuuMI/AAAAAAAAATA/qkV3MB-O78g/s640/IMG_0879.JPG"&gt;&lt;img class="alignnone" title="first layer" src="http://lh5.ggpht.com/_8DTdVNRe-EE/TGNjsySuuMI/AAAAAAAAATA/qkV3MB-O78g/s128/IMG_0879.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Now add all but a little of the remaining rice on top of the onions. Stack the remaining cooked vegetables on top of the rice, and add the rest of the chopped onions.  Finally top with the last bit of the rice. Garnish with the remaining chopped mint and cilantro&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh6.ggpht.com/_8DTdVNRe-EE/TGNjvBmysdI/AAAAAAAAATE/sJptejqFLlU/s640/IMG_0880.JPG"&gt;&lt;img class="alignnone" title="stacks" src="http://lh6.ggpht.com/_8DTdVNRe-EE/TGNjvBmysdI/AAAAAAAAATE/sJptejqFLlU/s128/IMG_0880.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Cover the cooker with a flat plate, and seal the edges with a bit of dough. Place this vessel into a &lt;a href="http://en.wikipedia.org/wiki/Double_boiler"&gt;double boiler&lt;/a&gt; as shown in the image below. Cook on medium flame for 30 minutes.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjv-LRmEI/AAAAAAAAATI/2aVcBY10HwE/s640/IMG_0881.JPG"&gt;&lt;img class="alignnone" title="double boiler" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjv-LRmEI/AAAAAAAAATI/2aVcBY10HwE/s128/IMG_0881.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Open the cooker after 30 minutes to a beautiful aroma.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjypyWkoI/AAAAAAAAATQ/KLhrbHJ3fgU/s640/IMG_0883.JPG"&gt;&lt;img class="alignnone" title="opened" src="http://lh4.ggpht.com/_8DTdVNRe-EE/TGNjypyWkoI/AAAAAAAAATQ/KLhrbHJ3fgU/s128/IMG_0883.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Serve with boondi raita (recipe for that in another post).&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;img alt="" src="http://lh6.ggpht.com/_8DTdVNRe-EE/TGNj0qAICKI/AAAAAAAAATY/4TTkB2G4fuE/s640/IMG_0885.JPG" title="biryani-served" class="alignleft" width="640" height="480" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4072290940285179416?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4072290940285179416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4072290940285179416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4072290940285179416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4072290940285179416'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/my-dum-biryani.html' title='My Dum Biryani'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8DTdVNRe-EE/TGNjsI_5OjI/AAAAAAAAAS8/wvOU2M9ceNw/s72-c/IMG_0878.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6982460184661818471</id><published>2010-08-09T04:30:00.000-07:00</published><updated>2010-09-05T23:16:53.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Some Like it Cold</title><content type='html'>&lt;p style="text-align: left;"&gt;&lt;a href="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAjqFNKvHI/AAAAAAAAARg/hLI3-p19gGI/s640/IMG_3501.JPG"&gt;&lt;img class="alignleft" title="test thumbnail" src="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAjqFNKvHI/AAAAAAAAARg/hLI3-p19gGI/s128/IMG_3501.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt; Vichyssoise soup is a thick vegetable based soup that is very often served cold.  There is some debate about whether this soup is a French or an American creation. This soup can be served both  hot and cold, but I wanted to cook it because I had never tried a cold soup before. The following is the recipe:&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;सामग्री (serves 5)&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1 leek&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1 bunch scallions&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1 large zuccini&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1 red potato&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1/4 head cabbage&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1/4 tsp ground nutmeg&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;2 tsp sugar&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;salt to taste&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1/2 cup whole milk (I used this instead of heavy cream)&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;2 and a half cups water (or chicken broth)&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1/2 stick butter&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;1 tbsp cooking oil (use your favourite)&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;विधि&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAju65LC2I/AAAAAAAAASA/qluykeesSig/s640/IMG_3509.JPG"&gt;&lt;img class="alignleft" title="chopped-veggies" src="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAju65LC2I/AAAAAAAAASA/qluykeesSig/s128/IMG_3509.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;Roughly chop all the vegetables and keep aside. In a large saucepan, add the butter, oil and ground nutmeg. Let the butter melt. Add all the chopped vegetables, salt and sugar and stir till the vegetables start to cook. Add the milk and water and bring to boil. Reduce the flame to medium and simmer covered for 20 minutes.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAjvZdpazI/AAAAAAAAASI/uZYeJCLfoU4/s640/IMG_3517.JPG"&gt;&lt;img class="alignleft" title="blended" src="http://lh3.ggpht.com/_8DTdVNRe-EE/TGAjvZdpazI/AAAAAAAAASI/uZYeJCLfoU4/s128/IMG_3517.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;Remove the pan from the flame. Use a hand-blender to blend the contents of the pan to form a think soup like consistency. If you don't have a hand blender, use a tabletop blender or food processor. Fill only up to 1/3 the capacity of the blender at a time. Refrigerate the soup for at-least four hours.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="mceTemp"&gt;&lt;dl class="wp-caption alignleft" style="width: 138px;"&gt;&lt;dt class="wp-caption-dt"&gt;&lt;a href="http://lh6.ggpht.com/_8DTdVNRe-EE/TGAjwQcQF5I/AAAAAAAAASU/0nRC54-mra0/s640/IMG_3523.JPG"&gt;&lt;img title="soup-served" src="http://lh6.ggpht.com/_8DTdVNRe-EE/TGAjwQcQF5I/AAAAAAAAASU/0nRC54-mra0/s128/IMG_3523.JPG" alt="" width="128" height="96" /&gt;&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/div&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;Before serving, check seasoning, and stir in some heavy cream if you like (or not, if you are afraid of the calorie mafia. you can also substitute heavy cream by whole milk). Garnish with freshly chopped parsley. Serve with toasted baguette.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6982460184661818471?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6982460184661818471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6982460184661818471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6982460184661818471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6982460184661818471'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/some-like-it-cold.html' title='Some Like it Cold'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_8DTdVNRe-EE/TGAjqFNKvHI/AAAAAAAAARg/hLI3-p19gGI/s72-c/IMG_3501.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7509537686120497291</id><published>2010-08-04T01:34:00.000-07:00</published><updated>2010-09-05T23:16:52.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Blank Un-numbered pages in a latex manuscript</title><content type='html'>I recently submitted my MS thesis to the university graduate school. After a couple of days, I got an email from them saying:&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;Your manuscript requires three blank, unnumbered pages: one at the beginning of your manuscript, the second one after the copyright page and the third one at the end of your manuscript. &lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Now, since my thesis was formatted using latex, it took a little bit of searching. The solution was quite simple, but not so easy to find. Thanks &lt;a href="http://nw360.blogspot.com/2007/10/creat-empty-page-in-latex.html"&gt;Night Walker&lt;/a&gt;.&lt;br/&gt;&lt;code&gt;&lt;br/&gt;\newpage&lt;br/&gt;\thispagestyle{empty}&lt;br/&gt;\mbox{}&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;Add the above block of code to your main document and you will be good to go. Essentially this creates a new page with an empty style, and adds an mbox with empty text.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7509537686120497291?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7509537686120497291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7509537686120497291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7509537686120497291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7509537686120497291'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/08/blank-un-numbered-pages-in-latex.html' title='Blank Un-numbered pages in a latex manuscript'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1922126844258497777</id><published>2010-07-19T16:22:00.000-07:00</published><updated>2010-09-05T23:16:52.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Sarah Dunant: The Birth of Venus</title><content type='html'>&lt;a href="http://wereadtoknow.files.wordpress.com/2010/02/birth-of-venus1.jpg"&gt;&lt;img class="alignleft" title="cover" src="http://wereadtoknow.files.wordpress.com/2010/02/birth-of-venus1.jpg" alt="" width="175" height="285" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This book is the coming of age story of a girl in 15th century Florence, (and in many ways is also the coming of age story of the city itself). Alessandra grows up in Florence and witnesses the historical events that unfold in the city, like the death of Lorenzo de Medici, the iron fist of Girolamo Savonarola, and later, his downfall, the threat of the French invasion, and a terrible plague. There is also a serial killer on the lose who some readers believe, turned out to be a famous painter.&lt;br/&gt;&lt;br/&gt;Alessandra is a young girl full of life, who is constrained by the mores of the society around her, as she struggles to find her freedom. Alessandra's story is the central plot of the novel, although several fates of the women of that period are represented through various female characters in the story. Dunant has very cleverly blended fact with fiction to produce a masterful tale full of the colors and textures of Florence. She adds a very artistic touch by describing episodes from the lives of contemporary painters and even dropping intriguing hints about their involvement in the story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1922126844258497777?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1922126844258497777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1922126844258497777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1922126844258497777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1922126844258497777'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/sarah-dunant-birth-of-venus.html' title='Sarah Dunant: The Birth of Venus'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7030286532462505818</id><published>2010-07-12T18:31:00.001-07:00</published><updated>2010-09-05T23:16:52.969-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Cooking with beer</title><content type='html'>Yes, that is right. Beer can be, and is used in a lot of dishes. If you think that is strange, read &lt;a href="http://homecooking.about.com/od/alcohol/a/beertips.htm" target="_blank"&gt;this&lt;/a&gt;. Apart from what you will read on that page, let me tell you that beer adds a very distinct flavor to your food that is unlike anything you might have tasted before.&lt;br/&gt;&lt;br/&gt;We will call this particular recipe &lt;strong&gt;&lt;a href="http://commons.wikimedia.org/wiki/File:Yellow_squash_produce-1.jpg" target="_blank"&gt;squash&lt;/a&gt; and tofu in thai(?) peanut sauce&lt;/strong&gt; and serve it on top of egg noodles.&lt;br/&gt;&lt;br/&gt;Ingredients (serves 2)&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;2 nests egg noodles&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;4 medium sized &lt;a href="http://commons.wikimedia.org/wiki/File:Yellow_squash_produce-1.jpg" target="_blank"&gt;yellow squash&lt;/a&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 cup diced tofu (preferably tofu patties that you get in the Asian store)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;2/3 cup bitter-ish lager&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;5-6 cloves garlic&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 large onion&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1/2 cup peanut butter&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 can coconut milk&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 tsp fish sauce&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1/2 tsp chili garlic paste&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 and half tsp curry powder&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 lemon&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;salt to taste&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;One thing I learned about cooking tofu is that you must marinate tofu in advance if you want it to soak all the flavors. Mix 1/3 cup beer (we used bitterish lager) with the juice of 1 lemon,  crushed garlic from about 3-4 cloves, 1 tbsp sugar and 1 tsp of curry powder  (important ingredient!). Marinate diced yellow squash and diced tofu in this mixture for 2 hours or more in the refrigerator. Preserve this marinate for later use. Do not discard.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image003.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image003.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In a pan, add finely chopped onions, and saute till they are translucent. Add crushed garlic from 1-2 cloves and saute for a minute. Add 1/2 tsp of curry powder and saute for a couple of more minutes.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image001.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image001.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In a large bowl, mix a can of coconut milk, 1 tbsp sugar, 1 tbsp lemon juice, 1/3 cup beer, 1/2 cup peanut butter, and 1 tsp fish sauce (you can find this at your nearby Asian store. substitute by soy sauce if you can't find it). Add the leftover marinate.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image005.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image005.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Add this mixture to the pan with onions. Add salt to taste, and 1/2 tsp chili garlic paste. Add the marinated tofu and squash. Cook till the gravy attains the desired consistency. Serve on top of egg noodles.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image008.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image008.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7030286532462505818?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7030286532462505818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7030286532462505818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7030286532462505818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7030286532462505818'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/cooking-with-beer_12.html' title='Cooking with beer'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7278365940049847368</id><published>2010-07-12T18:31:00.000-07:00</published><updated>2010-07-13T00:09:25.101-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Cooking with beer</title><content type='html'>Yes, that is right. Beer can be, and is used in a lot of dishes. If you think that is strange, read &lt;a href="http://homecooking.about.com/od/alcohol/a/beertips.htm" target="_blank"&gt;this&lt;/a&gt;. Apart from what you will read on that page, let me tell you that beer adds a very distinct flavor to your food that is unlike anything you might have tasted before.&lt;br/&gt;&lt;br/&gt;We will call this particular recipe &lt;strong&gt;&lt;a href="http://commons.wikimedia.org/wiki/File:Yellow_squash_produce-1.jpg" target="_blank"&gt;squash&lt;/a&gt; and tofu in thai(?) peanut sauce&lt;/strong&gt; and serve it on top of egg noodles.&lt;br/&gt;&lt;br/&gt;Ingredients (serves 2)&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;2 nests egg noodles&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;4 medium sized &lt;a href="http://commons.wikimedia.org/wiki/File:Yellow_squash_produce-1.jpg" target="_blank"&gt;yellow squash&lt;/a&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 cup diced tofu (preferably tofu patties that you get in the Asian store)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;2/3 cup bitter-ish lager&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;5-6 cloves garlic&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 large onion&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1/2 cup peanut butter&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 can coconut milk&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 tsp fish sauce&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1/2 tsp chili garlic paste&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 and half tsp curry powder&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;1 lemon&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;salt to taste&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;One thing I learned about cooking tofu is that you must marinate tofu in advance if you want it to soak all the flavors. Mix 1/3 cup beer (we used bitterish lager) with the juice of 1 lemon,  crushed garlic from about 3-4 cloves, 1 tbsp sugar and 1 tsp of curry powder  (important ingredient!). Marinate diced yellow squash and diced tofu in this mixture for 2 hours or more in the refrigerator. Preserve this marinate for later use. Do not discard.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image003.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image003.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In a pan, add finely chopped onions, and saute till they are translucent. Add crushed garlic from 1-2 cloves and saute for a minute. Add 1/2 tsp of curry powder and saute for a couple of more minutes.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image001.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image001.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;In a large bowl, mix a can of coconut milk, 1 tbsp sugar, 1 tbsp lemon juice, 1/3 cup beer, 1/2 cup peanut butter, and 1 tsp fish sauce (you can find this at your nearby Asian store. substitute by soy sauce if you can't find it). Add the leftover marinate.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image005.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image005.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Add this mixture to the pan with onions. Add salt to taste, and 1/2 tsp chili garlic paste. Cook till the gravy attains the desired consistency. Serve on top of egg noodles.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://s820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/?action=view&amp;amp;current=Image008.jpg" target="_blank"&gt;&lt;img src="http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image008.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7278365940049847368?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7278365940049847368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7278365940049847368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7278365940049847368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7278365940049847368'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/cooking-with-beer.html' title='Cooking with beer'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i820.photobucket.com/albums/zz124/kveinstein/tofu%20and%20squash/th_Image003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5698253224714945424</id><published>2010-07-11T18:28:00.000-07:00</published><updated>2010-09-05T23:16:52.947-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Updated to wordpress 3.0</title><content type='html'>I have been wanting to update my blogging software from its original archaic version that I installed over a year ago. Yesterday I finally decided that I cannot wait any longer because the old version of the wordpress software was not letting me link images from external hosting services like picasa. So I bit the bullet and did the whole &lt;a href="http://codex.wordpress.org/Upgrading_WordPress" target="_blank"&gt;updating process&lt;/a&gt;. I did the manual update because my ancient version did not even support the automatic update.&lt;br/&gt;&lt;br/&gt;So I took a backup of the database, a manual backup of the entire blog directory using ftp, and just followed the instructions. True to the word, it updated the web-app and the MySQL database in a matter of seconds. I really like this new interface, but I am still looking for desktop publishing applications that can simplify the blog post process easier for me because I hate to have to muck with the HTML code myself. So, I am going to experiment with a couple of publishing applications for a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5698253224714945424?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5698253224714945424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5698253224714945424' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5698253224714945424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5698253224714945424'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/updated-to-wordpress-30.html' title='Updated to wordpress 3.0'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1122510505864466606</id><published>2010-07-09T08:02:00.001-07:00</published><updated>2010-09-05T23:16:52.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Poaching an egg</title><content type='html'>&lt;span&gt; &lt;/span&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="304" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="src" value="http://www.traileraddict.com/emd/12845" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="450" height="304" src="http://www.traileraddict.com/emd/12845" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;Do you remember this scene from Julie and Julia? After watching it, I felt that poaching an egg requires some kind of black magic, and that it is extremely difficult for you to poach an egg without an &lt;a href="http://www.crateandbarrel.com/family.aspx?c=520&amp;amp;f=11236" target="_blank"&gt;egg poacher&lt;/a&gt;. I checked out a book by Jamie Oliver, and his advice was similar to that of Julia Child (as in the video). A google search gives you a tonne of conflicting advise. Finally, I found a way that has always worked for me:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Take lots of water in a saucepan and bring it to a light boil. Add a teaspoon of salt, and a teaspoon of the secret ingredient: vinegar. Vinegar helps the egg white to cook as soon as the egg is dropped into the water. This is what helps you avoid the disastrous "scrambled egg soup".&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a title="adding-vinegar" href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/adding-vinegar.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/adding-vinegar.thumbnail.jpg" alt="adding-vinegar" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Now reduce the flame a little so that the water is not boiling hard. When the water is relatively calm, use a spoon to twirl the water in the pan so as to create a mini-whirlpool.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a title="image092.jpg" href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image092.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image092.thumbnail.jpg" alt="image092.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Gently crack an egg, taking care not to break the yolk; and drop it into the center of the whirlpool. Drop the egg from close to the surface of the water.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a title="image093.jpg" href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image093.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image093.thumbnail.jpg" alt="image093.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;That's it. Waiting and watching: the only two things you need to do. No need to push the egg-white around. You will notice that the egg starts to cook immediately as it falls into the water, and it starts to congeal around the yolk. Cooking time varies between 90 seconds to three minutes depending on how well done you want it to be.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a title="image100.jpg" href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image100.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image100.thumbnail.jpg" alt="image100.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Use a slotted spoon to gently scoop the cooked egg from the pan. Serve it on some good toasted bread (for those in Baltimore, try the raisin pumpernickel from Atwaters)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a title="image103.jpg" href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image103.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image103.thumbnail.jpg" alt="image103.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1122510505864466606?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1122510505864466606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1122510505864466606' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1122510505864466606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1122510505864466606'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/poaching-egg_09.html' title='Poaching an egg'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5831472402799354899</id><published>2010-07-09T08:02:00.000-07:00</published><updated>2010-07-10T15:46:37.501-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Poaching an egg</title><content type='html'>&lt;object width="450" height="304"&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;param name="movie" value="http://www.traileraddict.com/emd/12845"&gt;&lt;/param&gt;&lt;br/&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;br/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;br/&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.traileraddict.com/emd/12845" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="transparent" allowfullscreen="true" width="450" height="304"&gt;&lt;/embed&gt;&lt;br/&gt;Do you remember this scene from Julie and Julia? After watching it, I felt that poaching an egg requires some kind of black magic, and that it is extremely difficult for you to poach an egg without an &lt;a href="http://www.crateandbarrel.com/family.aspx?c=520&amp;amp;f=11236" target="_blank"&gt;egg poacher&lt;/a&gt;. I checked out a book by Jamie Oliver, and his advice was similar to that of Julia Child (as in the video). A google search gives you a tonne of conflicting advise. Finally, I found a way that has always worked for me:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Take lots of water in a saucepan and bring it to a light boil. Add a teaspoon of salt, and a teaspoon of the secret ingredient: vinegar. Vinegar helps the egg white to cook as soon as the egg is dropped into the water. This is what helps you avoid the disastrous "scrambled egg soup".&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/adding-vinegar.jpg" title="adding-vinegar"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/adding-vinegar.thumbnail.jpg" alt="adding-vinegar" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Now reduce the flame a little so that the water is not boiling very hard. When the water is relatively calm, use a spoon to twirl the water in the pan so as to create a mini-whirlpool in the pan.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image092.jpg" title="image092.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image092.thumbnail.jpg" alt="image092.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Gently crack an egg and drop it in the center of the whirlpool. Make sure that you do not break the yolk, and drop it from close to the surface of the water.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image093.jpg" title="image093.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image093.thumbnail.jpg" alt="image093.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;That's it. All you now need to do for poaching your egg is to wait and watch. No need to push the egg-white around. You will notice that the egg starts to cook immediately as it falls into the water, and it starts to congeal around the yolk. Cooking time varies between 90 seconds to three minutes depending on how well done you want it to be.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image100.jpg" title="image100.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image100.thumbnail.jpg" alt="image100.jpg" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Use a slotted spoon to gently remove the egg from the pan. Serve it on some good toasted bread (for those in Baltimore, try the raisin pumpernickel from Atwaters)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image103.jpg" title="image103.jpg"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/07/image103.thumbnail.jpg" alt="image103.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5831472402799354899?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5831472402799354899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5831472402799354899' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5831472402799354899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5831472402799354899'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/07/poaching-egg.html' title='Poaching an egg'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4076306879705669328</id><published>2010-06-18T15:12:00.000-07:00</published><updated>2010-07-06T20:13:01.920-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Sunday Brunch</title><content type='html'>As a graduate Indian student in the US, my weekend meals are a not a deterministic phenomenon. Cooking turns on weekdays are a regular thing on the schedule, but one meal I always enjoy, and hence look forward to, is the Sunday morning breakfast/brunch (depending on the time of waking up). Moreover, the whole act of cooking together in the morning is an entertaining prospect in itself.&lt;br/&gt;&lt;br/&gt;We are big fans of cooking eggs for breakfast. And why not? The number of really good breakfast dishes you can make with eggs, and other commonly available ingredients is just plain delightful. I think half the fun in cooking eggs is sometimes not knowing till the end, how it is going to turn out. I revel in the suspense of whether this is going to turn out to be an omelette or part-scrambled.&lt;br/&gt;&lt;br/&gt;The uncertainty at all times is due to the unpredictable nature of some of the frying pans we use.A good quality frying pan always lets you cleanly slide your cooked eggs on to the plate. I just love it when that happens. But if your frying pan is old, then it may be a bit of an effort taking the eggs off the pan, and you may not get everything in one piece.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image043.jpg" title="eggs"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image043.thumbnail.jpg" alt="eggs" align="bottom" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Anyway, enough said about the dynamics of eggs and pans. Lets cook breakfast for two.First up, the eggs. You will need six eggs (6 whites and 3 yolks for those who are inclined). Add some salt and black pepper powder and beat them up till they are real nice and fluffy. Add a little milk if you wish.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image039.jpg" title="mushrooms"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image039.thumbnail.jpg" alt="mushrooms" align="top" /&gt;&lt;/a&gt;Next, take a couple of button mushrooms. Chop them up into bite size pieces.&lt;br/&gt;&lt;br/&gt;Fire up your frying pan now, and add some extra virgin olive oil (any cooking oil in your kitchen will do). Throw in the mushrooms and sauté till they are slightly brown.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image049.jpg" title="mushrooms-and-ginger-garlic-paste"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image049.thumbnail.jpg" alt="mushrooms-and-ginger-garlic-paste" align="middle" /&gt;&lt;/a&gt;Remember that mushrooms cook really quickly; so you don't want to overcook them. Add a teaspoon of ginger and garlic paste, and continue to sauté.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image050.jpg" title="spinach"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image050.thumbnail.jpg" alt="spinach" align="middle" /&gt;&lt;/a&gt;Add some chopped spinach to the pan, if you have any, and continue to sauté till the spinach seems to be cooked (this does not take more than a few minutes). She taught me to do the following: use a pair of ordinary kitchen scissors to chop the spinach right over the pan for small quantities. It is quick, easy and clean.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image054.jpg" title="eggsinthepan"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image054.thumbnail.jpg" alt="eggsinthepan" align="bottom" /&gt;&lt;/a&gt;After doing this for a couple of minutes, add the eggs to the pan. Hold the handle of the pan and shake it a little so that the veggies and the eggs are spread evenly and form a uniform coat.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image057.jpg" title="mozzarella"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image057.thumbnail.jpg" alt="mozzarella" align="middle" /&gt;&lt;/a&gt;Let it cook for a minute or so, and then add a few pieces of mozzarella cheese into the pan. Any kind of cheese that mixes/melts easily will do. We like trying out different varieties of cheese. The last time it was goat cheese. The mexican three cheese blend that you get in the grocery store is also great for adding to eggs.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image058.jpg" title="cooking-eggs"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image058.thumbnail.jpg" alt="cooking-eggs" align="middle" /&gt;&lt;/a&gt;Now reduce the heat to low flame, cover the pan and let it cook for a couple of minutes till the eggs are a lot less runny. You still want to keep them a bit runny in the end - don't overcook.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image055.jpg" title="blender"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image055.thumbnail.jpg" alt="blender" align="left" /&gt;&lt;/a&gt;In the meantime, lets make some smoothie. Nothing better than something healthy to drink along with your eggs. Take some oatmeal in a bowl, add double the quantity of water, and cook it in the microwave for 3 minutes. Take a blender, add the cooked oatmeal, a bunch of blueberries (any berries of your choice will work),a banana cut into pieces, and a generous quantity of yoghurt.Blend for a couple of seconds.&lt;br/&gt;&lt;br/&gt;Then add some milk and some maple syrup to taste (honey works just as well). Continue to blend till you get a smooth consistency. Pour into glasses. Meanwhile, keep checking on the eggs once in a while.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image062.jpg" title="cutting-eggs"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image062.thumbnail.jpg" alt="cutting-eggs" align="middle" /&gt;&lt;/a&gt;We like them when they are still a wee bit runny. Lob off a piece of butter on top of your omelette and let it melt. Use a table knife (or wooden spatula) to cut it into slices while still in the pan.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image063.jpg" title="breakfast"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2010/06/image063.thumbnail.jpg" alt="breakfast" align="middle" /&gt;&lt;/a&gt;Finally, toast a few slices of some really good bread from your local bakery. For those in Baltimore, she highly recommends (and I endorse) the sunflower flaxseed bread from Atwaters. Enjoy your meal!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4076306879705669328?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4076306879705669328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4076306879705669328' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4076306879705669328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4076306879705669328'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/06/sunday-brunch.html' title='Sunday Brunch'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1557104636965460932</id><published>2010-06-04T06:28:00.000-07:00</published><updated>2010-07-06T20:13:01.911-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Can’t connect to MySQL server on ’server’</title><content type='html'>Its been a long time since I wrote anything here. So, I thought let me resume by sharing a little piece of information I gathered the other day. So, I have been using MySQL to manage some data related to my research. I have installations on multiple machines that I use, and recently I had to install it on another ubuntu machine. I did the following:&lt;br/&gt;&lt;br/&gt;&amp;lt;code&amp;gt;sudo apt-get install php5 mysql-server apache2 phpmyadmin&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;It worked fine, but then, my python script that runs on another machine began to complain that it could not connect to my MySQL server:&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;strong&gt; Can't connect to MySQL server on 'server'&lt;/strong&gt;&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;Now that was just ridiculous because this has never happened before. So I trolled and trolled till I found what I was looking for:&lt;br/&gt;&lt;br/&gt;http://www.webmasterworld.com/forum10/6141.htm&lt;br/&gt;&lt;br/&gt;So, turns out that there is this tiny piece of configuration information in your /etc/mysql/my.cnf file that says:&lt;br/&gt;&lt;br/&gt;bind-address = 127.0.0.1&lt;br/&gt;&lt;br/&gt;which essentially means that all connections coming in from anywhere other than the local machine will not be entertained. Remove or comment that line and restart your server. Things start working!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1557104636965460932?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1557104636965460932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1557104636965460932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1557104636965460932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1557104636965460932'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2010/06/cant-connect-to-mysql-server-on-server.html' title='Can’t connect to MySQL server on ’server’'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6450808242960343158</id><published>2009-09-27T13:26:00.000-07:00</published><updated>2010-07-06T20:13:01.754-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Rick Riordan at the National Book Festival</title><content type='html'>I was at the &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.loc.gov%2Fbookfest%2F&amp;amp;ei=fne_SoP9F4zP8Qb7tYWxAQ&amp;amp;usg=AFQjCNFYguzCkULMt6jCKs8BII7bKIyDBQ&amp;amp;sig2=Z_-6W8G7gimOinTisI2sDQ"&gt;National Book Festival&lt;/a&gt; yesterday in Washington DC where several authors including Rick Riordan, John Grisham, Jodi Picoult and the like did book signings and talked to their fans. The event by itself was sort of poorly managed because the management probably did not expect a crowd on such a big scale (the Smithsonian metro station was closed in the afternoon due to too much crowd!).&lt;br/&gt;&lt;br/&gt;But all that apart, people who went with the intention of meeting their favourite authors had a successful day, and that was perhaps the only worthy reason to go to the festival because the book festival did not have any book stalls (other than a jam packed Borders tent selling only very specific books).&lt;br/&gt;&lt;br/&gt;Anyway, so I wen't to catch a glimpse of  Rick Riordan since I am an insane Percy Jackson fan.I got to the pavilion atleast 15 minutes in advance while the previous author was still speaking. After some pushing and jostling I finally edged into the tent and escaped the rain outside. There was hardly any place to stand but I positioned myself so that I could operate my camera.&lt;br/&gt;&lt;br/&gt;His talk was quite funny in general and he gave his eager fans a glimpse of what is in store for them in the upcoming months:&lt;br/&gt;&lt;br/&gt;1. There will a second Camp Half Blood series of books (yes you heard it right!) coming up soon. I forget if he mentioned when it will be out, but he mentioned that there will be more of Percy and Annabeth to come although Percy will not be the main character in the new series and there will be a new generation of demigods. The new series will probably be based on the next big prophecy that we encountered in "the last olympian".&lt;br/&gt;&lt;br/&gt;2. May next year is going to be about Riordan's next novel that is based on Egyptian mythology. Now that is something that sounds really exciting. Riordan even read the first few lines from this upcoming book that he says is currently with his editor now!&lt;br/&gt;&lt;br/&gt;3. Finally he talked about the Lightning Thief movie that is set to release in February next year. He mentioned that the role of Chiron will be played by Pierce Brosnan and that of Medusa will be played by Uma Thurman. Now that is some interesting cast.&lt;br/&gt;&lt;br/&gt;Since I am travelling currently, I will upload pictures soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6450808242960343158?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6450808242960343158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6450808242960343158' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6450808242960343158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6450808242960343158'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/09/rick-riordan-at-national-book-festival.html' title='Rick Riordan at the National Book Festival'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4882109294972900133</id><published>2009-06-30T11:47:00.000-07:00</published><updated>2010-07-06T20:13:01.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Using multiple applications with ASPNETDB</title><content type='html'>As a web developer, I have used ASPNETDB several times to manage the membership and role information for my applications. It has been a while since I have done software development in ASP.NET. So when I try things now, I realize there are several small things that I knew at my fingertips back then, come with a little more effort right now. I hooked up a new application to use the ASPNETDB, and tried to create a new login. I got the error that the username already exists.&lt;br/&gt;&lt;br/&gt;This was surprising, because it was a new application. I realized that the application was actually pointing to the same instance of ASPNETDB on my DB server. I knew that there was some way of isolating multiple applications in the same membership database. After a bit of research I recalled out to do it:&lt;br/&gt;&lt;br/&gt;In the web.config file, look for the following section:&lt;br/&gt;&lt;br/&gt;&amp;lt;membership&amp;gt;&lt;br/&gt;&amp;lt;providers&amp;gt;&lt;br/&gt;&amp;lt;clear/&amp;gt;&lt;br/&gt;&amp;lt;add name="AspNetSqlMembershipProvider"&lt;br/&gt;type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&lt;br/&gt;connectionStringName="ApplicationServices"&lt;br/&gt;enablePasswordRetrieval="false"&lt;br/&gt;enablePasswordReset="true"&lt;br/&gt;requiresQuestionAndAnswer="false"&lt;br/&gt;requiresUniqueEmail="false"&lt;br/&gt;passwordFormat="Hashed"&lt;br/&gt;maxInvalidPasswordAttempts="5"&lt;br/&gt;minRequiredPasswordLength="6"&lt;br/&gt;minRequiredNonalphanumericCharacters="0"&lt;br/&gt;passwordAttemptWindow="10"&lt;br/&gt;passwordStrengthRegularExpression=""&lt;br/&gt;applicationName="/"&lt;br/&gt;/&amp;gt;&lt;br/&gt;&amp;lt;/providers&amp;gt;&lt;br/&gt;&amp;lt;/membership&amp;gt;&lt;br/&gt;&lt;pre&gt;&lt;/pre&gt;&lt;br/&gt;Change the value of the applicationName attribute inside the providers element to then name of your application, and you are good to go!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4882109294972900133?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4882109294972900133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4882109294972900133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4882109294972900133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4882109294972900133'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/06/using-multiple-applications-with.html' title='Using multiple applications with ASPNETDB'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-439264859096497838</id><published>2009-06-05T20:12:00.000-07:00</published><updated>2010-07-06T20:13:01.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Free Internet?</title><content type='html'>This is a short post from the Greater Rochester International Airport as I wait for my flight. No other service at an airport makes me happier than free internet. The first time I saw this was when my flight to Memphis was delayed by a couple of hours and I was stuck waiting at Charlotte Douglas Int'l airport. I saw an unusually high number of people using their laptops and somehow got the feeling that there might be internet connectivity. I booted up my machine and to my pleasant surprise, I was right. I was able to establish a secure connection to my school network and get some work done while I waited. For internet savvy people like us, there isn't really much you can do if you are stuck waiting at an airport, and a free connection just saves your day.&lt;br/&gt;&lt;br/&gt;But I was wondering what is it that allows an airport to host a free wifi connection. Large and prestigious airports like the O'Hare Int'l airport at Chicago do not have a free wifi connection. What is it that prevents them from doing so? What is the business model followed at the lesser known airports that lets them provide this service to travellers?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-439264859096497838?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/439264859096497838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=439264859096497838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/439264859096497838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/439264859096497838'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/06/free-internet.html' title='Free Internet?'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1689146298172483123</id><published>2009-03-15T18:28:00.000-07:00</published><updated>2010-07-06T20:13:01.732-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Shuffle shuffle</title><content type='html'>Several weeks ago, I found myself thinking, how I could shuffle a list/array given to me in a random order. This is a typically commonplace thing to do in several applications: online card games, your favourite music player etc.&lt;br/&gt;&lt;br/&gt;The interesting thing about this problem is how some naive approaches, even though easy to code and efficient enough, do not achieve the desired randomness.&lt;br/&gt;&lt;br/&gt;Lets define the problem: You have an input array which has elements in positions 1 through n. The objective is to produce a random permutation of the array. By a random permutation, we mean to say that each permutation of the array is equally likely. So a truly randomized algorithm will generate each permutation with a probability of 1/n!&lt;br/&gt;&lt;br/&gt;The first approach that comes to mind is the naive approach of generating a random number between 1 and n for each element in the array and placing the element at the position indicated by the random number. This could be accomplished by using another auxillary array and placing elements into the new positions generated. The pseudocode could look something like the following:&lt;br/&gt;&lt;code&gt;&lt;br/&gt;NaiveShuffle(A[1...n], B[1....n])            //randomly permutes the elements in array A&lt;br/&gt;for i from 1 to n&lt;br/&gt;random &amp;lt;- RandomNumber(1,n)&lt;br/&gt;B[random] &amp;lt;- A[i]&lt;br/&gt;for i from 1 to n&lt;br/&gt;A[i] &amp;lt;- B[i]&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The above approach is very crude in the sense it uses an auxillary array and also parses through the array twice instead of just once. Still, the worst case running time of the above algorithm is O(n).&lt;br/&gt;&lt;br/&gt;Random(1, n) generates a random number 1 and n (both inclusive). We assume that the random number generator generates truly random numbers in the interval specified. Also, we assume some kind of collision resolution mechanism. We are assuming that this method returns a random number in O(1) time.&lt;br/&gt;&lt;br/&gt;All that said, a O(n) algorithm is not bad at all for this purpose. There is only one problem, this algorithm is WRONG! (hah...fat chance, didn't we name it a naive algorithm?). Why is that? This is because in every iteration, we generate n possible choices. Since there are n such iterations, the total number of permutations generated is n.n.n.n.......n times = n^n&lt;br/&gt;&lt;br/&gt;The  total number of permutations possible while shuffling an array is n!. Since n^n is not exactly divisible by n!, there have to be some permutations which appear more frequently than the others (basic pigeonhole principle). Thus this naive algorithm does not generate truly random permutations.&lt;br/&gt;&lt;br/&gt;Lets try something else. We generate a random priority between 1 and n^3 the Random(1, n^3)  routine, and assign a it to each element in the array. Then sort the array based on these weights.&lt;br/&gt;&lt;br/&gt;e.g. if the original array is A&amp;lt;1,2,3,4&amp;gt; and we generate priorities randomly as P&amp;lt;34,56,8,77&amp;gt;, then when we sort array A based on the increasing order of the priorities assigned using array P, then we get the shuffled array as &amp;lt;3, 1, 2, 4&amp;gt;.&lt;br/&gt;&lt;br/&gt;We used the interval [1, n^3] to generate priorities so as to reduce collisions. I will not delve into the correctness of this algorithm. The running time of this shuffling by sorting algorithm depends on which sorting algorithm we use. Typically it is Big-Theta(n lg n).&lt;br/&gt;&lt;br/&gt;Another approach to solve this problem, is to shuffle by swapping:&lt;br/&gt;&lt;code&gt;Shuffle[1...n]&lt;br/&gt;for i from 2 to n&lt;br/&gt;temp = Generate(x from 1 to i)&lt;br/&gt;swap(i,temp)&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;Notice that the interval for generating random numbers keeps decreasing. For the first iteration, there are n choices. For the 2nd iteration, there are (n-1) choices and so on.&lt;br/&gt;&lt;br/&gt;Hence the total number of choices generated by this algorithm is: n(n-1)(n-2).....3.2.1 = n!&lt;br/&gt;&lt;br/&gt;which is exactly equal to the total number of possible permutations. Moreover, since we iterate over the array only once, this algorithm runs in O(n) time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1689146298172483123?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1689146298172483123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1689146298172483123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1689146298172483123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1689146298172483123'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/03/shuffle-shuffle.html' title='Shuffle shuffle'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-8920785764227711136</id><published>2009-01-17T13:08:00.000-08:00</published><updated>2010-07-06T20:13:01.649-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>The White Tiger: Aravind Adiga</title><content type='html'>&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/the_white_tiger.JPG" title="TheWhiteTigerCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/the_white_tiger.JPG" alt="TheWhiteTigerCover" align="left" border="0" /&gt;&lt;/a&gt;This novel, published in the year 2008 won the Man Booker Prize in the same year. I bought the book out of instinct, although I haven't had a very pleasant experience with a couple of other books that have won the same prize. Many people said that the books that won this award were difficult to read and not well accessible. One of my friends gave me a very bad review of the book, but I had no choice but to read it since I had already bought it. I approached the book without any pre-concieved  expectations and I was pleasantly surprised. While I did not bother asking my friend why she did not like the book, there are several reasons why I would recommend the book to any reader.&lt;br/&gt;First of all, the book is an effortless read, and the story flows at a good pace. The story is narrated in first person by Balram Halwai, who is the protagonist. It is his account of his rise from lowly origins in a village in rural India amidst crushing poverty where even the basic amenities of life are hard to come by; to his current position as a successful entrepreneur in a big city. But the story is not one of inspiration as one would imagine from such an account. Instead it is a story full of intrigue, corruption and crime, but narrated with an innocent and brutally honest tone that makes you chuckle throughout. The story takes a swipe at the corrupt political system of the country and how the people are forced to play along with it if they want to survive. What moves you while reading this story is how the honest and hardworking village boy is transformed into a shrewd, scheming man who does not hesitate to take the law into his own hands.&lt;br/&gt;Adiga has done a masterful job in this darkly comic debut novel of his with a sharp observation and sardonic voice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-8920785764227711136?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/8920785764227711136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=8920785764227711136' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8920785764227711136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8920785764227711136'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/01/white-tiger-aravind-adiga.html' title='The White Tiger: Aravind Adiga'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-3178886392981316290</id><published>2009-01-15T13:36:00.000-08:00</published><updated>2010-07-06T20:13:01.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Unaccustomed Earth: Jhumpa Lahiri</title><content type='html'>&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/edited.jpg" title="UnaccustomedEarth Edited Cover page"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/edited.jpg" alt="UnaccustomedEarth Edited Cover page" align="left" border="0" /&gt;&lt;/a&gt;This is Jhumpa Lahiri's third piece of work (after Interpreter of Maladies and The Namesake). Sticking to her theme, this is also a set of short stories, based on the lives of expatriate Bengali parents and their american-raised children. I used to really want happy endings from books and stories I read. Jhumpa Lahiri is not someone who would give me that. Her stories are colorful, full of real characters that you would come to love; her writing is superlative and flows with an effortless pace; but the stories end abruptly at a crucial emotional juncture when the characters are at some kind of an emotional high point. I am always left wanting for more, but I end up accepting the stories for what they are.&lt;br/&gt;One thing I noticed in her first two works is her brilliant descriptions of food and cooking, so much so that I used to be amazed at her culinary knowledge. I was looking forward to the same, but found that missing in Unaccustomed Earth.&lt;br/&gt;There are two parts in the book: the first one has 4 stories, and the 2nd part has 3 stories. I did not realize till the middle of the last story that the 3 stories in the 2nd part are actually related: based on the same two protagonists. Each story in the trilogy are spaced apart by a number of years .You could call me dim for not figuring this out earlier, but these stories are just like the previous ones, and each one could be read without any bearing on the previous ones, and none of them give any direct indication of a connection, except for the names of the characters (which could have been anything in any of the stories without affecting the plot). The first two parts are narrated by the two individual characters, based around their separate lives. The third story is narrated by the author, linking the two characters together finally. Being a fan of different narrative styles, I loved this.&lt;br/&gt;Finally, Jhumpa proves that she can write not only about life in the US, but also Europe, where a considerable portion of the final story is based.&lt;br/&gt;Brilliant piece of writing. Highly recommended reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-3178886392981316290?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/3178886392981316290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=3178886392981316290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3178886392981316290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3178886392981316290'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/01/unaccustomed-earth-jhumpa-lahiri.html' title='Unaccustomed Earth: Jhumpa Lahiri'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5451111588075282693</id><published>2009-01-12T05:04:00.000-08:00</published><updated>2010-07-06T20:13:01.632-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>one flew east, one flew west….</title><content type='html'>&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/oneflewoverthecuckoosnest.jpg" title="OneFlewOverTheCukoosNestCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/oneflewoverthecuckoosnest.jpg" alt="OneFlewOverTheCukoosNestCover" align="left" border="0" /&gt;&lt;/a&gt;I recently finished reading One Flew Over the Cukoo's Nest: by Ken Kesey. This novel has been included in TIME Magazine's &lt;a href="http://www.time.com/time/2005/100books/the_complete_list.html"&gt;&lt;em&gt;100 Best English-language Novels from 1923 to 2005.&lt;/em&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The novel is based in the mental ward in a psychiatric hospital in Oregon. It is an allegory on the psychopathic obsession of that time (the 1960s). The story is narrated by a gigantic, half-Indian "Chief Bromden", a patient of the ward who suffers from hallucinations and delusions.The ward is controlled by a tyrannical nurse: Nurse Ratched who reigns over all the inhabitants of the ward, including the orderlies, the staff nurses, and even the doctor. He controls everyone with surgical precision, using underhanded tactics to render everyone helpless and submissive.&lt;br/&gt;&lt;br/&gt;Things change with the arrival of Randal McMurphy, a Korean veteral who has a history of insubbordination and street brawls. McMurphy quickly realizes that several patients in the ward are sane and simply emasculated because of the nurse and her controlling tactics.&lt;br/&gt;&lt;br/&gt;This novel is about the fight between authority and free spirit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5451111588075282693?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5451111588075282693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5451111588075282693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5451111588075282693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5451111588075282693'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/01/one-flew-east-one-flew-west.html' title='one flew east, one flew west….'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6986370152137796869</id><published>2009-01-03T15:14:00.000-08:00</published><updated>2010-07-06T20:13:01.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Pillars of the earth</title><content type='html'>&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/pillars_of_the_earth.jpg" title="PillarsOfTheEarthCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/pillars_of_the_earth.jpg" alt="PillarsOfTheEarthCover" align="left" border="0" /&gt;&lt;/a&gt;I started reading this book by Ken Follet over 5 months ago. When I just had a couple of dozen pages left to finish the book, I went away to the US and for some reason I did not carry the book with me. Now that I am back in India for a while, I finished the book today. It is a really big book with over a thousand pages. There are several plots in the story, and like most really long stories, you feel that some of those could have been avoided for the sake of a smaller and crisper story.&lt;br/&gt;&lt;br/&gt;The plot of the story revolves around the building of a cathedral in medieval England during the period of civil war and how the lives of several people around the cathedral is embroiled in politics and powerplay. The book spans several years and hence the author has been able to sketch the characters in great detail (no surprise there).&lt;br/&gt;&lt;br/&gt;Several  reviews on amazon tout this book as a breakthrough in the historical fiction genre, which I think is a bunch of nonsense (no wonder since the book was a part of Oprah's book club). I don't really have good things to say about Oprah's book club and I would probably have not picked up this book had I known earlier, but the book did turn out to be entertaining, with a lot of gratuitous sex and violence thrown in. Sometimes it drags simply because the plot is very twisted and long.&lt;br/&gt;&lt;br/&gt;I did learn a bit about medieval architecture, cathedrals, clergymen, nobles and the like. All in all, I recommend this book for a one time read. Entertaining, but long.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6986370152137796869?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6986370152137796869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6986370152137796869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6986370152137796869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6986370152137796869'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2009/01/pillars-of-earth.html' title='Pillars of the earth'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-2736023600956013685</id><published>2008-12-24T06:57:00.000-08:00</published><updated>2010-07-06T20:13:01.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Sending bulk emails using Outlook and C#</title><content type='html'>I have always derived pleasure writing programs that solve real world problems. This is one such problem that I was able to solve. With the holiday season on, you might want to send greetings to your numerous business contacts. If you have several contacts that you want to send personalized messages to, then you very well can imagine how much time and effort that will take.&lt;br/&gt;So this is what I set out to do: create an application that would send out emails to several contacts, with a personalized greeting line, but similar message body. Also, depending on the type of contact, you might want to send a different message. E.g. if it is a close colleague of yours, then you might want to send a more personalized mail rather than a one liner. Since these are personalized emails, these need to be sent from your actual email id rather than an SMTP server on your dev machine. Also, I needed this application to work for someone else who runs only MS Office on his machine. So I decided to use Microsoft Office Outlook 2007 for this task.&lt;br/&gt;The first thing to do was to decide the fomat in which I would store all the configuration information that would be used by the application: So I created two different text files, mail1.txt and mail2.txt each with a separate email message:&lt;br/&gt;&lt;br/&gt;Hello {0}&lt;br/&gt;Mail body&lt;br/&gt;&lt;br/&gt;Where {0} is a placeholder that will be replaced by the receiver name. mail1.txt and mail2.txt have the same structure except for the mail body depending on the requirement.&lt;br/&gt;Next, I needed to create a list of names and the corresponding email IDs to which the mails are to be sent. Also, I needed a flag that will indicate the type of message that is to be sent, i.e. mail1 or mail2. I created a comma separated file with the following format:&lt;br/&gt;&lt;br/&gt;&amp;lt;Receiver’s name&amp;gt;, &amp;lt;email id&amp;gt;, &amp;lt;mail body to be sent, i.e. 1 or 2&amp;gt;&lt;br/&gt;&lt;br/&gt;I wrote a console application in C# that uses the Microsoft Office 2007 Primary Interop assemblies to automate sending emails to all these contacts specified. The emails get sent using the default account configured in your Outlook. The code looks something like the following. Please note that this is a quick hack which actually works and that I have not really done a lot of error handling or exception management on this because I know the conditions under which this will be used.&lt;br/&gt;&lt;pre&gt;&lt;br/&gt;Microsoft.Office.Interop.Outlook.Application app = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook._NameSpace ns = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook.PostItem item = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook.MailItem memo = null; &lt;br/&gt;Microsoft.Office.Interop.Outlook.MAPIFolder sentFolder = null; &lt;br/&gt;StreamReader addressReader = null; &lt;br/&gt;StreamReader contentsReader = null; &lt;br/&gt;StreamWriter logWriter = null; &lt;br/&gt;&lt;br/&gt;try &lt;br/&gt;{ &lt;br/&gt;addressReader = new StreamReader(ConfigurationManager.AppSettings["addresses"]); &lt;br/&gt;String currentLine = String.Empty; &lt;br/&gt;String[] currentReceiver = null; &lt;br/&gt;String messageBodyFile = String.Empty; &lt;br/&gt;logWriter = new StreamWriter(Path.Combine(Environment.CurrentDirectory, "Log.txt"), false); &lt;br/&gt;while (!addressReader.EndOfStream) &lt;br/&gt;{ &lt;br/&gt;currentLine = addressReader.ReadLine(); &lt;br/&gt;currentReceiver = currentLine.Split(','); &lt;br/&gt;switch (currentReceiver[2]) &lt;br/&gt;{ &lt;br/&gt;case "1": &lt;br/&gt;messageBodyFile = ConfigurationManager.AppSettings["contentsFile1"]; &lt;br/&gt;break; &lt;br/&gt;&lt;br/&gt;case "2": &lt;br/&gt;messageBodyFile = ConfigurationManager.AppSettings["contentsFile2"]; &lt;br/&gt;break; &lt;br/&gt;&lt;br/&gt;default: &lt;br/&gt;Console.WriteLine("Could not send email to ", currentReceiver[0]); &lt;br/&gt;logWriter.WriteLine("Could not send email to ", currentReceiver[0]); &lt;br/&gt;currentReceiver[1] = String.Empty; &lt;br/&gt;break; &lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;#region EmailInit &lt;br/&gt;&lt;br/&gt;app = new Microsoft.Office.Interop.Outlook.Application(); &lt;br/&gt;ns = app.GetNamespace("MAPI"); &lt;br/&gt;ns.Logon(null, null, false, false); &lt;br/&gt;sentFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderSentMail); &lt;br/&gt;memo = (Microsoft.Office.Interop.Outlook.MailItem)app.CreateItem(OlItemType.olMailItem); &lt;br/&gt;&lt;br/&gt;#endregion &lt;br/&gt;&lt;br/&gt;contentsReader = new StreamReader(messageBodyFile); &lt;br/&gt;memo.To = currentReceiver[1].Trim(); &lt;br/&gt;memo.Subject = ConfigurationManager.AppSettings["mailSubject"].Trim(); &lt;br/&gt;memo.Body = String.Format(contentsReader.ReadToEnd(), currentReceiver[0]); &lt;br/&gt;memo.BodyFormat = OlBodyFormat.olFormatHTML; &lt;br/&gt;memo.Send(); &lt;br/&gt;Console.WriteLine("{0}: Sent email with body {1} to {2}:{3}", DateTime.Now, currentReceiver[2], currentReceiver[0], currentReceiver[1]); &lt;br/&gt;logWriter.WriteLine("{0}: Sent email with body {1} to {2}:{3}", DateTime.Now, currentReceiver[2], currentReceiver[0], currentReceiver[1]); &lt;br/&gt;contentsReader.Close(); &lt;br/&gt;contentsReader.Dispose(); &lt;br/&gt;} &lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;catch (System.Exception ex) &lt;br/&gt;{ &lt;br/&gt;Console.WriteLine(ex.ToString()); &lt;br/&gt;EventLog.WriteEntry("Email Automation", ex.Message, EventLogEntryType.Error); &lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;finally &lt;br/&gt;{ &lt;br/&gt;ns = null; &lt;br/&gt;app = null; &lt;br/&gt;inboxFolder = null; &lt;br/&gt;addressReader.Close(); &lt;br/&gt;addressReader.Dispose(); &lt;br/&gt;logWriter.Close(); &lt;br/&gt;logWriter.Dispose(); &lt;br/&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-2736023600956013685?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/2736023600956013685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=2736023600956013685' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2736023600956013685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2736023600956013685'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/12/sending-bulk-emails-using-outlook-and-c.html' title='Sending bulk emails using Outlook and C#'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1107880935623478999</id><published>2008-11-29T02:27:00.000-08:00</published><updated>2010-07-06T20:13:01.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>What now?</title><content type='html'>So, I vented my anger by writing a &lt;a href="http://krishnamurthy.net.in/blog/2008/11/27/what-is-the-solution-to-all-this-mess/"&gt;blog-post&lt;/a&gt; about the latest terror attacks. Apparently the NSG has flushed out the scum from the Taj hotel. Things are going back to normal. I have not watched the news since the evening of the ill fated day (EST). One of the questions I asked a couple of questions in that post was:&lt;br/&gt;&lt;br/&gt;"What can we as citizens of a civilized society do to protect our interests? The cause of these terror attacks are varied in various places, but it is innocent people walking on the street who bear the brunt (and the people who go out to fight for us)"&lt;br/&gt;&lt;br/&gt;And I have been thinking about this on and off. I have asked this question to several people. I am just plain baffled by the lack of responses or ideas. &lt;a href="http://my.opera.com/varish/blog/2008/11/29/solution-to-the-mess"&gt;Varish said&lt;/a&gt; that it is time for the political system of the country to start acting tough. Really? Is this the time for the gov to start acting? The government should have acted way too long ago. Anyway, that is not even the point.&lt;br/&gt;&lt;br/&gt;We all have conceded at some point that the government of ours is not doing much other than condemning the attacks and making vain platitudes. The dirty politicians will even turn this to their advantage so that they can gain political mileage for the upcoming general elections.&lt;br/&gt;&lt;br/&gt;All right! Enough trash talk. We know that the government is not doing what it is supposed to. So I ask the question again. What do WE do? We are the educated elite of the country. We cast those votes. We elect those representatives. Is there something we can do to help? I feel we are totally lost on that question.&lt;br/&gt;&lt;br/&gt;I suggested doing a signature campaign amongst the student and young professional networks in and out of India. We could send those signatures with a message to our respected Prime Minister. My good friend asked me whats the point behind a signature campaign? I said, "we need to make sure that the government understands that the educated elite of the country, both in India and abroad needs to see some real action now, and not just empty promises."&lt;br/&gt;&lt;br/&gt;Then he asked me a question to which I did not really have an answer: "Doesn't the government already know that it has to battle terrorism?" . Just that any Indian government does not have the guts to take the right steps which are against their own self serving motives. And even we the people are to blame. Everytime there is an attack on teh city, we say that Mumbai is unbreakable. We are the most resilient city in the world. Hell we don't want to be resilient! Why is it that all these pains and agonies are forgotten a couple of days after the bloodstains have been washed? The sacrifices of the security forces and the pains of the people disappear into oblivion and we settle down into our old routine. This continues till the time there is another attack. Oh yes, don't be fooled into thinking that they are done.&lt;br/&gt;&lt;br/&gt;So I was set into thinking what would the damn signature campaign achieve? It would probably serve the purpose to make it clear to the government that we are pissed off. But doesn't the gov already know that? Like Jayu said "they cannot be that detached from public sentiment". So how do we make them do it? In an ideal democracy (oh and we are very proud of the fact that we are a democracy) the people are able to hold the gov accountable for their actions and inactions. Why can't we do that in India?&lt;br/&gt;&lt;br/&gt;&lt;em&gt;"Electoral power is supposed to be the form of public control over its govt in a democracy. Here it gets sold for free sarees and rice during election time. The educated middle class has a very small say in the overall process."&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;So this is my sincere message to everyone reading this post. This general election, PLEASE GO AND VOTE. Cast a responsible vote. Our only goal should be to cast aside all our feelings of mutual distrust and communal agendas and questions of religion and reservation, and elect a government that would actually ensure that our people don't get slaughtered on their own street.&lt;br/&gt;&lt;br/&gt;The only other weapons that we have are the RTI and the PIL. But only the legislature has the right to ammend the constitution. The courts can only direct the legislature to do something. So let us wield the only real weapon we have. The right to vote. Let the current government understand that they have to prove a point to us, and that we are watching. And let them consider this a threat: we will not vote for you if we do not see results.&lt;br/&gt;&lt;br/&gt;Note to all the readers: If you have any ideas, post a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1107880935623478999?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1107880935623478999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1107880935623478999' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1107880935623478999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1107880935623478999'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/11/what-now.html' title='What now?'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7740888335835518704</id><published>2008-11-27T02:33:00.000-08:00</published><updated>2010-07-06T20:13:00.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>What is the solution to all this mess?</title><content type='html'>As I write this, my city burns. Terror attacks in several locations in Mumbai....it is all over the news. I don't think the country has witnessed such carnage in a long time. Yes, I say long time because India has sort of gotten used to the idea of terror attacks now. Mumbai itself has been the target of several such attacks. Barely a couple of months go by when you hear about another one of these bomb blasts on TV. Few things make me feel more helpless than a terror attack. And as I write this, I am sitting several thousands of miles away from my city.&lt;br/&gt;&lt;br/&gt;But there was something very different about what happened today/yesterday (depending on which part of the world you live in). All this while the terrorists were hidden; they planted bombs clandestinely and ran away. This time, they had the guts to walk into my city, fire at people, lob grenades, hold people hostage and gut some of the main spots in the city. What is noticeable is that these terrorists have targetted places that are frequented by westerners. Colaba is an area that has a good density of foreign tourists and the Taj hotel (where one of the bloody gunbattles are being fought) plays hosts to several foreign tourists and business delegates. This is not just an attack on India. This is an attack on all the good people of the world who want peace.&lt;br/&gt;&lt;br/&gt;There were reports of these terrorists dragging people out of the hotel and asking for their passports to look for people from the US, UK and the like. I don't know if this is confirmed news (it was definitely aired on one of the news channels broadcasting the events, so I took it at face value).&lt;br/&gt;&lt;br/&gt;A few questions strike me:&lt;br/&gt;&lt;br/&gt;1. Why is it that we are not able to prevent such blatant attacks on our home? Is our intelligence system so bad that we had no clue?&lt;br/&gt;&lt;br/&gt;2. What do these terrorists want? Perhaps we could make a deal with them if we are too scared to go out and settle scores (atleast that seems to be the case to me a lot of times, and a lot of people will agree)&lt;br/&gt;&lt;br/&gt;3. What can we as citizens of a civilized society do to protect our interests? The cause of these terror attacks are varied in various places, but it is innocent people walking on the street who bear the brunt (and the people who go out to fight for us)&lt;br/&gt;&lt;br/&gt;The situation in India is unique, as compared to other countries that face the threat of terrorism. We have several internal problems and have a very troubled history, marred by communal conflicts. The scars of such conflicts are magnified by terrorist masterminds who turn troubled youth into blood-thirsty monsters. In the very early days of terrorism, terrorists used to be foreigners (I will not name the country, but we all know who I am talking about). As time progressed, terrorists started to come from interiors of the country. These are dissatisfied youth, who have been affected by communal clashes, who are brainwashed by the big terrorist organizations, trained by them and sent back into our country to cause misery to innocent people.&lt;br/&gt;&lt;br/&gt;The solution has to be two pronged:&lt;br/&gt;&lt;br/&gt;1. Deal with the external elements who propagate the terrorist ideas and fund such endeavors. This can only be done when like minded countries cooperate with each other to end global terrorism. This is because all global terrorism is interlinked and is funded and propagated by the same set of big organizations.&lt;br/&gt;&lt;br/&gt;2. Deal with the internal elements. Bust the sleeper cells. Throw out the hidden extremists. Enforce the rule of law so that the gullible youth is not misguided by these scumbags.&lt;br/&gt;&lt;br/&gt;All this has to be implemented around a framework that is designed to prevent such future occurences. A working intelligence system (do we really have one?), a proper disaster management system, adequate security measures at hot spots. I know people say that it is difficult to police a country of billions. But this is the price we pay if we don't. After the serial train blasts, we installed faulty metal detectors at some stations (the ones on the entrance of CST station barely worked), and assign 2 police constables at each major station. Did that work? We never thought that the outside of the station could be vulnerable too. Perhaps we thought that these terrorists are gonna keep planting train bombs. Do we even have trained people who are capable enough to design solutions to handle these problems? All this infrastructure has to be put into place.&lt;br/&gt;&lt;br/&gt;The last thing I want to see is these stupid political parties trying to gain mileage out of this mess by pointing fingers at each other.  I will be very very pissed off if a party calls a Mumbai bandh or a Maharastra bandh (or any such extension) to gain public attention. Such measures gain nothing and simply cause more distress to the already troubled people. I want to see some action. I need these terrorists killed. I don't want empty promises. Are you listening? Oh and if there is something I could do........let me know. Right now I am limited to watching the news, writing pissed off emails and angry blog posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7740888335835518704?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7740888335835518704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7740888335835518704' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7740888335835518704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7740888335835518704'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/11/what-is-solution-to-all-this-mess.html' title='What is the solution to all this mess?'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-2571757276970429542</id><published>2008-10-08T23:17:00.000-07:00</published><updated>2010-07-06T20:13:00.466-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Touchy feely gcc</title><content type='html'>I am writing code in C after several years. Needless to say, I am woefully out of touch and don't remember the most basic of things. Add to that, I am writing code using a simple text editor and compiling it using gcc on commandline. Every time I see a funny error, it takes me a while to actually understand what is wrong. A really good IDE with awesome intellisense really does spoil you!&lt;br/&gt;&lt;br/&gt;So I got this funny little compilation error which left me stumped:&lt;br/&gt;&lt;br/&gt;&lt;em&gt;/tmp/cckI2FzP.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'&lt;br/&gt;collect2: ld returned 1 exit status&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;I googled and found that this error is normally related to C++, but I was writing code in plain old C. So what was wrong? I found later that I had named my code file as List.C instead of List.c. After renaming it to List.c, all was well.&lt;br/&gt;&lt;br/&gt;Turns out that filename extensions in linux are case sensitive (wonder why I did not run into that problem all these years),  and that C is a commonly used extension for C++&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-2571757276970429542?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/2571757276970429542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=2571757276970429542' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2571757276970429542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2571757276970429542'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/10/touchy-feely-gcc.html' title='Touchy feely gcc'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4015520065378498701</id><published>2008-09-02T16:05:00.000-07:00</published><updated>2010-07-06T20:13:00.234-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><title type='text'>How I met Rafael Nadal</title><content type='html'>So I was out in NYC on the second day of my trip. We did not have much planned. I wanted to go to Rockefeller Center and my friends agreed kinda for the want of a better plan. So we got out of the subway station, and we saw this Brazilian carnival happening. You know what to expect in such a place. It was full of life and lots of people; brimming full of food, music drinks, and some other good things.&lt;br/&gt;After a while I got very thirsty and wanted to get out of the place cos it was too crowded. Then we went over to Rockefeller Center and later the St. Patrick’s cathedral and did the regular tourist stuff (you know…clicking pics and all that). Most of the people were already tired and they were sitting on the cathedral stairs outside. One of my friends suddenly said,  “Hey, Rafael Nadal just walked along the street).&lt;br/&gt;“What?”. I did not want to believe that, but I just found myself saying “Lets go” and I started running across the street. I heard my friend say that he was wearing a yellow tshirt. My mind was a whirl. It could easily have been a mistake. But NYC is currently hosting the US Open and I did not want to miss a glimpse of the world’s top seeded tennis player. I spotted the man in question from across the street but the crossing was difficult due to the traffic. I had to wait for the walk signal to come on, an then I ran again. He looked slightly taller than what I expected and the hair looked shorter and straigher from behind. Nevertheless I kept running and went ahead past him. I heard that unmistakable voice speaking fluent Spanish. I forgot to mention, he was walking with a couple of other guys (and they were all walking very fast, as if they were in a hurry).&lt;br/&gt;I turned around and looked at him. I was still not sure and I just stood there while he walked past. I saw someone else approach him and shake his hand while he continued to race along the road. I was reluctant to approach him since he seemed in such a hurry and I told my friends that he wont stop for us. But two of my friends were insistent and they went and they stopped him and requested for a picture. I did not see much, but I just happened to notice Nadal turn around and pose for the photograph. I ran ahead to bask in the moment.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/09/guesswho.jpeg" title="Nadal"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/09/guesswho.jpeg" alt="Nadal" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I was meeting my favourite tennis star of the time. Ironically the guy who clicked the photograph was the one who was most crazy about Nadal. (Thanks for clicking the picture Sanatan).  After the picture was clicked, we yelled a “Thanks Rafa” chorus and we knew that our day was made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4015520065378498701?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4015520065378498701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4015520065378498701' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4015520065378498701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4015520065378498701'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/09/how-i-met-rafael-nadal.html' title='How I met Rafael Nadal'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7872854598938375564</id><published>2008-08-27T21:51:00.000-07:00</published><updated>2010-07-06T20:13:00.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Back to school</title><content type='html'>Ok. I am back after a long hiatus. Today marks the completion of 3 weeks since I landed in the USA. I have come here to pursue a Masters' Degree in Computer Science. I could not think of anything to write about because most of my recent posts have been about books I have read. The last book I read was "Pillars of the Earth" by Ken Follet, and unfortunately I did not get enough time to complete it before my flight to the US. And for some reason, I did not even carry the book with me (maybe it was the size of the book). So, its been 3 weeks since I read anything creative and hence no posts. Life in the US is not very different from what it was back home. I still feel like I am here on an extended nightout at a friend's house.&lt;br /&gt;&lt;br /&gt; The past 3 weeks were spent in setting up my new house, shopping, eating, sleeping, shopping, opening bank accounts, roaming around campus, shopping, waiting for my new laptop to get delivered, and other miscellaneous things not worth writing about. This makes me feel that I have done absolutely nothing productive in the past 3 weeks. Oh yes, I have this big obsession about productivity and using my time effectively (but I end up wasting most of my time anyway and then fret about it in posts like these).&lt;br /&gt;&lt;br /&gt; One noticeable difference between life in Bombay and life here in the US is that I do not have to use public transport as extensively as I had to while in India. My university runs a shuttle service which takes me to most nearby places, and not just to and fro. That having said, it is quite difficult to go even relative far off places without a car. Bombay suburban transport system rocks. Yes, I said Bombay and not Mumbai. You would be surprised....people here do not know Mumbai, and I like calling it by the old name. It got a classy zing to it.&lt;br /&gt;&lt;br /&gt; As it is apparent, I am suffering from a writer's block. Suggest me of something to write about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7872854598938375564?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7872854598938375564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7872854598938375564' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7872854598938375564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7872854598938375564'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/08/back-to-school.html' title='Back to school'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1866573895294902189</id><published>2008-07-22T17:33:00.000-07:00</published><updated>2010-07-06T20:12:59.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>To God belongs the East and the West</title><content type='html'>My Name is Red (&lt;em&gt;Benim Adım Kırmızı&lt;/em&gt;) is a turkish novel by Orhan Pamuk, a Nobel laureate. It won the &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/International_IMPAC_Dublin_Literary_Award" title="International IMPAC Dublin Literary Award"&gt;International IMPAC Dublin Literary Award&lt;/a&gt;&lt;/em&gt; in 2003, as well as the French &lt;em&gt;Prix du meilleur livre étranger&lt;/em&gt; and Italian &lt;em&gt;Premio Grinzane Cavour&lt;/em&gt; awards in 2002. The book in consideration in this article is the English translation by &lt;a href="http://en.wikipedia.org/wiki/Erda%C4%9F_M._G%C3%B6knar" title="Erdağ M. Göknar"&gt;Erdağ M. Göknar&lt;/a&gt;. There have been questions about the English translation not being as good as the Turkish version and the word order being quite difficult. But honestly, I did not know that the book I was reading was actually an English translation and not an original English work.&lt;br/&gt;&lt;br/&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/07/9780375706851.jpg" alt="My Name is Red" align="left" /&gt;The story is based in 16&lt;sup&gt;th&lt;/sup&gt; century Istanbul, a year before the thousandth anniversary (calculated in lunar years) of Hegira (the migration of &lt;a href="http://en.wikipedia.org/wiki/Muhammad" title="Muhammad"&gt;Muhammad&lt;/a&gt; and his followers to the city of &lt;a href="http://en.wikipedia.org/wiki/Medina" title="Medina"&gt;Medina&lt;/a&gt;). The Ottoman Sultan Murat III has commissioned an illustrated manuscript to display his power to the Venetian Doge. This manuscript is to be made utilizing the “controversial” aspects and techniques of the Frankish masters, namely portraiture and perspectives. Due to this reason, the Head Illuminator of the Sultan is bypassed and the work is commissioned to Enishte Effendi, who co-ordinates Master miniaturists &lt;em&gt;Stork&lt;/em&gt;, &lt;em&gt;Olive&lt;/em&gt;, &lt;em&gt;Butterfly&lt;/em&gt; and &lt;em&gt;Elegant&lt;/em&gt;. It is rumored that the paintings are blasphemous and an affront to Islam and The Prophet. Subsequently, the master guilder &lt;em&gt;Elegant&lt;/em&gt; working on the manuscript is murdered. The book follows the path of a murder mystery where the identity of the murderer is revealed at the end. Pamuk’s knowledge of Islamic miniatures is mind-blowing. He goes on to narrate several stories from Islamic lore, stories of great miniaturists and their history, going back to &lt;a href="http://en.wikipedia.org/wiki/Kam%C4%81l_ud-D%C4%ABn_Behz%C4%81d"&gt;Behzad&lt;/a&gt; and the Chinese influences brought by the Mongols. The book discusses and debates about various topics, the most prominent of these are:&lt;br/&gt;&lt;br/&gt;·        Form and style,&lt;br/&gt;&lt;br/&gt;·        The relationship of art to society, religion and God, and&lt;br/&gt;&lt;br/&gt;·        The artistic, cultural and political differences between the Ottomans and the Venetians.&lt;br/&gt;&lt;br/&gt;The first thing that strikes you while reading this novel is that the story is narrated in several different voices which recur throughout the story. No two consecutive chapters are narrated by the same narrator and all speak in the first person. There are a couple of rather unusual narrators: a gold coin, a tree, a dog, Satan, and even Death itself. I later figured that these narrators are in fact the central themes of the illustrations appearing in the secret manuscript in question in the book. One of the central points about traditional miniatures, I learned, is that they always appear as illustrations of a story, and never as independent paintings. Pamuk has adopted this style in his narration of the story: by describing the protagonists as part of an old manuscript, supporting the story. The characters are aware that they are characters in a story and address the reader with irony.&lt;br/&gt;&lt;br/&gt;The setting of the story in late sixteenth century Istanbul is detailed; the plot is engaging (albeit a bit slow moving in certain places) with several interesting characters. Indeed there are too many themes in the book (art, religion, Allah, love, lust, jealousy, hatred, intrigue, murder) and I cannot do justice to all of them in this short article. If you are interested in Islamic art, Ottoman miniatures or medieval Istanbul, then pick up this book. But be warned, this is not an easy or quick read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1866573895294902189?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1866573895294902189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1866573895294902189' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1866573895294902189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1866573895294902189'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/07/to-god-belongs-east-and-west.html' title='To God belongs the East and the West'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-9016821509223897487</id><published>2008-06-27T09:15:00.000-07:00</published><updated>2010-07-06T20:12:59.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>So it goes….</title><content type='html'>&lt;strong&gt;Slaughterhouse Five : Kurt Vonnegut&lt;/strong&gt;&lt;br/&gt;This book is widely regarded as one of the best anti war novels of all times. It begins as a memoir and is based around the Allied bombings of Dresden in World War II. The author Kurt Vonnegut is a minor character in the story as the narrator and is quite funny. Both Billy Pilgrim and Kurt Vonnegut are portrayed as prisoners of war in Germany.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/slaughterhousefive.jpg" title="SlaughterHouseFiveCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/slaughterhousefive.jpg" alt="SlaughterHouseFiveCover" align="left" border="0" /&gt;&lt;/a&gt;The book has an unusual narrative style which is quite nonlinear in time since the protagonist Billy Pilgrim is "unstuck in time" i.e. he experiences different periods of his life in seemingly random order and he has no idea which part of his life he will visit next. As a result of this queer condition, Billy experiences his own death several times and he switches back and forth between prisoner camp in Germany and his life as an affluent optometrist in Ilium, NY, and sometimes his stay on the planet Tralfamadore. One of the important events in Billy's life is when he gets abduced by aliens from the planet Tralfamadore. The Tralfamadorians teach Billy about the concept of time as the fourth dimension, fate, and death's lack of discrimination. To the Tralfamadorians, who can see in four dimensions, everything always exists and has always existed. Everyone is alive and has always been alive. They see time as we might see the Rocky Mountains, stretching endlessly on both ends. So if all events are predecided, then "what about free will?" asks Billy. The Tralfamadorian responds: "I've visited thirty-one inhabited planets in the universe... Only on Earth is there any talk of free will". This lends to the belief that human beings do what they do because they must.&lt;br/&gt;&lt;br/&gt;The book opens with the narrator's account of his own relation with the Dresden bombings and his reasons for writing the book. Although there is no reason to believe that this account is also not fictional. Thus, the real story begins with chapter 2. I found this form of writing unusual (although amusing) which they say, is common to postmodern meta-fiction. Throughout the story, the author pokes fun at the concept of war, portraying the characters in sarcastically humorous light. Vonnegut says that the soldiers dying in these wars are young men barely out of high school. That is the reason he portrays these soldiers as scared young men instead of heroes of war. This is so that his book does not encourage more wars in which children would be sent to die (quite like the so called Childrens' Crusades).&lt;br/&gt;&lt;br/&gt;All in all, a very entertaining and funny book. Quite an easy read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-9016821509223897487?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/9016821509223897487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=9016821509223897487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/9016821509223897487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/9016821509223897487'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/06/so-it-goes.html' title='So it goes….'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1389138177667060645</id><published>2008-06-22T17:56:00.000-07:00</published><updated>2010-07-06T20:12:59.892-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>In a hole in the ground there lived a hobbit</title><content type='html'>The Hobbit by J.R.R Tolkien was nominated for the &lt;a href="http://en.wikipedia.org/wiki/Carnegie_Medal" title="Carnegie Medal"&gt;Carnegie Medal&lt;/a&gt; and awarded a prize from the &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/New_York_Herald_Tribune" title="New York Herald Tribune"&gt;New York Herald Tribune&lt;/a&gt;&lt;/em&gt; for best juvenile fiction of the year (1938). Also, &lt;em&gt;The Hobbit&lt;/em&gt; has been recognized as "Most Important 20th-Century Novel (for Older Readers)" in the &lt;em&gt;Children's Books of the Century&lt;/em&gt; poll in &lt;em&gt;Books for Keeps&lt;/em&gt;.&lt;br/&gt;&lt;br/&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/07/200px-hobbit_cover.JPG" alt="hobbit cover" align="left" /&gt; I should probably have read this book before reading Lord of the Rings since quite a few characters in the epic tale have been introduced in The Hobbit: most notably the titular protagonist Bilbo Baggins, Gandalf the wizard, Gollum aka Smeagol. Also noteworthy is a side character Gloin, who is said to be the father of Gimli- Elf Friend (Fellowship of the Rings). Two other noteworthy characters are the dwarves Balin and Ori. Recall that the Fellowship of the Rings discovers Balin's tomb in Mazarbul in the Mines of Moria and the Book of Mazarbul written by Ori. The story also accounts how Bilbo Baggins gains the possession of the One Ring. The ring, along with the character of Gollum, sets the tone for the much known sequel.&lt;br/&gt;&lt;br/&gt;The tale is based around a typical comfort loving, homely hobbit Bilbo Baggins who finds himself on an adventure with thirteen dwarves also accompanied by Gandalf, an itinerant wizard who disappears in the middle of the story later to reappear at key moments (typical Gandalf). Gandalf is out on his own business but incidentally assisting the dwarves on their quest. The team of the thirteen dwarves and the "burglar" Bilbo have set out to reclaim an ancient treasure of Thror the Dwarf King under the mountain which is now guarded by a ferrocious dragon Smaug. Their journey takes them over strange and dangerous lands which lands them into mortal peril more than once. The story is in the form of an episodic quest and the prose is interspersed with poetry and songs that are typical to Tolkien's works.&lt;br/&gt;&lt;br/&gt;The publishers of the Hobbit requested for a sequel which eventally resulted in the epic &lt;em&gt;Lord of the Rings&lt;/em&gt;. Tolkien rewrote some of the parts of the Hobbit in order to facilitate a smooth transition into the darker themes of the Lord of the Rings. Tolkien wrote &lt;em&gt;The Hobbit&lt;/em&gt; as a story for children, and &lt;em&gt;The Lord of the Rings&lt;/em&gt; for the same audience who had subsequently grown up since its publication. The Lord of the Rings was written in less humorous tones deals with more philosophical and darker themes: while the Hobbit has its share of death and danger, it is about the quest for a lost treasure. Even though many of the encounters are dangerous or threatening, the general tone is light-hearted. On the other hand, LOTR is about the war between good and evil: it is the war for middle earth. One can scarcely underestimate the gravity of that situation.&lt;br/&gt;&lt;br/&gt;All said, I am quite amazed at the detailed work of Tolkien who has gone to extraordinary lengths to bring his fictional world to life. Middle Earth has a very well documented history: wars and legends, legacies left by kings, generations and genealogies, maps, ancient lands, wild characters, magical objects, runes, languages, lores, music, poetry; and all this changing through the times as characters change and their places are taken up by new generations. The chronology almost reads like a history textbook.&lt;br/&gt;&lt;br/&gt;A live-action film version was announced on 18 December 2007, to be co-produced by &lt;a href="http://en.wikipedia.org/wiki/Metro-Goldwyn-Mayer" title="Metro-Goldwyn-Mayer"&gt;MGM&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/New_Line_Cinema" title="New Line Cinema"&gt;New Line Cinema&lt;/a&gt;, and produced by &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Lord_of_the_Rings_film_trilogy" title="The Lord of the Rings film trilogy"&gt;Lord of the Rings&lt;/a&gt;&lt;/em&gt; director &lt;a href="http://en.wikipedia.org/wiki/Peter_Jackson" title="Peter Jackson"&gt;Peter Jackson&lt;/a&gt;. A date of 2011 has been proposed for its release.&lt;br/&gt;&lt;br/&gt;&lt;em&gt; Far over misty mountains cold&lt;/em&gt;&lt;br/&gt;&lt;em&gt;To dungeons deep and caverns old&lt;/em&gt;&lt;br/&gt;&lt;em&gt;We must away, ere break of day,&lt;/em&gt;&lt;br/&gt;&lt;em&gt;To find our long-forgotten gold. &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1389138177667060645?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1389138177667060645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1389138177667060645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1389138177667060645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1389138177667060645'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/06/in-hole-in-ground-there-lived-hobbit.html' title='In a hole in the ground there lived a hobbit'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1437333092690309841</id><published>2008-05-26T19:09:00.000-07:00</published><updated>2010-07-06T20:12:59.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>The Enchantress of Florence: Salman Rushdie</title><content type='html'>&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/05/enchantressofflorence.jpg" alt="Enchantress of Florence" align="left" /&gt;&lt;br/&gt;&lt;br/&gt;I was told to be wary before picking up a Rushdie book because Rushdie’s works are normally considered very heavy, with challenging prose and long sentences. My friends told me to read one only if I was okay with spending a lot of time with the book. I remembered seeing Rushdie's interview on television several weeks ago when he spoke of his latest novel. He was talking about Jodha being an imaginary character in Mughal history.  At that time I did understand the relevance of his statements. I thought it was probably because of the ongoing controversy about Jodhaa-Akbar: the movie.&lt;br/&gt;&lt;br/&gt;Half of the story is based in the time of "Akbar the Greatest", in the city of victory – Sikri, while the other half is based in Renaissance Florence - the time of Niccolo Machiavelli. The story is about a lost Mughal princess: an enchantress who is the common thread between these different worlds. Magic and enchantments have a special place in this story and they have been treated very differently from other books based on magic. This is not fantasy fiction. It is historical fiction; in spite of the heavy concentration of enchantments throughout the story. The characters we meet include the Navratnas in akbar's court:  Abul Fazl, Birbal, Tansen and the others. Then there is Salim, Badauni and the like.&lt;br/&gt;&lt;br/&gt;The character of Queen Jodha is particularly enigmatic because of the magical character ascribed to her. Rushdie does not explain Jodha's character; he leaves it to the reader's imagination. She could either be a product of collective schizophrenia at the insistence of the Emperor’s will; or as a product of the amazing creative powers of the Emperor: The Shelter of the World, the Invincible.&lt;br/&gt;&lt;br/&gt;Truly, the character of Akbar is grand. I always admired Akbar as a great king; the grand unifier of &lt;em&gt;Hindoostan&lt;/em&gt;, but never before had I imagined his character as he has been shown in this book. From Rushdie's descriptions, you can truly feel the awesome power vested in this man.  He is the omnipotent emperor: the man who has the power to do absolutely anything in the world. He can conquer the world;  He can bring the perfect woman of his dreams to life from a mere fantasy.&lt;br/&gt;&lt;br/&gt;In the other part of the world we have Nicollo Machiavelli and his two friends growing up as young boys in Florence. There are glimpses of Girolamo Savonarola's weepers, whose doctrines are put to end in a blazing fire quite like the "bonfire of vanities”, practised by him and his followers. Only in this case it was Savonarola and his followers who were roasted in the fire. The story traces the fall of the Medici, the creation of the republic, the return of the Medici, the troubled times of Europe, Popes indulging in warmongering etc.&lt;br/&gt;&lt;br/&gt;Rushdie's command over the English language is staggering. The prose is convoluted at times, which is quite a characteristic of his writing, but this is certainly not at the expense of readability. Although I took a little more time on this book than others of the same length, I did not quite realize it till I finished the book and sat down to write a review.&lt;br/&gt;&lt;br/&gt;A celebration of creative writing. Recommended reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1437333092690309841?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1437333092690309841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1437333092690309841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1437333092690309841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1437333092690309841'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/05/enchantress-of-florence-salman-rushdie.html' title='The Enchantress of Florence: Salman Rushdie'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5614354676230454716</id><published>2008-05-05T10:18:00.000-07:00</published><updated>2010-07-06T20:12:59.872-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Styles on the Login.aspx page</title><content type='html'>&lt;font size="2"&gt;I have been playing around with the ASP.NET login controls lately. After getting the membership and role management framework to work on my website (which is quite a task in itself), I set to figure out some other small things. In this case, I wanted to apply custom styles to the login control on my Login.aspx page.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;Doing this is as simple as assigning a class to the CssClass attribute of the Login control and to any sub-controls whose appearance  you want to modify.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;body&lt;/font&gt; &lt;font color="#ff0000"&gt;class&lt;/font&gt;&lt;font color="#0000ff"&gt;="Body"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;form&lt;/font&gt; &lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;font color="#0000ff"&gt;="form1"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;div&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#800000"&gt;Login&lt;/font&gt; &lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;font color="#0000ff"&gt;="Login1"&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&lt;/font&gt; &lt;font color="#ff0000"&gt;CssClass&lt;/font&gt;&lt;font color="#0000ff"&gt;="TextBox"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;LoginButtonStyle&lt;/font&gt; &lt;font color="#ff0000"&gt;CssClass&lt;/font&gt;&lt;font color="#0000ff"&gt;="Button"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;asp&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#800000"&gt;Login&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;div&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;form&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;Now I should mention that these classes are contained in a .css file inside my App_Themes/Default/Styles folder.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;So in the &amp;lt;head&amp;gt; section of the page, I added the following:&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;link&lt;/font&gt; &lt;font color="#ff0000"&gt;rel&lt;/font&gt;&lt;font color="#0000ff"&gt;="stylesheet"&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="text/css"&lt;/font&gt; &lt;font color="#ff0000"&gt;href&lt;/font&gt;&lt;font color="#0000ff"&gt;="../App_Themes/Default/Styles/LoginStyles.css"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;Simple enough eh? Wrong!&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;No matter what I tried, no matter how much I played with the path to the css file, the styles simply won’t be rendered on my page. The same styles get applied if you use them in a &amp;lt;style /&amp;gt; element in the page itself. I was flummoxed.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;The thing to note here is that the authorization section in my website is configured as:&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;authorization&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;      &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;deny&lt;/font&gt; &lt;font color="#ff0000"&gt;users&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;?&lt;/font&gt;"&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;authorization&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="2"&gt;This means that unauthenticated users will not be able to access the website resources: which includes style sheets and/or images on the website!!&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="2"&gt;So, in order to get this to work, I had to move the stylesheets for the login page and the related images to a separate folder called “AllowAll” and make the following additions to my web.config file:&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;location&lt;/font&gt; &lt;font color="#ff0000"&gt;path&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;AllowAll&lt;/font&gt;"&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;    &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;system.web&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;      &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;authorization&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;        &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;allow&lt;/font&gt; &lt;font color="#ff0000"&gt;users&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;*&lt;/font&gt;"&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;      &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;authorization&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;    &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;system.web&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;  &lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;location&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="2"&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;Basically this section means that all users (*) should be allowed access inside the “AllowAll” folder, regardless of whether they are authenticated or not.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="2"&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;Then I simply changed the path to my stylesheet on the login.aspx page:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;link&lt;/font&gt; &lt;font color="#ff0000"&gt;rel&lt;/font&gt;&lt;font color="#0000ff"&gt;="stylesheet"&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="text/css"&lt;/font&gt; &lt;font color="#ff0000"&gt;href&lt;/font&gt;&lt;font color="#0000ff"&gt;="AllowAll/LoginStyles.css"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="2"&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;And that did the trick. Woof…so much for authorization!!&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5614354676230454716?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5614354676230454716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5614354676230454716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5614354676230454716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5614354676230454716'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/05/styles-on-loginaspx-page.html' title='Styles on the Login.aspx page'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-820912489635280412</id><published>2008-04-24T16:06:00.000-07:00</published><updated>2010-07-06T20:12:59.861-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Book Review #3</title><content type='html'>&lt;strong&gt;The Scarlet Pimpernel&lt;/strong&gt;: Baroness Emmuska Orczy&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/thescarletpimpernel1908.jpg" title="TheScarletPimpernelCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/thescarletpimpernel1908.jpg" alt="TheScarletPimpernelCover" align="left" border="0" /&gt;&lt;/a&gt;This is an adventure novel set in the reign of terror that followed the French Revolution. The novel is based in the year 1792: the year of grace when French aristocrats are being slaughtered at the gullotine in the name of &lt;em&gt;liberté égalité fraternité&lt;/em&gt;.&lt;br/&gt;&lt;br/&gt;A league of brave englishmen led by an elusive and heroic leader - The Scarlet Pimpernel, travel in disguise to France, plot a series of daring rescues to save their condemned fellow Frenchmen from daily executions. The identity of the Scarlet Pimpernel is a closely guarded secret and is unknown even to those people whom he rescues. The league, and especially their leader gain legendary status in the elite English society and equal amount of notoriety amongst the French revolutionists.&lt;br/&gt;&lt;br/&gt;The book is based around one such rescue plot and is cleverly woven as a cat and mouse chase between the plotters and the French authorities. There is a nice love story which has been interwoven into the fabric of the story without making it seem too obtrusive or distracting. The love story adds to the plot without making it maudlin. The novel is very typically British in terms of the characters and the environs: beautiful women, gallant men, curtsies, bows, formal parties, fashion, high society et. al.&lt;br/&gt;&lt;br/&gt;An enjoyable suspense novel although quite predictable at times. Recommended reading.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Black Friday&lt;/strong&gt; - Hussain Zaidi&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/blackfriday.jpg" title="BlackFridayCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/blackfriday.jpg" alt="BlackFridayCover" align="left" border="0" /&gt;&lt;/a&gt;A meticulously researched book based on the Bombay serial blasts of 1992. I had not watched the movie, so was not well versed with the plot. The first few pages that described the actual blasts  really scared me. Real good work done by the author who collated all the information from thousands of pages of CBI dossiers, courtroom accounts, interviews with real people etc. Since the blasts were a contemporary event during our lifetime, I found this to be an important book with respect to the history of the city. A chilling account of how a set of gangsters (and not terrorists) could mastermind and execute the sinister plot that killed and maimed scores of innocent people.&lt;br/&gt;&lt;br/&gt;This is probably the most controversial case in the history of Indian law enforcement, and hence I don't think we can take every plot in the book at face value; but the book does give a pretty decent picture of the overall framework of the planning for the blast, the execution, the investigation, the court verdicts, and some related events like the Sanjay Dutt case, a couple of gang-wars etc. worth a one time read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-820912489635280412?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/820912489635280412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=820912489635280412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/820912489635280412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/820912489635280412'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/04/book-review-3.html' title='Book Review #3'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6189751353177721691</id><published>2008-04-22T05:47:00.000-07:00</published><updated>2010-07-06T20:12:59.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><title type='text'>Answers to India Quiz</title><content type='html'>1. Naxalbari in northern West Bengal lent its name to the Naxalite movement (&lt;a href="http://en.wikipedia.org/wiki/Naxalism" title="http://en.wikipedia.org/wiki/Naxalism"&gt;http://en.wikipedia.org/wiki/Naxalism&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;2. Potti Sriramulu's fast led to the creation of Andhra Pradesh: the first state that was created on the basis of linguistic lines (&lt;a href="http://en.wikipedia.org/wiki/Potti_Sriramulu" title="http://en.wikipedia.org/wiki/Potti_Sriramulu"&gt;http://en.wikipedia.org/wiki/Potti_Sriramulu&lt;/a&gt;). (One point each for the personality and the state)&lt;br/&gt;&lt;br/&gt;3. Madhavrao Sadashivrao Golwalkar (1906-1973), popularly known as &lt;em&gt;Guruji&lt;/em&gt;, was the second "Sarasanghachalak" of the RSS. (&lt;a href="http://en.wikipedia.org/wiki/Madhav_Sadashiv_Golwalkar" title="http://en.wikipedia.org/wiki/Madhav_Sadashiv_Golwalkar"&gt;http://en.wikipedia.org/wiki/Madhav_Sadashiv_Golwalkar&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;4. Sheikh Mohammad Abdullah (father of Farooq Abdullah and grandfather of Omar Abdullah) (&lt;a href="http://en.wikipedia.org/wiki/Sheikh_Abdullah" title="http://en.wikipedia.org/wiki/Sheikh_Abdullah"&gt;http://en.wikipedia.org/wiki/Sheikh_Abdullah&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;5. Vengalil Krishnan Krishna Menon (&lt;a href="http://en.wikipedia.org/wiki/Krishna_Menon" title="http://en.wikipedia.org/wiki/Krishna_Menon"&gt;http://en.wikipedia.org/wiki/Krishna_Menon&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;6. Dr. B.R. Ambedkar: Friday, the 25th November, 1949: Constituent Assembly of India (&lt;a href="http://parliamentofindia.nic.in/ls/debates/vol11p11.htm" title="http://parliamentofindia.nic.in/ls/debates/vol11p11.htm"&gt;http://parliamentofindia.nic.in/ls/debates/vol11p11.htm&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;7. Jayprakash (JP) Narayan (&lt;a href="http://en.wikipedia.org/wiki/Jayprakash_Narayan" title="http://en.wikipedia.org/wiki/Jayprakash_Narayan"&gt;http://en.wikipedia.org/wiki/Jayprakash_Narayan&lt;/a&gt; )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6189751353177721691?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6189751353177721691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6189751353177721691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6189751353177721691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6189751353177721691'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/04/answers-to-india-quiz.html' title='Answers to India Quiz'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-2329977851662904766</id><published>2008-04-14T06:25:00.000-07:00</published><updated>2010-07-06T20:12:59.771-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><title type='text'>India Quiz</title><content type='html'>&lt;ol id="d_ok"&gt;&lt;br/&gt;&lt;li id="f0qu"&gt;&lt;br/&gt;&lt;p id="gmua" style="margin-bottom: 0.14in"&gt;X is a small village in West 	Bengal. In March 1976, X saw the beginning of a series of 	demonstrations by local peasants against landlords who had evicted 	tenants and/or hoarded grain. The demonstrations grew more militant, 	leading to skirmishes with the police, killing of a constable, 	retaliatory firing on the crowds. Eventually the peasants decided to 	take to arms, and soon landlords were being beheaded.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="z-7k" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;X soon came to enjoy an iconic status among Indian revolutionaries. The village gave its name to the region and, in time, to anyone who would use arms to fight the Indian state on behalf of the oppressed. Thus the place X gave birth to a movement which still plagues the hinterland of several Indian states. &lt;strong id="c05m"&gt;Name the movement.  Bonus point for guessing the name of X&lt;/strong&gt;.&lt;/p&gt;&lt;br/&gt;&lt;p id="mvqz" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br id="c_v_" /&gt;&lt;br id="wacx" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="n7ue" start="2"&gt;&lt;br/&gt;&lt;li id="e55d"&gt;&lt;br/&gt;&lt;p id="ffhe" style="margin-bottom: 0.14in"&gt;X began his last fast at 	Chennai in Oct 1952 demanding for a separate state. He died in Dec 	1952 which led to a huge uproar amongst his followers. The people 	went into a wild frenzy destroying public property. The disturbance 	assumed a major scale and continued for 3-4 days. Finally the then 	Prime Minister Jawaharlal Nehru announced the creation of a separate 	state Y.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="fyzc" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;img src="http://docs.google.com/File?id=dszrss8_52cmj6t5gn" id="yvq2" name="graphics1" align="left" border="0" height="261" hspace="13" width="235" /&gt;&lt;br id="u1pz" clear="left" /&gt;&lt;br id="grc-" /&gt;&lt;br id="kml_" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p id="i6g7" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;The creation of state Y catalyzed the creation of several other Indian states based on linguistic lines. &lt;strong id="l123"&gt;Name the state Y and the person X&lt;/strong&gt;.&lt;/p&gt;&lt;br/&gt;&lt;p id="h.d4" class="western" style="margin-bottom: 0.14in; page-break-before: always"&gt; &lt;br id="zl67" /&gt;&lt;br id="ittt" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="lhwo" start="3"&gt;&lt;br/&gt;&lt;li id="b5gg"&gt;&lt;br/&gt;&lt;p id="pqyr" style="margin-bottom: 0.14in"&gt;Identify this man who was the 	force behind the formation of the organizations that now comprise 	the "Sangh Parivar", which celebrated 2006-07 as its 	centenary year.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="h8li" style="margin-left: 2.5in; margin-bottom: 0.14in"&gt;&lt;img src="http://docs.google.com/File?id=dszrss8_53gfhkftff" id="nvof" name="gowalkar" align="bottom" border="0" height="301" width="264" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p id="lf3b" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt; This man was the mentor and teacher to generations of extremists who have carried forward his struggle for a Hindu nation. &lt;strong id="g3yg"&gt;Identify him&lt;/strong&gt;.&lt;/p&gt;&lt;br/&gt;&lt;p id="grwm" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br id="ges6" /&gt;&lt;br id="ofxf" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="hrbi" start="4"&gt;&lt;br/&gt;&lt;li id="xgqw"&gt;&lt;br/&gt;&lt;p id="q8om" style="margin-bottom: 0.14in"&gt;This man, also known as 	Sher-e-Kashmir was the leader of the National Conference, Kashmir's 	largest political party of the time. He is perhaps the most 	important political figure in the history of modern Jammu &amp;amp; 	Kashmir. He was jailed in the year 1953 on the charges of corruption 	and separatism, but was released after 11 years.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="kbgr" style="margin-left: 2.5in; margin-bottom: 0.14in"&gt;&lt;img src="http://docs.google.com/File?id=dszrss8_54hgr9hw4j" id="g52y" name="sheikh2" align="bottom" border="0" height="253" width="163" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p id="gx26" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;He was later exiled from Kashmir in 1971 for 18 years. Later, after coming to an accord with Prime Minister Indira Gandhi, he went on to become the Chief Minister of J&amp;amp;K which he held until his death. &lt;strong id="sk6x"&gt;Identify him&lt;/strong&gt;.&lt;/p&gt;&lt;br/&gt;&lt;p id="oy1k" class="western" style="margin-bottom: 0.14in; page-break-before: always"&gt; &lt;br id="k7:s" /&gt;&lt;br id="h_qx" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="q016" start="5"&gt;&lt;br/&gt;&lt;li id="d6.:"&gt;&lt;br/&gt;&lt;p id="q9jx" style="margin-bottom: 0.14in"&gt;This man, an old friend of 	Nehru, was educated at the London School of Economics, was also the 	first editor Penguin's prestigious non-fiction imprint, Pelican 	Books. He served as the Indian High Commissioner at London, a 	cabinet minister without a portfolio, a representative of India at 	the UN and at disarmament meetings in Geneva, but most importantly 	as one of the most controversial Defense Ministers of the country.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="d9on" class="western" style="margin-left: 1in; text-indent: 0.5in; margin-bottom: 0.14in"&gt; &lt;img src="http://docs.google.com/File?id=dszrss8_55cbcdj6jc" id="qs9n" name="vkkrishnamenon" align="bottom" border="0" height="365" width="411" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p id="jzi3" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;He came under a lot of heat after India's staggering defeat at the Sino-Indian war of 1962 and was forced to resign from office for the country's apparent lack of military preparedness. &lt;strong id="orfs"&gt;Identify the man in the picture with Nehru&lt;/strong&gt;.&lt;/p&gt;&lt;br/&gt;&lt;p id="v00w" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;br id="jx1o" /&gt;&lt;br id="um0n" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="mpcg" start="6"&gt;&lt;br/&gt;&lt;li id="f46s"&gt;&lt;br/&gt;&lt;p id="quk_" style="margin-bottom: 0.14in"&gt;The following is an excerpt of 	a speech in November 1949 by X. This part of the speech is concerned 	with the place of popular protest in a democracy:&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="hbax" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;“&lt;em id="ld-5"&gt;We must abandon the method of civil disobedience, non-cooperation and satyagraha. Under an autocratic regime, there might be some justification for them, but not now, when constitutional methods of redress were available. Satyagraha and the like are nothing but the grammar of anarchy and the sooner they are abandoned, the better for us&lt;/em&gt;”.&lt;/p&gt;&lt;br/&gt;&lt;p id="j83k" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;&lt;strong id="zwpx"&gt;Identify the speaker&lt;/strong&gt;.&lt;br id="zqt1" /&gt;&lt;br id="zb0x" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ol id="k9.t" start="7"&gt;&lt;br/&gt;&lt;li id="xlsr"&gt;&lt;br/&gt;&lt;p id="g8yn" style="margin-bottom: 0.14in"&gt;X was, a renowned social 	worker, dedicated his life to Vinoba Bhave's Sarvodaya movement. He 	later led the students of Bihar in a popular protest against the 	misrule and corruption in the government which went on to assume 	massive proportions in several states.&lt;/p&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;&lt;p id="czt-" style="margin-left: 1.5in; text-indent: 0.5in; margin-bottom: 0.14in"&gt; &lt;img src="http://docs.google.com/File?id=dszrss8_56gmgszrcm" id="d3bu" name="graphics2" align="bottom" border="0" height="313" width="271" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p id="a3tg" style="margin-left: 0.5in; margin-bottom: 0.14in"&gt;He asked Indira Gandhi to resign from the position of PM when she was found to be guilty of violating electoral laws. Instead, Indira clamped down an emergency and X was one of the leaders who was detained as a political prisoner&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-2329977851662904766?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/2329977851662904766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=2329977851662904766' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2329977851662904766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2329977851662904766'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/04/india-quiz.html' title='India Quiz'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-2577994544983261655</id><published>2008-04-07T16:48:00.000-07:00</published><updated>2010-07-06T20:12:59.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>More Books…</title><content type='html'>Here are a few words about a couple of books I read in the past several weeks:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Interpreter of Maladies: Jhumpa Lahiri&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/interpreter.jpg" title="InterpreterOfMaladiesCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/interpreter.thumbnail.jpg" alt="InterpreterOfMaladiesCover" align="left" border="0" /&gt;&lt;/a&gt;This a collection of 9 short stories. If there is one connecting emotion between all the stories, then it is nostalgia. Most stories are about Indian Americans who are caught between their native culture that is their own, and the new world they live in. These stories reminded me of the quaint short stores book I studied for my ICSE. All stories have an emotional appeal, and I never thought I would like stories such as these where there is no conceivable end to most, but the quality of story-telling is of the highest order. And oh boy, the descriptions of food in the stories are so good that you are moved to the point of hunger.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Animal Farm: George Orwell&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/animalfarm_1sted.jpg" title="AnimalFarmCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/animalfarm_1sted.thumbnail.jpg" alt="AnimalFarmCover" align="left" border="0" /&gt;&lt;/a&gt;Another one of those overhyped acclaimed literary classics.Was ranked 31 in the TIME magazine's list of 100 best novels since 1923. Was okay.......one time read maybe for the sake of it.......or maybe I was not able to truly appreciate the depth of satire in the book. Said to resemble the Russian revolution and thereafter the rise of Stalin......this book is based on how the animals in a farm overthrow their owner and take over the farm.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;The Namesake: Jhumpa Lahiri&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/the_namesake.JPG" title="TheNamesakeCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/the_namesake.thumbnail.JPG" alt="TheNamesakeCover" align="left" border="0" /&gt;&lt;/a&gt;I was really put of by Indian authors till I came across Lahiri. I really love the style of her writing. This is her first complete novel which is based on the life of an Indian born and brought up in the US. The story is based on events in Calcutta, Boston and New York, revolving around the lives of people caught between two different cultures.&lt;br/&gt;&lt;br/&gt;Even though there is no proper ending to the story (which is somewhat a characteristic of most of her work till now), the book is an entertaining read till the very last page. Her narrative style is pure brilliance, and once again, her knowledge of the culinary arts is astounding. The descriptions of food are so amazing that I do not recommend you to read this on an empty stomach :)&lt;br/&gt;&lt;br/&gt;All in all, a good work of fiction. Recommended reading, if only for the sake of a stellar demonstration of creative writing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-2577994544983261655?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/2577994544983261655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=2577994544983261655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2577994544983261655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2577994544983261655'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/04/more-books.html' title='More Books…'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7689753070395468024</id><published>2008-01-06T12:32:00.000-08:00</published><updated>2010-07-06T20:12:59.755-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMware'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Creating a new virtual server</title><content type='html'>I already have a virtual hard disk with Windows Server 2003 installed that runs on Microsoft’s Virtual PC 2007. One major issue with my current OS image is the lack of support for USB drivers and sound drivers. Despite repeated efforts, the sound drivers on VPC simply fail to work. I tried googling, but I could not find anything useful.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/nosound.JPG" title="no sound"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/nosound.thumbnail.JPG" alt="no sound" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;And since it’s a virtual machine, there are no specific drivers that I could install to get this thing to work. I found something called Virtual Machine Additions in MS VPC, which I assumed would be something similar to VMWare Tools.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/vmadditions.JPG" title="vm additions"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/vmadditions.thumbnail.JPG" alt="vm additions" /&gt;&lt;/a&gt;The funny thing is that there is no indication of any change, during or after the installation of VM Additions. The sound just would not work.&lt;br/&gt;I had enough of MS VPC, and I decided to do a fresh installation, this time on VMWare. The other major reason for doing this is that I really want a fresh and lean server VM where I can install all the stuff I want; and doing this on the already bloated VHD wasn’t a good idea.&lt;br/&gt;One problem though: I do not have a CD of the Windows 2003 Server; but instead I have the whole setup in the form of a folder hierarchy.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/win2k3installation.JPG" title="windows 2003 installation folder"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/win2k3installation.thumbnail.JPG" alt="windows 2003 installation folder" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;What I needed now is an ISO image of the setup that I can use to boot up my virtual machine. Whats more, I needed a bootable CD. I thought I could do this using Nero 7. Ah, but Murphy’s law: the installation of Nero 7 on my machine is from the CD that came free with my SONY DVD writer, and Nero did not provide me a copy of Nero Burning ROM in the disc. So I could not create a bootable ISO. So I looked for a free software that will serve my purpose. I found CDBurnerXP. I found this to be a neat tool which gave me an option of creating ISO images and bootable discs.&lt;br/&gt;&lt;br/&gt;Now, before I could create a bootable ISO, I needed a boot image which I downloaded after performing a google search (don’t remember where I got it from, but there are many available online and links to these are provided by the numerous guides). This boot image that I used was called boot.ima, which was a small file 2 KB in size.&lt;br/&gt;To specify that you want to create a bootable disc, click on disc-&amp;gt; boot options:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/bootabledisc.JPG" title="bootable disc"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/bootabledisc.thumbnail.JPG" alt="bootable disc" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Click on “make disc bootable”. Select the path to the boot image. Set the emulation type to none. Keep the Load segment as it is, and set the sector count to 4. Select “Disable ISO version number extension(;1)”, and click OK. Click file -&amp;gt; save compilation as ISO file, and create ISO.&lt;br/&gt;That’s all I needed. I created a new virtual machine with VMware, and made it point to the ISO file I just created so that it could boot up from the ISO.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/cdboot.JPG" title="vmware cd boot"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2008/01/cdboot.thumbnail.JPG" alt="vmware cd boot" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;That’s it; I fired up the VM, and it booted from the ISO. I continued with the OS installation as usual. After that was done, I logged into the OS as admin, and what do I see? The sound doesn’t work. I installed VMWare tools and it showed that audio is enabled, but the OS in my VM was simply not able to play any sounds except for the system sounds. This time I opened device manager and chose the option of automatically installing drivers from Windows updates, and it downloaded the required drivers. After a reboot, when I started the machine again, I heard the sweet sound of windows startup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7689753070395468024?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7689753070395468024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7689753070395468024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7689753070395468024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7689753070395468024'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2008/01/creating-new-virtual-server.html' title='Creating a new virtual server'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-9187934372142374751</id><published>2007-12-15T05:32:00.000-08:00</published><updated>2007-12-15T05:41:27.032-08:00</updated><title type='text'>My blog has moved</title><content type='html'>I acquired a new domain recently, and I hosted my blog there.&lt;br /&gt;&lt;a href="http://krishnamurthy.net.in"&gt;http://krishnamurthy.net.in&lt;/a&gt;&lt;br /&gt;Have not administered a website before, but it was fun. I bought the domain from rediff. Got some hosting space from freehostia, and publishing software from wordpress. Some configuration, some uploading, and its up.&lt;br /&gt;&lt;br /&gt;Thanks to the import feature of Wordpress, I could get all my old posts from my original blog to the new site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-9187934372142374751?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/9187934372142374751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=9187934372142374751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/9187934372142374751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/9187934372142374751'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/12/my-blog-has-moved.html' title='My blog has moved'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4529308494073965130</id><published>2007-12-08T14:11:00.000-08:00</published><updated>2010-07-06T20:12:59.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Bomb scare</title><content type='html'>It was the usual friday evening. I left early from work and met my friends at Mocha, Powai. After a typical friday evening lazy chatter over some coffee, we decided to go eat at KFC. We ordered a fried chicken bucket, french fries, and pepsi (and a zinger for my friend with an especially good appetite). Dinner with friends on a friday evening is something I really enjoy. Good food, good stories......keeps me happy.&lt;br/&gt;&lt;br/&gt;When we were deep into our fried chicken, an attendant walked over to our table and asked "Is that your bag sir?". We turned and saw that he was pointing at a bagpack placed on a chair adjacent to our table. It was a good looking bag, one big enough to stuff a laptop into it...the kind we usually carry to work or college. We replied that the bag did not belong to any of us. The attendant nodded and walked away.....probably to ask some other people.&lt;br/&gt;&lt;br/&gt;Typical of a bunch of guys spending a lazy evening, we started making jokes about the bag holding explosives, left there by someone with ill intentions. We started debating why someone would like to blow up a joint like KFC with such a low population. Someone said that a bag of that size can hold enough explosives to blow up more than just KFC. After a while the security guy also walked up to the bag and stared at it for a while. We looked at each other and muttered that we should get out of the place now. We were joking earlier, but now it was over 10-15 mins and the owner of the bag was still not found. I ate hurriedly and rushed into the washroom to wash my hands and take a leak (hey, I know there was a bomb ticking in there, but like I said I had to take a leak). I was planning on how I would move when I get out of the washroom, take up bag and rush out. I cursed myself because I did not ask my friends to take my bag and move out.&lt;br/&gt;&lt;br/&gt;When I walked out into the dining area again, I saw two guys walking out of the door: one of them was carrying a big bagback. I walked closer to our table and saw that the bag that was sitting so conspicuously was now gone. I went over to my friends and asked them whether the owner of the bag was found. They smiled and replied in the affirmative. I was relieved, but now disappointed that I had to rush through my last piece of chicken without being able to savor it properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4529308494073965130?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4529308494073965130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4529308494073965130' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4529308494073965130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4529308494073965130'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/12/bomb-scare_08.html' title='Bomb scare'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6838423258501099738</id><published>2007-12-08T12:11:00.000-08:00</published><updated>2007-12-11T11:23:10.191-08:00</updated><title type='text'>Bomb scare</title><content type='html'>It was the usual friday evening. I left early from work and met my friends at Mocha, Powai. After a typical friday evening lazy chatter over some coffee, we decided to go eat at KFC. We ordered a fried chicken bucket, french fries, and pepsi (and a zinger for my friend with an especially good appetite). Dinner with friends on a friday evening is something I really enjoy. Good food, good stories......keeps me happy.&lt;br /&gt;&lt;br /&gt;When we were deep into our fried chicken, an attendant walked over to our table and asked "Is that your bag sir?". We turned and saw that he was pointing at a bagpack placed on a chair adjacent to our table. It was a good looking bag, one big enough to stuff a laptop into it...the kind we usually carry to work or college. We replied that the bag did not belong to any of us. The attendant nodded and walked away.....probably to ask some other people.&lt;br /&gt;&lt;br /&gt;Typical of a bunch of guys spending a lazy evening, we started making jokes about the bag holding explosives, left there by someone with ill intentions. We started debating why someone would like to blow up a joint like KFC with such a low population. Someone said that a bag of that size can hold enough explosives to blow up more than just KFC. After a while the security guy also walked up to the bag and stared at it for a while. We looked at each other and muttered that we should get out of the place now. We were joking earlier, but now it was over 10-15 mins and the owner of the bag was still not found. I ate hurriedly and rushed into the washroom to wash my hands and take a leak (hey, I know there was a bomb ticking in there, but like I said I had to take a leak). I was planning on how I would move when I get out of the washroom, take up bag and rush out. I cursed myself because I did not ask my friends to take my bag and move out.&lt;br /&gt;&lt;br /&gt;When I walked out into the dining area again, I saw two guys walking out of the door: one of them was carrying a big bagback. I walked closer to our table and saw that the bag that was sitting so conspicuously was now gone. I went over to my friends and asked them whether the owner of the bag was found. They smiled and replied in the affirmative. I was relieved, but now disappointed that I had to rush through my last piece of chicken without being able to savor it properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6838423258501099738?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6838423258501099738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6838423258501099738' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6838423258501099738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6838423258501099738'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/12/bomb-scare.html' title='Bomb scare'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5508047324180326408</id><published>2007-11-23T23:52:00.000-08:00</published><updated>2010-07-06T20:12:59.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Books….</title><content type='html'>&lt;p&gt;I thought I might mention some of the books I have read that I could recommend to others who read fiction. Maybe you, the reader could recommend me some of the good books you've read? So feel free to post comments. Today I write about two of the greatest books I have read.&lt;/p&gt;&lt;br/&gt;To Kill a Mockingbird: Harper Lee&lt;br/&gt;&lt;p&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/mockingbirdfirst.JPG" title="ToKillAMockingbirdCover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/mockingbirdfirst.thumbnail.JPG" alt="ToKillAMockingbirdCover" align="left" border="0" /&gt;&lt;/a&gt;Pulitzer Prize winner published in 1960. One of those very few books I've read whom I could actually call "English Literature” and "novel" at the same time. Written in the first person, this book shows the world from the perspective of a small girl - Jean Lousie "Scout" Finch, and as a grown woman reflecting on her childhood. The author has acknowledged that this character is loosely based on her own childhood. After I read this book, I learned that this novel is widely taught in schools in english speaking countries; and I was surprised at the same time because I never thought I would like a book that was actually taught as literary text. This entertaining and extremely well written novel is tied to the themes of tolerance and prejudice. The character of Atticus Finch, the narrator's father is one of the most enduring fictional images of integrity. Atticus is certainly one of my heroes in the literary world.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br/&gt;Catch 22: Joseph Heller&lt;br/&gt;&lt;p&gt;&lt;a href="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/catch22.jpg" title="Catch22Cover"&gt;&lt;img src="http://krishnamurthy.net.in/blog/wp-content/uploads/2009/01/catch22.thumbnail.jpg" alt="Catch22Cover" align="left" border="0" /&gt;&lt;/a&gt;Resulting from its specific use in the book, the phrase "Catch-22" became a term of common usage in the English language meaning a “no win situation”. When I picked up this book, all I knew about the book was that it was based on humor. As I finished the book, I realized that it is also a general critique of bureaucracy and human reasoning.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;The writing style of the book was unlike anything I had read before. The prose is circular and paradoxical, something you get used to soon. Normally one would think that such a kind of writing won’t be funny, but the author’s majestic control over the language and the words he chooses makes it a real winner. A lot of the events in the book have been repeatedly described from different points of view at different times; and the description is as if the reader already knows about them. So, with each iteration, we learn a little more about the story.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;The way the characters have been developed (and a lot of them), is simply majestic. I think each character represents one facet of human nature. Yossarian, the protagonist of the story is one of my favourites in the literary world.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5508047324180326408?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5508047324180326408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5508047324180326408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5508047324180326408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5508047324180326408'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/11/books_23.html' title='Books….'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7284939257457101946</id><published>2007-11-23T21:52:00.000-08:00</published><updated>2007-11-23T23:27:17.109-08:00</updated><title type='text'>Books....</title><content type='html'>&lt;p class="MsoNormal"&gt;I thought I might mention some of the books I have read that I could recommend to others who read fiction. Maybe you, the reader could recommend me some of the good books you've read? So feel free to post comments. Today I write about two of the greatest books I have read.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Kill a Mockingbird: Harper Lee&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;p class="MsoListParagraph"&gt;Pulitzer Prize winner published in 1960. One of those very few books I've read which I could actually call "English Literature” and novel at the same time. Written in the first person, this book shows the world from the perspective of a small girl - Jean Lousie "Scout" Finch, and as a grown woman reflecting on her childhood. The author has acknowledged that this character is loosely based on her own childhood. After I read this book, I learned that this novel is widely taught in schools in english speaking countries; and I was surprised at the same time because I never thought I would like a book that was actually taught as literary text. This  entertaining and extremely well written novel is tied to the themes of tolerance and prejudice. The character of Atticus Finch, the narrator's father is one of the most enduring fictional images of integrity. Atticus is certainly one of my heroes in the literary world.&lt;/p&gt;&lt;p class="MsoListParagraph"&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;  Catch 22: Joseph Heller&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;p class="MsoListParagraphCxSpFirst"&gt;Resulting from its specific use in the book, the phrase "Catch-22" became a term of common usage in the English language meaning a “no win situation”. When I picked up this book, all I knew about the book was that it was based on humor. As I finished the book, I realized that it is also a general critique of bureaucracy and human reasoning.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle"&gt;The writing style of the book was unlike anything I had read before. The prose is circular and paradoxical, something you get used to soon. Normally one would think that such a kind of writing won’t be funny, but the author’s majestic control over the language and the words he chooses makes it a real winner. A lot of the events in the book have been repeatedly described from different points of view at different times; and the description is as if the reader already knows about them. So, with each iteration, we learn a little more about the story.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast"&gt;The way the characters have been developed (and a lot of them), is simply majestic. I think each character represents one facet of human nature. &lt;span style=""&gt; &lt;/span&gt;Yossarian, the protagonist of the story is one of my favourites in the literary world.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:11;"  &gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:11;"  &gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7284939257457101946?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7284939257457101946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7284939257457101946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7284939257457101946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7284939257457101946'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/11/books.html' title='Books....'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4214467063559675793</id><published>2007-11-15T06:30:00.000-08:00</published><updated>2010-07-06T20:12:59.622-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Skype woes with IIS</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span&gt;I had installed JBoss on my machine to get Scrumworks Basic working. Somehow that stopped my IIS from working on port 80. So I uninstalled Scrumworks. For some unknown reason, the default website on IIS still wont start. There was this red icon beside default website in IIS. When I tried to start it, it kept giving me the error: Doesnt start -&amp;gt; Unexpected error 0x8ffe2740 occurred.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;span&gt;I restarted IIS a number of times, even uninstalled and reinstalled it, but of no avail. I figured that some other application was listening on port 80 which was causing a conflict. But I uninstalled JBoss, then what was causing the issue? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span&gt;Couldnt figure out what application was listening on port 80.....did a &lt;a href="http://www.google.co.in/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;q=cannot+start+default+website+%2B+unexpected+error&amp;amp;btnG=Search&amp;amp;meta="&gt;google search&lt;/a&gt; and found that skype (of all things) could be a culprit....&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://bp3.blogger.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s1600-h/skypePort80.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://bp3.blogger.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s320/skypePort80.JPG" align="absmiddle" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;span&gt;I did not even bother to look inside the 2&lt;sup&gt;nd&lt;/sup&gt; link (which mentioned the skype). I just exited the thing, and my default website started! Then I read a little further and made a small little change in the skype connection settings as shown.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4214467063559675793?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4214467063559675793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4214467063559675793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4214467063559675793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4214467063559675793'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/11/skype-woes-with-iis_15.html' title='Skype woes with IIS'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s72-c/skypePort80.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-5449778473204523095</id><published>2007-11-15T04:30:00.000-08:00</published><updated>2008-12-10T16:29:15.097-08:00</updated><title type='text'>Skype woes with IIS</title><content type='html'>&lt;span style=""&gt;I had installed JBoss on my machine to get Scrumworks Basic working. Somehow that stopped my IIS from working on port 80. So I uninstalled Scrumworks. For some unknown reason, the default website on IIS still wont start. There was this red icon beside default website in IIS. When I tried to start it, it kept giving me the error: Doesnt start -&gt; Unexpected error 0x8ffe2740 occurred.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;I restarted IIS a number of times, even uninstalled and reinstalled it, but of no avail. I figured that some other application was listening on port 80 which was causing a conflict. But I uninstalled JBoss, then what was causing the issue?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Couldnt figure out what application was listening on port 80.....did a google search and found that skype (of all things) could be a culprit....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;a href="http://www.google.co.in/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;q=cannot+start+default+website+%2B+unexpected+error&amp;amp;btnG=Search&amp;amp;meta"&gt;http://www.google.co.in/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;q=cannot+start+default+website+%2B+unexpected+error&amp;amp;btnG=Search&amp;amp;meta&lt;/a&gt;=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;I did not even bother to look inside the 2&lt;sup&gt;nd&lt;/sup&gt; link (which mentioned the skype). I just exited the thing, and my default website started! Then I read a little further and made a small little change in the skype connection settings as shown.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s1600-h/skypePort80.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s320/skypePort80.JPG" alt="" id="BLOGGER_PHOTO_ID_5133044022081141730" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-5449778473204523095?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/5449778473204523095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=5449778473204523095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5449778473204523095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/5449778473204523095'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/11/skype-woes-with-iis.html' title='Skype woes with IIS'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xixVZ5lgH1U/Rzw8V5CWu-I/AAAAAAAAAFI/UiO3dt1gRYI/s72-c/skypePort80.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4844343277616864013</id><published>2007-10-05T16:04:00.000-07:00</published><updated>2010-07-06T20:12:59.328-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Viruses, worms, creepy crawlies…</title><content type='html'>I was about to leave for college to get some documentation work done. I insert my pen drive into the USB port and double click on a folder. What do I notice? It only looks like a folder, but its actually an executable. I instantly realized my terrible mistake, when an IM window popped up on my screen and I saw that a junk message was sent to one of my contacts from my account. It was the irritating and notorious W32/Yahlover.worm. I immediately sent an apology message to all my contacts and logged off.&lt;br/&gt;&lt;br/&gt;I tried to clean up all files from my USB drive but it won't let me delete the infected files, which had not replicated itself in each folder in the drive. I started a full system scan and found that there is a file called SSVICHOSST.exe in my system32 folder. This file also tried to access the internet which thankfully my McAfee firewall was able to block.&lt;br/&gt;&lt;br/&gt;It all started when I used this same pen drive at a cyber cafe in Matunga to get a print out. When I inserted the stick on my home machine, McAfee said that the autorun.ini file is infected and has been cleaned automatically. I thought that was the end of the story. But somehow the infection had persisted and had spread to my physical machine now. I could not format the pen drive, could not delete the infected file from my comp even though my antivirus did detect the infection. It simply said that it was unable to clean/delete/quarantine the file.&lt;br/&gt;&lt;br/&gt;I thought that I would simply deal with the problem later after I get back home and I can simply avoid using Yahoo till the time I fix it. When I got back, I realized that the problem was not just with Yahoo messenger. The rogue files were actually hidden files and the folder options in the tools menu of windows explorer was missing. So there was no way to view hidden files (I always keep this setting to show hidden files). I could not navigate using command line as the command window simply kept disappearing as soon as I open it. Task manager and Regedit won't open. It kept saying that these have been disabled by the Administrator. Even if I get to the files, I won't be able to delete it cos' a rogue process called SSVICHOSST was already running.&lt;br/&gt;&lt;br/&gt;At this point there was really something easy that I could have done, but somehow I did it a more geeky way. I first booted into linux and tried to see if I could delete the file, but somehow I had some read/write permission issues, so I just dropped the idea there. I wrote a program in C# to list all the currently running process.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%"&gt;Process[] processes = Process.GetProcesses();&lt;/span&gt;&lt;span style="font-size: 85%"&gt;foreach (Process process in processes)&lt;br/&gt;{&lt;br/&gt;Console.WriteLine(process.ToString());&lt;br/&gt;if (process.ToString().Contains("SSVICHOSST"))&lt;br/&gt;{&lt;br/&gt;process.Kill();&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;That is what actually showed me that there are multiple instances of a process called SSVICHOSST running on my machine. I could not even view the results of my console application till I actually set a breakpoint and debugged into it. Finally I just added a line of code which would kill the process of the above said name. Thankfully the process got killed.&lt;br/&gt;&lt;br/&gt;Once that happened, I was able to open the command window, and my antivirus was able to delete the dirty file. Now I also opened msconfig and saw that the file was set to start at bootup, so I unchecked that option too. I still did not have my taskman, regedit, and folder options. But the infected files I thought were gone.&lt;br/&gt;&lt;br/&gt;Booted the comp in safe mode, and logged in as Administrator (which should have been the first thing I should have done). I ran the virus scan again and it caught another instance in another folder. This one was attached to the winlogon.exe. I was able to quarantine it so that it does not launch itself everytime with winlogon. Turned off system restore, installed AVG AntiRootkit utility. I searched for malicious instances in the registry and deleted them. (found one in yahoo messenger, and one in msconfig related keys)&lt;br/&gt;&lt;br/&gt;Logged back in normal mode and ran the AntiRootkit utility which found nothing. So finally I think the infection was gone, but the damage still remained. To get regedit working, I opened gpedit.msc -&amp;gt; User Configuration | Administrative Templates | System. There was an option pertaining "disable registry editing tools". It was set to "Not configured". Nevertheless I enabled it once, and then set it back to "Not configured". Doing this ensures that the &lt;span style="font-style: italic"&gt;DisableRegistryTools&lt;/span&gt; registry value is removed successfully. Now I could open the registry editor.&lt;br/&gt;Next I navigated to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies\ System and deleted the &lt;span style="font-style: italic"&gt;DisableTaskMgr &lt;/span&gt;key. This got my taskman back.&lt;br/&gt;Finally made another small change in group policy to get back the folder options. The last thing I did was to disable autorun on all drives using TweakUI.&lt;br/&gt;&lt;br/&gt;As I write this, my machine is being scanned by the Kaspersky online AV scanner. I hate people who use their programming skills to create malicious software that causes pain and misery to others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4844343277616864013?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4844343277616864013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4844343277616864013' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4844343277616864013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4844343277616864013'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/10/viruses-worms-creepy-crawlies_05.html' title='Viruses, worms, creepy crawlies…'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4698539382862893206</id><published>2007-10-05T14:04:00.000-07:00</published><updated>2007-10-05T14:39:43.616-07:00</updated><title type='text'>Viruses, worms, creepy crawlies...</title><content type='html'>I was about to leave for college to get some documentation work done. I insert my pen drive into the USB port and double click on a folder. What do I notice? It only looks like a folder, but its actually an executable. I instantly realized my terrible mistake, when an IM window popped up on my screen and I saw that a junk message was sent to one of my contacts from my account. It was the irritating and notorious W32/Yahlover.worm. I immediately sent an apology message to all my contacts and logged off.&lt;br /&gt;&lt;br /&gt;I tried to clean up all files from my USB drive but it won't let me delete the infected files, which had not replicated itself in each folder in the drive. I started a full system scan and found that there is a file called SSVICHOSST.exe in my system32 folder. This file also tried to access the internet which thankfully my McAfee firewall was able to block.&lt;br /&gt;&lt;br /&gt;It all started when I used this same pen drive at a cyber cafe in Matunga to get a print out. When I inserted the stick on my home machine, McAfee said that the autorun.ini file is infected and has been cleaned automatically. I thought that was the end of the story. But somehow the infection had persisted and had spread to my physical machine now. I could not format the pen drive, could not delete the infected file from my comp even though my antivirus did detect the infection. It simply said that it was unable to clean/delete/quarantine the file.&lt;br /&gt;&lt;br /&gt;I thought that I would simply deal with the problem later after I get back home and I can simply avoid using Yahoo till the time I fix it. When I got back, I realized that the problem was not just with Yahoo messenger. The rogue files were actually hidden files and the folder options in the tools menu of windows explorer was missing. So there was no way to view hidden files (I always keep this setting to show hidden files). I could not navigate using command line as the command window simply kept disappearing as soon as I open it. Task manager and Regedit won't open. It kept saying that these have been disabled by the Administrator. Even if I get to the files, I won't be able to delete it cos' a rogue process called SSVICHOSST was already running.&lt;br /&gt;&lt;br /&gt;At this point there was really something easy that I could have done, but somehow I did it a more geeky way. I first booted into linux and tried to see if I could delete the file, but somehow I had some read/write permission issues, so I just dropped the idea there. I wrote a program in C# to list all the currently running process.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;            Process[] processes = Process.GetProcesses();&lt;br /&gt;&lt;br /&gt;           foreach (Process process in processes)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(process.ToString());&lt;br /&gt;               if (process.ToString().Contains("SSVICHOSST"))&lt;br /&gt;               {&lt;br /&gt;                   process.Kill();&lt;br /&gt;               }&lt;br /&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That is what actually showed me that there are multiple instances of a process called SSVICHOSST running on my machine. I could not even view the results of my console application till I actually set a breakpoint and debugged into it. Finally I just added a line of code which would kill the process of the above said name. Thankfully the process got killed.&lt;br /&gt;&lt;br /&gt;Once that happened, I was able to open the command window, and my antivirus was able to delete the dirty file. Now I also opened msconfig and saw that the file was set to start at bootup, so I unchecked that option too. I still did not have my taskman, regedit, and folder options. But the infected files I thought were gone.&lt;br /&gt;&lt;br /&gt;Booted the comp in safe mode, and logged in as Administrator (which should have been the first thing I should have done). I ran the virus scan again and it caught another instance in another folder. This one was attached to the winlogon.exe. I was able to quarantine it so that it does not launch itself everytime with winlogon. Turned off system restore, installed AVG AntiRootkit utility. I searched for malicious instances in the registry and deleted them. (found one in yahoo messenger, and one in msconfig related keys)&lt;br /&gt;&lt;br /&gt;Logged back in normal mode and ran the AntiRootkit utility which found nothing. So finally I think the infection was gone, but the damage still remained. To get regedit working, I opened gpedit.msc -&gt; User Configuration | Administrative Templates | System. There was an option pertaining "disable registry editing tools". It was set to "Not configured". Nevertheless I enabled it once, and then set it back to "Not configured". Doing this ensures that the &lt;span style="font-style: italic;"&gt;DisableRegistryTools&lt;/span&gt; registry value is removed successfully. Now I could open the registry editor.&lt;br /&gt;Next I navigated to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies\ System and deleted the &lt;span style="font-style: italic;"&gt;DisableTaskMgr &lt;/span&gt;key. This got my taskman back.&lt;br /&gt;Finally made another small change in group policy to get back the folder options. The last thing I did was to disable autorun on all drives using TweakUI.&lt;br /&gt;&lt;br /&gt;As I write this, my machine is being scanned by the Kaspersky online AV scanner. I hate people who use their programming skills to create malicious software that causes pain and misery to others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4698539382862893206?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4698539382862893206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4698539382862893206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4698539382862893206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4698539382862893206'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/10/viruses-worms-creepy-crawlies.html' title='Viruses, worms, creepy crawlies...'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-329925848350055143</id><published>2007-09-07T13:36:00.000-07:00</published><updated>2010-07-06T20:12:59.173-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Getting Pidgin, getting Gtalk</title><content type='html'>I installed Ubuntu 7.04 which has Gaim preinstalled in it. For some reason I was not able to get Gtalk working on gaim. I checked up the google support page and found that there weren't any instructions specific to gaim, and now there is Pidgin. So I decided to get Pidgin hoping that GTalk would work on it.&lt;br/&gt;&lt;br/&gt;First I downloaded the Pidgin source from http://pidgin.im/ because that seemed to be the preferable thing to do. I realized that I will first have to install some prerequisites before I compile the source. So I did this:&lt;br/&gt;&lt;span style="font-family: monospace"&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic"&gt;sudo apt-get install libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;The first package libgtk2.0 dev installs GTK2.0 development headers. I also installed the &lt;span style="font-weight: bold; font-style: italic"&gt;build-dep gaim&lt;/span&gt; package which installs the list of dependencies on your machine that the ubuntu developers used for gaim. After that I uninstalled gaim and gaim-data using synaptic.&lt;br/&gt;&lt;br/&gt;Once you are done with that, you are ready to compile the Pidgin source code. First extract the source from the tar archive. Then run ./configure. My friend told me that a regular ./configure won't suffice here because things like google talk may not work. So I configured it with the following switches:&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight: bold; font-style: italic"&gt;./configure --enable-dbus --enable-nm --enable-mono --enable-gnutls=yes --enable-nss=yes --enable-gtkspell=yes --enable-plugins&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;That it:&lt;br/&gt;&lt;span style="font-weight: bold; font-style: italic"&gt;make&lt;/span&gt;&lt;br/&gt;&lt;span style="font-weight: bold; font-style: italic"&gt;sudo make install&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;That installs Pidgin on the system. To get GTalk working on my Pidgin, in addition to the instructions listed on the google support page, I also had to click on the advanced tab of the account setting and check the "Force old (port 5223) SSL", set connection port to 5223 and connect server to talk.google.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-329925848350055143?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/329925848350055143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=329925848350055143' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/329925848350055143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/329925848350055143'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/09/getting-pidgin-getting-gtalk_07.html' title='Getting Pidgin, getting Gtalk'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6806431610432708752</id><published>2007-09-07T11:36:00.000-07:00</published><updated>2007-09-07T13:46:32.784-07:00</updated><title type='text'>Getting Pidgin, getting Gtalk</title><content type='html'>I installed Ubuntu 7.04 which has Gaim preinstalled in it. For some reason I was not able to get Gtalk working on gaim. I checked up the google support page and found that there weren't any instructions specific to gaim, and now there is Pidgin. So I decided to get Pidgin hoping that GTalk would work on it.&lt;br /&gt;&lt;br /&gt;First I downloaded the Pidgin source from http://pidgin.im/ because that seemed to be the preferable thing to do. I realized that I will first have to install some prerequisites before I compile the source. So I did this:&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;sudo apt-get install libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first package libgtk2.0 dev installs GTK2.0 development headers. I also installed the  &lt;span style="font-style: italic; font-weight: bold;"&gt;build-dep gaim&lt;/span&gt; package which installs the list of dependencies on your machine that the ubuntu developers used for gaim. After that I uninstalled gaim and gaim-data using synaptic.&lt;br /&gt;&lt;br /&gt;Once you are done with that, you are ready to compile the Pidgin source code. First extract the source from the tar archive. Then run ./configure. My friend told me that a regular ./configure won't suffice here because things like google talk may not work. So I configured it with the following switches:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;./configure --enable-dbus --enable-nm --enable-mono --enable-gnutls=yes --enable-nss=yes --enable-gtkspell=yes --enable-plugins&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That it:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;sudo make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That installs Pidgin on the system. To get GTalk working on my Pidgin, in addition to the instructions listed on the google support page, I also had to click on the advanced tab of the account setting and check the "Force old (port 5223) SSL", set connection port to 5223 and connect server to talk.google.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6806431610432708752?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6806431610432708752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6806431610432708752' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6806431610432708752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6806431610432708752'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/09/getting-pidgin-getting-gtalk.html' title='Getting Pidgin, getting Gtalk'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6284903996960078348</id><published>2007-09-03T14:22:00.000-07:00</published><updated>2010-07-06T20:12:59.159-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Development man pages</title><content type='html'>I was doing some elementary IPC programming on linux, and was looking for the man pages of the library calls that I was using in my programs (for functions like "perror", "execlp" etc.) 'cos its been a while since I have done anything in C. The way to get the manual page for these calls is:&lt;br/&gt;&lt;br/&gt;kv$ man 3 "functionName"&lt;br/&gt;&lt;br/&gt;where the number 3 specifies section number 3, which stands for library calls.&lt;br/&gt;&lt;br/&gt;Now, it so happens that the development man pages are excluded by default in Ubuntu linux. A quick google search told me that the name of the package I was looking for is "manpages-dev.&lt;br/&gt;&lt;br/&gt;Do:&lt;br/&gt;kv$ sudo apt-get install manpages-dev&lt;br/&gt;&lt;br/&gt;and you get the documentation for all the methods that you want!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6284903996960078348?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6284903996960078348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6284903996960078348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6284903996960078348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6284903996960078348'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/09/development-man-pages_03.html' title='Development man pages'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-8470861950873467896</id><published>2007-09-03T12:22:00.000-07:00</published><updated>2007-09-03T12:30:32.973-07:00</updated><title type='text'>Development man pages</title><content type='html'>I was doing some elementary IPC programming on linux, and was looking for the man pages of the library calls that I was using in my programs (for functions like "perror", "execlp" etc.) 'cos its been a while since I have done anything in C. The way to get the manual page for these calls is:&lt;br /&gt;&lt;br /&gt;kv$ man 3 "functionName"&lt;br /&gt;&lt;br /&gt;where the number 3 specifies section number 3, which stands for library calls.&lt;br /&gt;&lt;br /&gt;Now, it so happens that the development man pages are excluded by default in Ubuntu linux. A quick google search told me that the name of the package I was looking for is "manpages-dev.&lt;br /&gt;&lt;br /&gt;Do:&lt;br /&gt;kv$ sudo apt-get install manpages-dev&lt;br /&gt;&lt;br /&gt;and you get the documentation for all the methods that you want!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-8470861950873467896?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/8470861950873467896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=8470861950873467896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8470861950873467896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8470861950873467896'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/09/development-man-pages.html' title='Development man pages'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-3032832163899262956</id><published>2007-08-19T09:40:00.000-07:00</published><updated>2010-07-06T20:12:58.905-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>SQL Server Reporting Service woes</title><content type='html'>I just installed SQL Server 2005 on my home PC. When I opened http://localhost/reports to check out if my Reporting Service is working properly, I got the following error:&lt;br/&gt;&lt;br/&gt;The report server has encountered a configuration error. See the report server log files for more information. (rsServerConfigurationError)&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Access to the path 'C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\RSReportS&lt;wbr&gt;&lt;/wbr&gt;erver.config' is denied.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;I found &lt;a href="http://prologika.com/CS/blogs/blog/archive/2007/07/12/ssrs-setup-woes.aspx"&gt;this&lt;/a&gt; post by Teo Lachev that shed some light on the problem. I figured that the rsreportserver.config file must be accessible by the MACHINE\ASPNET user. From Lachev's post, I figured I could right click on the file and simply add another user to the ACL (I remember doing that sometime). But when I click on the file, I dont find any security tab anywhere. I went up to the folder "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer" and right clicked on it:&lt;br/&gt;&lt;a href="http://bp2.blogger.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s1600-h/security.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://bp2.blogger.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s320/security.JPG" align="middle" border="0" /&gt;&lt;/a&gt;&lt;br/&gt;So I was fretting that I cannot edit the ACL for the file or the folder. I dont know if this is just my machine, or if this is generic. I somehow remember right clicking on a file/folder and adding another user to the ACL of that particular file/folder. But I have done that on my work machine which is part of a domain. Is it not possible to edit ACLs on a stand alone machine which is not part of a domain? Somebody please tell me that.&lt;br/&gt;&lt;br/&gt;Meanwhile I was desperate to get my SSRS running, so I wrote this small code snippet in C# to add the ASPNET user to the ReportServer folder:&lt;br/&gt;&lt;pre lang="csharp"&gt;DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer");&lt;br/&gt;&lt;br/&gt;DirectorySecurity dirSecurity = directoryInfo.GetAccessControl();&lt;br/&gt;&lt;br/&gt;try&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;	DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();&lt;br/&gt;	FileSystemAccessRule newAccessRule = new FileSystemAccessRule(new System.Security.Principal.NTAccount("MYCOMP", "ASPNET"), FileSystemRights.FullControl, AccessControlType.Allow);&lt;br/&gt;&lt;br/&gt;	directorySecurity.AddAccessRule(newAccessRule);&lt;br/&gt;	Directory.SetAccessControl(directoryInfo.FullName, directorySecurity);&lt;br/&gt;}&lt;br/&gt;catch (System.Runtime.InteropServices.SEHException sehException)&lt;br/&gt;{&lt;br/&gt;       Console.WriteLine(sehException.Message);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;catch (Exception e)&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;	Console.WriteLine(e.Message);&lt;br/&gt;}&lt;/pre&gt;&lt;br/&gt;After that when I viewed the ACL for this folder, I saw that ASPNET user was successfully added. But this still did not solve my problem. So I wrote a similar piece of code to allow full permissions to the ASPNET user for every file inside the ReportServer folder.&lt;br/&gt;&lt;pre lang="csharp"&gt;&lt;br/&gt;try&lt;br/&gt;{&lt;br/&gt;	foreach (FileInfo fileInfo in directoryInfo.GetFiles())&lt;br/&gt;	{&lt;br/&gt;		FileSystemAccessRule newAccessRule = new FileSystemAccessRule(new System.Security.Principal.NTAccount("MYCOMP", "ASPNET"), FileSystemRights.FullControl, AccessControlType.Allow);&lt;br/&gt;		fileSecurity = fileInfo.GetAccessControl();&lt;br/&gt;		fileSecurity.AddAccessRule(newAccessRule);&lt;br/&gt;		File.SetAccessControl(fileInfo.FullName, fileSecurity);&lt;br/&gt;	}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;catch (System.Runtime.InteropServices.SEHException sehException)&lt;br/&gt;{&lt;br/&gt;	Console.WriteLine(sehException.Message);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;catch (Exception e)&lt;br/&gt;{&lt;br/&gt;	Console.WriteLine(e.Message);&lt;br/&gt;}&lt;/pre&gt;&lt;br/&gt;After this when I tried to access the ReportServer website, it worked!! Anyway, this was just a one time fix. If I reinstall SQL Server again, then I might have run this code again. Is there some way to edit ACLs for a particular file/folder? Maybe I have not done enough searching.&lt;br/&gt;&lt;br/&gt;Update: Found this link for the security tab: http://www.mydigitallife.info/2006/07/19/missing-or-no-security-tab-found-in-windows-xp-professional/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-3032832163899262956?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/3032832163899262956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=3032832163899262956' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3032832163899262956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3032832163899262956'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/08/sql-server-reporting-service-woes_19.html' title='SQL Server Reporting Service woes'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s72-c/security.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6393981215905383251</id><published>2007-08-19T07:40:00.000-07:00</published><updated>2008-12-10T16:29:15.291-08:00</updated><title type='text'>SQL Server Reporting Service woes</title><content type='html'>I just installed SQL Server 2005 on my home PC. When I opened http://localhost/reports to check out if my Reporting Service is working properly, I got the following error:&lt;br /&gt;&lt;br /&gt;The report server has encountered a configuration error. See the report  server log files for more information. (rsServerConfigurationError)  &lt;ul&gt;&lt;li&gt;Access to the path 'C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting  Services\ReportServer\RSReportS&lt;wbr&gt;erver.config' is denied.&lt;/li&gt;&lt;/ul&gt;I found &lt;a href="http://prologika.com/CS/blogs/blog/archive/2007/07/12/ssrs-setup-woes.aspx"&gt;this&lt;/a&gt; post by Teo Lachev that shed some light on the problem. I figured that the rsreportserver.config file must be accessible by the MACHINE\ASPNET user. From Lachev's post, I figured I could right click on the file and simply add another user to the ACL (I remember doing that sometime). But when I click on the file, I dont find any security tab anywhere. I went up to the folder "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer" and right clicked on it:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s1600-h/security.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s320/security.JPG" alt="" id="BLOGGER_PHOTO_ID_5100424411424681602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So I was fretting that I cannot edit the ACL for the file or the folder. I dont know if this is just my machine, or if this is generic. I somehow remember right clicking on a file/folder and adding another user to the ACL of that particular file/folder. But I have done that on my work machine which is part of a domain. Is it not possible to edit ACLs on a stand alone machine which is not part of a domain? Somebody please tell me that.&lt;br /&gt;&lt;br /&gt;Meanwhile I was desperate to get my SSRS running, so I wrote this small code snippet in C# to add the ASPNET user to the ReportServer folder:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer");&lt;br /&gt;           DirectorySecurity dirSecurity = directoryInfo.GetAccessControl();&lt;br /&gt;           try&lt;br /&gt;           {&lt;br /&gt;               DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();&lt;br /&gt;               FileSystemAccessRule newAccessRule = new FileSystemAccessRule(new System.Security.Principal.NTAccount("MYCOMP", "ASPNET"), FileSystemRights.FullControl, AccessControlType.Allow);&lt;br /&gt;&lt;br /&gt;               directorySecurity.AddAccessRule(newAccessRule);&lt;br /&gt;               Directory.SetAccessControl(directoryInfo.FullName, directorySecurity);&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           catch (System.Runtime.InteropServices.SEHException sehException)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(sehException.Message);&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           catch (Exception e)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(e.Message);&lt;br /&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After that when I viewed the ACL for this folder, I saw that ASPNET user was successfully added. But this still did not solve my problem. So I wrote a similar piece of code to allow full permissions to the ASPNET user for every file inside the ReportServer folder.&lt;br /&gt;&lt;br /&gt;           &lt;span style=";font-family:courier new;font-size:85%;"  &gt;try&lt;br /&gt;           {&lt;br /&gt;               foreach (FileInfo fileInfo in directoryInfo.GetFiles())&lt;br /&gt;               {&lt;br /&gt;                   FileSystemAccessRule newAccessRule = new FileSystemAccessRule(new System.Security.Principal.NTAccount("MYCOMP", "ASPNET"), FileSystemRights.FullControl, AccessControlType.Allow);&lt;br /&gt;                   fileSecurity = fileInfo.GetAccessControl();&lt;br /&gt;&lt;br /&gt;                   fileSecurity.AddAccessRule(newAccessRule);&lt;br /&gt;                   File.SetAccessControl(fileInfo.FullName, fileSecurity);&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           catch (System.Runtime.InteropServices.SEHException sehException)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(sehException.Message);&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           catch (Exception e)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(e.Message);&lt;br /&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After this when I tried to access the ReportServer website, it worked!! Anyway, this was just a one time fix. If I reinstall SQL Server again, then I might have run this code again. Is there some way to edit ACLs for a particular file/folder? Maybe I have not done enough searching.&lt;br /&gt;&lt;br /&gt;Update: Found this link for the security tab: http://www.mydigitallife.info/2006/07/19/missing-or-no-security-tab-found-in-windows-xp-professional/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6393981215905383251?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6393981215905383251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6393981215905383251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6393981215905383251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6393981215905383251'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/08/sql-server-reporting-service-woes.html' title='SQL Server Reporting Service woes'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xixVZ5lgH1U/RshY-p6y7oI/AAAAAAAAAD0/uyUiqt9k3X4/s72-c/security.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7317850598107796508</id><published>2007-08-01T13:34:00.000-07:00</published><updated>2010-07-06T20:12:58.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Why my friends dont do business with ICICI</title><content type='html'>Many of my friends got ICICI accounts; mostly because it is the into which our monthly salary is credited. All of my friends then move their money into their respective primary accounts with other banks. One of them uses UTI, another uses SBI, while a third one uses HSBC. I always wondered why. I always kept my money in the same account cos I thought that its easier having centralized control over your money.....having a S/B account, a credit card account, and a demat account integrated....having access to your money from so many ATMs, 24 hour telephone access and so many branches.&lt;br/&gt;&lt;br/&gt;When I studied elementary distributed systems, I read that it is not a good idea to have a single point of failure. Unfortunately for me, and also for ICICI, we both learned it the hard way. All this while, when I kept a large part of all my money with a single bank, I did not pay much attention to the theory I studied in college earlier.&lt;br/&gt;&lt;br/&gt;Today I ordered for a Demand Draft from ICICI (over phone banking) which was for a pretty big amount. I need it urgently as my brother needs to pay his university fees tomorrow. I was told by the phone banking officer that the DD will be ready in 1 hour and that I may collect it from any branch I wish. I decide that I will pick it up from the Mulund (W) branch.&lt;br/&gt;&lt;br/&gt;When I reach the branch, I am told that ICICI bank systems are down and that they cannot access any information and hence cannot process my DD. Apparently none of the people at ICICI's operations and computer systems department knew anything about distributed systems and fault tolerance. They thought that having their back end servers at one location would be fine, and that their customers will be fine if a fire breaks out and if all their servers go down. The customer relationship officers at the bank are noncommittal: I wait for over two hours; but no avail. Oh and since even I have a single point of failure i.e. all my money in a single bank, I cannot withdraw money so that I could get the DD done from another bank.&lt;br/&gt;&lt;br/&gt;But luckily for me, I dont claim to have thousands of satisfied customers, and that I can correct my situation of a single point of failure by moving bulk of my transactions to other banks. The service and policies of ICICI also motivate me to do that. A bank loses its credibility the moment it does not allow its customers to access their own money. That happened today. It was certainly because of a technical problem, but they should have done their homework better. It is going to cost them a lot more, maybe even a few customers like me.&lt;br/&gt;&lt;br/&gt;My travails dont end here. I finally am able to withdraw the maximum amount of money allowed by their ATMs (some of them are working incidentally), but this amount is far lesser than the total amount of the DD. I still need to withdraw the rest of the money tomorrow. All this in the hope that I can give the money to my brother and that he can get the DD done from some other bank tomorrow. I was told at the bank that I will be able to cancel the DD using phone banking as that is the medium I used to place the order. Wonder of wonders.....when I call up, the phone banking officer tells me that the transaction is now in the scope of the branch now, and that I cannot cancel over telephone. I will actually have to walk into the same branch again and beg them to cancel the DD now as it is of no use to me any more, and plead with them to not charge me any cancellation fee. Sometimes just getting a particular service is not everything; it is important that you get it on time.&lt;br/&gt;&lt;br/&gt;Well, all this made me recall my the fault tolerance chapter from distributed systems. I am certainly going to apply it in real life by moving my transactions to some other banks that really work when you need them to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7317850598107796508?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7317850598107796508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7317850598107796508' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7317850598107796508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7317850598107796508'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/08/why-my-friends-dont-do-business-with_01.html' title='Why my friends dont do business with ICICI'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6579503842107212955</id><published>2007-08-01T11:34:00.000-07:00</published><updated>2007-08-01T12:07:09.475-07:00</updated><title type='text'>Why my friends dont do business with ICICI</title><content type='html'>Many of my friends got ICICI accounts; mostly because it is the  into which our monthly salary is credited. All of my friends then move their money into their respective primary accounts with other banks.  One of them uses  UTI, another uses  SBI, while a third one uses HSBC.  I always wondered why. I always kept my money in the same account cos I thought that its easier having centralized control over your money.....having a S/B account, a credit card account, and a demat account integrated....having access to your money from so many ATMs, 24 hour telephone access and so many branches.&lt;br /&gt;&lt;br /&gt;When I studied elementary distributed systems, I read that it is not a good idea to have a single point of failure. Unfortunately for me, and also for ICICI, we both learned it the hard way. All this while, when I kept a large part of all my money with a single bank, I did not pay much attention to the theory I studied in college earlier.&lt;br /&gt;&lt;br /&gt;Today I ordered for a Demand Draft from ICICI (over phone banking) which was for a pretty big amount. I need it urgently as my brother needs to pay his university fees tomorrow. I was told by the phone banking officer that the DD will be ready in 1 hour and that I may collect it from any branch I wish. I decide that I will pick it up from the Mulund (W) branch.&lt;br /&gt;&lt;br /&gt;When I reach the branch, I am told that ICICI bank systems are down and that they cannot access any information and hence cannot process my DD. Apparently none of the people at ICICI's operations and computer systems department knew anything about distributed systems and fault tolerance. They thought that having their back end servers at one location would be fine, and that their customers will be fine if a fire breaks out and if all their servers go down. The customer relationship officers at the bank are noncommittal: I wait for over two hours; but no avail. Oh and since even I have a single point of failure i.e. all my money in a single bank, I cannot withdraw money so that I could get the DD done from another bank.&lt;br /&gt;&lt;br /&gt;But luckily for me, I dont claim to have thousands of satisfied customers, and that I can correct my situation of a single point of failure by moving bulk of my transactions to other banks. The service and policies of ICICI also motivate me to do that. A bank loses its credibility the moment it does not allow its customers to access their own money. That happened today. It was certainly because of a technical problem, but they should have done their homework better. It is going to cost them a lot more, maybe even a few customers like me.&lt;br /&gt;&lt;br /&gt;My travails dont end here. I finally am able to withdraw the maximum amount of money allowed by their ATMs (some of them are working incidentally), but this amount is far lesser than the total amount of the DD. I still need to withdraw the rest of the money tomorrow. All this in the hope that I can give the money to my brother and that he can get the DD done from some other bank tomorrow. I was told at the bank that I will be able to cancel the DD using phone banking as that is the medium I used to place the order. Wonder of wonders.....when I call up, the phone banking officer tells me that the transaction is now in the scope of the branch now, and that I cannot cancel over telephone. I will actually have to walk into the same branch again and beg them to cancel the DD now as it is of no use to me any more, and plead with them to not charge me any cancellation fee. Sometimes just getting a particular service is not everything; it is important that you get it on time.&lt;br /&gt;&lt;br /&gt;Well, all this made me recall my the fault tolerance chapter from distributed systems. I am certainly going to apply it in real life by moving my transactions to some other banks that really work when you need them to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6579503842107212955?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6579503842107212955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6579503842107212955' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6579503842107212955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6579503842107212955'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/08/why-my-friends-dont-do-business-with.html' title='Why my friends dont do business with ICICI'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1674614561885233300</id><published>2007-06-11T23:05:00.000-07:00</published><updated>2010-07-06T20:12:58.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Safari for windows?</title><content type='html'>&lt;a href="http://bp1.blogger.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s1600-h/safari.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://bp1.blogger.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s320/safari.JPG" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer" id="BLOGGER_PHOTO_ID_5075028277050844322" border="0" /&gt;&lt;/a&gt;&lt;br/&gt;So, Apple has launched its Safari browser for windows. Somebody told me that Safari claimed that it was the fastest browser running on windows: 1.6x faster than Firefox and 2x faster than IE7. I dont know; the difference isnt that obvious on first use. The pages load just fine.&lt;br/&gt;The user interface of the browser is exactly the same as that found on the Mac. It looks fine.&lt;br/&gt;&lt;br/&gt;The first question that was raised in my mind is that who will actually use the Safari browser on windows when you have IE7 and FF2? Unless there is some real compelling reason, I dont think a firefox loyalist like me will move on to use Safari. There are a couple of things about Safari that irritate me you see. First of all, it doesn't support the hotkeys that have been support on IE and Firefox for quite a while.&lt;br/&gt;Type "google" and hit ctrl+ enter on Safari: nothing happens, and you are left with an irritating surprise. There is another kind of URL completion feature on the Safari though. You type a URL, and the browser somehow guesses the .com or .org part of the URL.&lt;br/&gt;&lt;br/&gt;The only use I see now is that testing web applications will be easier. Applications that are also targetting the Safari browser can be tested on a windows machine instead of setting up a dedicated Mac machine like we have been doing till now.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://bp2.blogger.com/_xixVZ5lgH1U/Rm4kZU6tpUI/AAAAAAAAAC0/8IbHcZ5wJJQ/s1600-h/wga.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://bp2.blogger.com/_xixVZ5lgH1U/Rm4kZU6tpUI/AAAAAAAAAC0/8IbHcZ5wJJQ/s320/wga.JPG" align="absmiddle" border="0" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;By the way, read &lt;a href="http://apple.slashdot.org/apple/07/06/12/0120230.shtml"&gt;this&lt;/a&gt; post on &lt;a href="http://slashdot.org/"&gt;slashdot&lt;/a&gt; which talks about a couple of bugs found on the first day in the windows version of Safari. Oh and one more thing to note: when I checked the plugins installed in the browser by default, look what I found.&lt;br/&gt;&lt;br/&gt;Thats the Windows Genuine Advantage plugin bundled right into Safari!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1674614561885233300?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1674614561885233300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1674614561885233300' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1674614561885233300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1674614561885233300'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/06/safari-for-windows.html' title='Safari for windows?'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s72-c/safari.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-2673107245164711422</id><published>2007-06-11T21:05:00.000-07:00</published><updated>2008-12-10T16:29:15.758-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Safari for windows?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s1600-h/safari.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s320/safari.JPG" alt="" id="BLOGGER_PHOTO_ID_5075028277050844322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So, Apple has launched its Safari browser for windows. Somebody told me that Safari claimed that it was the fastest browser running on windows: 1.6x faster than Firefox and 2x faster than IE7. I dont know; the difference isnt that obvious on first use. The pages load just fine.&lt;br /&gt;The user interface of the browser is exactly the same as that found on the Mac. It looks fine.&lt;br /&gt;&lt;br /&gt;The first question that was raised in my mind is that who will actually use the Safari browser on windows when you have IE7 and FF2? Unless there is some real compelling reason, I dont think a firefox loyalist like me will move on to use Safari. There are a couple of things about Safari that irritate me you see. First of all, it doesn't support the hotkeys that have been support on IE and Firefox for quite a while.&lt;br /&gt;Type "google" and hit ctrl+ enter on Safari: nothing happens, and you are left with an irritating surprise. There is another kind of URL completion feature on the Safari though. You type a URL, and the browser somehow guesses the .com or .org part of the URL.&lt;br /&gt;&lt;br /&gt;The only use I see now is that testing web applications will be easier. Applications that are also targetting the Safari browser can be tested on a windows machine instead of setting up a dedicated Mac machine like we have been doing till now.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xixVZ5lgH1U/Rm4kZU6tpUI/AAAAAAAAAC0/8IbHcZ5wJJQ/s1600-h/wga.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_xixVZ5lgH1U/Rm4kZU6tpUI/AAAAAAAAAC0/8IbHcZ5wJJQ/s320/wga.JPG" alt="" id="BLOGGER_PHOTO_ID_5075033847623427394" border="0" /&gt;&lt;/a&gt;By the way, read &lt;a href="http://apple.slashdot.org/apple/07/06/12/0120230.shtml"&gt;this&lt;/a&gt; post on &lt;a href="http://slashdot.org/"&gt;slashdot&lt;/a&gt; which talks about a couple of bugs found on the first day in the windows version of Safari. Oh and one more thing to note: when I checked the plugins installed in the browser by default, look what I found.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-2673107245164711422?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/2673107245164711422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=2673107245164711422' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2673107245164711422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/2673107245164711422'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/06/apple-safrari.html' title='Safari for windows?'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xixVZ5lgH1U/Rm4fVE6tpKI/AAAAAAAAABk/JIrMr3V1clA/s72-c/safari.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1545594391947284124</id><published>2007-05-27T02:12:00.000-07:00</published><updated>2010-07-06T20:12:58.359-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><title type='text'>Cooking for pleasure</title><content type='html'>I love food, and I love cooking for pleasure. I am always on the lookout for easy to do recipes that I can try on weekends. Nowadays, if I don't try cooking something new on a weekend, I feel a little disappointed; especially after I got a new microwave oven.&lt;br/&gt;Microwave ovens are real cool things. They make cooking nice and fun, and owning one opens you to a completely new vista of dishes that you normally cannot do without one. Only last week I tried baking a couple of pizzas, and it came out pretty good for a first time. I could never try out things like pizzas and muffins without an oven. Besides being able to bake, you can really speed up your cooking when you microwave.&lt;br/&gt;Now today is a typical sunday. I wake up and find that there is nothing for breakfast. Typical opportunity to notch up something nice. So, I decided to make a grilled sandwich variation today for breakfast.&lt;br/&gt;Now there are some things that you must always have at home if you want to avoid the irritation of actually going down to the grocery shop when you want to cook something: potatoes, tomatoes, and onions are an absolute must. Even if you are not trying to do something fancy, these things are required almost everyday at home. Since I wanted to make sandwiches, I wanted bread, butter, cheese and capsicums. Thankfully my brother got these things for me while I did my initial chopping and frying. This is when I realized that one should always have butter and cheese at home (atleast I should).&lt;br/&gt;&lt;br/&gt;I wanted sprouted moong dal, but there was no time for that. I checked my fridge and I luckily found boiled potatoes. Good. You always need some good binding agent when making sandwich. So, I peeled the potatoes, mashed them and put them in a wok. Added a dash of salt, red chilly powder, and a little oil. Then I fried this mixture for a while cos I don't like the raw smell of boiled potatoes.&lt;br/&gt;I chopped the tomatoes, onions, and capsicum into small equal sized pieces. Added a dash of salt and pepper and microwaved them for 1 minute at 100% power. (Boy I really like the smell of those crisp capsicums when they are very slightly cooked.)&lt;br/&gt;Next I applied some butter on a bread slice and spread some of my boiled potato mixture on it. Topped this with some of my tomato, capsicum, and onion mixture and sprinkled some grated cheese on it. Note that this is an open sandwich, in the sense that it is only a single slice of bread without one on the top of my stuffing (?) mixture.&lt;br/&gt;Now this was ready to be grilled for about 10 minutes (or till the cheese melts). Boy, when the 10 minutes were over, and when I opened the door to the oven, I was greeted by an inviting smell of crispy capsicums and melted cheese. It turned out pretty good....crispy bread with a nice topping of veggies bound by the layer of mashed potatoes, topped by melted cheese.&lt;br/&gt;Served with some ketchup and accompanied by some coke....a perfect start to a nice Sunday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1545594391947284124?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1545594391947284124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1545594391947284124' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1545594391947284124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1545594391947284124'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/cooking-for-pleasure_27.html' title='Cooking for pleasure'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-1633959947157479307</id><published>2007-05-27T00:12:00.000-07:00</published><updated>2007-05-27T00:56:29.086-07:00</updated><title type='text'>Cooking for pleasure</title><content type='html'>I love food, and I love cooking for pleasure. I am always on the lookout for easy to do recipes that I can try on weekends. Nowadays, if I don't try cooking something new on a weekend, I feel a little disappointed; especially after I got a new microwave oven.&lt;br /&gt;Microwave ovens are real cool things. They make cooking nice and fun, and owning one opens you to a completely new vista of dishes that you normally cannot do without one. Only last week I tried baking a couple of pizzas, and it came out pretty good for a first time. I could never try out things like pizzas and muffins without an oven. Besides being able to bake,  you can really speed up your  cooking  when you microwave.&lt;br /&gt;Now today is a typical sunday. I wake up and find that there is nothing for breakfast. Typical opportunity to notch up something nice. So, I decided to make a grilled sandwich variation today for breakfast.&lt;br /&gt;Now there are some things that you must always have at home if you want to avoid the irritation of actually going down to the grocery shop when you want to cook something: potatoes, tomatoes, and onions are an absolute must. Even if you are not trying to do something fancy, these things are required almost everyday at home. Since I wanted to make sandwiches, I wanted bread, butter, cheese and capsicums. Thankfully my brother got these things for me while I did my initial chopping and frying. This is when I realized that one should always have butter and cheese at home (atleast I should).&lt;br /&gt;&lt;br /&gt;I wanted sprouted moong dal, but there was no time for that. I checked my fridge and I luckily found boiled potatoes. Good. You always need some good binding agent when making sandwich. So, I peeled the potatoes, mashed them and put them in a wok. Added a dash of salt, red chilly powder, and a little oil. Then I fried this mixture for a while cos I don't like the raw smell of boiled potatoes.&lt;br /&gt;I chopped the tomatoes, onions, and capsicum into small equal sized pieces. Added a dash of salt and pepper and microwaved them for 1 minute at 100% power. (Boy I really like the smell of those crisp capsicums when they are very slightly cooked.)&lt;br /&gt;Next I applied some butter on a bread slice and spread some of my boiled potato mixture on it. Topped this with some of my tomato, capsicum, and onion mixture and sprinkled some grated cheese on it. Note that this is an open sandwich, in the sense that it is only a single slice of bread without one on the top of my stuffing (?) mixture.&lt;br /&gt;Now this was ready to be grilled for about 10 minutes (or till the cheese melts). Boy, when the 10 minutes were over, and when I opened the door to the oven, I was greeted by an inviting smell of crispy capsicums and melted cheese. It turned out pretty good....crispy bread with a nice topping of veggies bound by the layer of mashed potatoes, topped by melted cheese.&lt;br /&gt;Served with some ketchup and accompanied by some coke....a perfect start to a nice Sunday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-1633959947157479307?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/1633959947157479307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=1633959947157479307' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1633959947157479307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/1633959947157479307'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/cooking-for-pleasure.html' title='Cooking for pleasure'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-8304570301685275953</id><published>2007-05-22T13:08:00.000-07:00</published><updated>2010-07-06T20:12:58.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>New venue for WGA notifier</title><content type='html'>&lt;a href="http://bp3.blogger.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s1600-h/notifier.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img border="0" src="http://bp3.blogger.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s320/notifier.jpg" style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer" id="BLOGGER_PHOTO_ID_5067450345191443666" /&gt;&lt;/a&gt;&lt;br/&gt;My brother: "Hey, my friend is getting a weird popup; it says that his copy of windows is not genuine. What to do?."&lt;br/&gt;&lt;br/&gt;Me: "Ask your friend to turn off windows updates."&lt;br/&gt;&lt;br/&gt;Bro: "What will happen if windows updates is turned off?"&lt;br/&gt;&lt;br/&gt;Me: "Nothing!"&lt;br/&gt;&lt;br/&gt;Yup, if you want nothing to happen, then turn off your windows updates. I am no supporter of piracy, but I feel that the cost of a genuine copy of Windows XP is a little too high in India.&lt;br/&gt;&lt;br/&gt;The problem with most Indian users is that they don't know whether their copy of windows is genuine or not. Most of them have their windows updates ON by default. This went fine till the time Microsoft decided to push the WGA (Windows Genuine Advantage) notifier through the windows updates service. This is when the notifier got installed on user PCs and it started pestering people saying that their copy of windows is not genuine. Well, the ideal thing to do when you find out that your copy is not genuine is to click on the &lt;span style="font-style: italic"&gt;Get Genuine &lt;/span&gt;button and get a licensed version. But that doesnt seem to be a viable option for poor people who cannot afford one . Well, the good thing is that Microsoft doesn't do much more than just inform the user of the status of his/her operating system, i.e. genuine, non-genuine etc. This doesnt cause you much more trouble than the occassional irritation of looking at the notifier popup (which can also be avoided using some hacks). Thankfully Microsoft isn't taking legal action against the erring users (as yet). So the situation is fine for now.&lt;br/&gt;&lt;br/&gt;Consider this: The windows xp service pack 3 is underway. It will be available in a couple of months. Now imagine what happens if the WGA notifier is integrated inside the service pack 3? All users who install SP3, get the pesky notifier on every boot up (unless you work around it). This move will not be unanticipated since Microsoft already has GenuineCheck.dll integrated with most of its downloads.&lt;br/&gt;&lt;br/&gt;So basically the users need to be aware that they are using pirated operating systems, and that windows updates and the service packs are not meant for them.&lt;br/&gt;&lt;br/&gt;Where did I get this idea of WGA notifier integrated with SP3? Dont ask me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-8304570301685275953?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/8304570301685275953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=8304570301685275953' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8304570301685275953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/8304570301685275953'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/new-venue-for-wga-notifier_22.html' title='New venue for WGA notifier'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s72-c/notifier.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7644768968940103600</id><published>2007-05-22T11:08:00.000-07:00</published><updated>2008-12-10T16:29:16.107-08:00</updated><title type='text'>New venue for WGA notifier</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s1600-h/notifier.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s320/notifier.jpg" alt="" id="BLOGGER_PHOTO_ID_5067450345191443666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My brother: "Hey, my friend is getting a weird popup; it says that his copy of windows is not genuine. What to do?."&lt;br /&gt;&lt;br /&gt;Me: "Ask your friend to turn off windows updates."&lt;br /&gt;&lt;br /&gt;Bro: "What will happen if windows updates is turned off?"&lt;br /&gt;&lt;br /&gt;Me: "Nothing!"&lt;br /&gt;&lt;br /&gt;Yup, if you want nothing to happen, then turn off your windows updates. I am no supporter of piracy, but I feel that the cost of a genuine copy of  Windows XP is a little too high in India.&lt;br /&gt;&lt;br /&gt;The problem with most Indian users is that they don't know whether their copy of windows is genuine or not. Most of them have their windows updates ON by default. This went fine till the time Microsoft decided to push the WGA (Windows Genuine Advantage) notifier through the windows updates service. This is when the notifier got installed on user PCs and it started pestering people saying that their copy of windows is not genuine. Well, the ideal thing to do when you find out that your copy is not genuine is to click on the &lt;span style="font-style: italic;"&gt;Get Genuine &lt;/span&gt;button and get a licensed version. But that doesnt seem to be a viable option for poor people who cannot afford one . Well, the good thing is that Microsoft doesn't do much more than just inform the user of the status of his/her operating system, i.e. genuine, non-genuine etc.  This doesnt cause you much more trouble than the occassional irritation of looking at the notifier popup (which can also be avoided using some hacks).  Thankfully Microsoft isn't taking legal action against the erring users (as yet). So the situation is fine for now.&lt;br /&gt;&lt;br /&gt;Consider this: The windows xp service pack 3 is underway. It will be available in a couple of months. Now imagine what happens if the WGA notifier is integrated inside the service pack 3? All users who install SP3, get the pesky notifier on every boot up (unless you work around it). This move will not be unanticipated since Microsoft already has GenuineCheck.dll integrated with most of its downloads.&lt;br /&gt;&lt;br /&gt;So basically the users need to be aware that they are using pirated operating systems, and that windows updates and the service packs are not meant for them.&lt;br /&gt;&lt;br /&gt;Where did I get this idea of WGA notifier integrated with SP3? Dont ask me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7644768968940103600?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7644768968940103600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7644768968940103600' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7644768968940103600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7644768968940103600'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/new-venue-for-wga-notifier.html' title='New venue for WGA notifier'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xixVZ5lgH1U/RlMzPY4RDNI/AAAAAAAAAAw/6jcKPBuC0Lg/s72-c/notifier.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-7759663060357269251</id><published>2007-05-14T11:13:00.000-07:00</published><updated>2010-07-06T20:12:58.181-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>ब्लोगगींग इन hindi</title><content type='html'>I just discovered this feature in blogger where you could post in Hindi. The good thing is that it works on phoenetics, which makes it easier to transliterate words into Hindi from English. Just type words like they would sound in hindi, and the software attempts to convert it into the hindi word. Its not perfect yet, but a pretty good attempt I would say. And whats more? It remembers the corrections you make; so you dont need to do them again and again.&lt;br/&gt;&lt;br/&gt;अब सोचने कि बात यह है के कितने लोग हिंदी में पोस्ट करना पसंद करते हैं&lt;br/&gt;&lt;br/&gt;Yup, I see the spelling mistake above. Shows that its not perfect yet. Still some kinks to iron out, but it feels good to be able to post in my national language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-7759663060357269251?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/7759663060357269251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=7759663060357269251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7759663060357269251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/7759663060357269251'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/hindi_14.html' title='ब्लोगगींग इन hindi'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6450606590115344806</id><published>2007-05-14T09:13:00.000-07:00</published><updated>2007-05-19T03:22:19.852-07:00</updated><title type='text'>ब्लोगगींग इन hindi</title><content type='html'>I just discovered this feature in blogger where you could post in Hindi. The good thing is that it works on phoenetics, which makes it easier to transliterate words into Hindi from English. Just type words like they would sound in hindi, and the software attempts to convert it into the hindi word. Its not perfect yet, but a pretty good attempt I would say. And whats more? It remembers the corrections you make; so you dont need to do them again and again.&lt;br /&gt;&lt;br /&gt;अब सोचने कि  बात यह है के कितने लोग हिंदी में पोस्ट करना पसंद करते हैं&lt;br /&gt;&lt;br /&gt;Yup, I see the spelling mistake above. Shows that its not perfect yet. Still some kinks to iron out, but it feels good to be able to post in my national language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6450606590115344806?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6450606590115344806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6450606590115344806'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/05/hindi.html' title='ब्लोगगींग इन hindi'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-3355411189829427370</id><published>2007-04-12T11:27:00.000-07:00</published><updated>2010-07-06T20:12:58.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>WiX</title><content type='html'>&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;I got to work on something cool today. Windows Installer XML toolset (WiX) is a set of tools and specifications that help you build Windows installation packages (.msi and .msm) from an XML document. WiX is released by Microsoft under the &lt;a href="http://en.wikipedia.org/wiki/Common_Public_License" style="font-weight: bold; color: #3333ff"&gt;Common Public License.&lt;/a&gt;&lt;br/&gt;WiX brings into setups, the traditional compile and build model to create executables from a source code file. It is written in C# and requires the .NET Framework to be installed on your machine.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;A google search on WiX yields a couple of good resouces that tell you what exactly it is, so I am not going to delve much into that. I spent quite a bit of time today trying to get this thing to create an installer that would execute a TSQL during the installation when I found that WiX has a built in support for executing TSQL scripts directly without you having to invoke the &lt;span style="font-weight: bold"&gt;sqlcmd &lt;/span&gt;utility. (In normal circumstances you would include a custom action in your setup project that would execute scripts using sqlcmd). Obviously, you can do a lot more in WiX than just that.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;A good practical scenario of this requirement is when you have to create patches and bugfixes to an existing hosted build of your application. The advantage of creating a patch in the form of an msi file instead of an exe is that an msi is an installer database file which is tracked by your operating system. Later on, you can easily find out what patches you have applied simply by going to you add/remove programs menu.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Anyway, coming back to my purpose of writing this post; there are hardly any good resources online that give you a complete working example and/or tell you what exactly to do when you have to deal with SQL scripts while using WiX. Here is a sample working .wxs file that creates an msi. When the msi is installed, the TSQL script in two .sql files are executed.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="color: black"&gt;&lt;br/&gt;&lt;p style="font-family: courier new,monospace"&gt;&lt;span style="font-size: 85%" class="q"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br/&gt;&amp;lt;Wix xmlns="&lt;a target="_blank" href="http://schemas.microsoft.com/wix/2003/01/wi" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;br/&gt;http://schemas.microsoft.com&lt;wbr&gt;&lt;/wbr&gt;/wix/2003/01/wi&lt;/a&gt;"&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&amp;lt;Product Id="24B6D4E2-2FC2-448F-B4E3-C7FBC8790C50" Name="MyProduct" Language="1033" Version="1.0.0.0&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: courier new,monospace" id="mb_1"&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-family: courier new"&gt;" Manufacturer="kvsoft"&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-size: 85%; font-family: courier new" class="q"&gt;&lt;br/&gt;&amp;lt;Package Id="3B54E578-A304-437E-91A8&lt;wbr&gt;&lt;/wbr&gt;-4299246848DE"&lt;br/&gt;Description="Description of your product" Comments="This will appear in&lt;br/&gt;the file summary stream." InstallerVersion="200" Compressed="yes" /&amp;gt;&lt;br/&gt;&amp;lt;Media Id="1" Cabinet="Product.cab" EmbedCab="yes" /&amp;gt;&lt;br/&gt;&amp;lt;User Id="SqlUser" Name="sa" Password="somepassword"&amp;gt;&amp;lt;/User&amp;gt;&lt;br/&gt;&amp;lt;SqlDatabase Id="MySqlDatabase" Database="TryOuts" Server="krishnamurthyk" User="SqlUser" /&amp;gt;&amp;lt;Directory Id="TARGETDIR" Name="SourceDir"&amp;gt;&lt;br/&gt;&amp;lt;Directory Id="ProgramFilesFolder"&amp;gt;&lt;br/&gt;&amp;lt;Directory Id="INSTALLLOCATION" Name="MyAppDir" LongName="My Application Directory"&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;Component Id="ProductComponent" Guid="AA0225A7-F189-47CC-9D22&lt;wbr&gt;&lt;/wbr&gt;-D84A577BB431"&amp;gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-family: courier new"&gt;&amp;lt;SqlScript Id="CreateTableScript" BinaryKey="DatabaseScriptBin"&lt;/span&gt;&lt;br/&gt;&lt;span style="font-family: courier new"&gt;ExecuteOnInstall="yes" SqlDb="MySqlDatabase" /&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="font-family: courier new"&gt;&amp;lt;SqlScript Id="SecondScript" BinaryKey="SecondScript" ExecuteOnInstall="yes" SqlDb="MySqlDatabase"&amp;gt;&amp;lt;&lt;/span&gt; &lt;/span&gt;&lt;wbr style="font-family: courier new"&gt;&lt;/wbr&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-family: courier new"&gt;/SqlScript&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="font-family: courier new"&gt;&amp;lt;/Component&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 85%; font-family: courier new" class="q"&gt;&lt;/span&gt;&lt;span style="font-size: 85%; font-family: courier new" class="q"&gt;&amp;lt;/Directory&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/Directory&amp;gt;&lt;br/&gt;&amp;lt;/Directory&amp;gt;&lt;br/&gt;&amp;lt;Binary Id="DatabaseScriptBin" src="Test.sql" mce_src="Test.sql" /&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-family: courier new"&gt;&amp;lt;Binary Id="SecondScript" src="SecondScript.sql" mce_src="SecondScript.sql"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 85%; font-family: courier new" class="q"&gt;&lt;/span&gt;&lt;span style="font-size: 85%; font-family: courier new" class="q"&gt;&amp;lt;Feature Id="ProductFeature" Title="Feature Title" Level="1"&amp;gt;&lt;br/&gt;&amp;lt;ComponentRef Id="ProductComponent" /&amp;gt;&lt;br/&gt;&amp;lt;/Feature&amp;gt;&lt;br/&gt;&amp;lt;/Product&amp;gt;&lt;br/&gt;&amp;lt;/Wix&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;Today I was repeatedly getting an error:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-style: italic"&gt;&lt;span style="font-size: 85%"&gt;Unresolved reference to symbol 'CustomAction:ConfigureSql' in&lt;br/&gt;section 'Product:0780EA99-9329-47AD-8CF5-C2274939FC85'.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;This error disappears when I comment the SqlDatabase tag. The problem, as it turned out was funny: a missing reference. In order to get this working, you need to include a reference to &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-size: 85%; font-family: verdana"&gt;sca.wixlib &lt;/span&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;if you are using the Visual Studio WiX project. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-size: 85%"&gt;If you are working with the command line utilities, then this is what you do:&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-size: 85%"&gt;&amp;gt; candle.exe Product.wxs&lt;br/&gt;At this step, you will have an intermediate file called &lt;/span&gt;Product.wixobj.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-size: 85%"&gt;&amp;gt; light.exe -o MySetup.msi Product.wixobj "E:/WiX/sca.wixlib"&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;span style="font-size: 85%"&gt;Voila, you have the require msi file. I hope this helps all the developers out there.&lt;br/&gt;Maybe when I learn more of this, I would do a more descriptive tutorial. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-3355411189829427370?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/3355411189829427370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=3355411189829427370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3355411189829427370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/3355411189829427370'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/04/wix_12.html' title='WiX'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-117639530730310627</id><published>2007-04-12T09:27:00.000-07:00</published><updated>2007-04-12T10:14:58.083-07:00</updated><title type='text'>WiX</title><content type='html'>&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;I got to work on something cool today. Windows Installer XML toolset (WiX) is a set of tools and specifications that help you build Windows installation packages (.msi and .msm) from an XML document. WiX is released by Microsoft under the &lt;a style="color: rgb(51, 51, 255); font-weight: bold;" href="http://en.wikipedia.org/wiki/Common_Public_License"&gt;Common Public License.&lt;/a&gt;&lt;br /&gt;WiX brings into setups, the traditional compile and build model to create executables from a source code file. It is written in C# and requires the .NET Framework to be installed on your machine.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;A google search on WiX yields a couple of good resouces that tell you what exactly it is, so I am not going to delve much into that. I spent quite a bit of time today trying to get this thing to create an installer that would execute a TSQL during the installation when I found that WiX has a built in support for executing TSQL scripts directly without you having to invoke the &lt;span style="font-weight: bold;"&gt;sqlcmd &lt;/span&gt;utility. (In normal circumstances you would include a custom action in your setup  project that would execute scripts using sqlcmd). Obviously, you can do a lot more in WiX than just that.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;A good practical scenario of this requirement is when you have to create patches and bugfixes to an existing hosted build of your application. The advantage of creating a patch in the form of an msi file instead of an exe is that an msi is an installer database file which is tracked by your operating system. Later on, you can easily find out what patches you have applied simply by going to you add/remove programs menu.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Anyway, coming back to my purpose of writing this post; there are hardly any good resources online that give you a complete working example and/or tell you what exactly to do when you have to deal with SQL scripts while using WiX. Here is a sample working .wxs file that creates an msi. When the msi is installed, the TSQL script in two .sql files are executed.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div  style="color:black;"&gt;&lt;p  style="font-family:courier new,monospace;"&gt;&lt;span class="q"  style="font-size:85%;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;Wix xmlns="&lt;a href="http://schemas.microsoft.com/wix/2003/01/wi" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;br /&gt;http://schemas.microsoft.com&lt;wbr&gt;/wix/2003/01/wi&lt;/a&gt;"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &amp;lt;Product Id="24B6D4E2-2FC2-448F-B4E3-C7FBC8790C50" Name="MyProduct" Language="1033" Version="1.0.0.0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div id="mb_1"  style="font-family:courier new,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;" Manufacturer="kvsoft"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;" class="q"  &gt;&lt;br /&gt; &amp;lt;Package Id="3B54E578-A304-437E-91A8&lt;wbr&gt;-4299246848DE"&lt;br /&gt;Description="Description of your product" Comments="This will appear in&lt;br /&gt;the file summary stream." InstallerVersion="200" Compressed="yes" /&amp;gt;&lt;br /&gt; &amp;lt;Media Id="1" Cabinet="Product.cab" EmbedCab="yes" /&amp;gt;&lt;br /&gt; &amp;lt;User Id="SqlUser" Name="sa" Password="somepassword"&amp;gt;&amp;lt;/User&amp;gt;&lt;br /&gt; &amp;lt;SqlDatabase Id="MySqlDatabase" Database="TryOuts" Server="krishnamurthyk" User="SqlUser" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;Directory Id="TARGETDIR" Name="SourceDir"&amp;gt;&lt;br /&gt;   &amp;lt;Directory Id="ProgramFilesFolder"&amp;gt;&lt;br /&gt;     &amp;lt;Directory Id="INSTALLLOCATION" Name="MyAppDir" LongName="My Application Directory"&amp;gt;&lt;br /&gt;&lt;br /&gt;       &amp;lt;Component Id="ProductComponent" Guid="AA0225A7-F189-47CC-9D22&lt;wbr&gt;-D84A577BB431"&amp;gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;SqlScript Id="CreateTableScript" BinaryKey="DatabaseScriptBin"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ExecuteOnInstall="yes" SqlDb="MySqlDatabase" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           &amp;lt;SqlScript Id="SecondScript" BinaryKey="SecondScript" ExecuteOnInstall="yes" SqlDb="MySqlDatabase"&amp;gt;&amp;lt;&lt;/span&gt;         &lt;/span&gt;&lt;wbr  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/SqlScript&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         &amp;lt;/Component&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;" class="q"  &gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;/Directory&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/Directory&amp;gt;&lt;br /&gt; &amp;lt;/Directory&amp;gt;&lt;br /&gt; &amp;lt;Binary Id="DatabaseScriptBin" src="Test.sql" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    &amp;lt;Binary Id="SecondScript" src="SecondScript.sql"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;" class="q"  &gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;Feature Id="ProductFeature" Title="Feature Title" Level="1"&amp;gt;&lt;br /&gt;   &amp;lt;ComponentRef Id="ProductComponent" /&amp;gt;&lt;br /&gt; &amp;lt;/Feature&amp;gt;&lt;br /&gt;&amp;lt;/Product&amp;gt;&lt;br /&gt;&amp;lt;/Wix&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Today I was repeatedly getting an error:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;Unresolved reference to symbol 'CustomAction:ConfigureSql' in&lt;br /&gt;section 'Product:0780EA99-9329-47AD-8CF5-C2274939FC85'.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="font-size:85%;"&gt;This error disappears when I comment the SqlDatabase tag. The problem, as it turned out was funny: a missing reference. In order to get this working, you need to include a reference to &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:85%;"  &gt;sca.wixlib &lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="font-size:85%;"&gt; if you are using the Visual Studio WiX project. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;If you are working with the command line utilities, then this is what you do:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&amp;gt; candle.exe Product.wxs&lt;br /&gt;At this step, you will have an intermediate file called &lt;/span&gt;Product.wixobj.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&amp;gt; light.exe -o MySetup.msi Product.wixobj "E:/WiX/sca.wixlib"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="font-size:85%;"&gt;Voila, you have the require msi file. I hope this helps all the developers out there.&lt;br /&gt;Maybe when I learn more of this, I would do a more descriptive tutorial. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-117639530730310627?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/117639530730310627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=117639530730310627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/117639530730310627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/117639530730310627'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/04/wix.html' title='WiX'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6231338274255469347</id><published>2007-01-14T12:06:00.000-08:00</published><updated>2010-07-06T20:12:58.084-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>God is a computer engineer</title><content type='html'>&lt;p class="entry"&gt;&lt;br/&gt;&lt;p class="snap_preview"&gt;“God is a computer engineer”. I have had this phrase as my yahoo status message for a very long time now. Its a funny thought, but somehow, it made some sense to me.&lt;br/&gt;&lt;br/&gt;One of the greatest things that we computer engineers have been trying to achieve in all our hardware and software systems is &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Artificial_intelligence" title="intelligence"&gt;intelligence&lt;/a&gt;. Defined formally, it is the ability of a system to act rationally: doing the “right thing”, given what it knows. The Turing test, proposed by &lt;a href="http://en.wikipedia.org/wiki/Alan_turing"&gt;Alan Turing,&lt;/a&gt; was designed to provide a satisfactory operational definition of intelligence. The system proposed by Turing, needed to possess the following capabilities to be termed as truly intelligent:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Natural Language Processing: to enable it to communicate successfully&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Knowledge Representation: to store what it knows&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Reasoning: to use the stored information to draw conclusions&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Machine learning: to adapt to new circumstances, and learn new patterns&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Only once we think about these disciplines from the perspective of AI, do we truly understand how difficult it is to achieve them in one of our computer systems. AI has been inspired by the way humans act and behave. The Turing test was designed to simulate a system which was largely human-like. This is hardly surprising, as humans have been the paragons when it comes to AI.&lt;br/&gt;&lt;br/&gt;We humans dont think that these functionalities listed above are much of a big deal, because we are so used to them, because of the fact that these properties have been embedded in humans with such an amazing degree of perfection, that it seems completely natural. Only once you think from the perspective of a computer engineer trying to implement intelligence in a system, would you truly understand the complexity involved.&lt;br/&gt;&lt;br/&gt;I cannot help but feel amazed at the complex systems that are humans. And I find it meaningful to think that it is not a mere co-incidence that humans are intelligent creatures. This is where my thought comes in where I say that “God is a computer engineer”.&lt;br/&gt;&lt;br/&gt;I am not trying to propagate the “theory of intelligent design”. Neither am I trying to argue with atheists. It was just a thought that came to me once, that human beings are probably the perfect example of what we want to achieve with AI one day. After studying a little bit about intelligent systems, I realise how difficult it is to create even moderately intelligent systems; and whatever little success we have had, none of that was by mere co-incidence. None of these systms just sprang up magically out of the air. These systems were the result of years of study, experiment, trial and error, sweat, tears and blood.&lt;br/&gt;&lt;br/&gt;Having said that, its a little funny to believe that we, the perfectly intelligent human beings turned out to be intelligent by co-incidence.&lt;br/&gt;&lt;br/&gt;I believed that human beings are the result of a similar effort, being created out of primitive creatures, eventually evolving into the current state of intelligence. Today human beings are intelligent enough, not only to exhibit features such as natural language processing, logical reasoning and decision making, learning, and much more; but also make intelligent systems of their own.&lt;br/&gt;&lt;br/&gt;I believed that God created man (yes, I can hear the Darwinists scream, but again I say, I am not trying to propagate or debunk a theory here). Like a pioneering computer engineer, God created such intelligent creatures (read humans) that are able to create intelligent creatures of their own.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6231338274255469347?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6231338274255469347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6231338274255469347' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6231338274255469347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6231338274255469347'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/01/god-is-computer-engineer_14.html' title='God is a computer engineer'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-116879860493635837</id><published>2007-01-14T10:06:00.000-08:00</published><updated>2007-01-14T10:16:44.953-08:00</updated><title type='text'>God is a computer engineer</title><content type='html'>&lt;div class="entry"&gt;      &lt;div class="snap_preview"&gt;&lt;p&gt;“God is a computer engineer”. I have had this phrase as my yahoo status message for a very long time now. Its a funny thought, but somehow, it made some sense to me.&lt;/p&gt; &lt;p&gt;One of the greatest things that we computer engineers have been trying to achieve in all our hardware and software systems is &lt;a href="http://en.wikipedia.org/wiki/Artificial_intelligence" title="intelligence" target="_blank"&gt;intelligence&lt;/a&gt;. Defined formally, it is the ability of a system to act rationally: doing the “right thing”, given what it knows. The Turing test, proposed by &lt;a href="http://en.wikipedia.org/wiki/Alan_turing"&gt;Alan Turing,&lt;/a&gt; was designed to provide a satisfactory operational definition of intelligence. The system proposed by Turing, needed to possess the following capabilities to be termed as truly intelligent:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Natural Language Processing: to enable it to communicate successfully&lt;/li&gt;&lt;li&gt;Knowledge Representation: to store what it knows&lt;/li&gt;&lt;li&gt;Reasoning: to use the stored information to draw conclusions&lt;/li&gt;&lt;li&gt;Machine learning: to adapt to new circumstances, and learn new patterns&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Only once we think about these disciplines from the perspective of AI, do we truly understand how difficult it is to achieve them in one of our computer systems. AI has been inspired by the way humans act and behave. The Turing test was designed to simulate a system which was largely human-like. This is hardly surprising, as humans have been the paragons when it comes to AI.&lt;/p&gt; &lt;p&gt;We humans dont think that these functionalities listed above are much of a big deal, because we are so used to them, because of the fact that these properties have been embedded in humans with such an amazing degree of perfection, that it seems completely natural. Only once you think from the perspective of a computer engineer trying to implement intelligence in a system, would you truly understand the complexity involved.&lt;/p&gt; &lt;p&gt;I cannot help but feel amazed at the complex systems that are humans. And I find it meaningful to think that it is not a mere co-incidence that humans are intelligent creatures. This is where my thought comes in where I say that “God is a computer engineer”.&lt;/p&gt; &lt;p&gt;I am not trying to propagate the “theory of intelligent design”. Neither am I trying to argue with atheists. It was just a thought that came to me once, that human beings are probably the perfect example of what we want to achieve with AI one day. After studying a little bit about intelligent systems, I realise how difficult it is to create even moderately intelligent systems; and whatever little success we have had, none of that was by mere co-incidence. None of these systms just sprang up magically out of the air. These systems were the result of years of study, experiment, trial and error, sweat, tears and blood.&lt;/p&gt; &lt;p&gt;Having said that, its a little funny to believe that we, the perfectly intelligent human beings turned out to be intelligent by co-incidence.&lt;/p&gt; &lt;p&gt;I believed that human beings are the result of a similar effort, being created out of primitive creatures, eventually evolving into the current state of intelligence. Today human beings are intelligent enough, not only to exhibit features such as natural language processing, logical reasoning and decision making, learning, and much more; but also make intelligent systems of their own.&lt;/p&gt; &lt;p&gt;I believed that God created man (yes, I can hear the Darwinists scream, but again I say, I am not trying to propagate or debunk a theory here). Like a pioneering computer engineer, God created such intelligent creatures (read humans) that are able to create intelligent creatures of their own.&lt;/p&gt; &lt;/div&gt;    &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-116879860493635837?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/116879860493635837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=116879860493635837' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/116879860493635837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/116879860493635837'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2007/01/god-is-computer-engineer.html' title='God is a computer engineer'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-6243714362666798632</id><published>2006-12-27T06:29:00.000-08:00</published><updated>2010-07-06T20:12:58.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>Reporting Services and Business Intelligence</title><content type='html'>&lt;a href="http://kveinstein.googlepages.com/localhost.jpg"&gt;&lt;/a&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-size: 130%"&gt;Reporting&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Information is supposed to be the second most important resource of any business (the most important resource being "people"). Having relevant information at the right time makes all the difference while making important business decisions. When the size of the business organization is small, maintaining business data and extracting the required information is a fairly simple task. But consider an organization the size of a huge corporate, with businesses spread across the world, working in different domains, maintaining several huge databases containing millions of records.&lt;br/&gt;So, there you go; you have all the data you need, but there is this small catch: the data is spread across multiple databases, flat files, excel sheets, CSV files. The databases don't have a uniform architecture, as they were designed to serve a very specific purpose: store some very relevant business data.&lt;br/&gt;What I mean by this, is that it takes a whole lot of re-organization of the raw data so you can put it to use, and derive any sensible conclusions regarding your business statistics. Most business databases store data directly related to the business operations, and any report generation has to extract the data from these databases and convert them into a suitable format before the reports can be generated.&lt;br/&gt;The reports are the end product of the entire report generation process, which gives the business enterprise all the facts and figures that enable them to take the appropriate business decisions.&lt;br/&gt;One might ask, "why is that such a big deal? Isnt that why the databases are there? Just run an SQL query and you get all the data that you want"&lt;br/&gt;Point well taken, and for a simple enterprise with small busines operations, this might work fine. But we are talking about a different situation here. What works for a small organization, in this case does not scale well when the case is extended to a huge business enterprise like the one described above. It may not be fasible to run a distributed query across multiple databases, data files, excel sheets, and CSV files. The kind of processing power and time required to complete such an operation would be simply not feasible. Moreover, any small change in any of the data sources will bring the entire process crashing down.&lt;br/&gt;So, the point is that all the data needs to be consolidated into a central repository, into a suitable format, from where it can be queried, in order to improve the processing and time efficiency. Aha, we are talking about a data warehouse.&lt;br/&gt;Another important consideration is that delivering reports is more than just processing data through queries and making it available. It is providing information when you need it, on any platform, in any format. A common solution is generating reports in HTML format and viewing it on an internet browser. This is fine if you have a machine that can connect to a server. But you may need reports when you are on a flight, when you are with the customer, when you are in your car. This includes platforms like your pager, your PDA, you fax machine, your laptop.&lt;br/&gt;What if you need those reports in a suitable format like PDF, CSV, TIFF or XML for further analysis. You may even need the reports in some custom extension/format. It is not enough. Even now, a single format and a single delivery channel may not be enough. How would you know which ones you will need at a particular point of time?&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="color: #ff0000"&gt;Enter Reporting Services&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;To take care of all these issues, we have Reporting Services. Reporting Service provides you a layer of abstraction and hides all these details from you. With a reporting server, all the reports may be rendered in any of the above specified formats and may be delivered on any channel.&lt;br/&gt;Reporting services provide a clear separation between the report design and the rendering of the reports in a desired format and the way in which it will be consumed.&lt;br/&gt;Report Designing and Generation&lt;br/&gt;Thus the entire process of report generation and delivery consists of two separate processes: Report designing, and report generation &amp;amp; delivery. Both these processes are independent of each other. Hence, a report designer need not worry about the format report will be rendered in, or the channel/platform where it will be delivered.&lt;br/&gt;Similarly, the report generation process does not need to know how the reports are designed. All it needs to do is pass the relevant parameters that are required as inputs for the report generation process. This report generation process renders the report in the desired format and finally delivers it to the end user.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="color: #ff0000"&gt;SQL Server Reporting Services&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;SQL Server Reporting Services, also known as SSRS comes as a part of the SQL Server 2005 suite free of cost. The SSRS includes all the development and management modules needed to create/define reports, publish them on to a reporting server, and render them in HTML, PDF, EXCEL and CSV formats. Whats more, you can even develop your own custom format and register it with the SSRS.&lt;br/&gt;&lt;br/&gt;&lt;img border="0" src="http://photos1.blogger.com/x/blogger/3564/1654/320/712888/rsarchitecture.png" style="display: block; margin: 0px auto 10px; cursor: hand; text-align: center" /&gt;&lt;br/&gt;&lt;a imageanchor="1" href="http://pages.google.com/-/static_files/rsarchitecture.gif/rsarchitecture-full.jpg" style="margin-left: 1em; margin-right: 1em; background-color: transparent; border: 0pt"&gt;&lt;/a&gt;&lt;br/&gt;As you can see from the diagram, the SSRS installs a dedicated web service on your machine. This web service has an interface which can be accessed from http://reportServerName/Reports&lt;br/&gt;The SSRS provides a full-featured set of APIs that you can use to integrate Reporting Services with custom business applications. This includes the full featured web service that provides access to the complete functionality of the reporting server. The SSRS can use any data source like an SQL Server database, or an OLE DB data source as the primary database from which the reports will be generated.&lt;br/&gt;:To understand all this better, lets just consider the entire reporting life cycle:&lt;br/&gt;Report Authoring: Developers can define reports to be published on to the Reporting Server using a report design tool. One popular report design tool is proided by the Business Intelligence Development Studio (BIDS) which is installed along with the full suite of SQL Server 2005. These report design tools use the Report Definition Language (RDL) which is an XML based industry standard. The term report in this case might sound a little ambiguous, as this is not really a business report; but simply an XML file which specifies the connection string to the datasource to be used, the query to be executed, and other metadata. There is a corresponding Report Data Source (RDS) file which has the connection string to the real data source. The RDS and RDL files are then deployed on the reporting server. To deploy these files, you can use the BIDS tool, or do it programmatically using the web methods provided by the report server web service.&lt;br/&gt;Report Generation and Delivery: Once the RDL and RDS files are deployed, the reports can be generated on request or as a response to a particular event. Reports can be viewed using the web interface provided for the report server i.e. http://reportServerName/Reports . Reports can also be generated and rendered in the desired format using the web methods provided by the report server web service.&lt;br/&gt;Report Management: Administrators can use the Management Studio to organize reports and data sources, schedule report execution and delivery, and track reporting history. Reports can be executed on demand or on a specified schedule.&lt;br/&gt;In order to get reporting services up and running on your machine, do a default installation of SQL Services 2005 and let the installation configure the reporting service for you. Once the installation is completed, point your browser to: http://localhost/Reports, and you will be greeted by something like this:&lt;br/&gt;&lt;br/&gt;&lt;img border="0" src="http://photos1.blogger.com/x/blogger/3564/1654/320/368791/localhost.jpg" style="display: block; margin: 0px auto 10px; cursor: hand; text-align: center" /&gt;&lt;br/&gt;&lt;a imageanchor="1" href="http://pages.google.com/-/static_files/localhost.jpg/localhost-full.jpg" style="margin-left: 1em; margin-right: 1em; background-color: transparent; border: 0pt"&gt;&lt;/a&gt;&lt;br/&gt;Click on the project1 folder and you will see the reports deployed. Clicking on a report runs it and the report generated can been seen on the page. You can then export it in any of the supported formats.&lt;br/&gt;An introduction to SSRS programming can be found at:&lt;br/&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms155076.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms155076.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-6243714362666798632?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/6243714362666798632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=6243714362666798632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6243714362666798632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/6243714362666798632'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2006/12/reporting-services-and-business_27.html' title='Reporting Services and Business Intelligence'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-116722266164681888</id><published>2006-12-27T04:29:00.000-08:00</published><updated>2007-01-06T12:21:02.656-08:00</updated><title type='text'>Reporting Services and Business Intelligence</title><content type='html'>&lt;a href="http://kveinstein.googlepages.com/localhost.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Reporting&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Information is supposed to be the second most important resource of any business (the most important resource being "people"). Having relevant information at the right time makes all the difference while making important business decisions. When the size of the business organization is small, maintaining business data and extracting the required information is a fairly simple task. But consider an organization the size of a huge corporate, with businesses spread across the world, working in different domains, maintaining several huge databases containing millions of records.&lt;br /&gt;So, there you go; you have all the data you need, but there is this small catch: the data is spread across multiple databases, flat files, excel sheets, CSV files. The databases don't have a uniform architecture, as they were designed to serve a very specific purpose: store some very relevant business data.&lt;br /&gt;What I mean by this, is that it takes a whole lot of re-organization of the raw data so you can put it to use, and derive any sensible conclusions regarding your business statistics. Most business databases store data directly related to the business operations, and any report generation has to extract the data from these databases and convert them into a suitable format before the reports can be generated.&lt;br /&gt;The reports are the end product of the entire report generation process, which gives the business enterprise all the facts and figures that enable them to take the appropriate business decisions.&lt;br /&gt;One might ask, "why is that such a big deal? Isnt that why the databases are there? Just run an SQL query and you get all the data that you want"&lt;br /&gt;Point well taken, and for a simple enterprise with small busines operations, this might work fine. But we are talking about a different situation here. What works for a small organization, in this case does not scale well when the case is extended to a huge business enterprise like the one described above. It may not be fasible to run a distributed query across multiple databases, data files, excel sheets, and CSV files. The kind of processing power and time required to complete such an operation would be simply not feasible. Moreover, any small change in any of the data sources will bring the entire process crashing down.&lt;br /&gt;So, the point is that all the data needs to be consolidated into a central repository, into a suitable format, from where it can be queried, in order to improve the processing and time efficiency. Aha, we are talking about a data warehouse.&lt;br /&gt;Another important consideration is that delivering reports is more than just processing data through queries and making it available. It is providing information when you need it, on any platform, in any format. A common solution is generating reports in HTML format and viewing it on an internet browser. This is fine if you have a machine that can connect to a server. But you may need reports when you are on a flight, when you are with the customer, when you are in your car. This includes platforms like your pager, your PDA, you fax machine, your laptop.&lt;br /&gt;What if you need those reports in a suitable format like PDF, CSV, TIFF or XML for further analysis. You may even need the reports in some custom extension/format. It is not enough. Even now, a single format and a single delivery channel may not be enough. How would you know which ones you will need at a particular point of time?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Enter Reporting Services&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To take care of all these issues, we have Reporting Services. Reporting Service provides you a layer of abstraction and hides all these details from you. With a reporting server, all the reports may be rendered in any of the above specified formats and may be delivered on any channel.&lt;br /&gt;Reporting services provide a clear separation between the report design and the rendering of the reports in a desired format and the way in which it will be consumed.&lt;br /&gt;Report Designing and Generation&lt;br /&gt;Thus the entire process of report generation and delivery consists of two separate processes: Report designing, and report generation &amp; delivery. Both these processes are independent of each other. Hence, a report designer need not worry about the format report will be rendered in, or the channel/platform where it will be delivered.&lt;br /&gt;Similarly, the report generation process does not need to know how the reports are designed. All it needs to do is pass the relevant parameters that are required as inputs for the report generation process. This report generation process renders the report in the desired format and finally delivers it to the end user.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;SQL Server Reporting Services&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SQL Server Reporting Services, also known as SSRS comes as a part of the SQL Server 2005 suite free of cost. The SSRS includes all the development and management modules needed to create/define reports, publish them on to a reporting server, and render them in HTML, PDF, EXCEL and CSV formats. Whats more, you can even develop your own custom format and register it with the SSRS.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/3564/1654/320/712888/rsarchitecture.png" border="0" /&gt;&lt;br /&gt;&lt;a style="BORDER-RIGHT: 0pt; BORDER-TOP: 0pt; MARGIN-LEFT: 1em; BORDER-LEFT: 0pt; MARGIN-RIGHT: 1em; BORDER-BOTTOM: 0pt; BACKGROUND-COLOR: transparent" href="http://pages.google.com/-/static_files/rsarchitecture.gif/rsarchitecture-full.jpg" imageanchor="1"&gt;&lt;/a&gt;&lt;br /&gt;As you can see from the diagram, the SSRS installs a dedicated web service on your machine. This web service has an interface which can be accessed from http://reportServerName/Reports&lt;br /&gt;The SSRS provides a full-featured set of APIs that you can use to integrate Reporting Services with custom business applications. This includes the full featured web service that provides access to the complete functionality of the reporting server. The SSRS can use any data source like an SQL Server database, or an OLE DB data source as the primary database from which the reports will be generated.&lt;br /&gt;:To understand all this better, lets just consider the entire reporting life cycle:&lt;br /&gt;Report Authoring: Developers can define reports to be published on to the Reporting Server using a report design tool. One popular report design tool is proided by the Business Intelligence Development Studio (BIDS) which is installed along with the full suite of SQL Server 2005. These report design tools use the Report Definition Language (RDL) which is an XML based industry standard. The term report in this case might sound a little ambiguous, as this is not really a business report; but simply an XML file which specifies the connection string to the datasource to be used, the query to be executed, and other metadata. There is a corresponding Report Data Source (RDS) file which has the connection string to the real data source. The RDS and RDL files are then deployed on the reporting server. To deploy these files, you can use the BIDS tool, or do it programmatically using the web methods provided by the report server web service.&lt;br /&gt;Report Generation and Delivery: Once the RDL and RDS files are deployed, the reports can be generated on request or as a response to a particular event. Reports can be viewed using the web interface provided for the report server i.e. http://reportServerName/Reports . Reports can also be generated and rendered in the desired format using the web methods provided by the report server web service.&lt;br /&gt;Report Management: Administrators can use the Management Studio to organize reports and data sources, schedule report execution and delivery, and track reporting history. Reports can be executed on demand or on a specified schedule.&lt;br /&gt;In order to get reporting services up and running on your machine, do a default installation of SQL Services 2005 and let the installation configure the reporting service for you. Once the installation is completed, point your browser to: http://localhost/Reports, and you will be greeted by something like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/3564/1654/320/368791/localhost.jpg" border="0" /&gt;&lt;br /&gt;&lt;a style="BORDER-RIGHT: 0pt; BORDER-TOP: 0pt; MARGIN-LEFT: 1em; BORDER-LEFT: 0pt; MARGIN-RIGHT: 1em; BORDER-BOTTOM: 0pt; BACKGROUND-COLOR: transparent" href="http://pages.google.com/-/static_files/localhost.jpg/localhost-full.jpg" imageanchor="1"&gt;&lt;/a&gt;&lt;br /&gt;Click on the project1 folder and you will see the reports deployed. Clicking on a report runs it and the report generated can been seen on the page. You can then export it in any of the supported formats.&lt;br /&gt;An introduction to SSRS programming can be found at:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms155076.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms155076.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-116722266164681888?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/116722266164681888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=116722266164681888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/116722266164681888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/116722266164681888'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2006/12/reporting-services-and-business.html' title='Reporting Services and Business Intelligence'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-4902858411325279540</id><published>2005-09-28T03:18:00.000-07:00</published><updated>2010-07-06T20:12:57.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Web Applications and AJAX</title><content type='html'>&lt;p style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" id="container"&gt;&lt;br/&gt;&lt;p style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" class="wrapper"&gt;&lt;br/&gt;&lt;p style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" id="main-content"&gt;&lt;br/&gt;&lt;p style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" class="wrapper"&gt;&lt;br/&gt;&lt;p style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" class="content-item"&gt;&lt;br/&gt;&lt;p g_editable="true" style="background: 0% 50%; float: none; visibility: visible; margin: 0pt; width: 100%; position: static; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: 0pt; padding: 0pt" id="g_body" class="editable"&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;All these days I have been listening about AJAX. I knew that it had to do something with web based user interfaces. I also knew that it stood for "Asynchronous JavaScript and XML", and.....well, that is pretty much it. I knew that I have to get my hands wet and try this new thing out. But I have to wait for my 8th semester exams to get over before I can actually do that.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;So I thought let me find out a little about it.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Before I can actually talk about AJAX, I will have to digress and give an overview of web based user interfaces, becase they are what I think AJAX is really about.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; color: #ff0000; font-family: verdana"&gt;Web Based User Interface&lt;/span&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Soon after I worked on my BE project "Network Management Tool", I totally fell in love with web based interfaces. The ubiquity of the common web browser, and the ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers have really made web applications and web based UI's popular. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Add to that, the fact that arguably the &lt;a href="http://www.google.com/"&gt;best company in the computing business&lt;/a&gt; is showing a very keen interest in this, everybody is going ga-ga over web based UI's. And there are pretty good reasons for moving software on to the server and provide a neat user interface using your favourite web browser (apart from the reason I mentioned). It is not just about being able to access your application from any operating system or platform, it is about doing away with things like installing software on your machine to be able to use it. All the dirty stuff is left behind at the server, while the user need only think about the application. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Let me give you an example. Launch your favourite web browser, type www.gmail.com . Enter username password and login. Congratulations, you just installed google's email client on your machine. You see what just happened? This seemingly trivial thing lets us check our email from any machine on the planet that is connected to the Internet.&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Web mail seems to be such a trivial thing to us today that we dont normally think about the real genius of an idea behind the whole application: perfect portability. Move around anywhere, use any computer, any operating system, and you can still use the web application. You dont even need to be using your PC for that matter. Anything that can access the web using an XHTML compatible browser is good enough.&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Extend the concept a bit, and you got things like Google Calendar and &lt;/span&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Microsoft's Hotmail Live &lt;/span&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;where you can manage your entire schedules online. The possibilities are limited by our own imagination. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Okay, at this point I can digress and talk about how this seems to be a threat to rich text clients and why Microsoft is not happy about that, because it threatens Microsoft's core strength: The Rich Client.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Let me do that some other time where we can talk about the business use and the market aspects of this application design paradigm. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Anyway, this does not signal the end of the rich client so soon. Desktop applications have a richness and responsiveness that web based applications have not been able to deliver. Web based applications are simply not fast enough. &lt;/span&gt;&lt;br/&gt;&lt;p style="clear: both; text-align: center" class="separator"&gt;&lt;span style="font-size: 85%"&gt;&lt;a href="http://pages.google.com/-/static_files/webapp.JPG/webapp-full.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; background-color: transparent; border: 0pt"&gt;&lt;img width="210" src="http://pages.google.com/edit/kveinstein/webapp.JPG/webapp-large.jpg" height="420" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Reason? In the classic web application model, the user enters some data. After performing error checks, that data is sent to the web server in an HTTP request. After the server performs the back end processing, like running some algorithms , fetching data from a database, generating outputs, the results are sent back to the client in an HTML page. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;Quick question : while the server does all this, what does the client do? Yes, you got it right: the client waits. From what we have read in Roger Pressman's book on software engineering, this isnt quite the best way of developing a user interface. Something needs to be done about the delay, so that the user doesnt have to wait everytime the client needs to fetch something from the server.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; color: #ff0000; font-family: verdana"&gt;Enter AJAX&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; color: #ff0000; font-family: verdana"&gt;&lt;span style="color: #666666"&gt;So what does AJAX do to help the situation for our web based interfaces?&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; color: #ff0000; font-family: verdana"&gt;&lt;span style="color: #666666"&gt;TO BE CONTINUED.....&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size: 85%; font-family: verdana"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-4902858411325279540?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/4902858411325279540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=4902858411325279540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4902858411325279540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/4902858411325279540'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2005/09/web-applications-and-ajax_28.html' title='Web Applications and AJAX'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17214691.post-112789557294693286</id><published>2005-09-28T01:18:00.000-07:00</published><updated>2006-05-25T02:03:33.980-07:00</updated><title type='text'>Web Applications and AJAX</title><content type='html'>&lt;div id="container" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;div class="wrapper" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;div id="main-content" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;div class="wrapper" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;div class="content-item" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;div g_editable="true" class="editable" id="g_body" style="border: 0pt none ; margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 50%; height: 100%; width: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; position: static; float: none; visibility: visible;"&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;All these days I have been listening about AJAX. I knew that it had to do something with web based user interfaces. I also knew that it stood for "Asynchronous JavaScript  and XML", and.....well, that is pretty much it. I knew that I have to get my hands wet and try this new thing out. But I have to wait for my 8th semester exams to get over before I can actually do that.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;So I thought let me find out a little about it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Before I can actually talk about AJAX, I will have to digress and give an overview of web based user interfaces, becase they are what I think AJAX is really about.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;color:#ff0000;"&gt;Web Based User Interface&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Soon after I worked on my BE project "Network Management Tool", I totally fell in love with web based interfaces. The ubiquity of the common web browser, and the ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers have really made web applications and web based UI's popular.  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Add to that, the fact that arguably the &lt;a href="http://www.google.com/"&gt;best company in the computing business&lt;/a&gt; is showing a very keen interest in this, everybody is going ga-ga over web based UI's. And there are pretty good reasons for moving software on to the server and provide a neat user interface using your favourite web browser (apart from the reason I mentioned). It is not just about being able to access your application from any operating system or platform, it is about doing away with things like installing software on your machine to be able to use it. All the dirty stuff is left behind at the server, while the user need only think about the application. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Let me give you an example. Launch your favourite web browser, type www.gmail.com . Enter username password and login. Congratulations, you just installed google's email client on your machine. You see what just happened? This seemingly trivial thing lets us check our email from any machine on the planet that is connected to the Internet.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Web mail seems to be such a trivial thing to us today that we dont normally think about the real genius of an idea behind the whole application: perfect portability. Move around anywhere, use any computer, any operating system, and you can still use the web application. You dont even need to be using your PC for that matter. Anything that can access the web using an XHTML compatible browser is good enough.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Extend the concept a bit, and you got things like Google Calendar and &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Microsoft's Hotmail Live &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;where you can manage your entire schedules online. The possibilities are limited by our own imagination. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Okay, at this point I can digress and talk about how this seems to be a threat to rich text clients and why Microsoft is not happy about that, because it threatens Microsoft's core strength: The Rich Client.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Let me do that some other time where we can talk about the business use and the market aspects of this application design paradigm. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Anyway, this does not signal the end of the rich client so soon. Desktop applications have a richness and responsiveness that web based applications have not been able to deliver. Web based applications are simply not fast enough. &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center; clear: both;" class="separator"&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="border: 0pt none ; background-color: transparent; clear: right; margin-bottom: 1em; float: right; margin-left: 1em;" href="http://pages.google.com/-/static_files/webapp.JPG/webapp-full.jpg"&gt;&lt;img src="http://pages.google.com/edit/kveinstein/webapp.JPG/webapp-large.jpg" height="420" width="210" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;                                       &lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Reason? In the classic web application model, the user enters some data. After performing error checks, that data is sent to the web server in an HTTP request. After the server performs the back end processing, like running some algorithms , fetching data from a database, generating outputs, the results are sent back to the client in an HTML page. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Quick question : while the server does all this, what does the client do? Yes, you got it right: the client waits. From what we have read in Roger Pressman's book on software engineering, this isnt quite the best way of developing a user interface. Something needs to be done about the delay, so that the user doesnt have to wait everytime the client needs to fetch something from the server.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;color:#ff0000;"&gt;Enter AJAX&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;color:#ff0000;"&gt;&lt;span style="color:#666666;"&gt;So what does AJAX do to help the situation for our web based interfaces?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;color:#ff0000;"&gt;&lt;span style="color:#666666;"&gt; TO BE CONTINUED.....&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-family:verdana;font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17214691-112789557294693286?l=kveinstein.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kveinstein.blogspot.com/feeds/112789557294693286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17214691&amp;postID=112789557294693286' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/112789557294693286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17214691/posts/default/112789557294693286'/><link rel='alternate' type='text/html' href='http://kveinstein.blogspot.com/2005/09/web-applications-and-ajax.html' title='Web Applications and AJAX'/><author><name>K.V.</name><uri>http://www.blogger.com/profile/15293893386720434699</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
