<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Nikhil&#039;s Space</title>
	<atom:link href="http://nikhilsinghal2010.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nikhilsinghal2010.wordpress.com</link>
	<description>Just another WordPress.com site</description>
	<lastBuildDate>Tue, 15 Mar 2011 19:34:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='nikhilsinghal2010.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nikhil&#039;s Space</title>
		<link>http://nikhilsinghal2010.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nikhilsinghal2010.wordpress.com/osd.xml" title="Nikhil&#039;s Space" />
	<atom:link rel='hub' href='http://nikhilsinghal2010.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Hello world!</title>
		<link>http://nikhilsinghal2010.wordpress.com/2011/03/02/hello-world/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2011/03/02/hello-world/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 13:52:14 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/?p=1</guid>
		<description><![CDATA[Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=1&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="https://wordpress.com/">WordPress.com</a>. This is your first post. Edit or delete it and start blogging!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=1&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2011/03/02/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Father Forgets</title>
		<link>http://nikhilsinghal2010.wordpress.com/2007/09/20/father-forgets/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2007/09/20/father-forgets/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 08:09:13 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2007/09/20/father-forgets</guid>
		<description><![CDATA[My wife sent me this heart touching snippet from a story written by W. Livingston Larned. In this crazy complex world of deadlines, stress and worries, I have many times done exactly what I should not have done - Forgotten that &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2007/09/20/father-forgets/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=3&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!2220" class="bvMsg">
<p>My wife sent me this heart touching snippet from a story written by W. Livingston Larned. In this crazy complex world of deadlines, stress and worries, I have many times done exactly what I should not have done - Forgotten that my son is just 2 years old. It brought tears to my eyes and I hope to never always remember that they are just children which is why they keep on doing what they are supposed to do. We as adults need to just spend a few moments in understanding them better.</p>
<p><em>Listen, son; I am saying this as you lie asleep, one little paw crumpled under your cheek and the blond curls stickily wet on your damp forehead. I have stolen into your room alone. Just a few minutes ago, as I sat reading my paper in the library, a stifling wave of remorse swept over me. Guiltily I came to your bedside.</em>
<p><em>There are things I was thinking, son: I had been cross to you. I scolded you as you were dressing for school because you gave your face merely a dab with a towel. I took you to task for not cleaning your shoes. I called out angrily when you threw some of your things on the floor.</em>
<p><em>At breakfast I found fault, too. You spilled things. You gulped down your food. You put your elbows on the table. You spread butter too thick on your bread. And as you started off to play and I made for my train, you turned and waved a hand and called, &quot;Goodbye, Daddy!&quot; and I frowned, and said in reply, &quot;Hold your shoulders back!&quot;</em>
<p><em>Then it began all over again in the late afternoon. As I came Up the road, I spied you, down on your knees, playing marbles. There were holes in your stockings. I humiliated you before your boyfriends by marching you ahead of me to the house. Stockings were expensive &#8211; and if you had to buy them you would be more careful! Imagine that, son, from a father!</em>
<p><em>Do you remember, later, when I was reading in the library, how you came in timidly, with a sort of hurt look in your eyes? When I glanced up over my paper, impatient at the interruption, you hesitated at the door. &quot;What is it you want?&quot; I snapped.</em>
<p><em>You said nothing, but ran across in one tempestuous plunge, and threw your arms around my neck and kissed me, and your small arms tightened with an affection that God had set blooming in your heart and which even neglect could not wither. And then you were gone, pattering up the stairs.</em>
<p><em>Well, son, it was shortly afterwards that my paper slipped from my hands and a terrible sickening fear came over me. What has habit been doing to me? The habit of finding fault, of reprimanding &#8211; this was my reward to you for being a boy. It was not that I did not love you; it was that I expected too much of youth. I was measuring you by the yardstick of my own years.</em>
<p><em>And there was so much that was good and fine and true in your character. The little heart of you was as big as the dawn itself over the wide hills. This was shown by your spontaneous impulse to rush in and kiss me good night. Nothing else matters tonight, son. I have come to your bedside in the darkness, and I have knelt there, ashamed!</em>
<p><em>It is a feeble atonement; I know you would not understand these things if I told them to you during your waking hours. But tomorrow I will be a real daddy! I will chum with you, and suffer when you suffer, and laugh when you laugh. I will bite my tongue when impatient words come. I will keep saying as if it were a ritual: &quot;He is nothing buy a boy &#8211; a little boy!&quot;</em>
<p><em>I am afraid I have visualized you as a man. Yet as I see you now, son, crumpled and weary in your cot, I see that you are still a baby. Yesterday you were in your mother&#8217;s arms, your head on her shoulder. I have asked too much, too much.</em>
<p><em>W. Livingston Larned.</em></p>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=3&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2007/09/20/father-forgets/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Boiling the IT Frog</title>
		<link>http://nikhilsinghal2010.wordpress.com/2007/08/13/boiling-the-it-frog/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2007/08/13/boiling-the-it-frog/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 06:00:43 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2007/08/13/boiling-the-it-frog</guid>
		<description><![CDATA[I was reading an article in ComputerWorld  which really caught my attention. Here is an excerpt that I found so true across various companies I have worked. This is part of an interview between Kathleen Melymuka and the Harwell Thrasher, &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2007/08/13/boiling-the-it-frog/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=21&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!2188" class="bvMsg">
<p>I was reading an article in ComputerWorld  which really caught my attention. Here is an excerpt that I found so true across various companies I have worked. This is part of an interview between Kathleen Melymuka and the Harwell Thrasher, author of the book &quot;Boiling the IT Frog&quot;.<br />
<blockquote>
<p><b>Why do most projects fail? </b>In my experience, there are six primary reasons. First, <u>you’re doing the wrong project</u> — it’s not what the business really needs. Second, you’re <u>missing prerequisites</u> in the proposal. You start and then realize you have to beef up the infrastructure, for example, so you’re in trouble right from the beginning. Third, you’re <u>going for home runs instead of base hits</u>; for example, a global rollout of a major system instead of chipping away at it a little at a time. Fourth, the <u>project’s duration is greater than the job tenure of the sponsoring executive</u>. If the project isn’t completed before he or she leaves, you may be in deep trouble with the successor. Fifth, <u>you gather requirements instead of negotiating them</u>. If you go around asking all the stakeholders what they want and your project goal is the sum of all those things, you will undoubtedly have contradictions — for example, a simple system that must do everything. Sixth, <u>there’s not enough contingency planning</u>. You’ve got to anticipate things that can go wrong and take them into account in your plan. </p></blockquote>
<p><a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=297575&amp;pageNumber=2">Boiling the IT Frog</a></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=21&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2007/08/13/boiling-the-it-frog/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>TechTalk: Bulk Update into SQL from C# App</title>
		<link>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-update-into-sql-from-c-app/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-update-into-sql-from-c-app/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 20:04:13 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[TechTalk]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-update-into-sql-from-c-app</guid>
		<description><![CDATA[In my previous article, I explained using a sample C# app on how to bulk insert data into SQL Server. There is an inherent problem. Bulk Inserts work fine as long as there are no constraint violations. What if the &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-update-into-sql-from-c-app/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=8&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!2182" class="bvMsg">
<div>
<p style="margin:0 0 10pt;"><font face="Calibri" color="#000000" size="3">In my previous article, I explained using a sample C# app on how to bulk insert data into SQL Server.</font> </p>
<p style="margin:0 0 10pt;"><font face="Calibri" color="#000000" size="3">There is an inherent problem. Bulk Inserts work fine as long as there are no constraint violations. What if the primary key data already exists? Or, how do we update using BulkCopy? </font></p>
<p style="margin:0 0 10pt;"><font face="Calibri" color="#000000" size="3">These are some of the issues I ran into while doing some actual work. </font></p>
<p style="margin:0 0 10pt;"><font face="Calibri" color="#000000" size="3">I will soon post a solution to this problem&#8230;</font></div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=8&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-update-into-sql-from-c-app/feed/</wfw:commentRss>
		<slash:comments>99</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>TechTalk: Bulk Insert into SQL from C# App</title>
		<link>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-insert-into-sql-from-c-app/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-insert-into-sql-from-c-app/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 17:48:15 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[TechTalk]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-insert-into-sql-from-c-app</guid>
		<description><![CDATA[  One of the common problems I have seen is to bulk upload data to a SQL Server database. If you have the flexibility to directly run your code in SQL, you have a ton of options. But let&#8217;s say &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-insert-into-sql-from-c-app/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=12&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!2174" class="bvMsg">
<p>  </p>
<p>One of the common problems I have seen is to bulk upload data to a SQL Server database. If you have the flexibility to directly run your code in SQL, you have a ton of options. But let&#8217;s say that you have to massage the data before you throw it in to the database, then you have to really know your SQL (well to do it in SQL). </p>
<p>Let&#8217;s say you have to read data from an RSS feed, parse it and then load it into SQL. Let&#8217;s assume further that this feed updates every 2 hours. It would be a trivial task to write a C# app that reads and parses the feed. One crude way to upload this data would be to do a single row insert for each data element. This would be terribly inefficient. The other option would be to use .Net framework&#8217;s <font color="#ff0000">SqlBulkCopy</font> class. </p>
<p>The basic template would be something like
<pre><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> WriteToDatabase()
&#123;
    <span style="color:#008000;">// get your connection string</span>
    <span style="color:#0000ff;">string</span> connString = &quot;<span style="color:#8b0000;"></span>&quot;;
    <span style="color:#008000;">// connect to SQL</span>
    <span style="color:#0000ff;">using</span> (SqlConnection connection =
            <span style="color:#0000ff;">new</span> SqlConnection(connString))
    &#123;
        <span style="color:#008000;">// make sure to enable triggers</span>
        <span style="color:#008000;">// more on triggers in next post</span>
        SqlBulkCopy bulkCopy =
            <span style="color:#0000ff;">new</span> SqlBulkCopy
            (
            connection,
            SqlBulkCopyOptions.TableLock |
            SqlBulkCopyOptions.FireTriggers |
            SqlBulkCopyOptions.UseInternalTransaction,
            <span style="color:#0000ff;">null</span>
            );

        <span style="color:#008000;">// set the destination table name</span>
        bulkCopy.DestinationTableName = <span style="color:#0000ff;">this</span>.tableName;
        connection.Open();

        <span style="color:#008000;">// write the data in the &quot;dataTable&quot;</span>
        bulkCopy.WriteToServer(dataTable);
        connection.Close();
    &#125;
    <span style="color:#008000;">// reset</span>
    <span style="color:#0000ff;">this</span>.dataTable.Clear();
    <span style="color:#0000ff;">this</span>.recordCount = 0;
&#125;</pre>
<p>The above code snippet shows you the API usage. But before you actually do that, you need to follow a couple of steps to setup your data table. </p>
<p>First, let&#8217;s look at a simple record structure (as reflected in C# class):
<pre><span style="color:#0000ff;">using</span> System;
<span style="color:#0000ff;">using</span> System.Data;
<span style="color:#0000ff;">using</span> System.Configuration;

<span style="color:#808080;">/// &lt;summary&gt;</span>
<span style="color:#808080;">/// Summary description for MyRecord</span>
<span style="color:#808080;">/// &lt;/summary&gt;</span>
<span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> MyRecord
&#123;
    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> TestInt;
    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> TestString;

	<span style="color:#0000ff;">public</span> MyRecord()
	&#123;
	&#125;

    <span style="color:#0000ff;">public</span> MyRecord(<span style="color:#0000ff;">int</span> myInt, <span style="color:#0000ff;">string</span> myString)
    &#123;
        <span style="color:#0000ff;">this</span>.TestInt = myInt;
        <span style="color:#0000ff;">this</span>.TestString = myString;
    &#125;
&#125;
</pre>
<p>Now, let&#8217;s start dissecting the class that we will use to upload the data:
<pre><span style="color:#0000ff;">using</span> System;
<span style="color:#0000ff;">using</span> System.Data;
<span style="color:#0000ff;">using</span> System.Collections.Generic;

<span style="color:#0000ff;">using</span> System.Data.SqlClient;
<span style="color:#0000ff;">using</span> System.Configuration;
<span style="color:#0000ff;">using</span> System.IO;

<span style="color:#0000ff;">namespace</span> SqlExamples.FileLoader
&#123;
<span style="color:#808080;">/// &lt;summary&gt;</span>
<span style="color:#808080;">/// Summary description for BulkUploadToSql</span>
<span style="color:#808080;">/// &lt;/summary&gt;</span>
<span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> BulkUploadToSql
&#123;
    <span style="color:#0000ff;">private</span> List&lt;MyRecord&gt; internalStore;

    <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">string</span> tableName;
    <span style="color:#0000ff;">protected</span> DataTable dataTable = <span style="color:#0000ff;">new</span> DataTable();
    <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">int</span> recordCount;
    <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">int</span> commitBatchSize;</pre>
<p>Note that we have an internal List data structure as well as the DataTable. This is redundant and you can avoid using the internalStore if your application does not need to massage the data before it&#8217;s sent to SQL. </p>
<p>I then define 2 private constructors. The reason is that we want to use the factory pattern to return our object to the caller.
<pre>    <span style="color:#0000ff;">private</span> BulkUploadToSql(
        <span style="color:#0000ff;">string</span> tableName,
        <span style="color:#0000ff;">int</span> commitBatchSize)
    &#123;
        internalStore = <span style="color:#0000ff;">new</span> List&lt;MyRecord&gt;();

        <span style="color:#0000ff;">this</span>.tableName = tableName;
        <span style="color:#0000ff;">this</span>.dataTable = <span style="color:#0000ff;">new</span> DataTable(tableName);
        <span style="color:#0000ff;">this</span>.recordCount = 0;
        <span style="color:#0000ff;">this</span>.commitBatchSize = commitBatchSize;

        <span style="color:#008000;">// add columns to this data table</span>
        InitializeStructures();
    &#125;

    <span style="color:#0000ff;">private</span> BulkUploadToSql() :
        <span style="color:#0000ff;">this</span>(&quot;<span style="color:#8b0000;">MyTableName</span>&quot;, 1000) &#123;&#125;
</pre>
<p>Note that we set the commit batch size. This is a very important factor that needs to be fine tuned for your database. What this defines is the number of records that we would send in one shot to the database. </p>
<p>The next step is to Initialize the data table with columns that reflect the actual table structure.
<pre><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> InitializeStructures()
&#123;
    <span style="color:#0000ff;">this</span>.dataTable.Columns.Add(&quot;<span style="color:#8b0000;">TI</span>&quot;, <span style="color:#0000ff;">typeof</span>(Int32));
    <span style="color:#0000ff;">this</span>.dataTable.Columns.Add(&quot;<span style="color:#8b0000;">TS</span>&quot;, <span style="color:#0000ff;">typeof</span>(<span style="color:#0000ff;">string</span>));
&#125;</pre>
<pre></pre>
<p>I then provided a factory method to load data into my internal structure from a data source. In the example code below, I use a Stream, but this can be any data source from where you wish to populate your data.
<pre><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> BulkUploadToSql Load(Stream dataSource)
&#123;
    <span style="color:#008000;">// create a new object to return</span>
    BulkUploadToSql o = <span style="color:#0000ff;">new</span> BulkUploadToSql();

    <span style="color:#008000;">// replace the code below</span>
    <span style="color:#008000;">// with your custom logic </span>
    <span style="color:#0000ff;">for</span> (<span style="color:#0000ff;">int</span> cnt = 0; cnt &lt; 10000; cnt++)
    &#123;
        MyRecord rec =
            <span style="color:#0000ff;">new</span> MyRecord
            (
            cnt,
            <span style="color:#0000ff;">string</span>.Format(&quot;<span style="color:#8b0000;">string&#123;0&#125;</span>&quot;, cnt)
            );
        o.internalStore.Add(rec);
    &#125;

    <span style="color:#0000ff;">return</span> o;
&#125;</pre>
<p>This would make sure that our class is properly initialized and loaded with data. Once the caller has a valid object, they can now &quot;Flush&quot; the data as shown below:
<pre><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> Flush()
&#123;
    <span style="color:#008000;">// transfer data to the datatable</span>
    <span style="color:#0000ff;">foreach</span> (MyRecord rec <span style="color:#0000ff;">in</span> <span style="color:#0000ff;">this</span>.internalStore)
    &#123;
        <span style="color:#0000ff;">this</span>.PopulateDataTable(rec);
        <span style="color:#0000ff;">if</span> (<span style="color:#0000ff;">this</span>.recordCount &gt;= <span style="color:#0000ff;">this</span>.commitBatchSize)
            <span style="color:#0000ff;">this</span>.WriteToDatabase();
    &#125;
    <span style="color:#008000;">// write remaining records to the DB</span>
    <span style="color:#0000ff;">if</span> (<span style="color:#0000ff;">this</span>.recordCount &gt; 0)
        <span style="color:#0000ff;">this</span>.WriteToDatabase();
&#125;

<span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> PopulateDataTable(MyRecord record)
&#123;
    DataRow row;
    <span style="color:#008000;">// populate the values</span>
    <span style="color:#008000;">// using your custom logic</span>
    row = <span style="color:#0000ff;">this</span>.dataTable.NewRow();

    row[0] = record.TestInt;
    row[1] = record.TestString;

    <span style="color:#008000;">// add it to the base for final addition to the DB</span>
    <span style="color:#0000ff;">this</span>.dataTable.Rows.Add(row);
    <span style="color:#0000ff;">this</span>.recordCount++;
&#125;
</pre>
<p>In the example above, the call to Flush() actually massages the data (and at the same time loads it into the actual data table). As I mentioned before, you can actually skip this step if your application does not require massaging. </p>
<p>As a example of an app that uses this class:
<pre><span style="color:#0000ff;">using</span> System;
<span style="color:#0000ff;">using</span> System.Collections.Generic;
<span style="color:#0000ff;">using</span> System.Text;
<span style="color:#0000ff;">using</span> SqlExamples.FileLoader;
<span style="color:#0000ff;">using</span> System.IO;

<span style="color:#0000ff;">namespace</span> DemoApp
&#123;
<span style="color:#0000ff;">class</span> Program
&#123;
    <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)
    &#123;
        <span style="color:#0000ff;">using</span> (Stream s =
            <span style="color:#0000ff;">new</span> StreamReader(@&quot;<span style="color:#8b0000;">C:\TestData.txt</span>&quot;))
        &#123;
            BulkUploadToSql myData =
                BulkUploadToSql.Load(s);
            myData.Flush();
        &#125;
    &#125;
&#125;
&#125;
</pre>
<p>As always, this is JUST demo code to explain a concept. This is NOT production quality code and please make sure to follow the coding guidelines in your team. </p>
<p>Happy coding&#8230;.</p></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=12&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2007/07/30/techtalk-bulk-insert-into-sql-from-c-app/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>TechTalk: Handling global web service unhandled exceptions</title>
		<link>http://nikhilsinghal2010.wordpress.com/2007/07/16/techtalk-handling-global-web-service-unhandled-exceptions/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2007/07/16/techtalk-handling-global-web-service-unhandled-exceptions/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 19:29:11 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[TechTalk]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2007/07/16/techtalk-handling-global-web-service-unhandled-exceptions</guid>
		<description><![CDATA[One of the most tiresome (but important) things when developing web services is handling un-handled exceptions. A good design principle forces you to catch and cast relevant exceptions raised by your web methods into more meaningful SOAP exceptions. But exceptions &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2007/07/16/techtalk-handling-global-web-service-unhandled-exceptions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=11&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!2173" class="bvMsg">
<p>One of the most tiresome (but important) things when developing web services is handling un-handled exceptions. A good design principle forces you to catch and cast relevant exceptions raised by your web methods into more meaningful SOAP exceptions. But exceptions will occur. </p>
<p>It is quite tedious to wrap each web method in a try/catch loop. This dictates a need for a <b>common framework to handle unhandled web services exceptions</b>. In this blog post, I will guide you through a step by step process for building one. </p>
<p><b>Summary: </b></p>
<ol>
<li>Extend SoapExtension class and override the ProcessMessage() method.
<li>In ProcessMessage(), add special handler code for message stage of SoapMessageStage.AfterSerialize.
<li>Modify the web service&#8217;s web.config file and add a &lt;soapExtensionTypes&gt; node to &lt;webServices&gt; section. </ol>
<p><b>Details: </b></p>
<p>Ok, now let&#8217;s dig deeper into the code. </p>
<p><font color="#ff0000"><b><u>Step 1</u></b>: </font></p>
<p>The first step in the whole process is to extend the SoapExtension class override the ProcessMessage() method. </p>
<p><font face="Courier New" color="#800000" size="1">using System.IO;<br />using System.Web.Services;<br />using System.Web.Services.Protocols;<br />using System.Xml;<br />using System; </font></p>
<p><font face="Courier New" color="#800000" size="1">public class TelspaceSoapExtension : SoapExtension<br />&#123;<br />    private Stream originalStream;<br />    private Stream updatedStream; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public override object GetInitializer(Type serviceType)<br />    &#123;<br />        return null;<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public override object GetInitializer<br />    (LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)<br />    &#123;<br />        return null;<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public override void Initialize(object initializer)<br />    &#123;<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public override Stream ChainStream(Stream stream)<br />    &#123;<br />        originalStream = stream;<br />        updatedStream = new MemoryStream();<br />        return updatedStream;<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    private void Transfer(Stream inStream, Stream outStream)<br />    &#123;<br />        StreamReader sr = new StreamReader(inStream);<br />        StreamWriter sw = new StreamWriter(outStream);<br />        sw.Write(sr.ReadToEnd());<br />        sw.Flush();<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public override void ProcessMessage(SoapMessage soapMessage)<br />    &#123;<br />        switch (soapMessage.Stage)<br />        &#123;<br />            case SoapMessageStage.BeforeDeserialize:<br />                Transfer(originalStream, updatedStream);<br />                updatedStream.Position = 0;<br />                break; </font></p>
<p><font face="Courier New" color="#800000" size="1">            case SoapMessageStage.AfterSerialize:<br />                if ((soapMessage.Exception != null))<br />                &#123;<br />                    ExceptionProcessor processor = new ExceptionProcessor(); </font></p>
<p><font face="Courier New" color="#800000" size="1">                    string details; </font></p>
<p><font face="Courier New" color="#800000" size="1">                    // handle our exception, and get the SOAP &lt;detail&gt; string<br />                    details = processor.HandleWebServiceException(soapMessage); </font></p>
<p><font face="Courier New" color="#800000" size="1">                    // read the entire SOAP message stream into a string<br />                    updatedStream.Position = 0;<br />                    TextReader tr = new StreamReader(updatedStream); </font></p>
<p><font face="Courier New" color="#800000" size="1">                    // insert our exception details into the string<br />                    string s = tr.ReadToEnd();<br />                    s = s.Replace(&quot;&lt;detail /&gt;&quot;, details); </font></p>
<p><font face="Courier New" color="#800000" size="1">                    // overwrite the stream with our modified string<br />                    updatedStream = new MemoryStream();<br />                    TextWriter tw = new StreamWriter(updatedStream);<br />                    tw.Write(s);<br />                    tw.Flush();<br />                &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">                updatedStream.Position = 0;<br />                Transfer(updatedStream, originalStream);<br />                break;<br />        &#125;<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">&#125; </font></p>
<p><font color="#ff0000"><b><u>Step 2</u></b>:</font> </p>
<p>The next step is to handle the exception and get out meaningful details from the exception. For this purpose, let&#8217;s dig deeper into the ExceptionProcessor class. This class has one public method: HandleWebServiceException(System.Web.Services.Protocols.SoapMessage sm). This method is called from our ProcessMessage()case SoapMessageStage.AfterSerialize. </p>
<p>Here is the code: </p>
<p><font face="Courier New" color="#800000" size="1">using System;<br />using System.Collections.Generic;<br />using System.Text;<br />using System.Xml;<br />using System.Web.Services.Protocols;<br />using System.Runtime.InteropServices;<br />using System.Diagnostics;<br />using System.Reflection;<br />using SASMTPLib;<br />using System.IO; </font></p>
<p><font face="Courier New" color="#800000" size="1">class ExceptionProcessor<br />&#123;<br />    private string currentExceptionDetails;<br />    private string currentExceptionTypeName; </font></p>
<p><font face="Courier New" color="#800000" size="1">    private const string RootExceptionName = &quot;System.Web.HttpUnhandledException&quot;;<br />    private const string RootWsExceptionName = &quot;System.Web.Services.Protocols.SoapException&quot;; </font></p>
<p><font face="Courier New" color="#800000" size="1">    public string HandleWebServiceException(System.Web.Services.Protocols.SoapMessage sm)<br />    &#123;<br />        HandleException(sm.Exception);<br />        XmlDocument doc = new XmlDocument();<br />        XmlNode detailNode = doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);<br />        XmlNode typeNode = doc.CreateNode(XmlNodeType.Element, &quot;ExceptionType&quot;, SoapException.DetailElementName.Namespace);<br />        typeNode.InnerText = currentExceptionTypeName;<br />        detailNode.AppendChild(typeNode); </font></p>
<p><font face="Courier New" color="#800000" size="1">        XmlNode messageNode = doc.CreateNode(XmlNodeType.Element, &quot;ExceptionMessage&quot;, SoapException.DetailElementName.Namespace);<br />        messageNode.InnerText = sm.Exception.Message;<br />        detailNode.AppendChild(messageNode); </font></p>
<p><font face="Courier New" color="#800000" size="1">        XmlNode infoNode = doc.CreateNode(XmlNodeType.Element, &quot;ExceptionInfo&quot;, SoapException.DetailElementName.Namespace);<br />        infoNode.InnerText = currentExceptionDetails;<br />        detailNode.AppendChild(infoNode);<br />        return detailNode.OuterXml.ToString();<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    private void HandleException(Exception ex)<br />    &#123;<br />        try<br />        &#123;<br />            currentExceptionDetails = NormalizeException(ex);<br />            currentExceptionTypeName = ex.GetType().FullName; </font></p>
<p><font face="Courier New" color="#800000" size="1">            // ignore root exceptions<br />            if (((currentExceptionTypeName == RootExceptionName) || (currentExceptionTypeName == RootWsExceptionName)))<br />            &#123;<br />                if (ex.InnerException != null)<br />                &#123;<br />                    currentExceptionTypeName = ex.InnerException.GetType().FullName;<br />                &#125;<br />            &#125;<br />        &#125;<br />        catch (Exception e)<br />        &#123;<br />            currentExceptionDetails = string.Format(&quot;Error \&#8217;&#123;0&#125;\&#8217; while generating exception string&quot;, e.Message );<br />        &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">        ExceptionToEmail();<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    private string NormalizeException(Exception ex)<br />    &#123;<br />        StringBuilder sb = new StringBuilder(); </font></p>
<p><font face="Courier New" color="#800000" size="1">        if (ex.InnerException != null)<br />        &#123;<br />            if (((ex.GetType().ToString() == RootExceptionName) || (ex.GetType().ToString() == RootWsExceptionName)))<br />            &#123;<br />                return NormalizeException(ex.InnerException);<br />            &#125;<br />            else<br />            &#123;<br />                sb.Append(NormalizeException(ex.InnerException));<br />                sb.Append(Environment.NewLine);<br />                sb.Append(&quot;(Outer Exception)&quot;);<br />                sb.Append(Environment.NewLine);<br />            &#125;<br />        &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">        // get exception-specific information<br />        sb.Append(&quot;Exception Type:\t\t&quot;);<br />        try<br />        &#123;<br />            sb.Append(ex.GetType().FullName);<br />        &#125;<br />        catch (Exception e)<br />        &#123;<br />            sb.Append(e.Message);<br />        &#125;<br />        sb.Append(Environment.NewLine); </font></p>
<p><font face="Courier New" color="#800000" size="1">        sb.Append(&quot;Exception Message:\t\t&quot;);<br />        try<br />        &#123;<br />            sb.Append(ex.Message);<br />        &#125;<br />        catch (Exception e)<br />        &#123;<br />            sb.Append(e.Message);<br />        &#125;<br />        sb.Append(Environment.NewLine); </font></p>
<p><font face="Courier New" color="#800000" size="1">        sb.Append(&quot;Exception Target Method:\t&quot;);<br />        try<br />        &#123;<br />            sb.Append(ex.TargetSite.Name);<br />        &#125;<br />        catch (Exception e)<br />        &#123;<br />            sb.Append(e.Message);<br />        &#125;<br />        sb.Append(Environment.NewLine); </font></p>
<p><font face="Courier New" color="#800000" size="1">        sb.Append(&quot;Stack Trace:\t\t&quot;);<br />        sb.Append(Environment.NewLine);<br />        try<br />        &#123;<br />            sb.Append(ex.StackTrace);<br />        &#125;<br />        catch (Exception e)<br />        &#123;<br />            sb.Append(e.Message);<br />        &#125;<br />        sb.Append(Environment.NewLine); </font></p>
<p><font face="Courier New" color="#800000" size="1">        return sb.ToString();<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">    private void ExceptionToEmail()<br />    &#123;<br />        // Send e-mail code<br />    &#125; </font></p>
<p><font face="Courier New" color="#800000" size="1">&#125;</font> </p>
<p><font color="#ff0000"><b><u>Step 3</u></b>:</font> </p>
<p>The final step is to modify web.config of the web services to include the following section (under &lt;system.web&gt; node) </p>
<p><font face="Courier New" color="#800000" size="1">&lt;webServices&gt;<br />  &lt;soapExtensionTypes&gt;<br />    &lt;add type=&quot;TelspaceSoapExtension, ExceptionHandler&quot; priority=&quot;1&quot; group=&quot;High&quot;/&gt;<br />  &lt;/soapExtensionTypes&gt;<br />&lt;/webServices&gt;</font></p>
</p>
</p>
</p>
</p>
</p>
</p>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=11&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2007/07/16/techtalk-handling-global-web-service-unhandled-exceptions/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>You CAN change your blog post date&#8230;</title>
		<link>http://nikhilsinghal2010.wordpress.com/2006/08/22/you-can-change-your-blog-post-date/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2006/08/22/you-can-change-your-blog-post-date/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 21:05:45 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[MSN Spaces]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2006/08/22/you-can-change-your-blog-post-date</guid>
		<description><![CDATA[One of the biggest pain points that I have seen for Windows Live Spaces users is the in-ability to change a blog post date (once posted). Well, for those of you (including me) who have been bitten by this problem &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2006/08/22/you-can-change-your-blog-post-date/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=4&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!1364" class="bvMsg">
<p>One of the biggest pain points that I have seen for <a href="http://spaces.live.com/">Windows Live Spaces</a> users is the in-ability to change a blog post date (once posted). </p>
<p>Well, for those of you (including me) who have been bitten by this problem more than once, cry no more!!! <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a> team recently launched their flag ship product (read about it <a href="http://windowslivewriter.spaces.live.com/blog/cns!D85741BB5E0BE8AA!174.entry">here</a>) that has a &quot;mechanism&quot; to change the blog post date. Here it goes&#8230; (don&#8217;t get scared by the number of steps I have listed below. I have broken the process down in very minute steps). </p>
<ol>
<li>Install Windows Live Writer from <a href="http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Writer.msi">here</a> and set it up for Windows Live Spaces and make it point to your space (e.g. <a href="http://nikhil.spaces.live.com/">Nikhil&#8217;s space</a>)</li>
<li>Click on &quot;Open&quot; (from either File-&gt;Open Post&#8230; OR the Open button on the tool bar.</li>
<li>Select your Space from the list on the left side. There will be a brief wait while the Writer is getting blog posts from your space. You will then be shown your latest 5 blog entries. Let&#8217;s say you want to edit post #2 which you had posted a week back. </li>
<li>Double click on the post. The post opens in edit mode in a new window. There are 2 ways to reach to the &quot;Change date&quot; section &#8211; either press &quot;F2&quot; or navigate to the bottom of the page and click onthe &quot;Properties&quot; line. </li>
<li>You will see a Date/Time: edit field. Check the checkbox next to the date and update the date/time to what ever you desire. Make sure you do not specify a date greater than NOW. </li>
<li>Click on &quot;Publish&quot; at the top on the tool bar. </li>
</ol>
<p>YOU ARE DONE. It&#8217;s that&#8217;s simple. Enjoy!!!</p>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=4&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2006/08/22/you-can-change-your-blog-post-date/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Spaces Search : De-mystified &#8211; UI version</title>
		<link>http://nikhilsinghal2010.wordpress.com/2006/08/19/spaces-search-de-mystified-ui-version/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2006/08/19/spaces-search-de-mystified-ui-version/#comments</comments>
		<pubDate>Sat, 19 Aug 2006 09:01:08 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2006/08/19/spaces-search-de-mystified-ui-version</guid>
		<description><![CDATA[  This post has been long overdue on my part. I have been planning to write this up for now over a year&#8230; Windows Live Spaces search feature is a very powerful tool that allows you to to search Spaces &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2006/08/19/spaces-search-de-mystified-ui-version/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=5&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!1302" class="bvMsg">
<p> </p>
<p>This post has been long overdue on my part. I have been planning to write this up for now over a year&#8230;</p>
<p>Windows Live Spaces search feature is a very powerful tool that allows you to to search Spaces contents in a very precise way. Let me first introduce some basic concepts:</p>
<p><strong>Scoping (a.ka. Drill down)</strong>: Spaces search results can be scoped to specific object types. Currently, 4 types of scoping is permitted: &quot;All&quot;, &quot;Spaces&quot;, &quot;People&quot; and &quot;Blog entries&quot;. The following image shows the various options.</p>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNai91nFgms-eco_qY6L8QbWOLYoyStlPhH-trtJSxujEgOCqr4Ep0E6426Ph7CIOclPYnigor7TZnOZ_VhUDvu3-0QHLR_YHSibQKVWTWIO8" /> </p>
<p>When you first do a <em>keyword</em> search (more on this below), we try to give you a &quot;preview&quot; into all areas of Spaces that would have a match for your given search term. From here you can narrow down (aka drill down) into one specific area that interests you. For example, if you are just looking for personal spaces home page (e.g. <a href="http://nikhil.spaces.live.com/">nikhil.spaces.live.com</a>), narrowing down to <strong>Spaces</strong> is what you would do. On the same idea, if you are looking for <strong>profiles</strong> (e.g. <a href="http://nikhil.spaces.live.com/personalspace.aspx?_c01_memberprofiletile=showdefault&amp;_c=memberprofiletile">http://nikhil.spaces.live.com/personalspace.aspx?_c01_memberprofiletile=showdefault&amp;_c=memberprofiletile</a>), you would select &quot;People&quot; and if your interest lies in <strong>blog entries </strong>(e.g. <a href="http://nikhil.spaces.live.com/blog/cns!A6E2B32DB60BF014!925.entry">http://nikhil.spaces.live.com/blog/cns!A6E2B32DB60BF014!925.entry</a>), you would use &quot;Blog entries&quot; scope. </p>
<p>There are <em>2 ways to drill down to your specific scope </em>(or result type)<em> </em>- By using the drop down box (as shown in the above image) or by clicking the name in the section display (see image below).</p>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZXXssEeDyZgdh20k0b5-YgjtaKwgSKb35wdErEp4YGggS968vZ3vCU10iFG0O7ZclnKuHMHttw6mZNZOBPTdi76qWlSPOcZ27Quc5tegejw019ZbgMc6-wU" /> </p>
<p><strong>Search Types</strong>: Now that we have some understanding of what scoping is and how it works, let&#8217;s change our focus on different <em>types</em> of searches that Spaces supports. The first type is very obvious &#8211; <strong>Keyword </strong>search. This is the search that happens when you issue a search query from the Header (sorry for the squished up image).</p>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZN9XLNjnRb96JCda9Z2f_mm2d_73UP326eI-NQ3AiiuuKvglS-4r0QAWqle3WDgY0UiNli8Vbgk7mgybAovLEFaaYAdq3ZRlRDO8WG4xhmkeE" /> </p>
<p><strong>Keyword</strong> search is what you would generally do on MSN Search (or Google). When you do a keyword search, the page text crawled is searched. Also, for a keyword search, you can <em>scope</em> to all different types of searches. </p>
<p>The second type of search you can do is &quot;<strong>Interests</strong>&quot; or &quot;Tag&quot; search. This is a very specific search that you can initiate from various UI elements &#8211; From the &quot;<a href="http://spaces.live.com/default.aspx?page=Interests">Spaces interests</a>&quot; page, or from the interests section of a personal profile page or from &quot;<em>Advanced People Search</em>&quot; (more on this one below). When you do an &quot;Interests&quot; search, we (Spaces) issues a special &quot;META&quot; search for people&#8217;s profiles that have been &quot;tagged&quot; with those interests. As we are searching for interests, we only show you &quot;Profile&quot; scoped results.</p>
<p>The third type of search is the most advanced, complicated and well, interesting. We call it <strong>Advanced People Search </strong>or APS for short. You can do an APS from the <a href="http://spaces.live.com/">Spaces home page</a>.</p>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNnGcn_oGUKqb12PVLehol3bdsqvi4NEWyPOWAX6oXLFJroomcG3IXasth8qQA44dFbTn23WvIluxGGdvEfPwHLIkF7SG5qk5i7qnfQRF0wkU" /> </p>
<p>This is again a <em>people profile </em>search so you would get only &quot;People&quot; results and you cannot change the scope. This is a specialized search that searches for people&#8217;s profiles for very specific items. You can search for <em>Display Name, First Name, Last Name, Gender, Age range, Location, Occupation and Interests</em> or any combination there of. This allows you to search for, lets say, Females, in the age range of 25-29, living in Seattle, who are software engineers and are interested in having fun <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . This is a very powerful search mechanism that let&#8217;s you drill down on very specific attributes for people you are looking for. </p>
<p><strong>Other UI elements</strong>: </p>
<ul>
<li><strong>Saved session search</strong>: Once you have issued a search, it will be saved for your session and you can always visit it back by clicking on the &quot;Search&quot; tab on the left navigation panel on the <a href="http://spaces.live.com/">Spaces home page</a>.</li>
</ul>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZN4_x6Mn2iIck9J9Zm27MPv5QB8U0ycpNucGyQ0bwAJpQlsQ9f7I4WgYCazn7J3gcBYeH3A9_dC9wYLXuOhWWiddiMw3PA0Krn3Tui94cGOm8" /> </p>
<ul>
<li><strong>Contact control</strong>: Spaces search is very different than other search engines as we do not show you just the search results. For each search result, we show you a &quot;Contact control&quot; which allows you to see that person&#8217;s photo (if available) and a bunch of other options like viewing their space, profile, contact card, friends list, etc. etc.</li>
</ul>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZXXssEeDyZgdorLSwWEM7bOgVLiTKDI6c2ddlS72F--6jB3HUxqHnuof7OneeC5gQC6069e3YgFARjEtGrOP0Y3XiOcf7NVdVgf0YuGMOM5O3lZE9t7d0Z4" /> </p>
<ul>
<li><strong>&quot;Safe&quot; search</strong>: We take protecting our minors very seriously. Only &quot;gray area&quot; words are allowed if you are signed in and are of an adult age as defined by your market (for example 18 years in en-US).
<li><strong>Search RSS feed</strong>: Spaces search results are also available as RSS feeds (if you are so inclined). Navigate down to the bottom of the page and you will see a cool looking RSS icon which will let you subscribe to that search result (properly <em>scoped</em> and <em>typed</em>) as an RSS feed. We limit the RSS feed items to the top 10 items.</li>
</li>
</ul>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNDRq0SRcZXo_Fk9Q86YE_CFrg9HeOqv-WT_eagsfnDxbohZq0Vp_8ag4ev_aQxUQTWEAvDw7X8MaYj85t_xRH2s5u3IPLqzBapqh8mTEU8Jc" /> </p>
<ul>
<li><strong>&quot;Collapsible&quot; sections</strong>: The search results for each <em>scope </em>are contained within a section which can be collapsed/expanded by either clicking the +/- symbol on the left or on the blue section header. </li>
</ul>
<p><img src="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNIxdhKEJ0HB-PUwzDW2vyhLVHx7wr1F2GzLYjd2c3LEOImdfmGBovezl6c032QiGtxiSztZmRiVIYw0mUgcqEDiwa8pBrFawzKlJ0BId3DhA" /> </p>
<ul>
<li><strong>Ads</strong>: Of course, we have to make money too <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p><strong>What sucks</strong>: Aha&#8230; The section that every developer hates to talk about. But I will be brave and hopefully you will also be understanding enough as we work through the issues and improve the experience. <em>My </em>2 biggest sore points are result count and  paging controls. We are working on both these issues and hopefully will have a better story on them.</p>
<ul>
<li><strong>Result count</strong>: Although we show that for a given query we have 137838 results (see image above), we do not show any results over page 16 (or 17). Basically, we cap out at 250 results (we are not responsible for this &#8211; more on this in another post). It SUCKS.
<li><strong>Paging</strong>: This is a direct result of the above problem. The paging model allows you to navigate to the &quot;last&quot; page of search results, but since we cap the result as 250, this paging model does not make sense. </li>
</ul>
<p>Hopefully, these notes would help you understand how spaces search cab be used by you in a more meaningful way that relates more to what you are looking for. After all, Windows Live Spaces is your personal reflection to the world. </p>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=5&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2006/08/19/spaces-search-de-mystified-ui-version/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNai91nFgms-eco_qY6L8QbWOLYoyStlPhH-trtJSxujEgOCqr4Ep0E6426Ph7CIOclPYnigor7TZnOZ_VhUDvu3-0QHLR_YHSibQKVWTWIO8" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZXXssEeDyZgdh20k0b5-YgjtaKwgSKb35wdErEp4YGggS968vZ3vCU10iFG0O7ZclnKuHMHttw6mZNZOBPTdi76qWlSPOcZ27Quc5tegejw019ZbgMc6-wU" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZN9XLNjnRb96JCda9Z2f_mm2d_73UP326eI-NQ3AiiuuKvglS-4r0QAWqle3WDgY0UiNli8Vbgk7mgybAovLEFaaYAdq3ZRlRDO8WG4xhmkeE" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNnGcn_oGUKqb12PVLehol3bdsqvi4NEWyPOWAX6oXLFJroomcG3IXasth8qQA44dFbTn23WvIluxGGdvEfPwHLIkF7SG5qk5i7qnfQRF0wkU" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZN4_x6Mn2iIck9J9Zm27MPv5QB8U0ycpNucGyQ0bwAJpQlsQ9f7I4WgYCazn7J3gcBYeH3A9_dC9wYLXuOhWWiddiMw3PA0Krn3Tui94cGOm8" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZXXssEeDyZgdorLSwWEM7bOgVLiTKDI6c2ddlS72F--6jB3HUxqHnuof7OneeC5gQC6069e3YgFARjEtGrOP0Y3XiOcf7NVdVgf0YuGMOM5O3lZE9t7d0Z4" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNDRq0SRcZXo_Fk9Q86YE_CFrg9HeOqv-WT_eagsfnDxbohZq0Vp_8ag4ev_aQxUQTWEAvDw7X8MaYj85t_xRH2s5u3IPLqzBapqh8mTEU8Jc" medium="image" />

		<media:content url="http://byfiles.storage.msn.com/x1pc_jqddVOWRmyzuIar_49ZZIak6-HpDZNIxdhKEJ0HB-PUwzDW2vyhLVHx7wr1F2GzLYjd2c3LEOImdfmGBovezl6c032QiGtxiSztZmRiVIYw0mUgcqEDiwa8pBrFawzKlJ0BId3DhA" medium="image" />
	</item>
		<item>
		<title>Talking about List of Hindi &amp; Punjabi radio stations online</title>
		<link>http://nikhilsinghal2010.wordpress.com/2006/08/16/talking-about-list-of-hindi-punjabi-radio-stations-online/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2006/08/16/talking-about-list-of-hindi-punjabi-radio-stations-online/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 06:36:48 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2006/08/16/talking-about-list-of-hindi-punjabi-radio-stations-online</guid>
		<description><![CDATA[ An excellent collection of radio stations&#8230; Quote List of Hindi &#38; Punjabi radio stations online I thought I would share some a few of the resources I use to listen to music and relax.  Here is the list of online &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2006/08/16/talking-about-list-of-hindi-punjabi-radio-stations-online/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=9&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!1267" class="bvMsg">
<p> An excellent collection of radio stations&#8230;</p>
<p>Quote </p>
<blockquote><p><a href="http://sumeetk.spaces.live.com/blog/cns!3E5C35FEB8041B7E!500.entry">List of Hindi &amp; Punjabi radio stations online</a></p>
<div><font color="#000000"></p>
<p><font face="Times New Roman" size="3">I thought I would share some a few of the resources I use to listen to music and relax.<span>  </span>Here is the list of online Hindi &amp; Punjabi radio stations that I listen to frequently. Copy the URL in your media player and enjoy !!</font></p>
<p><i><font face="Times New Roman" size="3">RadioTarana-NewZealand ==&gt; mms://l1.r2.co.nz/tarana-1</font></i></p>
<p><i><font face="Times New Roman" size="3">106.2 HUMFM &#8211; UAE ==&gt; <a href="http://www.humfm.com/humfm.asx">http://www.humfm.com/humfm.asx</a></font></i><i><font face="Times New Roman" size="3"> </font></i></p>
<p><i><font face="Times New Roman" size="3">RadioOfIndia &#8211; Bollywood ==&gt; <a href="http://www.radioofindia.com/asf/bollywood.asx">http://www.radioofindia.com/asf/bollywood.asx</a></font></i></p>
<p><i><font face="Times New Roman" size="3">RadioOfIndia &#8211; Bhajans ==&gt; <a href="http://www.radioofindia.com/asf/bhajans.asx">http://www.radioofindia.com/asf/bhajans.asx</a></font></i></p>
<p><i><font face="Times New Roman" size="3">RadioOfIndia &#8211; Classical ==&gt; <a href="http://66.238.65.109/classical">http://66.238.65.109/classical</a></font></i></p>
<p><i><font face="Times New Roman" size="3">DesiSoundz &#8211; India ==&gt; http://desisoundz.com:8000 </font></i></p>
<p><font size="3"><font face="Times New Roman"><i><span lang="FR-CA">Sabras radio &#8211; UK ==&gt; <a href="http://ct1.fast-serv.com:8744/">http://ct1.fast-serv.com:8744</a></span></i></font></font><i><span lang="FR-CA"><font face="Times New Roman" size="3"> </font></span></i></p>
<p><i><font face="Times New Roman" size="3">Haagstad Radio &#8211; Holand ==&gt; mms://81.205.146.32:21/haagstadradio</font></i><i><font face="Times New Roman" size="3"> </font></i></p>
<p><i><font face="Times New Roman" size="3">RadioTeenTaal &#8211; Paris ==&gt; <a href="http://www.radioteentaal.com/masala128.wax">http://www.radioteentaal.com/masala128.wax</a></font></i><i><span lang="FR-CA"><font face="Times New Roman" size="3"> </font></span></i></p>
<p><font size="3"><font face="Times New Roman"><i><span lang="FR-CA">ApnaRadio &#8211; USA ==&gt; <a href="http://www.apnaradio.com/live/media24/ApnaRadio.asx">http://www.apnaradio.com/live/media24/ApnaRadio.asx</a></span></i></font></font></p>
<p><font size="3"><font face="Times New Roman"><i><span lang="FR-CA"></span></i></font></font><i><font face="Times New Roman" size="3">BombayBeats FM ==&gt; <a href="http://www.1.fm/player/energybbfm32k.asx">http://www.1.fm/player/energybbfm32k.asx</a></font></i></p>
<p><font size="3"><font face="Times New Roman"><i><span lang="FR-CA">Punjabi Radio &#8211; UK ==&gt; <a href="http://azul.streamguys.com/panjabradio?MSWMExt=.asf">http://azul.streamguys.com/panjabradio?MSWMExt=.asf</a></span></i></font></font></p>
<p><font size="3"><font face="Times New Roman"><i><span lang="FR-CA"></span></i></font></font><i><font face="Times New Roman" size="3">Amrit Bani &#8211; UK ==&gt; <a href="http://62.25.97.192/amritbani?MSWMExt=.asf">http://62.25.97.192/amritbani?MSWMExt=.asf</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Yarr Radio &#8211; UK ==&gt; mms://193.218.160.20/yaarradio</font></i></p>
<p><font size="3"><font face="Times New Roman"><i>Sunrise</i><i> FM &#8211; UK ==&gt; http://62.25.96.7/sunrise </i></font></font></p>
<p><i><font face="Times New Roman" size="3">Radio XL &#8211; UK ==&gt; <a href="http://www.vtuner.com/vTunerweb/mms/m3u13219.m3u">http://www.vtuner.com/vTunerweb/mms/m3u13219.m3u</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Asian Gold Radio &#8211; UK ==&gt; <a href="http://62.25.96.7/asiangold">http://62.25.96.7/asiangold</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Asian Sound Radio &#8211; UK ==&gt; <a href="http://www.vtuner.com/vtunerweb/mms/mms15278.asx">http://www.vtuner.com/vtunerweb/mms/mms15278.asx</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Sanskar Radio &#8211; UK ==&gt; <a href="http://www.vtuner.com/vTunerweb/mms/m3u18290.m3u">http://www.vtuner.com/vTunerweb/mms/m3u18290.m3u</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Trishul 90.5 FM ==&gt; <a href="http://www.vtuner.com/vtunerweb/mms/mms14734.asx">http://www.vtuner.com/vtunerweb/mms/mms14734.asx</a></font></i></p>
<p><i><font face="Times New Roman" size="3">Radio Apni Awaz ==&gt; mms://67.15.80.29/radioapniawaz</font></i></p>
<p><i><font face="Times New Roman" size="3">Radio India &#8211; Canada ==&gt; mms://live.radioindiabroadcasting.com/liveradio</font></i></p>
<p><i><font face="Times New Roman" size="3">City 101.6 FM &#8211; Dubai ==&gt; <a href="http://asx.abacast.com/arabian_radio-city-24.asx">http://asx.abacast.com/arabian_radio-city-24.asx</a></font></i></p>
<p><i><font face="Times New Roman" size="3">DDLive Video &#8211; India ==&gt; <a href="http://164.100.51.209/ddlive?MSWMExt=.asf">http://164.100.51.209/ddlive?MSWMExt=.asf</a></font></i><i><font face="Times New Roman" size="3"> </font></i></p>
<p><i><font size="3"><font face="Times New Roman">AajKal &#8211; Asian Network ==&gt; </font></font></i></p>
<p><i><font size="3"><font face="Times New Roman"><a href="http://stream.servstream.com/ViewWeb/BBCRadio_music/Event/BBCAsianNetwork_hi.asx">http://stream.servstream.com/ViewWeb/BBCRadio_music/Event/BBCAsianNetwork_hi.asx</a></font></font></i></p>
<p><i><font face="Times New Roman" size="3">BBC News ==&gt; <a href="http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.asx">http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.asx</a></font></i></p>
<p><em><font face="Times New Roman" size="3"></font></em> </p>
<p></font></div>
</blockquote>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=9&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2006/08/16/talking-about-list-of-hindi-punjabi-radio-stations-online/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
<enclosure url="http://www.humfm.com/humfm.asx" length="442" type="video/asf" />
<enclosure url="http://www.radioofindia.com/asf/bollywood.asx" length="0" type="video/asf" />
<enclosure url="http://www.radioofindia.com/asf/bhajans.asx" length="0" type="video/asf" />
<enclosure url="http://www.radioteentaal.com/masala128.wax" length="0" type="video/asf" />
<enclosure url="http://www.apnaradio.com/live/media24/ApnaRadio.asx" length="1305" type="video/asf" />
<enclosure url="http://www.1.fm/player/energybbfm32k.asx" length="716" type="video/asf" />
<enclosure url="http://www.vtuner.com/vTunerweb/mms/m3u13219.m3u" length="27" type="audio/x-mpegurl" />
<enclosure url="http://www.vtuner.com/vtunerweb/mms/mms15278.asx" length="54" type="video/asf" />
<enclosure url="http://www.vtuner.com/vtunerweb/mms/mms14734.asx" length="19" type="video/asf" />
<enclosure url="http://asx.abacast.com/arabian_radio-city-24.asx" length="294" type="video/asf" />
<enclosure url="http://stream.servstream.com/ViewWeb/BBCRadio_music/Event/BBCAsianNetwork_hi.asx" length="293" type="video/asf" />
<enclosure url="http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.asx" length="0" type="video/asf" />
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Loss is such a strange thing</title>
		<link>http://nikhilsinghal2010.wordpress.com/2006/08/04/loss-is-such-a-strange-thing/</link>
		<comments>http://nikhilsinghal2010.wordpress.com/2006/08/04/loss-is-such-a-strange-thing/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 18:28:44 +0000</pubDate>
		<dc:creator>nikhilsinghal2010</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://nikhilsinghal2010.wordpress.com/2006/08/04/loss-is-such-a-strange-thing</guid>
		<description><![CDATA[Loss is such a strange thing (or should I say feeling). You never realize what you have (or were getting) till you loose it. The heart cries but all the tears in the world cannot bring it back. Small mistakes &#8230; <a href="http://nikhilsinghal2010.wordpress.com/2006/08/04/loss-is-such-a-strange-thing/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=19&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!A6E2B32DB60BF014!1257" class="bvMsg">
<div>Loss is such a strange thing (or should I say feeling). You never realize what you have (or were getting) till you loose it. The heart cries but all the tears in the world cannot bring it back. Small mistakes and carelessness on our part change the life so much. They give a whole new meaning to the word &quot;pain&quot;. </div>
<div> </div>
<div>Doctors say that 25% of the world&#8217;s population have it once in their lifetime. I don&#8217;t disagree with them, but the mere fact the comparing my loss to the world does not reduce the pain for me. It is still a life shattering loss for me. </div>
<div> </div>
<div>One way to console ourselves is that it gave us so much joy and happiness for the few months it was with us. Things moved towards goodness in the last few months. But now everything looks dark again. </div>
<div> </div>
<div>God, give us strength to bear thru this pain.. And may God never give this pain to even your worst enemies.</div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nikhilsinghal2010.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nikhilsinghal2010.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikhilsinghal2010.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikhilsinghal2010.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikhilsinghal2010.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikhilsinghal2010.wordpress.com&amp;blog=20673553&amp;post=19&amp;subd=nikhilsinghal2010&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikhilsinghal2010.wordpress.com/2006/08/04/loss-is-such-a-strange-thing/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/309ea2fccc24146d54b995d713a7df16?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikhilsinghal2010</media:title>
		</media:content>
	</item>
	</channel>
</rss>
