<?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>David's Blog</title>
	<atom:link href="http://blogs.clarience.com/davide/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blogs.clarience.com/davide</link>
	<description>Software architecture, development and other tidbits.</description>
	<lastBuildDate>Sun, 19 Dec 2010 17:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>OpenSearch Client Library for .NET &#8211; v1.0 now available!</title>
		<link>http://blogs.clarience.com/davide/?p=31</link>
		<comments>http://blogs.clarience.com/davide/?p=31#comments</comments>
		<pubDate>Sun, 19 Dec 2010 17:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[OpenSearch]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=31</guid>
		<description><![CDATA[We’re excited to announce that we’ve released version 1.0 of our OpenSearch Client Library for .NET. Feature highlights: Build OpenSearch compliant search requests using a simple, intuitive API. Consume and process OpenSearch compliant responses (RSS and Atom format supported). Compatible with the OpenSearch 1.1 (draft) standard. Display search results from compatible search engines. Simple to [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=31</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is OpenSearch?</title>
		<link>http://blogs.clarience.com/davide/?p=30</link>
		<comments>http://blogs.clarience.com/davide/?p=30#comments</comments>
		<pubDate>Sun, 19 Dec 2010 15:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OpenSearch]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=30</guid>
		<description><![CDATA[OpenSearch is a standard that defines formats for search requests and search results returned as HTML, RSS or Atom documents. It provides a standard URL format for querying compliant sources and supplying search query parameters such as: Search terms; Start index and count; Language. Here’s a simple example of a request URL (supplying only search [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List of OpenSearch (RSS and Atom) providers</title>
		<link>http://blogs.clarience.com/davide/?p=29</link>
		<comments>http://blogs.clarience.com/davide/?p=29#comments</comments>
		<pubDate>Fri, 17 Dec 2010 15:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OpenSearch]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=29</guid>
		<description><![CDATA[Lately, we’ve been working on a project (more about that in a future post) around OpenSearch and as part of that effort we’ve been gathering up a list of RSS and Atom OpenSearch providers. We’ll be updating the list as and when we come to know of more providers. If there are more out there [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=29</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server: Implementing constraints with indexed-views</title>
		<link>http://blogs.clarience.com/davide/?p=28</link>
		<comments>http://blogs.clarience.com/davide/?p=28#comments</comments>
		<pubDate>Fri, 16 Apr 2010 14:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=28</guid>
		<description><![CDATA[Indexed-views are useful for more than just performance improvement, they can also be used to implement constraints. In particular, constraints involving multiple tables. The principle is relatively simple. Design an indexed-view such that duplicate keys are selected for every constraint violation. Sometimes a “numbers” table can be useful to double-up the rows (although we won’t [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deadlocks are a property of SQL Server&#8217;s pessimistic concurrency scheme</title>
		<link>http://blogs.clarience.com/davide/?p=27</link>
		<comments>http://blogs.clarience.com/davide/?p=27#comments</comments>
		<pubDate>Thu, 18 Feb 2010 18:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=27</guid>
		<description><![CDATA[I’ve encountered more than a few SQL Server based applications where deadlocks are treated as an error in almost exactly the same manner as say, a .NET null-reference exception. In most cases this means the user sees a message along the lines of: “An error has occurred, please try again”. A deadlock is usually a [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=27</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using JSONP for cross-host &quot;Ajax&quot; calls with jQuery</title>
		<link>http://blogs.clarience.com/davide/?p=25</link>
		<comments>http://blogs.clarience.com/davide/?p=25#comments</comments>
		<pubDate>Fri, 12 Feb 2010 07:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=25</guid>
		<description><![CDATA[When trying to make cross-host Ajax calls, you’ll likely run foul of the browser’s “same origin policy”. Usually, the user will be presented with a pop-up similar to this: One solution is JSONP. It happens that the same origin policy is relaxed for certain tags and that includes the &#60;script&#62; tag. JSONP takes advantage of [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=25</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copying the contents of a hard disk drive and an opportunity to revisit Linux</title>
		<link>http://blogs.clarience.com/davide/?p=23</link>
		<comments>http://blogs.clarience.com/davide/?p=23#comments</comments>
		<pubDate>Thu, 11 Feb 2010 07:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating System]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=23</guid>
		<description><![CDATA[My current 80GB HDD was running low on disk space and so it was time for an upgrade. My plan was to copy the data from the old HDD to a new 500GB one and extend the one and only system partition. A straightforward task. Now, the PC in question has only one SATA port on [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tree traversal, LINQ style</title>
		<link>http://blogs.clarience.com/davide/?p=22</link>
		<comments>http://blogs.clarience.com/davide/?p=22#comments</comments>
		<pubDate>Mon, 08 Feb 2010 23:30:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=22</guid>
		<description><![CDATA[When dealing with tree structures, it’s helpful to be able to visit all nodes. Here’s an extension method that makes traversing tree structures easier (in this case, in preorder, depth-first). internal static class TreeTraverse { &#160;&#160;&#160; public static IEnumerable&#60;T&#62; PreorderTraverse&#60;T&#62;(this T node, Func&#60;T, IEnumerable&#60;T&#62;&#62; childrenFor) &#160;&#160;&#160; { &#160;&#160;&#160;&#160;&#160;&#160;&#160; yield return node; &#160;&#160;&#160;&#160;&#160;&#160;&#160; var childNodes = [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unknown PCI device (Device Manager) &#8211; How can I find out what drivers I need?</title>
		<link>http://blogs.clarience.com/davide/?p=21</link>
		<comments>http://blogs.clarience.com/davide/?p=21#comments</comments>
		<pubDate>Fri, 05 Feb 2010 14:30:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Operating System]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=21</guid>
		<description><![CDATA[If a PCI device is showing up as an “Unknown Device” in the Windows Device Manager (devmgmt.msc) and you’re not sure what the manufacturer and/or device name is, here’s a quick tip that may help. Pull up the Properties for the device. Select “Hardware Ids” in the drop-down and make a note of the Vendor [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# Anonymous functions for conditional operations</title>
		<link>http://blogs.clarience.com/davide/?p=18</link>
		<comments>http://blogs.clarience.com/davide/?p=18#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:00:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blogs.clarience.com/davide/?p=18</guid>
		<description><![CDATA[More specifically, lambda expressions… Let’s say you have a method, the body of which will execute based on the value of a flag (myFlag in the example here): public void MyConditionalMethod(string format, params object[] args) { &#160;&#160;&#160; if (myFlag) &#160;&#160;&#160; { &#160;&#160;&#160;&#160;&#160;&#160;&#160; DoSomething(string.Format(format, args)); &#160;&#160;&#160; } } Ideally, in scenarios where myFlag is false we’d [...]]]></description>
		<wfw:commentRss>http://blogs.clarience.com/davide/?feed=rss2&#038;p=18</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

