<?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/"
	>

<channel>
	<title>ShinyLight Development</title>
	<atom:link href="http://www.shinylight.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shinylight.com</link>
	<description>Web Development and Other Goodness in the World of a Software Engineer.</description>
	<lastBuildDate>Mon, 07 Jun 2010 03:02:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linked Server via MS Jet 4.0 Provider</title>
		<link>http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/</link>
		<comments>http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 03:00:28 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=982</guid>
		<description><![CDATA[Here&#8217;s another way to created a linked server using another provider, Microsoft Jet 4.0 OLE DB Provider. This is for SQL Server 2008. Check out my previous Linked Server tutorial if needed for SQL Server 2005.

For this setup, let&#8217;s use the login&#8217;s current security context. Make sure that you whatever SSMS you use to connect [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s another way to created a linked server using another provider, Microsoft Jet 4.0 OLE DB Provider. This is for SQL Server 2008. Check out my previous <a href="http://www.shinylight.com/2009/09/19/linked-servers/" target="_blank">Linked Server</a> tutorial if needed for SQL Server 2005.</p>
<p><img class="alignnone size-full wp-image-983" title="1" src="http://www.shinylight.com/wp-content/uploads/2010/06/1.png" alt="" width="495" height="448" /></p>
<p>For this setup, let&#8217;s use the login&#8217;s current security context. Make sure that you whatever SSMS you use to connect to the server uses the same user credentials as user that created the linked server.</p>
<p><img class="alignnone size-full wp-image-986" title="2" src="http://www.shinylight.com/wp-content/uploads/2010/06/2.png" alt="" width="488" height="430" /></p>
<p>So if I create that on a server, then I&#8217;ll have query it using the same credentials just used. If you want to know how to query it, check out my <a href="../2009/09/19/linked-servers/" target="_blank">Previous Tutorial</a>.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;submitHeadline=Linked+Server+via+MS+Jet+4.0+Provider&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;title=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;title=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;title=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;bm_description=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;T=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;title=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;title=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Linked+Server+via+MS+Jet+4.0+Provider+@+http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/&amp;t=Linked+Server+via+MS+Jet+4.0+Provider" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/06/07/linked-server-via-ms-jet-4-0-provider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Important Phone Features</title>
		<link>http://www.shinylight.com/2010/06/07/important-phone-features/</link>
		<comments>http://www.shinylight.com/2010/06/07/important-phone-features/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 02:49:09 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=979</guid>
		<description><![CDATA[My AT&#38;T contract expires in August and am considering what phone I should get. The progress of the iPhone is practically stagnating compared to how much Android is making progress. Not to mention the incredibly sucky service AT&#38;T provides and how much cash you have to shell out for it. So I&#8217;m considering getting away [...]]]></description>
			<content:encoded><![CDATA[<p>My AT&amp;T contract expires in August and am considering what phone I should get. The progress of the iPhone is practically stagnating compared to how much Android is making progress. Not to mention the incredibly sucky service AT&amp;T provides and how much cash you have to shell out for it. So I&#8217;m considering getting away from the iPhone. Anyways, for my next phone, I&#8217;m looking for:</p>
<ul>
<li>Good reception</li>
<li>4G</li>
<li>Act as a hotspot</li>
<li>Android or iPhone OS</li>
<li>The phone must have headphones that function as a remote to control songs (pause/play)</li>
<li>Physical Keyboard</li>
</ul>
<p>That&#8217;s really it. Also, I&#8217;m looking for a platform that provides the following apps:</p>
<ul>
<li>PDF reader</li>
<li>Chm reader</li>
<li>Weather</li>
<li>Google maps</li>
<li>Lirr schedule + map</li>
<li>Subway map</li>
<li>Rss reader</li>
<li>Twitter app</li>
<li>Fandango</li>
<li>Chat</li>
<li>YouTube</li>
<li>Radio podcasts</li>
<li>Wikipedia</li>
<li>Yelp</li>
<li>Imdb</li>
<li>Taxi</li>
<li>Soundhound</li>
<li>Facebook</li>
<li>Linkedin</li>
<li>Amazon</li>
</ul>
<p>Which both the Android and iPhone OS provide. I would&#8217;ve gotten the EVO 4G except it didn&#8217;t have a physical keyboard. We&#8217;ll see what comes out this year.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;submitHeadline=Important+Phone+Features&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;title=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;title=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/06/07/important-phone-features/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;title=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;bm_description=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;T=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;title=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;title=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/06/07/important-phone-features/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/06/07/important-phone-features/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Important+Phone+Features+@+http://www.shinylight.com/2010/06/07/important-phone-features/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/06/07/important-phone-features/&amp;t=Important+Phone+Features" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/06/07/important-phone-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tag a Revision using Subclipse</title>
		<link>http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/</link>
		<comments>http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/#comments</comments>
		<pubDate>Thu, 20 May 2010 01:25:09 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=973</guid>
		<description><![CDATA[Tagging a revision is a simple task if you&#8217;re using the subclipse plugin for Eclipse. For this example, we&#8217;re going to tag the trunk in our repository. This also assumes that your repository uses the traditional &#8220;3 directory setup&#8221; of branches, tags, and trunk. 
1. Make sure you have a SVN View tab in Eclipse. [...]]]></description>
			<content:encoded><![CDATA[<p>Tagging a revision is a simple task if you&#8217;re using the subclipse plugin for Eclipse. For this example, we&#8217;re going to tag the trunk in our repository. This also assumes that your repository uses the traditional &#8220;3 directory setup&#8221; of branches, tags, and trunk. </p>
<p>1. Make sure you have a SVN View tab in Eclipse. </p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/05/0.png" /></p>
<p>To do this, go to:<br />
Window > Show View > Other > SVN > SVN Repositories</p>
<p>2. Under &#8220;WebSites&#8221; (in the following screenshot), right click on the trunk, and select &#8220;Branch/Tag&#8230;&#8221;:</p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/05/11.png"  /></p>
<p>3. Make sure you use the appropriate tag version that adheres to your versioning needs. Also, make sure it&#8217;s under the &#8220;tags&#8221; folder: svn://WebSites/Project-2/tags/</p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/05/21.png" /></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;submitHeadline=Tag+a+Revision+using+Subclipse&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;title=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;title=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;title=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;bm_description=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;T=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;title=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;title=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Tag+a+Revision+using+Subclipse+@+http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/&amp;t=Tag+a+Revision+using+Subclipse" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/05/20/tag-a-revision-using-subclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting Image in Word</title>
		<link>http://www.shinylight.com/2010/05/20/resetting-image-in-word/</link>
		<comments>http://www.shinylight.com/2010/05/20/resetting-image-in-word/#comments</comments>
		<pubDate>Thu, 20 May 2010 00:44:20 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=968</guid>
		<description><![CDATA[Here&#8217;s a silly little tip I&#8217;ve just discovered. Often when you take a screenshot and paste it into Word, it&#8217;ll come up blurry. To reset it so that the image is the same size and also looks like the actual screenshot:
1. Right click on the image and choose Format Picture&#8230;

2. Click on &#8220;Picture&#8221; then &#8220;Reset [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a silly little tip I&#8217;ve just discovered. Often when you take a screenshot and paste it into Word, it&#8217;ll come up blurry. To reset it so that the image is the same size and also looks like the actual screenshot:</p>
<p>1. Right click on the image and choose Format Picture&#8230;</p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/05/1.png" /></p>
<p>2. Click on &#8220;Picture&#8221; then &#8220;Reset Picture&#8221;&#8230;</p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/05/2.png" /></p>
<p>That&#8217;s it!</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;submitHeadline=Resetting+Image+in+Word&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;title=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;title=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/05/20/resetting-image-in-word/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;title=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;bm_description=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;T=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;title=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;title=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/05/20/resetting-image-in-word/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/05/20/resetting-image-in-word/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Resetting+Image+in+Word+@+http://www.shinylight.com/2010/05/20/resetting-image-in-word/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/05/20/resetting-image-in-word/&amp;t=Resetting+Image+in+Word" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/05/20/resetting-image-in-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Database Import Scripts with Snapshots</title>
		<link>http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/</link>
		<comments>http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/#comments</comments>
		<pubDate>Tue, 04 May 2010 23:39:32 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Automation / Scripting]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=962</guid>
		<description><![CDATA[Can&#8217;t stress enough how handy database snapshots (compatible only in Enterprise and Developer editions of SQL Server 2005+) come in when testing bulk imports, data scrubbing, or any sort of data / schema modification script. In nearly no time, I can create a snapshot (via shortcut snippet), run my script &#8211; don&#8217;t like the results? [...]]]></description>
			<content:encoded><![CDATA[<p>Can&#8217;t stress enough how handy database snapshots (compatible only in Enterprise and Developer editions of SQL Server 2005+) come in when testing bulk imports, data scrubbing, or any sort of data / schema modification script. In nearly no time, I can create a snapshot (via shortcut snippet), run my script &#8211; don&#8217;t like the results? My script crapped out the data? I can run an instant undo by recovering from the snapshot, which works pretty fast. If I want to create another snapshot, I usually tend to overwrite the snapshot I created, and then create it again.</p>
<p>It&#8217;s so handy that I have a snippet for it:<br />
<img src="http://www.shinylight.com/wp-content/uploads/2010/05/snippet.png"  /></p>
<p>Anywhoot, here&#8217;s how you create a snapshot:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">-- CREATING A SNAPSHOT</span>
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">DATABASE</span> YourDatabase_snap <span style="color: #0000FF;">ON</span>         <span style="color: #008080;">-- Name of new snapshot</span>
<span style="color: #808080;">&#40;</span>
  NAME <span style="color: #808080;">=</span> yourdb_data,                        <span style="color: #008080;">-- Logical filename of source db you want to snapshot</span>
  FILENAME <span style="color: #808080;">=</span> <span style="color: #FF0000;">'c:<span style="color: #000099; font-weight: bold;">\Y</span>ourDatabase_data_1800.ss'</span>  <span style="color: #008080;">-- Sparse file to create</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span> SNAPSHOT <span style="color: #0000FF;">OF</span> YourDatabase;                 <span style="color: #008080;">-- Source db name</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">-- RECOVERING FROM A SNAPSHOT</span>
<span style="color: #0000FF;">USE</span> master;
<span style="color: #0000FF;">RESTORE</span> <span style="color: #0000FF;">DATABASE</span> YourDatabase                    <span style="color: #008080;">-- Source db name where the data resided</span>
<span style="color: #0000FF;">FROM</span> DATABASE_SNAPSHOT <span style="color: #808080;">=</span> <span style="color: #FF0000;">'YourDatabase_snap'</span>;    <span style="color: #008080;">-- Snapshot db name</span></pre></td></tr></table></div>

<p>Deleting a snapshot is just like dropping a database.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">DROP</span> <span style="color: #0000FF;">DATABASE</span> YourDatabase_Snap</pre></td></tr></table></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;submitHeadline=Testing+Database+Import+Scripts+with+Snapshots&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;title=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;title=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;title=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;bm_description=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;T=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;title=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;title=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Testing+Database+Import+Scripts+with+Snapshots+@+http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/&amp;t=Testing+Database+Import+Scripts+with+Snapshots" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/05/05/testing-database-import-scripts-with-snapshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing the Strategy Pattern in ColdFusion</title>
		<link>http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/</link>
		<comments>http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/#comments</comments>
		<pubDate>Sun, 02 May 2010 03:27:18 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=949</guid>
		<description><![CDATA[In spirit of the amazing book Head First Design Patterns, I wanted to put together a ColdFusion example that depicts the Strategy pattern. Essentially, the Strategy Pattern lets you group related algorithms together so that an object is able to select which algorithm to run at runtime. 
So let&#8217;s say for example you had a [...]]]></description>
			<content:encoded><![CDATA[<p>In spirit of the amazing book <a href="http://www.amazon.com/gp/product/0596007124/">Head First Design Patterns</a>, I wanted to put together a ColdFusion example that depicts the Strategy pattern. Essentially, the Strategy Pattern lets you group related algorithms together so that an object is able to select which algorithm to run at runtime. </p>
<p>So let&#8217;s say for example you had a parent class that has two properties and two methods. You now create a subclass that inherits the parent class, meaning that it will gobble up all the properties and methods (whether you like it or not) from the parent class. You can&#8217;t choose, for example, what methods you subclass needs, even if some methods don&#8217;t make sense for your subclass. It&#8217;s an all-or-nothing solution. Yes, you can override, but what if there were 10 methods to override? Also, what if you had to create other types of subclasses &#8211; you&#8217;ll have to override those as well. Things can get a little sloppy at the end. That&#8217;s where the strategy pattern comes in.</p>
<p>With this pattern, you first think about related methods and algorithms. (One method can have various algorithms; different implementations for doing the same thing.) For this blog post&#8217;s example, we&#8217;ll think of different ways a SuperHero can punch. To keep things simple, let&#8217;s give him two ways (two different algorithms for punching) he can punch. He can punch normally, or he can punch you, which freezes you as well. Let&#8217;s UML this to make things clearer.</p>
<p>First what the lines mean:</p>
<div align="center"><img src="/wp-content/uploads/2010/04/Lines.png"></div>
<p> <br/></p>
<p>Here&#8217;s the UML diagram for our SuperHero scenerio:</p>
<div align="center"><img src="/wp-content/uploads/2010/04/punchonly.png"></div>
<p> <br/></p>
<p>From the diagram, you can see that the SuperHero abstract class is able to choose a punch set of algorithms (a strategy). We also see that Punch and PunchFreeze are implementation classes (classes that serve to implement an interface). Both of them have a punch() method that return void (nothing) &#8211; in this example, they&#8217;ll do stuff, and not return anything. </p>
<p>To make things a little more interesting, and to follow closer the example in the Strategy Pattern chapter of the book, we&#8217;re going to also create a subclass called Freezer that inherits the SuperHero class. Also, we&#8217;ll create another strategy for kicking. Here&#8217;s what the UML for that looks like: </p>
<div align="center"><img src="/wp-content/uploads/2010/04/full.png"></div>
<p> <br/></p>
<p>Here&#8217;s the CF code:</p>
<p><strong>SuperHero.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- This is our abstract class. Responsibility to implement is delegated to ---&gt;</span>
<span style="color: #808080; font-style: italic;">&lt;!--- classes that implement interfaces. ---&gt;</span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;init&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span> returntype<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;SuperHero&quot;</span><span style="color: #0000FF;">&gt;</span></span>  
  <span style="color: #808080; font-style: italic;">&lt;!--- Some other init code goes here.  ---&gt;</span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfargument</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;name&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;string&quot;</span><span style="color: #0000FF;">&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfargument</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;gender&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;string&quot;</span><span style="color: #0000FF;">&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> this.<span style="color: #0000FF;">name</span> <span style="color: #0000FF;">=</span> arguments.<span style="color: #0000FF;">name</span> <span style="color: #0000FF;">/&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> this.gender <span style="color: #0000FF;">=</span> arguments.gender <span style="color: #0000FF;">/&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfreturn</span> this <span style="color: #0000FF;">/&gt;</span></span>  
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;setPunchAlgorithm&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  <span style="color: #808080; font-style: italic;">&lt;!--- The next two lines are key. It's where you set the implementation ---&gt;</span>
  <span style="color: #808080; font-style: italic;">&lt;!--- of punch from an object that's being passed in. ---&gt;</span>
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfargument</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;PunchAlgorithm&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;IPunchAlgorithm&quot;</span> <span style="color: #0000FF;">required</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;true&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> this.punchAction <span style="color: #0000FF;">=</span> PunchAlgorithm.punch <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;setKickAlgorithm&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfargument</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;KickAlgorithm&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;IKickAlgorithm&quot;</span> <span style="color: #0000FF;">required</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;true&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> this.kickAction <span style="color: #0000FF;">=</span> KickAlgorithm.kick <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- This function will be overridden.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;energyProject&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span> returntype<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;SuperHero&quot;</span> <span style="color: #0000FF;">&gt;</span></span>  
  You have been pointed at by a weak flash light.  
  <span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfreturn</span> this <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>IPunchAlgorithm.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span>cfinterface<span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;punch&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span>cfinterface<span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>Punch.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfcomponent</span> implements<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;IPunchAlgorithm&quot;</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;punch&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  You have been punched normally. Ouch.
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>PunchFreeze.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfcomponent</span> implements<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;IPunchAlgorithm&quot;</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;punch&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  You have been punched and are now frozen, stuck. Good luck thawing!
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>IKickAlgorithm.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span>cfinterface<span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;kick&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span>cfinterface<span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>Kick.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfcomponent</span> implements<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;IKickAlgorithm&quot;</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;kick&quot;</span> <span style="color: #0000FF;">access</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;public&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  You have been kicked in the gut. Yummy.
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p><strong>Freezer.cfc</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfcomponent</span> extends<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;SuperHero&quot;</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- We are overriding the energyProject from Freezer's parent class.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cffunction</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;energyProject&quot;</span><span style="color: #0000FF;">&gt;</span></span>
  You have been snowed on. 
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cffunction</span><span style="color: #0000FF;">&gt;</span></span>  
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfcomponent</span><span style="color: #0000FF;">&gt;</span></span></pre></div></div>

<p>Now let&#8217;s actually use these the pattern: </p>
<p><strong>run.cfm</strong></p>

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--- Create context object.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> IceMan <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;SuperHero&quot;</span> <span style="color: #0000FF;">&#41;</span>.init<span style="color: #0000FF;">&#40;</span> <span style="color: #0000FF;">Name</span> <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Iceman&quot;</span>, Gender <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Male&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Create a strategy #1 for punching.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> PunchStrategy_1 <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;Punch&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Create a different strategy for punching.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> PunchStrategy_2 <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;PunchFreeze&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Tell the IceMan object that you'll be using the Punch Strategy #2, NOT #1.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> IceMan.setPunchAlgorithm<span style="color: #0000FF;">&#40;</span> PunchStrategy_2 <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Now let's create a kicking strategy... ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> KickStrategy <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;Kick&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- ... and now let's tell the IceMan object that you'll be using the Kick Strategy.  ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> IceMan.setKickAlgorithm<span style="color: #0000FF;">&#40;</span> KickStrategy <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Now let's see some action!  ---&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Punch, using the strategy chosen! ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> IceMan.punchAction<span style="color: #0000FF;">&#40;</span><span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Punch, using the strategy chosen! ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> IceMan.kickAction<span style="color: #0000FF;">&#40;</span><span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Let's create another SuperHero object. ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> Frosty <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;SuperHero&quot;</span> <span style="color: #0000FF;">&#41;</span>.init<span style="color: #0000FF;">&#40;</span> <span style="color: #0000FF;">Name</span> <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Frosty the Snowman&quot;</span>, Gender <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Unknown&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Let's inspect the objects ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #000000; font-weight: bold;">p</span><span style="color: #0000FF;">&gt;</span></span>Notice that both objects have different number of methods - only the methods they need. <span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #000000; font-weight: bold;">p</span><span style="color: #0000FF;">&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfdump</span> <span style="color: #000000; font-weight: bold;">var</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;#IceMan#&quot;</span> <span style="color: #0000FF;">/&gt;</span></span><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #000000; font-weight: bold;">hr</span> <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfdump</span> <span style="color: #000000; font-weight: bold;">var</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;#Frosty#&quot;</span> <span style="color: #0000FF;">/&gt;</span></span><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #000000; font-weight: bold;">hr</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Let's create another SuperHero object. ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> Frostman <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">CreateObject</span><span style="color: #0000FF;">&#40;</span> <span style="color: #009900;">&quot;component&quot;</span>, <span style="color: #009900;">&quot;Freezer&quot;</span> <span style="color: #0000FF;">&#41;</span>.init<span style="color: #0000FF;">&#40;</span> <span style="color: #0000FF;">Name</span> <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Calvin Hobbes&quot;</span>, Gender <span style="color: #0000FF;">=</span> <span style="color: #009900;">&quot;Male&quot;</span> <span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> Frostman.energyProject<span style="color: #0000FF;">&#40;</span><span style="color: #0000FF;">&#41;</span> <span style="color: #0000FF;">/&gt;</span></span></pre></div></div>

<p>You can <a href="/wp-content/uploads/2010/04/strategy-pattern-cf.zip"><strong>download all the CF code</strong></a> here with the original Visio diagram source.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;submitHeadline=Implementing+the+Strategy+Pattern+in+ColdFusion&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;title=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;title=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;title=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;bm_description=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;T=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;title=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;title=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Implementing+the+Strategy+Pattern+in+ColdFusion+@+http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/&amp;t=Implementing+the+Strategy+Pattern+in+ColdFusion" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/05/02/implementing-strategy-pattern-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSQL Functions Inspired By ColdFusion&#8217;s Lists Functions</title>
		<link>http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/</link>
		<comments>http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 00:08:43 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=944</guid>
		<description><![CDATA[In my last project, there was a bit of data scrubbing on the database side (SQL Server 2008) that I decided to create a few UDF&#8217;s that function similar to ColdFusion&#8217;s Lists function. The one that varies a little bit is ListLen(), since I needed to take into account empty tokens. The ChopIf() was inspired [...]]]></description>
			<content:encoded><![CDATA[<p>In my last project, there was a bit of data scrubbing on the database side (SQL Server 2008) that I decided to create a few UDF&#8217;s that function similar to ColdFusion&#8217;s Lists function. The one that varies a little bit is ListLen(), since I needed to take into account empty tokens. The ChopIf() was inspired by Perl&#8217;s chop() function. These UDFs should be SQL Server 2005-compatible. </p>
<p>I should say though, that some of these functions depend on each other. ListLen(), GetToken(), and ChopIf() are independent.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Functions similarly like ColdFusion ListSort() function,</span>
<span style="color: #008080;">-- except it currently only sorts strings. </span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example 1:</span>
<span style="color: #008080;">--    dbo.ListSort( 'dan is so mega awesome that he rules all the time', 'ASC', ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    all awesome dan he is mega rules so that the time</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example 2:</span>
<span style="color: #008080;">--    dbo.ListSort( 'dan is so mega awesome that he rules all the time', 'DESC', ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    time the that so rules mega is he dan awesome all</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ListSort<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string    <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,  
  @sort_type <span style="color: #0000FF;">CHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">3</span><span style="color: #808080;">&#41;</span>       <span style="color: #808080;">=</span> <span style="color: #FF0000;">'ASC'</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">','</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">500</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
&nbsp;
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">DECLARE</span> @position <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">INT</span>
  <span style="color: #0000FF;">DECLARE</span> @token <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">DECLARE</span> @counter   <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">INT</span>
  <span style="color: #0000FF;">DECLARE</span> @sortedList <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">500</span><span style="color: #808080;">&#41;</span>
&nbsp;
  <span style="color: #0000FF;">DECLARE</span> @sortTempTable <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#40;</span> token <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">500</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">DECLARE</span> @sortedTable   <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#40;</span> token <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">500</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>  
&nbsp;
  <span style="color: #0000FF;">SELECT</span> @string   <span style="color: #808080;">=</span> @string <span style="color: #808080;">+</span> @delimiter,
         @counter  <span style="color: #808080;">=</span> <span style="color: #000;">1</span>,
         @position <span style="color: #808080;">=</span> <span style="color: #000;">0</span>,
         @token    <span style="color: #808080;">=</span> <span style="color: #FF0000;">''</span>
&nbsp;
  <span style="color: #0000FF;">WHILE</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">PATINDEX</span><span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">'%'</span> <span style="color: #808080;">+</span> @delimiter <span style="color: #808080;">+</span> <span style="color: #FF0000;">'%'</span> , @string <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> <span style="color: #808080;">&#41;</span> 
  <span style="color: #0000FF;">BEGIN</span>
    <span style="color: #0000FF;">SELECT</span> @position <span style="color: #808080;">=</span> <span style="color: #FF00FF;">PATINDEX</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%'</span> <span style="color: #808080;">+</span> @delimiter <span style="color: #808080;">+</span> <span style="color: #FF0000;">'%'</span> , @string <span style="color: #808080;">&#41;</span>,
           @token    <span style="color: #808080;">=</span> <span style="color: #0000FF;">LEFT</span><span style="color: #808080;">&#40;</span> @string, @position <span style="color: #808080;">-</span> <span style="color: #000;">1</span> <span style="color: #808080;">&#41;</span>,
           @string   <span style="color: #808080;">=</span> <span style="color: #FF00FF;">STUFF</span><span style="color: #808080;">&#40;</span> @string, <span style="color: #000;">1</span>, @position, <span style="color: #808080;">NULL</span> <span style="color: #808080;">&#41;</span>,
           @counter  <span style="color: #808080;">=</span> @counter <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
&nbsp;
    <span style="color: #0000FF;">INSERT</span> @sortTempTable<span style="color: #808080;">&#40;</span> token <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span><span style="color: #808080;">&#40;</span> @token <span style="color: #808080;">&#41;</span>     
  <span style="color: #0000FF;">END</span>
&nbsp;
  <span style="color: #0000FF;">SET</span> @sortedList <span style="color: #808080;">=</span> <span style="color: #FF0000;">''</span>
&nbsp;
  <span style="color: #008080;">-- Let's sort the table and put it into @sortedTable</span>
  <span style="color: #008080;">-- Because of nature of Rank(), we can't set @sortedList in this statement.</span>
  <span style="color: #008080;">-- Have to separate it into another select clause.</span>
  <span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">INTO</span> @sortedTable
    <span style="color: #0000FF;">SELECT</span> <span style="color: #FF00FF;">LTRIM</span><span style="color: #808080;">&#40;</span> token <span style="color: #808080;">&#41;</span>
    <span style="color: #0000FF;">FROM</span>   @sortTempTable
    <span style="color: #0000FF;">ORDER</span>  <span style="color: #0000FF;">BY</span> <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> @sort_type <span style="color: #808080;">=</span> <span style="color: #FF0000;">'ASC'</span>  <span style="color: #0000FF;">THEN</span> <span style="color: #808080;">&#40;</span> RANK<span style="color: #808080;">&#40;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">OVER</span> <span style="color: #808080;">&#40;</span> <span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> <span style="color: #FF00FF;">LTRIM</span><span style="color: #808080;">&#40;</span>token<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ASC</span> <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>
                   <span style="color: #0000FF;">WHEN</span> @sort_type <span style="color: #808080;">=</span> <span style="color: #FF0000;">'DESC'</span> <span style="color: #0000FF;">THEN</span> <span style="color: #808080;">&#40;</span> RANK<span style="color: #808080;">&#40;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">OVER</span> <span style="color: #808080;">&#40;</span> <span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> <span style="color: #FF00FF;">LTRIM</span><span style="color: #808080;">&#40;</span>token<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">DESC</span> <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>
              <span style="color: #0000FF;">END</span>  
&nbsp;
  <span style="color: #0000FF;">SELECT</span> @sortedList <span style="color: #808080;">=</span> @sortedList <span style="color: #808080;">+</span> token <span style="color: #808080;">+</span> @delimiter
  <span style="color: #0000FF;">FROM</span>   @sortedTable
&nbsp;
  <span style="color: #0000FF;">RETURN</span> dbo.<span style="color: #202020;">ChopIf</span><span style="color: #808080;">&#40;</span> @sortedList, @delimiter <span style="color: #808080;">&#41;</span>
&nbsp;
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Functions sort of like ColdFusion's ListLen() method, but it</span>
<span style="color: #008080;">-- takes into account empty tokens. </span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example 1:</span>
<span style="color: #008080;">--    dbo.ListLen( 'Dan is cool', ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    3</span>
<span style="color: #008080;">-- </span>
<span style="color: #008080;">-- Example 2:</span>
<span style="color: #008080;">--    dbo.ListLen( 'dan,,very,,,,awesome,', ',' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    8</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ListLen<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">','</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">INT</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">DECLARE</span> @loopCount <span style="color: #0000FF;">INT</span>, 
          @tokenCount <span style="color: #0000FF;">INT</span>
&nbsp;
  <span style="color: #0000FF;">SELECT</span> @loopCount <span style="color: #808080;">=</span> <span style="color: #000;">0</span>, 
         @tokenCount <span style="color: #808080;">=</span> <span style="color: #000;">0</span>
&nbsp;
  <span style="color: #008080;">-- If it's an empty string, the list length is 0</span>
  <span style="color: #0000FF;">IF</span> DATALENGTH<span style="color: #808080;">&#40;</span> @string <span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #000;">0</span>
    <span style="color: #0000FF;">BEGIN</span>
      <span style="color: #0000FF;">SET</span> @tokenCount <span style="color: #808080;">=</span> <span style="color: #000;">0</span>
    <span style="color: #0000FF;">END</span>
  <span style="color: #0000FF;">ELSE</span>
    <span style="color: #0000FF;">BEGIN</span>
      <span style="color: #008080;">-- Count tokens, including empty ones like dan,,very,,,,awesome,</span>
      <span style="color: #0000FF;">SET</span> @tokenCount <span style="color: #808080;">=</span> @tokenCount <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
      <span style="color: #0000FF;">WHILE</span> <span style="color: #808080;">&#40;</span> @loopCount <span style="color: #808080;">&lt;</span> DATALENGTH<span style="color: #808080;">&#40;</span> @string <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>
      <span style="color: #0000FF;">BEGIN</span>
        <span style="color: #0000FF;">IF</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span> @string, @loopCount, DATALENGTH<span style="color: #808080;">&#40;</span> @delimiter <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> @delimiter
          <span style="color: #0000FF;">BEGIN</span>
            <span style="color: #0000FF;">SET</span> @tokenCount <span style="color: #808080;">=</span> @tokenCount <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
          <span style="color: #0000FF;">END</span>
        <span style="color: #0000FF;">SET</span> @loopCount <span style="color: #808080;">=</span> @loopCount <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
      <span style="color: #0000FF;">END</span>
    <span style="color: #0000FF;">END</span>
&nbsp;
  <span style="color: #008080;">-- Handle extra count from space being delimiter</span>
  <span style="color: #0000FF;">IF</span> @delimiter <span style="color: #808080;">=</span> <span style="color: #FF0000;">' '</span>
    <span style="color: #0000FF;">SET</span> @tokenCount <span style="color: #808080;">=</span> @tokenCount <span style="color: #808080;">-</span> <span style="color: #000;">1</span>
&nbsp;
  <span style="color: #008080;">-- If there's no token to the right of the last delimiter, then count that</span>
  <span style="color: #008080;">-- as an empty token.</span>
  <span style="color: #0000FF;">IF</span> <span style="color: #808080;">&#40;</span> <span style="color: #0000FF;">RIGHT</span><span style="color: #808080;">&#40;</span> @string, <span style="color: #000;">1</span> <span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> @delimiter <span style="color: #808080;">&#41;</span> 
  <span style="color: #0000FF;">BEGIN</span>
    <span style="color: #0000FF;">SET</span> @tokenCount <span style="color: #808080;">=</span> @tokenCount <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
  <span style="color: #0000FF;">END</span>
&nbsp;
  <span style="color: #0000FF;">RETURN</span> @tokenCount
&nbsp;
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Functions like ColdFusion's ListLast()</span>
<span style="color: #008080;">-- Gets token value that's been separated by a delimiter.</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example:</span>
<span style="color: #008080;">--    dbo.ListLast( 'Dan is cool', ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    cool</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ListLast<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">','</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">RETURN</span> dbo.<span style="color: #202020;">ListGetAt</span><span style="color: #808080;">&#40;</span> @string, dbo.<span style="color: #202020;">ListLen</span><span style="color: #808080;">&#40;</span> @string, @delimiter <span style="color: #808080;">&#41;</span> , @delimiter  <span style="color: #808080;">&#41;</span>
&nbsp;
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Wrapper for GetToken() Function</span>
<span style="color: #008080;">-- Gets token value that's been separated by a delimiter.</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example:</span>
<span style="color: #008080;">--    dbo.ListGetAt( 'Dan is cool', 2, ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    is</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ListGetAt<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @token <span style="color: #0000FF;">INT</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
  <span style="color: #0000FF;">RETURN</span> dbo.<span style="color: #202020;">GetToken</span><span style="color: #808080;">&#40;</span> @string, @token, @delimiter <span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Returns the first item in a tokenized list.</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example:</span>
<span style="color: #008080;">--    dbo.ListFirst( 'Dan is cool', ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    Dan</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ListFirst<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">','</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">RETURN</span> dbo.<span style="color: #202020;">ListGetAt</span><span style="color: #808080;">&#40;</span> @string, <span style="color: #000;">1</span>, @delimiter <span style="color: #808080;">&#41;</span>
&nbsp;
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Functions similarly like ColdFusion GetToken() Function.</span>
<span style="color: #008080;">-- Gets token value that's been separated by a delimiter.</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example:</span>
<span style="color: #008080;">--    dbo.GetToken( 'Dan is cool', 2, ' ' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    is</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>GetToken<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @tokenPosition <span style="color: #0000FF;">INT</span>,
  @delimiter <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">DECLARE</span> @position <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">INT</span>
  <span style="color: #0000FF;">DECLARE</span> @token <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">DECLARE</span> @counter <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">INT</span>
&nbsp;
  <span style="color: #0000FF;">SELECT</span> @string <span style="color: #808080;">=</span> @string <span style="color: #808080;">+</span> @delimiter,
         @counter <span style="color: #808080;">=</span> <span style="color: #000;">1</span>,
         @position <span style="color: #808080;">=</span> <span style="color: #000;">0</span>,
         @token <span style="color: #808080;">=</span> <span style="color: #FF0000;">''</span>
&nbsp;
  <span style="color: #0000FF;">WHILE</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">PATINDEX</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%'</span> <span style="color: #808080;">+</span> @delimiter <span style="color: #808080;">+</span> <span style="color: #FF0000;">'%'</span> , @string <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">AND</span> <span style="color: #808080;">&#40;</span> @tokenPosition <span style="color: #808080;">+</span> <span style="color: #000;">1</span> <span style="color: #808080;">&lt;&gt;</span> @counter <span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">BEGIN</span>
    <span style="color: #0000FF;">SELECT</span> @position <span style="color: #808080;">=</span> <span style="color: #FF00FF;">PATINDEX</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%'</span> <span style="color: #808080;">+</span> @delimiter <span style="color: #808080;">+</span> <span style="color: #FF0000;">'%'</span> , @string<span style="color: #808080;">&#41;</span>,
           @token    <span style="color: #808080;">=</span> <span style="color: #0000FF;">LEFT</span><span style="color: #808080;">&#40;</span>@string, @position<span style="color: #808080;">-</span><span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>,
           @string   <span style="color: #808080;">=</span> <span style="color: #FF00FF;">STUFF</span><span style="color: #808080;">&#40;</span>@string, <span style="color: #000;">1</span>, @position, null<span style="color: #808080;">&#41;</span>,
           @counter  <span style="color: #808080;">=</span> @counter <span style="color: #808080;">+</span> <span style="color: #000;">1</span>
  <span style="color: #0000FF;">END</span>
&nbsp;
  <span style="color: #0000FF;">RETURN</span> @token
<span style="color: #0000FF;">END</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #008080;">------------------------------------------------------------------</span>
<span style="color: #008080;">-- Chops the last character if it's @chopped</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Example:</span>
<span style="color: #008080;">--    dbo.ChopIf( 'Dan is cool!', '!' )</span>
<span style="color: #008080;">--</span>
<span style="color: #008080;">-- Returns: </span>
<span style="color: #008080;">--    Dan is cool</span>
<span style="color: #008080;">------------------------------------------------------------------</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">FUNCTION</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>ChopIf<span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#40;</span>
  @string <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>,
  @chopped <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">RETURNS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">2000</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">AS</span>
<span style="color: #0000FF;">BEGIN</span>
&nbsp;
  <span style="color: #0000FF;">IF</span> <span style="color: #808080;">&#40;</span> <span style="color: #0000FF;">RIGHT</span><span style="color: #808080;">&#40;</span> @string, DATALENGTH<span style="color: #808080;">&#40;</span>@chopped<span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> @chopped <span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">BEGIN</span>
    <span style="color: #0000FF;">SET</span> @string <span style="color: #808080;">=</span> <span style="color: #0000FF;">LEFT</span><span style="color: #808080;">&#40;</span> @string, DATALENGTH<span style="color: #808080;">&#40;</span> @string <span style="color: #808080;">&#41;</span> <span style="color: #808080;">-</span> DATALENGTH<span style="color: #808080;">&#40;</span> @chopped <span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span> 
  <span style="color: #0000FF;">END</span> 
&nbsp;
  <span style="color: #0000FF;">RETURN</span> @string
&nbsp;
<span style="color: #0000FF;">END</span>
GO</pre></td></tr></table></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;submitHeadline=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;title=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;title=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;title=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;bm_description=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;T=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;title=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;title=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions+@+http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/&amp;t=TSQL+Functions+Inspired+By+ColdFusion%26%238217%3Bs+Lists+Functions" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/04/27/tsql-functions-inspired-by-coldfusions-lists-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate Junk Files</title>
		<link>http://www.shinylight.com/2010/04/24/generate-junk-files/</link>
		<comments>http://www.shinylight.com/2010/04/24/generate-junk-files/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 05:00:27 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=942</guid>
		<description><![CDATA[The other day I was testing benchmarks for a delete script. I needed to create files with various file sizes. More specific, 1,000,000 files with 5K per file. A while ago I found this great snippet on StackOverflow to generate a junk random string:

junk =  &#40;&#40;&#34;%%0%dX&#34; % &#40;junk_len * 2&#41;&#41; % random.getrandbits&#40;junk_len * 8&#41;&#41;.decode&#40;&#34;hex&#34;&#41;

I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I was testing benchmarks for a delete script. I needed to create files with various file sizes. More specific, 1,000,000 files with 5K per file. A while ago I found this great snippet on <a href="http://stackoverflow.com/questions/785058/random-strings-in-python-2-6-is-this-ok">StackOverflow to generate a junk random string</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">junk =  <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%%0%dX&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>junk_len <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #dc143c;">random</span>.<span style="color: black;">getrandbits</span><span style="color: black;">&#40;</span>junk_len <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;hex&quot;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>I&#8217;ve wrapped that around to make a utility function and snippet:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">random</span>, <span style="color: #dc143c;">sys</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># This tool takes 3 parameters</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;">#   testing &lt;directory to put files in&gt; &lt;how many files&gt; &lt;size of each file in bytes&gt;</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Example:</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;">#   testing dan 100 500</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> createLocalDirectory<span style="color: black;">&#40;</span> directoryName <span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">exists</span><span style="color: black;">&#40;</span> directoryName <span style="color: black;">&#41;</span>:
    <span style="color: #dc143c;">os</span>.<span style="color: black;">makedirs</span><span style="color: black;">&#40;</span> directoryName <span style="color: black;">&#41;</span>
&nbsp;
folderName      = <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
how_many_files  = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
junk_len        = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
createLocalDirectory<span style="color: black;">&#40;</span> folderName <span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span> <span style="color: #ff4500;">0</span>, how_many_files <span style="color: black;">&#41;</span>:  
  junk =  <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%%0%dX&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>junk_len <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #dc143c;">random</span>.<span style="color: black;">getrandbits</span><span style="color: black;">&#40;</span>junk_len <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;hex&quot;</span><span style="color: black;">&#41;</span>
  path = folderName + <span style="color: #483d8b;">&quot;/&quot;</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">&quot;.txt&quot;</span>
  f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span> path, <span style="color: #483d8b;">'w'</span> <span style="color: black;">&#41;</span>
  f.<span style="color: black;">write</span><span style="color: black;">&#40;</span> junk <span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">print</span> f
  f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;submitHeadline=Generate+Junk+Files&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;title=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;title=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/04/24/generate-junk-files/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;title=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;bm_description=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;T=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;title=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;title=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/04/24/generate-junk-files/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/04/24/generate-junk-files/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Generate+Junk+Files+@+http://www.shinylight.com/2010/04/24/generate-junk-files/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/04/24/generate-junk-files/&amp;t=Generate+Junk+Files" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/04/24/generate-junk-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search In One File from Keywords in Another File</title>
		<link>http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/</link>
		<comments>http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 04:49:00 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=939</guid>
		<description><![CDATA[I needed to see if this list of email addresses were found in a logs file. So I had one file with a list of email addresses. Another file is a list emails sent. I needed to make sure that the emails were sent. Here&#8217;s a quick Python script I put together that does this:

import [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to see if this list of email addresses were found in a logs file. So I had one file with a list of email addresses. Another file is a list emails sent. I needed to make sure that the emails were sent. Here&#8217;s a quick Python script I put together that does this:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> searchInLogFile<span style="color: black;">&#40;</span> FILE, query <span style="color: black;">&#41;</span>:  
  FILE.<span style="color: black;">seek</span><span style="color: black;">&#40;</span> <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span> <span style="color: black;">&#41;</span>  
  <span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> LogFile:
    logLine = line.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,<span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>,<span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">lstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">search</span><span style="color: black;">&#40;</span> query, logLine, <span style="color: #dc143c;">re</span>.<span style="color: black;">IGNORECASE</span> | <span style="color: #dc143c;">re</span>.<span style="color: black;">MULTILINE</span> <span style="color: black;">&#41;</span>:
      <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># This file has a list (\r\n delimited) email addresses.</span>
EmailListFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;email-list-internal.txt&quot;</span>, <span style="color: #483d8b;">&quot;r&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># This is the log file which we'll use to see if email addresses are in here.</span>
LogFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;POST20100201.log&quot;</span>, <span style="color: #483d8b;">&quot;r&quot;</span> <span style="color: black;">&#41;</span>
&nbsp;
EmailFound = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
EmailNotFound = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
breakTime = <span style="color: #ff4500;">0</span>
<span style="color: #808080; font-style: italic;"># 0 = does the whole list</span>
EmailsToSearchFor = <span style="color: #ff4500;">0</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> emailLine <span style="color: #ff7700;font-weight:bold;">in</span> EmailListFile:
  <span style="color: #dc143c;">email</span> = emailLine.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,<span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>,<span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">lstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span> searchInLogFile<span style="color: black;">&#40;</span> LogFile, <span style="color: #dc143c;">email</span> <span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #dc143c;">email</span>, <span style="color: #483d8b;">&quot;was found&quot;</span>
    EmailFound.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #dc143c;">email</span> <span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #ff7700;font-weight:bold;">else</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #dc143c;">email</span>, <span style="color: #483d8b;">&quot;not found&quot;</span>
    EmailNotFound.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #dc143c;">email</span> <span style="color: black;">&#41;</span>  
&nbsp;
&nbsp;
  <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span> EmailsToSearchFor <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span> <span style="color: black;">&#41;</span>:
    breakTime += <span style="color: #ff4500;">1</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span> breakTime == EmailsToSearchFor <span style="color: black;">&#41;</span>:
      <span style="color: #ff7700;font-weight:bold;">break</span><span style="color: #66cc66;">;</span>
&nbsp;
LogFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
EmailListFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Log results to a file.</span>
OutputFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;output.log&quot;</span>, <span style="color: #483d8b;">&quot;w&quot;</span> <span style="color: black;">&#41;</span>
&nbsp;
divider = <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>======== Found ========================================&quot;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> divider
OutputFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span> divider <span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> EmailFound:
  <span style="color: #ff7700;font-weight:bold;">print</span> i
  OutputFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> + i <span style="color: black;">&#41;</span>
&nbsp;
divider = <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>======== Not Found ====================================&quot;</span>  
<span style="color: #ff7700;font-weight:bold;">print</span> divider
OutputFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span> divider <span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> EmailNotFound:
  <span style="color: #ff7700;font-weight:bold;">print</span> i
  OutputFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> + i <span style="color: black;">&#41;</span>
&nbsp;
OutputFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Pretty straightforward. The script also writes a file called &#8220;output.log&#8221; which has a list of emails that were found (marked under &#8220;found&#8221;) and not found (marked under &#8220;not found&#8221;). </p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;submitHeadline=Search+In+One+File+from+Keywords+in+Another+File&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;title=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;title=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;title=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;bm_description=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;T=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;title=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;title=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Search+In+One+File+from+Keywords+in+Another+File+@+http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/&amp;t=Search+In+One+File+from+Keywords+in+Another+File" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/04/24/search-in-one-file-from-keywords-in-another-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RedGate SQL Search</title>
		<link>http://www.shinylight.com/2010/04/24/redgate-sql-search/</link>
		<comments>http://www.shinylight.com/2010/04/24/redgate-sql-search/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 04:26:07 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.shinylight.com/?p=936</guid>
		<description><![CDATA[I love this tool. It&#8217;s a free add-on if you own SQL Prompt, RedGate&#8217;s version of intellisense, which is better, in my eyes, than Microsoft&#8217;s. It uses SQL Prompt&#8217;s FTS collection to search for any piece of string in any DB object. It&#8217;s crazy fast. What I like the most though, is the ability to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.red-gate.com/Products/SQL_Search/index.htm">I love this tool</a>. It&#8217;s a free add-on if you own SQL Prompt, RedGate&#8217;s version of intellisense, which is better, in my eyes, than Microsoft&#8217;s. It uses SQL Prompt&#8217;s FTS collection to search for any piece of string in any DB object. It&#8217;s crazy fast. What I like the most though, is the ability to right click on a result, and move the focus to appropriate DB object in the explorer panel. Hit CTRL+ALT+D to trigger the search screen and start typing away. </p>
<p><img src="http://www.shinylight.com/wp-content/uploads/2010/04/found_objects_large-Custom.png" alt="" title="found_objects_large (Custom)" width="600" height="342" class="alignnone size-full wp-image-937" /></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em></em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;submitHeadline=RedGate+SQL+Search&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;title=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;title=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.shinylight.com/2010/04/24/redgate-sql-search/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;title=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;bm_description=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;T=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;title=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;title=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.shinylight.com/2010/04/24/redgate-sql-search/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http://www.shinylight.com/2010/04/24/redgate-sql-search/" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+RedGate+SQL+Search+@+http://www.shinylight.com/2010/04/24/redgate-sql-search/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://www.shinylight.com/2010/04/24/redgate-sql-search/&amp;t=RedGate+SQL+Search" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.shinylight.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.shinylight.com/2010/04/24/redgate-sql-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
